Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Aquí seguimos.
Primero darle las gracias a Neftali por su comentario y apoyo, con vuestro permiso subiere el código al momento de terminar este, la base de datos creo que es pequeña y se puede poner aquí mismo.
He modificado en primer post, para subir la base de datos, así podrán seguir esto desde el principio.
Saludos
Responder Con Cita
  #2  
Antiguo 14-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Bueno aquí estoy de nuevo.
Ya nos conectamos a la base de datos ahora conectaremos los DBEdit a sus respectivos componentes.
Ya teníamos conectados los datasource con su respectivo componente ADO, esto lo vimos en el segundo post (revisadlo), de todos modos recordad que se conectan en su propiedad DataSet, con la flechita.
Ahora conectaremos los DBEdit a los DataSource.
NOTA: Quiero hacer notar que también se pueden obtener los dbedit directamente de los componentes Ado, recordáis la pantallita pequeña en donde están los campos, pues con solo seleccionarlos y paradlos al form quedaran listos y activados, este procedimiento es efectivo pero en mi caso prefiero hacer una colocación de los componentes primero y luego la activación de los mismos, es un asunto de gustos, pero de todos modos quise daros la explicación del caso.
Sigamos:
Primero recordad que a los DBEdit se les cambio el nombre así que usare estos (post 2).
1- DBNtransac:
Datasource = Datasource1
DataField = CodTransac
2- DBDescrip:
Datasource = Datasource1
DataField = Descripción
3- DBDeposit:
Datasource = Datasource1
DataField = Depósitos
4- DBRetiros:
Datasource = Datasource1
DataField = Retiros
5- DBSalAnt
Datasource = Datasource1
DataField = SaldoAnt
Listos y conectados, podéis cambiarles el tipo de letra y tamaño en su propiedad Font, bueno hay muchas cosas mas que se pueden hacer, seguro ya experimentareis.

El componente ComBobox (CBTipo):
Nos posesionamos en este y en su propiedad Items (TString) presionaremos el botón, con esto nos saldrá otra pantalla, en esta escribiremos lo siguiente:
Uno debajo del otro:
Retiros
Depósitos
Y presionamos OK en esta pantalla
Su propiedad ItemIndex tiene que estar en -1, con esto aparecerá en blanco obligando a escoger una de las dos opciones (podéis experimentar con esta veréis los resultados).

El componente DBNavigator :
Posesiónense en el y en su propiedad VisibleButtons presione el signo +, cambie a False todos los tipos con la flecha excepto el que dice NBInsert, este quedara True.
En su propiedad DataSource pondremos con la flecha DataSource1.

Bueno por ahora no hemos escrito nada de código (Delphi lo hace todo) pero ya estamos a punto de poner esto en marcha.
Espero sigáis este y no os aburráis con mis explicaciones, trato de ser lo mas explicito posible.
Saludos
Responder Con Cita
  #3  
Antiguo 14-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Bueno un poquito de código, aquí es donde me corrigen los maestros del Club, con mucho gusto acepto sus criticas.
Empecemos:
Nos posicionamos en el form Banco y le damos doble clic, con esto no llevara a su evento OnFormCreate, en donde ponemos esto:
NOTA: El código esta explicado:
Código Delphi [-]
procedure TBanco.FormCreate(Sender: TObject);
begin
   DTP1.DateTime:= now; // inicio la fecha al dia de hoy
   Banco.Active := True; // activo la tabla
   Banco.Last;  // le indico que lea el ultimo registro
   SumRet.Active := True; // activo el query
   SumDep.Active := True; // activo el query
   // coloco el resultado de (SumDep - SumRet) en el edit
   ESalTot.Text := FloatToStr((SumDep.Fields[0].AsFloat) - SumRet.Fields[0].AsFloat);
   // establecemos los dbedits como desactivados
   DBNTransac.Enabled := False;
   DBDescrip.Enabled := False;
   DBRetiros.Enabled := False;
   DBDeposit.Enabled := False;
   DBSalAnt.Enabled := False;
   // Deshabilitamos el combobox
   CBTipo.Enabled:= False;
   // Deshabilitamos el navegador
   DBNavigator1.Enabled := False;
   // escondemos los botones, con esto evitamos cometer errores
   BRetiros.Visible := False;
   BDeposito.Visible := False;
end;

