Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-08-2010
snake25237 snake25237 is offline
Registrado
 
Registrado: jul 2010
Posts: 9
Poder: 0
snake25237 Va por buen camino
Programa de facturación "Ayuda"

Hola a todos, vengo con un pequeño problema a ver si me pueden echar la mano. Tengo un ejercicio de la universidad el cual consiste en un programa de facturación, tengo un 80% del programa listo solo tengo un inconveniente: necesito pedir al cliente No. cédula de identidad, nombre y domicilio, para este proceso debo crear 3 array que almacenen CI, nombre y domicilio que se ingresan, de tal manera que si una persona vuelve a comprar solo precise del No de C.I... cuando se ingrese el numero de cédula el nombre y domicilio se deben llenar automáticamente. Realice un código con un botón para introducir los datos y otro botón para buscar clientes pero realmente no me funciona . acá esta el código no tengo idea si es asi que se hace solo improvise

Código SQL [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ListBox1: TListBox;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 type
   tipo_arreglo = array[1..10] of string;
var
  Form1: TForm1;
  i: integer;
  ide,name,addres:string;
  dato_c,dato_n,dato_d: tipo_arreglo;
implementation

{$R *.dfm}

procedure llenar (base:tipo_arreglo;c:string);
begin
c:= inputbox('llenar datos','ingrese datos','');
base[i]:= c;
 end;


procedure TForm1.Button1Click(Sender: TObject);
begin
i:=i+1;
showmessage('Introduzca la C.I./R.I.F');
llenar(dato_c,ide);
showmessage('Introduzca el nombre');
llenar(dato_n,name) ;
showmessage('Introduzca la direccion');
llenar(dato_d,addres);
end;



procedure TForm1.Button3Click(Sender: TObject);
var
a:integer;
valor: string;
begin
 valor:= inputbox('llenar','introduzca el rif o ci','0');
for a:=1 to i do
begin
if valor = dato_c[i] then
end;
begin
listbox1.Items.Add(dato_c[i]);
listbox1.Items.Add (dato_n[i]);
listbox1.Items.Add (dato_d[i]);

end;
if valor<> dato_c[i] then
showmessage('cliente no encontrado');
end;



procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
end;

end.

muchas gracias de antemano.
Responder Con Cita
  #2  
Antiguo 07-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No entiendo la necesidad de un array.
Usas Base de datos?, cual?, es un registro?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 07-08-2010
snake25237 snake25237 is offline
Registrado
 
Registrado: jul 2010
Posts: 9
Poder: 0
snake25237 Va por buen camino
hola caral como estas..?? gracias por la pronta respuesta. No uso base de datos ni siquiera se usarlas se supone que aun no debo usar bases de datos ya que eso es contenido del próximo curso, lo que le entendí al docente fue que en un array almaceno: [CI,nombre, dirección] eso es lo mas lógico que se me ocurrió hacer :-(
Responder Con Cita
  #4  
Antiguo 07-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pero donde almacenas la informacion?
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 08-08-2010
snake25237 snake25237 is offline
Registrado
 
Registrado: jul 2010
Posts: 9
Poder: 0
snake25237 Va por buen camino
Supongo que un array de tres elementos tipo string osea el nombre, cedula y dirección.

explico lo que intente hacer en el codigo que coloque, arreglo[1] va a almacenar un nombre una cedula y una direccion, luego arreglo[2] almacena otro nombre direccion y CI y asi sucesivamente. Si se fija la variable base la declare array en la posicion [i] esa i cambia su valor cada vez que corre el codigo. Eso tiene sentido..??? la verdad eso lo invente en mi desesperación por realizar el ejercicio
Responder Con Cita
  #6  
Antiguo 08-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Lo que pasa es que no entiendo, el array que dices puede ser que coloque los datos en la pantalla, pero no entiendo como almacenas la información, donde la guardas?.
No veo en el codigo ni siquiera un record, un archivo texr, dat, ini, una bd, nada.
Por eso no entiendo lo que pretendes hacer.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 08-08-2010
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola,
Amigo Caral, el asunto es que dicha práctica no tiene por objetivo guardar físicamente los datos, sino de operar todo en memoria.

Por lo general se comienza los dictados de las clases de esa manera, introduciendo a los estudiantes con cosas básicas e ir de a poco avanzando. Muy seguramente más adelante le enseñarán y le pedirán trabajar con archivos. Y mucho más adelante con base de datos.

El chaval recién está empezando amigo.

Del código visto, a si de forma simple, va queriendo... habría que pulir algunas cosas pero creo que la idea va encaminada.

En mi opinión, no es del todo práctico el disponer de 3 vectores. Creo que sería más oportuno un sólo vector y que este sea de tipo registro. De este modo se define un registro con los 3 campos:

Código Delphi [-]
type
TRegistro = record
Cedula: integer;
Nombre: string[20];
Domicilio: string[30];
end;

TVector = array[1..MAX_VECTOR] of TRegistro;

Pero desconozco si el concepto de record le es familiar o no a snake25237. Si no ha visto el concepto no queda más que recurrir a los tres vectores como está trabajando.

Respecto al código del botón 3, hay algo que no cierra... Véase que se inicia un begin en un for, y dentro de este hay un if con un then vacío y luego se "cierra" el for con el end. Por tanto las líneas posteriores están fuera del ciclo.

Para hacer una búsqueda debe iniciarse desde la posición 1 hasta la cantidad máxima ingresada (debería controlarse esto, supuestamente al definir un límite en el vector, no se puede rebasar). Esto se puede hacer con for, while o repeat. Considero más que oportuno llevarlo con un bucle while (aunque lo más apropiado y lógico sería un repeat).

Este ciclo se ejecutaría mientras no se haya llegado al final del vector, o bien, hasta que se encuentre el elemento.

Dentro de este ciclo, naturalmente debería haber alguna evaluación a fin de determinar si el elemento a buscar coincide con la posición i-ésima.

No me convence la idea de todas esas variables globales. Algunas de esas, deberían llevarse de forma local.

No encuentro relación (sentido) el tema de pedir estos datos y búsqueda con lo "de tal manera que si una persona vuelve a comprar solo precise del No de C.I... cuando se ingrese el numero de cédula el nombre y domicilio se deben llenar automáticamente"
¿Comprar? ¿Que compra? No se ve en ninguna parte del enunciado que se lleve control alguno de compras. Se habló únicamente llenar registros de clientes.... y de posibilidad de buscar...

Y mágicamente salta el tema de compras. ¿Que hay que administrar en este sentido?
Sería mucho más que apropiado que nos expliques con lujos y detalles el enunciado. Si te explicas mejor quizá podamos entender el objetivo del problema.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 08-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Es lo malo, yo nunca pase por esto de los records, la memoria, ni nada, me lance a la BD de plano, no tube elección.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 08-08-2010
snake25237 snake25237 is offline
Registrado
 
Registrado: jul 2010
Posts: 9
Poder: 0
snake25237 Va por buen camino
Hola delphius como le va.?? aun no se como trabajar con el record que mencionas, creo que no me supe explicar, el programa consiste en un sistema de facturación para una pizzeria donde se facturaran X cantidad de pizza o bebidas (esto no lo mencione ya que lo tengo listo) luego de que se ordenan las pizzas o bebidas viene la parte de llenar los datos del cliente (es allí donde no se que hacer ) en este proceso se le pide al cliente CI, nombre y domicilio... estos datos los debo almacenar por si en un futuro el mismo cliente precise de una orden con solo ingresar su CI ya su nombre y domicilio están almacenados. Para esto cree 3 array uno para la CI otro para el nombre y otro para el domicilio, entonces el los datos del primer cliente se almacenan en cada arreglo en su posición 1 y así sucesivamente. creo que en la parte de almacenar los arreglos esta bien. El problema es como tu dices en el botón 3 intentare como me lo recomiendas con while o repeat gracias amigo..!!!! buscare el enunciado y lo posteare ya que es un poquitin difícil que entiendan los disparates que estoy diciendo XD
saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Un programa hecho en "Delphi for PHP" puede funcionar en un Hosting PHP normal? cocute Varios 3 28-02-2011 19:36:45
El programa se queda "colgado" mientras copia y luego "despierta" NeWsP OOP 5 10-03-2010 22:05:40
Rave Report: Pierdo la ejecucion de mi programa al cancelar el "Generating"!!!! jbautista Impresión 1 22-08-2008 12:41:01
¿Cómo mostrar UN Doc. "PowerPoint" desde un Programa en Delphi? MACOII Servers 2 23-07-2008 21:16:01
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53


La franja horaria es GMT +2. Ahora son las 05:50:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi