![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Sigue sin funcionar correctamente
en el beforePrint del TQuickReport ya lo hice, algo del estilo:
Código:
procedure TForm3.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
subtotal := 0;
ivaAux := 0;
validezAux := 0;
descuentoAux := 0;
incrementoAux := 0;
descuentoTotal := 0;
incrementoTotal := 0;
ivaTotal := 0;
end;
Todas esas variables las tengo definidas en la parte pública del formulario y las calculo en el onPrint de las etiquetas que toca, supongo que esto no tendrá nada que ver. Sigo pillado en una estupidez. Si necesitáis que ponga el fuente completo, os lo paso. Salu2 y gracias |
|
#2
|
||||
|
||||
|
Cita:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
|
#3
|
|||
|
|||
|
voy a probar y te cuento
|
|
#4
|
|||
|
|||
|
buenas de nuevo.
Supongo que será porque estoy colapsado pero no puedo hacerlo en el BeforePrint de la banda a menos que haya ido haciendo lo propio en las bandas anteriores y no lo puedo hacer así porque las bandas anteriores tienen TQRDBText de los que no se obtener el valor. Te pongo el código fuente a ver si se te ocurre qué le está pasando o si tengo que rehacerlo y por qué Código:
unit impresion;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, jpeg, ExtCtrls, DB, DBTables, QuickRpt,
QRCtrls;
type
TForm3 = class(TForm)
PrintDialog1: TPrintDialog;
QUtil: TQuery;
qClientes: TQuery;
QuickRep1: TQuickRep;
qDecoracion: TQuery;
QRBand1: TQRBand;
QRSubDetail1: TQRSubDetail;
QRDBText1: TQRDBText;
QRDireccion1: TQRLabel;
QRNombre: TQRLabel;
QRDireccion2: TQRLabel;
QRImage2: TQRImage;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRLabel7: TQRLabel;
QRGroup1: TQRGroup;
QRLabel1: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRTitle1: TQRLabel;
QRRef: TQRLabel;
QRArticulo: TQRLabel;
QRPrecio1: TQRLabel;
QRLabel2: TQRLabel;
qAccesorios: TQuery;
QRGroup2: TQRGroup;
QRLabel8: TQRLabel;
QRSubDetail2: TQRSubDetail;
QRDBText5: TQRDBText;
QRDBText6: TQRDBText;
QRLabel9: TQRLabel;
QRLabel10: TQRLabel;
QRLabel11: TQRLabel;
QRLabel12: TQRLabel;
QRDBText7: TQRDBText;
QRBand3: TQRBand;
QRLabel23: TQRLabel;
QRLabel28: TQRLabel;
QRVal: TQRLabel;
QRLabel29: TQRLabel;
QRFecha: TQRLabel;
QRShape3: TQRShape;
QRShape4: TQRShape;
QRShape5: TQRShape;
QRLabel30: TQRLabel;
QRLabel31: TQRLabel;
QRLabel32: TQRLabel;
QRLabel34: TQRLabel;
QRLabel35: TQRLabel;
QRNumero: TQRLabel;
QRBand2: TQRBand;
QRShape1: TQRShape;
QRSub: TQRLabel;
QRLabel13: TQRLabel;
QRLabel14: TQRLabel;
QRPrecioMonjate: TQRLabel;
QRLabel16: TQRLabel;
QRMontaje: TQRLabel;
QRDesp: TQRLabel;
QRLabel17: TQRLabel;
QRLabel15: TQRLabel;
QRPrecioD: TQRLabel;
QRLabel19: TQRLabel;
QRLabelIva: TQRLabel;
QRLabel21: TQRLabel;
QRIncrem: TQRLabel;
QRLabel22: TQRLabel;
QRLabel18: TQRLabel;
QRInc: TQRLabel;
QRLabel24: TQRLabel;
Descuento: TQRLabel;
QRDesc: TQRLabel;
QRLabel25: TQRLabel;
QRDescuento: TQRLabel;
QRLabel27: TQRLabel;
QRShape2: TQRShape;
QRLabel20: TQRLabel;
QRLabel26: TQRLabel;
QRShape6: TQRShape;
QRSubto: TQRLabel;
QRIva: TQRLabel;
QRTot: TQRLabel;
procedure FormShow(Sender: TObject);
procedure rellenarDatosCliente();
procedure rellenarDatosPresupuesto(refArticulo, desArticulo, tipoAcc,
decoracion, trabajos, articulo, desplazamiento: string;
precio1, precio2, precio3, precio4, precio5: double; iva: integer; descuento,
incremento: double; validez: integer; fecha: string; numPres: integer);
procedure QRDBText7Print(sender: TObject; var Value: String);
procedure QRDBText4Print(sender: TObject; var Value: String);
procedure QRDBText6Print(sender: TObject; var Value: String);
procedure QRPrecio1Print(sender: TObject; var Value: String);
procedure QRPrecioMonjatePrint(sender: TObject; var Value: String);
procedure QRPrecioDPrint(sender: TObject; var Value: String);
procedure QRIncremPrint(sender: TObject; var Value: String);
procedure QRDescuentoPrint(sender: TObject; var Value: String);
procedure QRSubtoPrint(sender: TObject; var Value: String);
procedure QRIvaPrint(sender: TObject; var Value: String);
procedure QRTotPrint(sender: TObject; var Value: String);
procedure QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
subtotal: double;
ivaAux, validezAux: integer;
descuentoAux, incrementoAux: double;
descuentoTotal, incrementoTotal, ivaTotal: double;
end;
var
Form3: TForm3;
subtotal: double;
ivaAux, validezAux: integer;
descuentoAux, incrementoAux: double;
descuentoTotal, incrementoTotal, ivaTotal: double;
implementation
{$R *.dfm}
procedure TForm3.FormShow(Sender: TObject);
begin
subtotal := 0;
ivaAux := 0;
validezAux := 0;
descuentoAux := 0;
incrementoAux := 0;
descuentoTotal := 0;
incrementoTotal := 0;
ivaTotal := 0;
QuickRep1.Refresh;
rellenarDatosCliente();
end;
procedure TForm3.rellenarDatosCliente();
var
nombre, apellido1, apellido2, direccion, codpostal, provincia, localidad,
telefono1, telefono2, observaciones: string;
begin
nombre := qClientes.fieldbyname('nombre').asstring;
apellido1 := qClientes.fieldbyname('apellido1').asstring;
apellido2 := qClientes.fieldbyname('apellido2').asstring;
direccion := qClientes.fieldbyname('direccion').asstring;
codpostal := qClientes.fieldbyname('cp').asstring;
provincia := qClientes.fieldbyname('provincia').asstring;
localidad := qClientes.fieldbyname('localidad').asstring;
telefono1 := qClientes.fieldbyname('telefono1').asstring;
telefono2 := qClientes.fieldbyname('telefono2').asstring;
observaciones := qClientes.fieldbyname('observaciones').asstring;
QRNombre.Caption := nombre+' '+apellido1+' '+apellido2;
QRDireccion1.Caption := direccion;
QRDireccion2.Caption := codpostal+', '+localidad+' ('+provincia+')';
end;
procedure TForm3.rellenarDatosPresupuesto(refArticulo, desArticulo, tipoAcc,
decoracion, trabajos, articulo, desplazamiento: string;
precio1, precio2, precio3, precio4, precio5: double; iva: integer; descuento,
incremento: double; validez: integer; fecha: string; numPres: integer);
var
iva2, total : double;
temp:Real;
begin
QRRef.Caption := refArticulo;
QRArticulo.Caption := desArticulo;
QRPrecio1.Caption := Format('%0.2f',[precio1]);
QRMontaje.Caption := trabajos;
QRPrecioMonjate.Caption := Format('%0.2f',[precio4]);
QRDesp.Caption := desplazamiento;
QRPrecioD.Caption := Format('%0.2f',[precio5]);
QRLabelIva.Caption := 'IVA ('+intToStr(iva)+' %)';
ivaAux := iva;
descuentoAux := descuento;
incrementoAux := incremento;
validezAux := validez;
QRInc.Caption := floatToStr(incremento);
QRDesc.Caption := floatToStr(descuento);
QRVal.Caption := intToStr(validez);
QRFecha.Caption := fecha;
QRNumero.Caption := intToStr(numPres);
end;
procedure TForm3.QRDBText7Print(sender: TObject; var Value: String);
begin
if (QAccesorios.FieldByName('accesorio').AsString = 'rbAcc1') then
begin
Value := 'Solera Suelo';
end;
if (QAccesorios.FieldByName('accesorio').AsString = 'rbAcc2') then
begin
Value := 'Rodapies';
end;
if (QAccesorios.FieldByName('accesorio').AsString = 'rbAcc3') then
begin
Value := 'Zócalo';
end;
if (QAccesorios.FieldByName('accesorio').AsString = 'rbAcc4') then
begin
Value := 'Solera';
end;
if (QAccesorios.FieldByName('accesorio').AsString = 'rbAcc5') then
begin
Value := 'Supl. Macizos';
end;
if (QAccesorios.FieldByName('accesorio').AsString = 'rbAcc6') then
begin
Value := 'Cajón';
end;
if (QAccesorios.FieldByName('accesorio').AsString = 'rbAcc7') then
begin
Value := 'Tapas Cajón';
end;
if (QAccesorios.FieldByName('accesorio').AsString = 'rbAcc8') then
begin
Value := 'Tabicas';
end;
if (QAccesorios.FieldByName('accesorio').AsString = 'rbAcc9') then
begin
Value := 'Lápidas';
end;
end;
procedure TForm3.QRDBText4Print(sender: TObject; var Value: String);
begin
subtotal := subtotal + strToFloat(Value);
Value := Format('%0.2f',[strToFloat(Value)]);
end;
procedure TForm3.QRDBText6Print(sender: TObject; var Value: String);
begin
subtotal := subtotal + strToFloat(Value);
Value := Format('%0.2f',[strToFloat(Value)]);
end;
procedure TForm3.QRPrecio1Print(sender: TObject; var Value: String);
begin
subtotal := subtotal + strToFloat(Value);
Value := Format('%0.2f',[strToFloat(Value)]);
end;
procedure TForm3.QRPrecioMonjatePrint(sender: TObject; var Value: String);
begin
subtotal := subtotal + strToFloat(Value);
Value := Format('%0.2f',[strToFloat(Value)]);
end;
procedure TForm3.QRPrecioDPrint(sender: TObject; var Value: String);
begin
subtotal := subtotal + strToFloat(Value);
end;
procedure TForm3.QRIncremPrint(sender: TObject; var Value: String);
var
incremento2 : double;
begin
incremento2 := (subtotal * incrementoAux) / 100;
incrementoTotal := incremento2;
Value := Format('%0.2f',[incremento2]);
end;
procedure TForm3.QRDescuentoPrint(sender: TObject; var Value: String);
var
descuento2 : double;
begin
descuento2 := (subtotal * descuentoAux) / 100;
descuentoTotal := descuento2;
Value := Format('%0.2f',[descuento2]);
end;
procedure TForm3.QRSubtoPrint(sender: TObject; var Value: String);
begin
Value := Format('%0.2f',[subtotal]);
end;
procedure TForm3.QRIvaPrint(sender: TObject; var Value: String);
var
iva2 : double;
begin
iva2 := ((subtotal + incrementoTotal - descuentoTotal) * ivaAux) / 100;
ivaTotal := iva2;
Value := Format('%0.2f',[iva2]);
end;
procedure TForm3.QRTotPrint(sender: TObject; var Value: String);
var
totalAux: double;
begin
totalAux := subtotal + incrementoTotal - descuentoTotal + ivaTotal;
Value := Format('%0.2f',[totalAux]);
end;
procedure TForm3.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
{
subtotal := 0;
ivaAux := 0;
validezAux := 0;
descuentoAux := 0;
incrementoAux := 0;
descuentoTotal := 0;
incrementoTotal := 0;
ivaTotal := 0;
}
end;
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form3.Destroy;
end;
end.
|
|
#5
|
|||
|
|||
|
Además, si te fijas, el subtotal se va calculando a medida que se va haciendo el onPrint de todos los valores que sumados darán el subtotal y además, así de paso hago el formateo del valor asignándoselo al Value del QRDBText
Estoy pilladísimo y seguro que es una estupidez. |
|
#6
|
|||
|
|||
|
Solucionado !!!!
Ya lo he solucionado, o eso creo. (la prueba de impresión funcionó correctamente, ahora haré más)
el subtotal lo calculo en una de las bandas subdetail de la siguiente forma: Código:
procedure TForm3.QRSubDetail2BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
subtotal := subtotal + (QAccesorios.fieldbyname('precio').asFloat);
end;
Vamos, que me estaba haciendo un lío de tres pares de narices en una tontería. Gracias por tu tiempo y perdona mi "estupidez" Salu2 |
|
#7
|
||||
|
||||
|
Hombre¡¡¡, que bueno que se ha encontrado el problema y que además lo se ha sabido solucionar.
![]()
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| imprimir pie de página, quickreport | manolop | Impresión | 2 | 07-05-2013 19:43:02 |
| Imprimir un Query en QuickReport | luxus | Impresión | 6 | 14-10-2010 21:56:19 |
| Imprimir en el Quickreport los campos del checkbox | David | Impresión | 2 | 17-06-2006 10:41:03 |
| Problemas al imprimir con QuickReport | DarkSide | Impresión | 9 | 25-09-2003 21:24:34 |
| Problema con el Quickreport al imprimir | ALMERA | Impresión | 0 | 25-06-2003 13:29:59 |
|