PDA

Ver la Versión Completa : Distinto numeros de Factura


hugo_Junior
25-07-2008, 07:16:28
En un Form de Facturación tengo un Nº de comprobante para Factura A, otra B, C y Presupuesto.(son 4 campos distintos)


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º.

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 [-] (http://www.clubdelphi.com/foros/#)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.

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.


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
Ya está solucionado, gracias a todos.:)