PDA

Ver la Versión Completa : generar e imprimir catalogo


fartycl
08-10-2005, 04:34:08
Hola aqui pidiendo ayuda de nuevo.

me gustaria ver si alguien me puede dar un empujon necesito realizar un informe con imagenes los datos del informe los tengo en una base de datos pero las imagenes en una carpeta y si es que se puede hacer con quickreport
me gustaria si me pueden dar un ejemplo.

lo que quiero hacer es un catalogo ya que tengo un administrador de productos donde ingreso los datos y en un campo coloco la ubicacion de la imagen ("c:\img\silla.jpg") y necesito generar listados donde me aparesca la imagen y la descripcion del producto y imprimirla.

si es que me pueden ayudar gracias

luisgutierrezb
08-10-2005, 16:19:03
Pues si mal no recuerdo, en la propiedad OnPrint de la imagen, puedes asignarla al momento de imprimir, la otra, que seme ocurre es que hagas un campo calculado, y en el evento OnCalcFields asignes la imagen, y en tu reporte usas un componente para imagen de bases de datos...

fartycl
11-10-2005, 02:54:26
Es que soy medi lento me gustaria ver si me pudieran mostrar un ejemplo para asi poser entender mejor :confused:

lento manu
11-10-2005, 17:57:35
Te pego código aquí para q valores esta opción. Lo difícil es paginar el Explorer, pero basando en cm el patrón, se consiguen resultados excelentes. Asimismo, puedes usar el componente TPageProcucer, o sus primos DB, como si fuera un servidor web, pero pasas el htm directamente al explorer. Los resultados son los mismos.
Con el ejemplo de Cantu he podido generar listados de sitios web enteros, así como impresión matricial.
Todos los méritos de Marco Cantu (unidad HTMLstr.pas):

unit HtmlStr;
interface
uses
Classes, DB;
type
THtmlStrings = class (TStringList)
public
procedure AddHeader (Title: string);
procedure AddFooter;
procedure OutputTable (Data: TDataSet);
private
procedure AddTableContents (Data: TDataSet);
end;
implementation
uses
SysUtils;
procedure THtmlStrings.AddHeader (Title: string);
begin
Clear;
Add ('<HTML>');
Add ('<HEAD>');
Add ('<TITLE>' + Title + '</TITLE>');
Add ('</HEAD>');
Add ('<BODY>');
Add ('<H1><CENTER>' + Title + '</CENTER></H1>');
end;
procedure THtmlStrings.AddFooter;
begin
Add ('<HR>');
Add ('Generado por el programa ' +
ExtractFileName (ParamStr(0)));
Add ('</BODY>');
Add ('</HTML>');
end;
procedure THtmlStrings.OutputTable (Data: TDataSet);
var
I: Integer;
begin
// iniciamos la tabla con bordes
Add('<table border>');
// nueva fila, con las cabeceras de tabla (etiqueta <th>)
Add('<tr>');
for I := 0 to Data.FieldCount - 1 do
if Data.Fields[I].Visible then
Add('<th>' + Data.Fields[I].FieldName + '</th>');
Add('</tr>');
// nueva fila para cada registro, con los campos apropiados
AddTableContents (Data);
// hecho
Add('</table>');
end;
procedure THtmlStrings.AddTableContents (Data: TDataSet);
var
Bookmark: TBookmark;
I: Integer;
begin
// inhabilitamos el UI
Data.DisableControls;
try
// almacenamos la posición actual
Bookmark := Data.GetBookmark;
try
// exploramos la tabla de base de datos
Data.First;
while not Data.EOF do
begin
Add('<tr>'); // nueva fila, con los datos de la tabla (etiqueta <td>)
for I := 0 to Data.FieldCount - 1 do
if Data.Fields[I].Visible then
Add('<td>' + Data.Fields[I].DisplayText + '</td>');
Add('</tr>');
Data.Next;
end;
finally
// volvemos a la anotación y la destruimos
Data.GotoBookmark (Bookmark);
Data.FreeBookmark (Bookmark);
end;
finally
// rehabilitamos los controles
Data.EnableControls;
end;
end;
end.

He tenido que quitar las etiquetas Delphi, ya q se veía destrozado el texto. Ahora el método para llamar a esta unidad y generar la salida pre_impresa:

procedure TMainForm.SpeedButton2Click(Sender: TObject);
var
Str: THtmlStrings;
begin
SaveDialog1.FileName := ChangeFileExt (
Table1.TableName, '.htm');
if SaveDialog1.Execute then
begin
Str := THtmlStrings.Create;
try
Str.AddHeader (Caption);
Str.OutputTable (Table1);
Str.AddFooter;
Str.SaveToFile (SaveDialog1.Filename);
if CheckBox1.Checked then
ShellExecute (Handle, 'open',
PChar (SaveDialog1.FileName),
'', '', sw_ShowNormal);
finally
Str.Free;
end;
end;
end;Enseguida entenderas como funciona y es un método perfectamente extensible. He generado Facturación y más listados a PRN matricial, y va estupendo. Además no tienes ningún problema con las imágenes gif o JPG.
Tambien estan los comonentes para listados de HTMLreport. La versión de prueba no tiene limitación de uso, solo firma el documento de salida. Hace lo mismo de otra manera. Su sitio es http://www.htmlreport.com (http://www.htmlreport.com/) pero parece colgada.
Espero q te sirva.