Ahora le damos doble clic al boton Cancelar, este es el evento OnClick, ponemos esto:
Código Delphi [-]
procedure TBanco.BcancelaClick(Sender: TObject);
begin
   Close; // cerramos el programa
end;
NOTA: Este código lo voy probando, osea que se puede cortar y pegar, sugiero escribirlo, se aprende mejor.
Seguimos con lo demás en el siguiente post.
Saludos
Responder Con Cita
  #4  
Antiguo 14-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Vamos con dos partes mas:
Recordad que se cambio el caption a los botones asea el titulo, no me explique bien en el segundo post en ese punto, espero me lo disculpéis un dedazo.
El nombre (Name) de cada botón lo iré poniendo según se requiera entre paréntesis.
El botón Nueva Transacción (BNTrans):
En el evento OnClick:
Código Delphi [-]
procedure TBanco.BNTransClick(Sender: TObject);
begin
   // desactivo las tablas, esto es por si hemos hecho
   // alguna transaccion anterior
   Banco.Active := False;
   SumRet.Active := False;
   SumDep.Active := False;
   // confirmo que los botones estan escondidos
   BRetiros.Visible := False;
   BDeposito.Visible := False;
   // activo la tabla y querys
   Banco.Active := True;
   SumRet.Active := True;
   SumDep.Active := True;
   Banco.Last;
   // activo el combobox
   CBTipo.Enabled:= True;
   // activo el dbnavegator, con este ya se puede insertar un nuevo registro
   DBNavigator1.Enabled := True;
end;

Ahora el DBNavigator (DBNavigator1):
En el evento OnClick:
Código Delphi [-]
procedure TBanco.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
    // aqui vamos a definir el tipo de dato que se ingresa
    // para esto usaremos el combobox.
    case CBTipo.ItemIndex of
     0 : begin
         // activamos los dbedit
         DBNTransac.Enabled := True;
         DBDescrip.Enabled := True;
         DBRetiros.Enabled := True;
         DBDeposit.Enabled := False;
         // escondemos y presentamos
         DBRetiros.Visible:= true;
         DBDeposit.Visible:= False;
         end;
     1 : begin
         // activamos los dbedit
         DBNTransac.Enabled := True;
         DBDescrip.Enabled := True;
         DBDeposit.Enabled:= True;
         DBRetiros.Enabled := False;
         // escondemos y presentamos
         DBDeposit.Visible:= True;
         DBRetiros.Visible:= False;
         end;

end;
Bueno, ya se pueden hacer varias cosas con el programita pero todavía falta algo de camino, por ejemplo el calculo de ingresos (Depósitos) menos egresos (Retiros), ya casi vamos, ademas de los reportes.
Saludos
Responder Con Cita
  #5  
Antiguo 14-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Vamos con otro componente:
El Combobox (CBTipo):
En el evento ONChange:
Código Delphi [-]
procedure TBanco.CBTipoChange(Sender: TObject);
begin
    // Aqui activamos y desactivamos opciones
    case CBTipo.ItemIndex of
     0 : begin
        BDeposito.Visible:= False; // escondemos el boton deposito (BDeposito)
        BRetiros.Visible:= True; // hacemos visible el boton retiros (BRetiros)
        CBTipo.Enabled:= False; // Deshabilitamos  el combobox, evitamos errores
        DBNavigator1.Enabled:= True; // avilitamos el navegador
         end;
     1 : begin
        BRetiros.Visible:= False; // Escondemos el boton retiros (BRetiros)
        BDeposito.Visible:= True; // Hacemos visible el boton deposito (BDeposito)
        CBTipo.Enabled:= False; // Deshabilitamos  el combobox, evitamos errores
        DBNavigator1.Enabled:= True; // avilitamos el navegador
         end;
end;
end;
Este lo puse solito por que vienen los grandes, depósitos y retiros.
Saludos
Responder Con Cita
  #6  
