Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Seleccion de Datos para pago (https://www.clubdelphi.com/foros/showthread.php?t=87514)

maxzama 16-01-2015 16:51:30

Seleccion de Datos para pago
 
Hola.

Utilizo Delphi.

Necesito que me ayude a encontrar el error o decirme que me falta para lo siguiente:

Necesito que al seleccionar o presionar el boton de pago haga lo siguiente:

Que me seleccione los que tienen numero de cuenta y me lo agrege al Memo, y los que no tienen Numero de cuenta me lo guarde en la base dato llamado(ASSTC_PAGO_ESPERA).

// lo que hace mi codigo, en estos momentos. Es agregarme en el memo a todos los que tienen numero de cuenta. Y a los que no tienen numero de cuenta los obvia, y sigue de largo. y sigue agregando los que tienen numero de cuenta hasta terminar el siclo...

Este es mi codigo:

Código Delphi [-]
var
I: Integer;
A,B:String;
Fecha:String;
TT,Cad,Cad1,Cad2:String;

Cuenta,Cuenta2,NumeroCuenta:String;
Cedula:String;
Monto:String;
Nombre:String;

C,D,E,F,G:String;

begin
    TT:=memo1.Lines[1];

    A:='HGOBERNACIÓN ESTADO CARABOBO             01020388170000019651';
    Cad:=cad+StringOfChar(' ',2);              // Campo de numero de control de Archivo
    Fecha:=DateToSTR (DateTimePicker1.Date);
    Cad1:='00000';
    Cad2:=cad2+StringOfChar(' ',8);            // Monto total de la nomina
    B:='03291 ';
    Memo1.Lines.Add(A+Cad+Fecha+Cad1+Cad2+B);


   { Dmodulo.ASISTENCIA_COBRAR.SQL.Clear ;
    Dmodulo.ASISTENCIA_COBRAR.SQL.Add('select * from ASISTENCIA_COBRAR ');
    DMODULO.ASISTENCIA_COBRAR.Open; }
    Dmodulo.ASISTENCIA_COBRAR.First;
       while not Dmodulo.ASISTENCIA_COBRAR.Eof do
             begin

                 if DMODULO.ASISTENCIA_COBRAR.FieldByName('NumeroCuenta').AsString>'' then

                 begin
                     for I := 1 to Memo1.Lines.Count-1 do

                         Memo1.Lines[i];

                         Cuenta:=        DMODULO.ASISTENCIA_COBRAR.FieldByName('Cuenta').AsString;
                         NumeroCuenta:=  DMODULO.ASISTENCIA_COBRAR.FieldByName('NumeroCuenta').AsString;
                         C:='0000';
                         Monto:=         DMODULO.ASISTENCIA_COBRAR.FieldByName('Monto').AsString;
                         Cuenta2:=       DMODULO.ASISTENCIA_COBRAR.FieldByName('CuentaII').AsString;
                         Nombre:=        DMODULO.ASISTENCIA_COBRAR.FieldByName('Nombre').AsString;
                         E:=StringOfChar(' ',26);
                         F:='00';
                         Cedula:=        DMODULO.ASISTENCIA_COBRAR.FieldByName('Cedula').AsString;
                         G:='003291  ';
                                                                                   //+Cedula+G

                         Memo1.Lines.Add(Cuenta+NumeroCuenta+C+Monto+C+Cuenta2+Nombre+E+F+Cedula+G);

                         Dmodulo.ASISTENCIA_COBRAR.Next;

                 end
                 else
                 begin
                     Dmodulo.En_Espera.Close;
                     Dmodulo.En_Espera.SelectSQL.Text:=Dmodulo.En_Espera.InsertSQL.Text;

                     Dmodulo.En_Espera.First;
                     while not Dmodulo.En_Espera.Eof do

                     Dmodulo.En_Espera.ParamByName('CEDULA').AsString:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Cedula').As  String;
                     Dmodulo.En_Espera.ParamByName('TIPO_DOCUMENTO').AsString:=DMODULO.ASISTENCIA_COBRAR.FieldByName('TIP  O_DOCUMENTO').AsString;
                     Dmodulo.En_Espera.ParamByName('NOMBRE').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Nombre').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('APELLIDO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('APELLIDO').A  sString;
                     Dmodulo.En_Espera.ParamByName('TLF_FIJO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('TLF_FIJO').A  sString;
                     Dmodulo.En_Espera.ParamByName('TLF_CELULAR').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('TLF_CELUL  AR').AsString;
                     Dmodulo.En_Espera.ParamByName('CORREO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('CORREO').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('MUNICIPIO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('MUNICIPIO')  .AsString;
                     Dmodulo.En_Espera.ParamByName('PARROQUIA').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('PARROQUIA')  .AsString;
                     Dmodulo.En_Espera.ParamByName('DIAS_TRABAJADO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('DIAS_T  RABAJADO').AsString;

                     Dmodulo.En_Espera.ParamByName('Monto').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Monto').AsStrin  g;

                     Dmodulo.En_Espera.ParamByName('Semana').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Semana').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('Cuenta').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Cuenta').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('CuentaII').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('CuentaII').A  sString;
                     Dmodulo.En_Espera.ParamByName('NumeroCuenta').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('NumeroCu  enta').AsString;

                     Dmodulo.En_Espera.ExecSQL;
                     Dmodulo.ibt.Commit;
                     Dmodulo.En_Espera.SelectSQL.clear;
                     Dmodulo.En_Espera.SelectSQL.Text:=('select * from ASSTC_PAGO_ESPERA ');
                     Dmodulo.En_Espera.Open;
                     SHOWMESSAGE('A sido Insertado');
                     Dmodulo.En_Espera.Next;

                 end;
                 Dmodulo.ASISTENCIA_COBRAR.Next;
             end; 
end;

Espero su respuesta por favor y gracias..

aposi 16-01-2015 17:19:29

Prueba este codigo.
He quitado el recorrer las lineas del memo, ja que para insertar no es necesario, con el
Memo1.Lines.Add inserta la linea al final.

Tienes un while de la consulta insert que no pinta nada, solo cargas el sql pasas los parametros y ejecutas el insert

Código Delphi [-]
var
I: Integer;
A,B:String;
Fecha:String;
TT,Cad,Cad1,Cad2:String;

Cuenta,Cuenta2,NumeroCuenta:String;
Cedula:String;
Monto:String;
Nombre:String;

C,D,E,F,G:String;

begin
    TT:=memo1.Lines[1];

    A:='HGOBERNACIÓN ESTADO CARABOBO             01020388170000019651';
    Cad:=cad+StringOfChar(' ',2);              // Campo de numero de control de Archivo
    Fecha:=DateToSTR (DateTimePicker1.Date);
    Cad1:='00000';
    Cad2:=cad2+StringOfChar(' ',8);            // Monto total de la nomina
    B:='03291 ';
    Memo1.Lines.Add(A+Cad+Fecha+Cad1+Cad2+B);


   { Dmodulo.ASISTENCIA_COBRAR.SQL.Clear ;
    Dmodulo.ASISTENCIA_COBRAR.SQL.Add('select * from ASISTENCIA_COBRAR ');
    DMODULO.ASISTENCIA_COBRAR.Open; }
    Dmodulo.ASISTENCIA_COBRAR.First;
       while not Dmodulo.ASISTENCIA_COBRAR.Eof do
             begin

                 if DMODULO.ASISTENCIA_COBRAR.FieldByName('NumeroCuenta').AsString>'' then

                 begin
                     

                         Cuenta:=        DMODULO.ASISTENCIA_COBRAR.FieldByName('Cuenta').AsString;
                         NumeroCuenta:=  DMODULO.ASISTENCIA_COBRAR.FieldByName('NumeroCuenta').AsString;
                         C:='0000';
                         Monto:=         DMODULO.ASISTENCIA_COBRAR.FieldByName('Monto').AsString;
                         Cuenta2:=       DMODULO.ASISTENCIA_COBRAR.FieldByName('CuentaII').AsString;
                         Nombre:=        DMODULO.ASISTENCIA_COBRAR.FieldByName('Nombre').AsString;
                         E:=StringOfChar(' ',26);
                         F:='00';
                         Cedula:=        DMODULO.ASISTENCIA_COBRAR.FieldByName('Cedula').AsString;
                         G:='003291  ';
                                                                                   //+Cedula+G

                         Memo1.Lines.Add(Cuenta+NumeroCuenta+C+Monto+C+Cuenta2+Nombre+E+F+Cedula+G);

                         

                 end
                 else
                 begin
                     Dmodulo.En_Espera.Close;
                     Dmodulo.En_Espera.SelectSQL.Text:=Dmodulo.En_Espera.InsertSQL.Text;

                    
                    

                     Dmodulo.En_Espera.ParamByName('CEDULA').AsString:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Cedula').As  String;
                     Dmodulo.En_Espera.ParamByName('TIPO_DOCUMENTO').AsString:=DMODULO.ASISTENCIA_COBRAR.FieldByName('TIP  O_DOCUMENTO').AsString;
                     Dmodulo.En_Espera.ParamByName('NOMBRE').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Nombre').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('APELLIDO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('APELLIDO').A  sString;
                     Dmodulo.En_Espera.ParamByName('TLF_FIJO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('TLF_FIJO').A  sString;
                     Dmodulo.En_Espera.ParamByName('TLF_CELULAR').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('TLF_CELUL  AR').AsString;
                     Dmodulo.En_Espera.ParamByName('CORREO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('CORREO').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('MUNICIPIO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('MUNICIPIO')  .AsString;
                     Dmodulo.En_Espera.ParamByName('PARROQUIA').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('PARROQUIA')  .AsString;
                     Dmodulo.En_Espera.ParamByName('DIAS_TRABAJADO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('DIAS_T  RABAJADO').AsString;

                     Dmodulo.En_Espera.ParamByName('Monto').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Monto').AsStrin  g;

                     Dmodulo.En_Espera.ParamByName('Semana').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Semana').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('Cuenta').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Cuenta').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('CuentaII').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('CuentaII').A  sString;
                     Dmodulo.En_Espera.ParamByName('NumeroCuenta').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('NumeroCu  enta').AsString;

                     Dmodulo.En_Espera.ExecSQL;
                     Dmodulo.ibt.Commit;
                    
                     SHOWMESSAGE('A sido Insertado');
                     

                 end;
                 Dmodulo.ASISTENCIA_COBRAR.Next;
             end; 
end;

maxzama 16-01-2015 17:57:03

Hola gracias por la ayuda.

me genera el mismo error(Que mi codigo, no al que te mostre si no otro), al correr tu codigo.

// me pasa lo siguiente, al precionar el boton, el me agrega en el memo en que tiene numero de cuenta, pero al encontrar el que no tiene numero de cuenta me lo guarda. - El problema es que no sigue el ciclo despues de guardar. Para que siga agregando en el memo a los demas que si tienen numero de cuenta y seguir guardando los que no...

ERROR del sistema: Asistencia_Cobrar: Cannot perform this operation on a closed dataset.

//es como si se limpiara la consulta o el llamado que se le iso dataset anteriormente. (creo, no estoy seguro).

Casimiro Notevi 16-01-2015 18:39:06

Cita:

Empezado por maxzama (Mensaje 487739)
me genera el mismo error(Que mi codigo, no al que te mostre si no otro), al correr tu codigo.

Por favor, intenta escribir con menos faltas de ortografía porque cuesta trabajo entenderte.
¿Quiéres decir que que el código que has puesto no es el que estás usando?

Cita:

Empezado por maxzama
ERROR del sistema: Asistencia_Cobrar: Cannot perform this operation on a closed dataset.

Haber empezado por ahí, eso es muy diferente.

maxzama 16-01-2015 18:48:58

Gracias, por la correcion.(Hacerca de como debo comunicarme)...
//____________________________

No lo que quiero decir, que el codigo anterior al que estoy utilizando.

me daba este error.

ERROR del sistema: Asistencia_Cobrar: Cannot perform this operation on a closed dataset.

Me pasa lo mismo a colocar el codigo que modificaste.

ERROR del sistema: Asistencia_Cobrar: Cannot perform this operation on a closed dataset.

Casimiro Notevi 16-01-2015 18:52:20

Síguelo con el depurador paso a paso y mira en qué línea da el error, porque así es difícil, tienes varios sitios donde puede ocurrir.

maxzama 16-01-2015 19:11:34

El agrega a los que tienen numero de cuenta, vuelve hacer la pregunta

Código Delphi [-]
if DMODULO.ASISTENCIA_COBRAR.FieldByName('NumeroCuenta').AsString>'' then

Encuentra el que no tiene numero de cuenta, y lo guarda.

Entonces pasa lo siguiente:

Me muestra el error despues de guardar.

Y muestra el error aqui:

Código Delphi [-]
Dmodulo.ASISTENCIA_COBRAR.Next;

//Asi que me imagino, que esta en el codigo donde guardo los datos.

Casimiro Notevi 16-01-2015 19:22:31

Código Delphi [-]
Dmodulo.En_Espera.ExecSQL;
Dmodulo.ibt.Commit;
SHOWMESSAGE('A sido Insertado');

¿Qué es ibt y qué hace ahí?

Por cierto, has olvidado la 'H' a la frase: "Ha sido insertado"

maxzama 16-01-2015 19:26:32

Ya encontre el error:
1)Dmodulo.En_Espera.Close; // Es codigo lo tenia en guardar y me borrava los datos.
2)Dmodulo.ibt.Commit; // lo tenia dentro del ciclo;

Codigo quedo asi:

Código Delphi [-]
var
I: Integer;
A,B:String;
Fecha:String;
TT,Cad,Cad1,Cad2:String;

Cuenta,Cuenta2,NumeroCuenta:String;
Cedula:String;
Monto:String;
Nombre:String;

C,D,E,F,G:String;

begin
    TT:=memo1.Lines[1];

    A:='HGOBERNACIÓN ESTADO CARABOBO             01020388170000019651';
    Cad:=cad+StringOfChar(' ',2);              // Campo de numero de control de Archivo
    Fecha:=DateToSTR (DateTimePicker1.Date);
    Cad1:='00000';
    Cad2:=cad2+StringOfChar(' ',8);            // Monto total de la nomina
    B:='03291 ';
    Memo1.Lines.Add(A+Cad+Fecha+Cad1+Cad2+B);

    Dmodulo.ASISTENCIA_COBRAR.First;
       while not Dmodulo.ASISTENCIA_COBRAR.Eof do
             begin

                 if DMODULO.ASISTENCIA_COBRAR.FieldByName('NumeroCuenta').AsString>'' then

                 begin


                         Cuenta:=        DMODULO.ASISTENCIA_COBRAR.FieldByName('Cuenta').AsString;
                         NumeroCuenta:=  DMODULO.ASISTENCIA_COBRAR.FieldByName('NumeroCuenta').AsString;
                         C:='0000';
                         Monto:=         DMODULO.ASISTENCIA_COBRAR.FieldByName('Monto').AsString;
                         Cuenta2:=       DMODULO.ASISTENCIA_COBRAR.FieldByName('CuentaII').AsString;
                         Nombre:=        DMODULO.ASISTENCIA_COBRAR.FieldByName('Nombre').AsString;
                         E:=StringOfChar(' ',26);
                         F:='00';
                         Cedula:=        DMODULO.ASISTENCIA_COBRAR.FieldByName('Cedula').AsString;
                         G:='003291  ';
                                                                                   //+Cedula+G

                         Memo1.Lines.Add(Cuenta+NumeroCuenta+C+Monto+C+Cuenta2+Nombre+E+F+Cedula+G);

                 end
                 else
                 begin
                     Dmodulo.En_Espera.SelectSQL.Text:=Dmodulo.En_Espera.InsertSQL.Text;
                     Dmodulo.En_Espera.ParamByName('CEDULA').AsString:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Cedula').As  String;
                     Dmodulo.En_Espera.ParamByName('TIPO_DOCUMENTO').AsString:=DMODULO.ASISTENCIA_COBRAR.FieldByName('TIP  O_DOCUMENTO').AsString;
                     Dmodulo.En_Espera.ParamByName('NOMBRE').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Nombre').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('APELLIDO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('APELLIDO').A  sString;
                     Dmodulo.En_Espera.ParamByName('TLF_FIJO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('TLF_FIJO').A  sString;
                     Dmodulo.En_Espera.ParamByName('TLF_CELULAR').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('TLF_CELUL  AR').AsString;
                     Dmodulo.En_Espera.ParamByName('CORREO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('CORREO').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('MUNICIPIO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('MUNICIPIO')  .AsString;
                     Dmodulo.En_Espera.ParamByName('PARROQUIA').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('PARROQUIA')  .AsString;
                     Dmodulo.En_Espera.ParamByName('DIAS_TRABAJADO').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('DIAS_T  RABAJADO').AsString;
                     Dmodulo.En_Espera.ParamByName('Monto').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Monto').AsStrin  g;
                     Dmodulo.En_Espera.ParamByName('Semana').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Semana').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('Cuenta').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('Cuenta').AsStr  ing;
                     Dmodulo.En_Espera.ParamByName('CuentaII').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('CuentaII').A  sString;
                     Dmodulo.En_Espera.ParamByName('NumeroCuenta').Value:=DMODULO.ASISTENCIA_COBRAR.FieldByName('NumeroCu  enta').AsString;
                     Dmodulo.En_Espera.ExecSQL;
                     Dmodulo.En_Espera.SelectSQL.Text:=('select * from ASSTC_PAGO_ESPERA ');
                     SHOWMESSAGE('A sido Insertado');

                 end;
                 Dmodulo.ASISTENCIA_COBRAR.Next;
           end;
               Dmodulo.ibt.Commit;
              if SaveDialog1.Execute then
             begin
                 Memo1.Lines.SaveToFile(SaveDialog1.FileName);
                 Memo1.SetFocus;
             end;

end;

Gracias por la ayuda.

Casimiro Notevi 16-01-2015 19:32:15

Que te diviertas :rolleyes:


La franja horaria es GMT +2. Ahora son las 21:20:09.

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