[/SALUDOS]
Una vez más solicito vuestra valiosa colaboración.
Estoy trabajando con tabas DBF, las cuales son manipuladas con un software CLIPPER hecho hace 12 o 14 años que yo no desarrollé.
Desde un software que hice en DELPHI 7 pude generar algunos reportes y consultas que me han sido de gran utilidad, ahora pretendo generar facturas.
el viejo software cliper no tiene módulo de facturacion para pacientes particulares, solo factura a empresas.
En una tabla llamada LbcExamen.Dbf Guardan los datos del paciente:
Identificación, nombre, telefono, Numero_Examen.
En Otra Tabla llamada LbcComen Estan los detalles:
Codigo del examen, Valor Examen, Descuento, Resultado Etcétera.
Para conectarme a las tablas utilizo ADOConnection a través de ODBC
TADOQuey para las consultas.
TADOTabe para las tablas.
TADOCommand para insertar registros.
Este código lo coloco en el Evento OnClic de del boton "Nueva Factura"
Código Delphi
[-]
procedure TFrmFacturacion.BtnGenararClick(Sender: TObject);
Var NumRec:String[8];
sSql:String;
begin
QrDetalleFactura(); If Dm.QrFacturacionNumFact.Value <> '' Then Begin
MessageDlg('Factura ya fue generada ', mtError, [mbYes], 0);
Exit;
End;
sSql := 'INSERT INTO LbcMafcc (CodFac, CodEmp,CodRec,FecIni,FecFin,Total,Abono,Contabil)'+
' VALUES (:P0,:P1,:P2,:P3,:P4,:P5,:P6,:P7)' ;
If Not (Dm.TableLbcMafcc.Locate('CodRec', Dm.QrFacturacionexamen.Value,[loCaseInsensitive, loPartialKey])) Then Begin
NumRec := Format('%.8d',[(Dm.TableLbcMafcc.RecordCount + 1)]);
With Dm.CmdFacturacion do Begin
Close;
CommandText := sSql;
Parameters[0].Value := Numrec;
Parameters[1].Value := Dm.QrFacturacionident.Value;;
Parameters[2].Value := Dm.QrFacturacionexamen.Value;
Parameters[3].Value := Dm.QrFacturacionfecha.Value;
Parameters[4].Value := Dm.QrFacturacionfecha.Value;
Parameters[5].Value := Total;
Parameters[6].Value := 0;
Parameters[7].Value := False;
Execute;
End;
End;
End;
En un formuario muestro los pacientes a los que no se la generado factura en un DbGrid, ademas hay un boton "Nueva Factura" y otro "Imprimir Factura"
El problema es que cuando le hago clic al boton "Nueva Factura", se genera la factura pero el formulario se cierra y para reflejar el resultado debo salir de mi aplicación y volver a entrar y asi solo puedo imprimir la factura.
Como comprenderan es engorroso tener que estar entrando y saliendo del programa para poder imprimir la factuta.
Este es el procedureQrDetalleFactura();
Código Delphi
[-]
Procedure TFrmFacturacion.QrDetalleFactura();
Var Ssql:String;
Begin
Ssql:= 'SELECT Nuexa, Examen, Descto, Valor'+
' FROM LbcComen'+
' WHERE Nuexa = :Examen';
With Dm.QrLbcComenFac Do Begin
Close;
SQL.Text := sSql;
Parameters[0].Value := Dm.QrFacturacionexamen.Value;
Prepared;
Open;
First;
SubTotal:= 0;
Dcto := 0;
Total := 0;
While Not Eof Do Begin
SubTotal := SubTotal + Dm.QrLbcComenFacvalor.Value;
Dcto := Dcto + (Dm.QrLbcComenFacvalor.Value* Dm.QrLbcComenFacdescto.Value)/100;
Next;
End;
First;
Total := SubTotal - Dcto;
FrmReportFactura.QrLabelSubtotal.Caption := Format('%m',[SubTotal]);
FrmReportFactura.QRLabelDescuento.Caption := Format('%m',[Dcto]);
FrmReportFactura.QrLabelTotal.Caption := Format('%m',[Total]);
End;
End;