Ver Mensaje Individual
  #14  
Antiguo 23-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Reputación: 19
Petolansa Va por buen camino
Gracias por los consejos, pero al crear el reporte le pase los valres que necesito los de los dos parametros y si me sale, 11 y A que son el numero de factura y el tipo.

Lepe probe poniendo el previewmodal; en vez de .preview y nada!

aca pongo el codigo del boton en el que guardo y quiero imprimir la factura, disculpen si no esta bien programado, es que es mi primer sistemita de prueba.
Despues lo ordenare un poco, Lo que me interesa es que me guarda las en las tablas factura y facturadetalle...tambien me descuenta el stock.
Acepto criticas sobre tabulacion y en caso de que muy desordenado.

Código Delphi [-]
procedure TFrmfdepago.BitBtn1Click(Sender: TObject);
begin
If messagedlg('Los datos de la Factura son correctos?',MTwarning,mbOKCancel,0)<>
  mrok
then
exit
else //Aca gguardo el nro de factura y le incremento uno segun sea el tipo
    case frmtipofac.RadioGroup1.ItemIndex of
      0:begin
      frmtipofac.Query1.Close;
      frmtipofac.Query1.SQL.Clear;
      frmprincipal.Query1.SQL.Add('update contfaca');
      frmprincipal.Query1.SQL.Add('set numfaca='+inttostr(numfaca));
      frmprincipal.Query1.ExecSQL;
    end;
    1:begin
      frmtipofac.Query2.Close;
      frmtipofac.Query2.SQL.Clear;
      frmtipofac.Query2.SQL.Add('update contfacb');
      frmtipofac.Query2.SQL.Add('set numfacb='+inttostr(numfacb));
      frmtipofac.Query2.ExecSQL;
    end;
    2:begin
      frmtipofac.Query2.Close;
      frmtipofac.Query2.SQL.Clear;
      frmtipofac.Query2.SQL.Add('update contfacb');
      frmtipofac.Query2.SQL.Add('set numfacb='+inttostr(numfacb));
      frmtipofac.Query2.ExecSQL;
      end;
    3:begin
      frmtipofac.Query2.Close;
      frmtipofac.Query2.SQL.Clear;
      frmtipofac.Query2.SQL.Add('update contfacb');
      frmtipofac.Query2.SQL.Add('set numfacb='+inttostr(numfacb));
      frmtipofac.Query2.ExecSQL;
    end;
    4:begin
      frmtipofac.Query2.Close;
      frmtipofac.Query2.SQL.Clear;
      frmtipofac.Query2.SQL.Add('update contfacb');
      frmtipofac.Query2.SQL.Add('set numfacb='+inttostr(numfacb));
      frmtipofac.Query2.ExecSQL;
    end;
    end;

//Guarda los datos en la tabla factura
with dmzingueria do begin
      factura.Insert;
      facturanumfactura.Value:=strtofloat(frmfactura.Label12.Caption);
      facturaclicod.Value:=strtofloat(frmfactura.DBText1.Caption);
      facturafecha.Value:=strtodate(fecha);
      facturadescuento.Value:=strtofloat(frmfactura.eddescmonto.Text);
      facturatipofac.Value:=frmfactura.Label9.Caption;
        //Pregunto la forma de pago
        if radiobutton1.Checked then begin
          facturactacte.Value:=strtofloat(currencyedit2.Text);
          facturapagado.Value:=false;
          facturaimportetotal.Value:=strtofloat(currencyedit2.Text)
        end else if radiobutton2.Checked then begin
          facturaefectivo.Value:=strtofloat(currencyedit2.Text);
          facturapagado.Value:=true;
          facturatartipo.Value:='Ninguna';
          facturaimportetotal.Value:=strtofloat(currencyedit2.Text)
        end else if radiobutton3.Checked then
          facturatarjeta.Value:=strtofloat(currencyedit2.Text);
          facturatartipo.Value:=edit3.Text;
          facturatarcupon.Value:=edit1.Text;
          facturaobservacion.Value:=edit2.Text;
          facturaimportetotal.Value:=strtofloat(currencyedit2.Text);
          facturapagado.Value:=true
         end;
      dmzingueria.Factura.Post;


//Guardo los datos en factura detalle
      dmzingueria.facdetalle.Insert;
      frmfactura.MDtemporal.Insert;
      frmfactura.MDtemporal.First;
      while not frmfactura.MDtemporal.Eof do
      begin
      dmzingueria.facdetalle.Append;
      dmzingueria.facdetalleNumfactura.Value:=strtofloat(frmfactura.Label12.Caption);
      dmzingueria.facdetalleTipofac.Value:= frmfactura.Label9.Caption;
      dmzingueria.facdetalleCantidad.Value:=frmfactura.MDtemporalCantidad.Value;
      dmzingueria.facdetalleCodipro.Value:=frmfactura.MDtemporalCodigo.Value;
      dmzingueria.facdetalleConcepto.Value:=frmfactura.MDtemporalDescripcion.Value;
      dmzingueria.facdetallePrecio.Value:=frmfactura.MDtemporalPreciou.Value;
      //dmzingueria.facdetallePrecioneto:=frmfactura.MDtemporal.fieldbyname('total').ascurrency;
      dmzingueria.facdetalle.Post;
      frmfactura.MDtemporal.Next;
      end;
//Actualizo el stock
  frmfactura.Query1.Close;
  frmfactura.Query1.SQL.Text:='Update stock set prostkact=prostkact-rcantidad where procod=rprocod';
  frmfactura.Query1.Prepare;
  frmfactura.MDtemporal.First;
  frmfactura.MDtemporal.DisableControls;
  try
    while not frmfactura.MDtemporal.Eof do
      begin
      frmfactura.Query1.ParamByName('prcantidad').AsFloat:=frmfactura.MDtemporal.fieldbyname('Cantidad').A  sFloat;
      frmfactura.Query1.ParamByName('prprocod').AsFloat:=frmfactura.MDtemporal.fieldbyname('codigo').AsFlo  at;
      frmfactura.Query1.ExecSQL;
      frmfactura.MDtemporal.Next;
    end;
      finally
      frmfactura.MDtemporal.First;
      frmfactura.MDtemporal.EnableControls;
       end;

//Aca despues de todo lo mando a imprimir
  try
    if query2.Active then close;
        quickrfactura:=tquickrfactura.Create(self);
       Query2.Params.ParamByName('Nrofact').Value := numfa;
        Query2.Params.ParamByName('Tipofact').Value := tipofa;
        quickrfactura.QRLabel1.Caption:=floattostr(numfa);//ACA LE PASO ESTAS VARIABLES Y ME LAS MUESTRA EN EL REPORT
        quickrfactura.QRLabel2.Caption:=(tipofa);         //COMPRUEBO QUE NO ESTAN VACIAS Y ME MUESTRA LA ULTIMA FACTURA QUE POSTIE ARRIBA
        Query2.Open;
        quickrfactura.PreviewModal;
    finally
        quickrfactura.Free;
    end;

Desde ya muchas gracias por su atencion.

Última edición por Petolansa fecha: 23-11-2007 a las 20:41:15.
Responder Con Cita