Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Impresion en QuickReport de Varias Columnas (https://www.clubdelphi.com/foros/showthread.php?t=54202)

Alexis De la Cr 11-03-2008 18:36:39

Impresion en QuickReport de Varias Columnas
 
Estimados colegas:

Intentare Explicarles lo que ando tratando de hacer. Resulta que debo imprimir un reporte de ventas, cuyos datos los obtengo a traves de una consulta (Query). Los datos que debe contener son el folio de la Venta, El total y la fecha. Son datos muy cortos. Haciendo el reporte de la forma basica, pues no hay ningun problema, es decir un registro por linea impresa, pero como son datos muy cortos, pues se desperdicia mucho espacio y por lo tanto son muchas hojas. Entoces lo que necesito es que los 3 campos formen 1 columna de impresion, de tal forma que en el ancho de la hoja puedan imprimirse 2 o 3 columnas.

intente hacer el llenado de dichas columnas de impresion horizontalmente a traves del siguiente codigo

Código Delphi [-]

procedure TFormQRVentas.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  PrintedLines:=0;
  totlineas:=ceil(myquery1.RecordCount/2);// Dependiendo si son 2 columnas
end;


procedure TFormQRVentas.QuickRep1NeedData(Sender: TObject;
  var MoreData: Boolean);
begin
  MoreData:= ( PrintedLines< totlineas); //totlineas es la cantidad de lineas a imprimir  
  if MoreData then
     begin
       QRlabel2.Caption:=Myquery1.Fields.Fields[0].AsString;
       QRLabel3.Caption:=Myquery1.Fields.Fields[2].AsString;
       QRLabel4.Caption:=Myquery1.Fields.Fields[1].AsString;
       Myquery1.Next;
       Q/Rlabel8.Caption:=Myquery1.Fields.Fields[0].AsString;
       QRLabel9.Caption:=Myquery1.Fields.Fields[2].AsString;
       QRLabel10.Caption:=Myquery1.Fields.Fields[1].AsString;
       Myquery1.Next;
     end;

  Inc(PrintedLines);

end;

Y aunque efectivamente hace el llenado de los QRLabels, no los hace con los datos que le corresponden, como si los llenara aleatoriamente.

Alguien ha hecho algo parecido a esto? es la Forma correcta de hacer este tipo de Formato?

De antemano muchas Gracias

Alexis De la Cruz

luisgutierrezb 11-03-2008 19:29:26

creo que no es necesaria tanta codificacion, solo ponle la propiedad columns del quickreport a 2 y lo manejas como un reporte normal

BlueSteel 11-03-2008 19:33:01

Hola Alexis De la Cr

Hace un tiempo trabajé con un informe en donde tenia que imprimir un Nº de Ficha y el Valor que cancelaba... por lo cual opte por hacerlo en Columnas en QReport

Si bien el gestionar las columnas no fue mayor problema, si lo fue el poder dejar los datos como a mi me interesaban... ya que el QReport de imprime una columna en su totalidad, si sobran registros pasa a la sgte columna.. y así sucesivamente...

Ej.. si queria imprimir un informe en 3 columnas donde tenia 10 reg. lo que hace el QReport es

Reg 1 Reg 5 Reg 9
Reg 2 Reg 6 Reg 10
Reg 3 Reg 7
Reg 4 Reg 8

Lo que necesitaba es que imprimiera

Reg 1 Reg 2 Reg 3
Reg 4 Reg 5 Reg 6
Reg 7 Reg 8 Reg 9
Reg 10

La Solución.. pasar todos los Registros a Un StringGrid y desde ahí imprimirlos a través del OnNeedData del QReport

por lo que te sugiero que busques en el Foro Imprimir StringGrid o OnNeedData ya que el tema ha sido tratado...

Salu2 y suerte:p:D

Alexis De la Cr 11-03-2008 21:57:41

Luis Gutierrez.... Muchas Gracias por tu Ayuda. Efectivamente para que tanta Codificacion si con solo cambiar el valor de columns basta para hacer la impresion en columnas. Claro que ese dato no lo sabia. :)

De Nuevo. Muchas Gracias

Alexis De la Cr 11-03-2008 22:04:52

Blue Steel, Hermano, Gracias por Resopnder.

Fijate que estaba pensando en utilizar esa tecnica que describes. de hecho ya la utilizo para imprimir Codigos de barras. en un stringgrid meto la descripcion y el codigo(los numeros) y de ahi ya los puedo imprimir en quick report.

Gracias por contestar


La franja horaria es GMT +2. Ahora son las 10:54:50.

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