Antiguo 15-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Aquí vamos con el primero, es realmente facil.
NOTA: Tanto para depositos como para los retiros en este estamos usando dos botones, escondiéndolos de vez en cuando, esto se puede hacer con un solo boton o de muchas maneras mas, en este caso lo hago así en recordatorio de como aprendí, bueno sigo aprendiendo, pero tómenlo en cuenta.
Boton Depositos, (BDeposito):
Código Delphi [-]
procedure TBanco.BDepositoClick(Sender: TObject);
  // hay otras maneras de hacer esto, por ejemplo con campos calculados
  // en este minitutorial lo hare con variables, son faciles de entender
    var
    n1,n2,sal,t1,salt: real; // estas las usaremos para hacer los calculos
 begin
   If DBNTransac.Text = '' then // aqui envio un mensaje si esta vacio el dbdeit
   begin
   MessageBox(Handle,
             PChar('Tiene que Indicar el numero de Deposito'),
             PChar(''),
             MB_OK + MB_ICONSTOP + MB_DEFBUTTON1 + MB_APPLMODAL);
   end
   else // de lo contrario hago lo que sigue
   begin
    Banco.Fields[2].AsString:= 'Dep'; //Con esto le coloco la palabra Dep.
    n1:= SumRet.Fields[0].AsFloat; // aqui se le asigna el valor a n1 Retiros
    n2:= SumDep.Fields[0].AsFloat; // aqui se le asigna el valor a n2 depositos
    t1:= StrTofloat(DBDeposit.Text); // aqui se le asigna el valor a t1 DBDeposito
    sal:= n2 - n1; // aqui se hace la primera operacion y se asigna a sal
    DBSalAnt.Text:= floatToStr(sal); // aqui se indica que sal = a DBSalAnt
    salt:= (t1 + sal);  // aqui se hace la segunda operacion y se asigna a salt
    Banco.Fields[8].AsFloat:= salt; // aqui le doy el valor de salt
    Begin
    Banco.Fields[3].AsDateTime:= DTP1.Date; // establezco la fecha
    Banco.Edit; // edito la tabla
    Banco.Post; // guardo los resultados
    // Deshabilitamos los dbdeit
    DBNTransac.Enabled := False;
    DBDescrip.Enabled := False;
    DBDeposit.Enabled:= False;
    DBRetiros.Enabled := False;
    DBSalAnt.Enabled:= False;
    // escondemos los botones
    BDeposito.Visible:= False;
    BRetiros.Visible:= False;
    // colocamos el combobox vacio y lo deshabilitamos
    CBTipo.Text := ' ';
    CBTipo.Enabled := False;
    // deshabilitamos el navegador
    DBNavigator1.Enabled := False;
    // cerramos las tablas, o las desactivamos
    Banco.Active := False;
    SumRet.Active := False;
    SumDep.Active := False;
    // abrimos de nuevo las tablas, con esto se actualizan
    Banco.Active := True;
    SumRet.Active := True;
    SumDep.Active := True;
    Banco.Last; // vemos el ultimo registro
    // colocamos el nuevo resultado en el edit
    ESalTot.Text := FloatToStr((SumDep.Fields[0].AsFloat) - SumRet.Fields[0].AsFloat);
    end;
       end;
           end;
Ya podeis entrar cifras y probar, el boton de retiros es practicamente el mismo codigo, aun asi lo colocare.
Saludos
Responder Con Cita
  #7  
