Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Distinto numeros de Factura (https://www.clubdelphi.com/foros/showthread.php?t=58600)

hugo_Junior 25-07-2008 07:16:28

Distinto numeros de Factura
 
En un Form de Facturación tengo un Nº de comprobante para Factura A, otra B, C y Presupuesto.(son 4 campos distintos)

Código Delphi [-]
procedure tfac.Numero_A;{incremento a el Nº de la Factura 1 mas}
begin
na:=0;
datos.Historial_Factura.Last;
inc(na);
na:=na+datos.Historial_FacturaNumero_a.Value  ;
end;
{se repite lo mismo para los demás comprobantes}
{NA=fac A}
{NB=fac B}
{NC=fac C}
{NP=presupuesto}

Tengo un combo que guarda las letras(A,B,C) de los comprobantes, según oprima se van a visualizar los correspondientes DbEdit a cada nº.
Código Delphi [-]
procedure TFac.ImprimirClick(Sender: TObject);{mando a Imprimir}
begin
if
 MessageDlg('¿Comfirma los datos del Comprobante?',
    MTWarning, mbOKCancel,0) <> mrOK
  then
    Exit;
{si el dbedit que contiene al Nº de Comp. está visible al imprimir, que le sume 1 a ese Nº nada mas}
if dbedit13.Visible=true then   numero_presupuesto;
  if dbedit14.Visible=true then   numero_a;
    if dbedit15.Visible=true then   numero_b;
      if dbedit16.Visible=true then   numero_c;
with datos do begin
 historial_factura.Insert;
    Historial_FacturaVendedor.Value := dbedit10.Text ;
    Historial_FacturaTipodeComprobante.Value := Tipo_Comprobantesdescripcion.Value;
    Historial_FacturaLetraComprobante.Value := Letra_CompLetra.Value;
    Historial_FacturaFechadeEmision.Value := Trunc(Now);
    Historial_FacturaCodigo_de_Cliente.Value:= ClientesCodigodeCliente.Value;
    Historial_FacturaNombre_Apellido_Cliente.value:= ClientesNombre_Apellido.Value;
    Historial_FacturaForma_de_Pago.Value:= cond_ventaDescripcion.Value;
    Historial_FacturaSubtotal.Value:= FFac_SubTotal;
    Historial_Facturatotal.Value:= FFac_Total;
    Historial_facturaNumero_presupuesto.Value:=NP;
    historial_FacturaNumero_A.Value:=NA;
    Historial_FacturaNumero_B.Value:=NB;
    Historial_FacturaNumero_c.Value:=NC;
     datos.Historial_Factura.Post;


  ///////////////////////////////////////////////////////////////////////////////////////
  with datos.factura do begin
      First;
   while not EOF do begin  {van el detalle para documentos emitidos}
        detalle_factura.Append;
        detalle_factura.FieldByName('Codigo').Value:=FieldByName('Codigo').Value;
detalle_factura.FieldByName('Descripcion').Value:=FieldByName('Nombre').Value;
detalle_factura.FieldByName('Precio Unitario').Value:= FieldByName('Costo').Value;
detalle_factura.FieldByName('Cantidad').Value:=FieldByName('Cantidad').Value;
detalle_factura.FieldByName('Importe').Value:= FieldByName('Importe').Value;
        Next;
        end;
{el historial con el detalle arman un Maestro-Detalle}
Bien, el problema es que imprimo un par de Facturas y después los valores de
los Dbedit se ponen en 0;
Les doy las gracias por anticipado por su tiempo y espero que se interprete.

duilioisola 25-07-2008 11:00:10

Opción 1:
Puede ser que el Dataset esté cerrado y por eso la función numero_a devuelva 0.

Código Delphi [-]procedure tfac.Numero_A;{incremento a el Nº de la Factura 1 mas} begin na:=0; datos.Historial_Factura.Last; inc(na); na:=na+datos.Historial_FacturaNumero_a.Value ; end;


Opción 2:
Luego de hacer el Post, quizás deberías hacer un Refresh o un Close;Open; de la tabla Historial_Factura, para refrescar los datos y que la función Numero_A funcione correctamente.
Código Delphi [-]
with datos do begin
 historial_factura.Insert;
    Historial_FacturaVendedor.Value := dbedit10.Text ;
    Historial_FacturaTipodeComprobante.Value := Tipo_Comprobantesdescripcion.Value;
    Historial_FacturaLetraComprobante.Value := Letra_CompLetra.Value;
    Historial_FacturaFechadeEmision.Value := Trunc(Now);
    Historial_FacturaCodigo_de_Cliente.Value:= ClientesCodigodeCliente.Value;
    Historial_FacturaNombre_Apellido_Cliente.value:= ClientesNombre_Apellido.Value;
    Historial_FacturaForma_de_Pago.Value:= cond_ventaDescripcion.Value;
    Historial_FacturaSubtotal.Value:= FFac_SubTotal;
    Historial_Facturatotal.Value:= FFac_Total;
    Historial_facturaNumero_presupuesto.Value:=NP;
    historial_FacturaNumero_A.Value:=NA;
    Historial_FacturaNumero_B.Value:=NB;
    Historial_FacturaNumero_c.Value:=NC;
    datos.Historial_Factura.Post;
    datos.Historial_Factura.Close;
    datos.Historial_Factura.Open;

Caro 25-07-2008 12:06:09

Hola hugo_junion, añadiendo a lo que dijo duliosiloa, no estas haciendo un post por cada registro del detalle.

Código Delphi [-]
while not EOF do begin  {van el detalle para documentos emitidos}
  detalle_factura.Append;
  detalle_factura.FieldByName('Codigo').Value:=FieldByName('Codigo').Value;
  detalle_factura.FieldByName('Descripcion').Value:=FieldByName('Nombre').Value;
  detalle_factura.FieldByName('Precio Unitario').Value:= FieldByName('Costo').Value;
  detalle_factura.FieldByName('Cantidad').Value:=FieldByName('Cantidad').Value;
  detalle_factura.FieldByName('Importe').Value:= FieldByName('Importe').Value;
  detalle_factura.Post;  
  Next;
end;

Saluditos

hugo_Junior 26-07-2008 18:33:58

Ya solucionés los del Post del detalle, gracias. Pero sigo teniendo el mismo problema cuando abro el formulario me muestra los últimos nº, pero cuando imprimo un factura, le suma a la letra que estoy trabajando y al resto las pone en 0.

hugo_Junior 28-07-2008 14:42:42

solucionado
 
Ya está solucionado, gracias a todos.:)


La franja horaria es GMT +2. Ahora son las 22:49: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