Antiguo 15-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Aqui sigo, no se si alguien estará siguiendo este minitutorial, pero la intención es lo que cuenta.
Ya se hizo el código del botón depósitos, ahora necesitamos el botón retiros o Cheques.
Como dije en el post anterior, estos códigos son casi idénticos, casi, vamos a poner el código de este botón y fijaros en las sutiles diferencias, de echo copie y pegue el código del botón depósitos y solo le cambie estas diferencias, revisad lo y las encontrareis.
Botón Cheques (BRetiros):
Código Delphi [-]
procedure TBanco.BRetirosClick(Sender: TObject);
  // hay otras maneras de hacer esto, por ejemplo con campos calculados
  // en este minitutorial lo hare con variables, son faciles de entender
    var
    n1,n2,sal,t1,salt: real; // estas las usaremos para hacer los calculos
 begin
   If DBNTransac.Text = '' then // aqui envio un mensaje si esta vacio el dbdeit
   begin
   MessageBox(Handle,
             PChar('Tiene que Indicar el numero de Cheque'),
             PChar(''),
             MB_OK + MB_ICONSTOP + MB_DEFBUTTON1 + MB_APPLMODAL);
   end
   else // de lo contrario hago lo que sigue
   begin
    Banco.Fields[2].AsString:= 'Che'; //Con esto le coloco la palabra Che.
    n1:= SumRet.Fields[0].AsFloat; // aqui se le asigna el valor a n1 Retiros
    n2:= SumDep.Fields[0].AsFloat; // aqui se le asigna el valor a n2 depositos
    t1:= StrTofloat(DBRetiros.Text); // aqui se le asigna el valor a t1 DBRetiros
    sal:= n2 - n1; // aqui se hace la primera operacion y se asigna a sal
    DBSalAnt.Text:= floatToStr(sal); // aqui se indica que sal = a DBSalAnt
    salt:= (sal - t1);  // aqui se hace la segunda operacion y se asigna a salt
    Banco.Fields[8].AsFloat:= salt; // aqui le doy el valor de salt
    Begin
    Banco.Fields[3].AsDateTime:= DTP1.Date; // establezco la fecha
    Banco.Edit; // edito la tabla
    Banco.Post; // guardo los resultados
    // Deshabilitamos los dbdeit
    DBNTransac.Enabled := False;
    DBDescrip.Enabled := False;
    DBDeposit.Enabled:= False;
    DBRetiros.Enabled := False;
    DBSalAnt.Enabled:= False;
    // escondemos los botones
    BDeposito.Visible:= False;
    BRetiros.Visible:= False;
    // colocamos el combobox vacio y lo deshabilitamos
    CBTipo.Text := ' ';
    CBTipo.Enabled := False;
    // deshabilitamos el navegador
    DBNavigator1.Enabled := False;
    // cerramos las tablas, o las desactivamos
    Banco.Active := False;
    SumRet.Active := False;
    SumDep.Active := False;
    // abrimos de nuevo las tablas, con esto se actualizan
    Banco.Active := True;
    SumRet.Active := True;
    SumDep.Active := True;
    Banco.Last; // vemos el ultimo registro
    // colocamos el nuevo resultado en el edit
    ESalTot.Text := FloatToStr((SumDep.Fields[0].AsFloat) - SumRet.Fields[0].AsFloat);
    end;
       end;

end;
Como veis son casi exactos.
Ya podéis ingresar depósitos y hacer retiros (cheques), hasta aquí va funcionando bien, espero os sirva de algo.
Saludos
Responder Con Cita
  #8  
Antiguo 18-07-2008
ELENA3488 ELENA3488 is offline
Registrado
 
Registrado: may 2008
Posts: 4
Poder: 0
ELENA3488 Va por buen camino
hola
como siempre dando consejos practicos; gracias como gente como tu por compartir este tipo de info, pude relizar mi proyecto de titulacion; ya que no tenia ningun conocimiento en delphi; reconosco k aun m falta mucho por aprender.

Aprovechando este medio si tienes algun conocimiento o manual de como se usa el InstallShiel (Express). Para realizar el ejecutable de mi aplicacion y poder instalarlo en otra pc.
saludos
Responder Con Cita
  #9  
Antiguo 18-07-2008
ctrl_attack ctrl_attack is offline
Miembro
 
Registrado: feb 2007
Posts: 49
Poder: 0
ctrl_attack Va por buen camino
Thumbs up prueba con el inno setup

yo te recomendaria mas que nada que te descargues e instales el innosetup para crearte el ejecutable de tu aplicacion, es incluso mas facil de utilizar, y te puedes copiar de los ejemplos que trae, incluso tambien te puedes bajar un asistente del inno setup ke en este momento no recuerdo como se llama, pero es bastante bueno por ke ese es una extencion del programa ke hace todo mas visual, sin escribir tanto codigo, bueno bye
Responder Con Cita
  #10  
Antiguo 18-07-2008
ELENA3488 ELENA3488 is offline
Registrado
 
Registrado: may 2008
Posts: 4
Poder: 0
ELENA3488 Va por buen camino
ok gracias por la ayuda; la vdd aun desconosco muchas cosas de esto jejeje
lo descargo y lo pruebo
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
Mini -Navegador Web eldavi Internet 0 22-03-2007 19:03:47
Delphi para novatos Yomero Varios 1 10-01-2007 21:24:10
Problemas con PHP y Mini Impresora newdelphi7 PHP 6 16-12-2006 05:34:38
Mini Racing Online turminator Varios 2 21-04-2006 01:39:33
Lista de mini imagenes newbery Gráficos 2 21-11-2005 18:16:54


La franja horaria es GMT +2. Ahora son las 07:19:59.


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