QuickReport, importar excel y exportar word

Ante todo, te agradecería que me contetastaras a la mayor brevedad posible, es para mi proyecto fin de carrera y me urge, en un mes tengo que prestnar y no se como se hace lo que a continuación te comento. Son varias preguntas:
1)Tengo que generar un informe que tiene parte fija, y parte variable que cogerá de la base de datos, en total serán 10 hojas de informe. El problema es que en tiempo de diseño solo puedo configurar la primera. ¿Cómo soluciono este problema?. ¿Acaso tendría que realizaar informes independientes y después rejuntarlos de alguna manera?
2)Este informe que yo creo necesito exportarlo a word, ¿cómo lo hago? Desde mi aplicación puedo exportar el informe a word, ¿o necesito crear ese informe directamente en word y a través de codigo rellenar los datos en word que coge de la base de datos?. Es que no sé como enfocarlo.
3)Por otro lado necesito poder importar datos desde un libro en excel, e insertar esos datos en mi base de datos, ¿cómo puedo hacerlo?. ¿Qué componente utilizo?.
Por si lo necesitas, utilizo delphi 6 y excel y word 2000.
Muchas gracias por tu tiempo, y espero tu respuesta pronto, estoy un poco agobiada.

1 Respuesta

Respuesta
1
1. Si son listados independientes, tendrías que hacer varios quickreports y luego llamarlos uno detrás de otro.
2 y 3.
Para pasarlo a Word, hazlo desde la base de datos directamente sin crear el listado, no es necesario.
Para automatización Excel y Word te recomiendo estas 2 webs sobre automatización, están muy bien:
http://www.djpate.freeserve.co.uk/Index.htm
http://freespace.virgin.net/graham.marshall/excel.htm#excel.htm
En www.delphi3000.com encontrarás también ejemplos de ello. Registrarte es gratuito.
Para Excel en Delphi3000 he encontrado:
Sending data from Excel
This is done in the following procedure :
procedure TForm1.BitBtnFromExcelOnClick(Sender: TObject);
var
WorkBk : _WorkBook;
WorkSheet : _WorkSheet;
K, R, X, Y : Integer;
IIndex : OleVariant;
RangeMatrix : Variant;
NomFich : WideString;
begin
NomFich := 'C:\MyDirectory\NameOfFile.xls';
IIndex := 1;
XLApp.Connect;
// Open the Excel File
XLApp. WorkBooks. Open(NomFich, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam,EmptyParam,0);
WorkBk := XLApp.WorkBooks.Item[IIndex];
WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
// In order to know the dimension of the WorkSheet, i.e the number of rows and the
// number of columns, we activate the last non-empty cell of it
WorkSheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
// Get the value of the last row
X := XLApp.ActiveCell.Row;
// Get the value of the last column
Y := XLApp.ActiveCell.Column;
// Define the number of the columns in the TStringGrid
GenericStringGrid.ColCount := Y;
// Assign the Variant associated with the WorkSheet to the Delphi Variant Matrix
RangeMatrix := XLApp.Range['A1',XLApp.Cells.Item[X,Y]].Value;
// Quit Excel and Disconnect the Server
XLApp.Quit;
XLApp.Disconnect;
// Define the loop for filling in the TStringGrid
K := 1;
repeat
for R := 1 to Y do
GenericStringGrid.Cells[(R - 1),(K - 1)] := RangeMatrix[K,R];
Inc(K,1);
GenericStringGrid.RowCount := K + 1;
until
K > X;
// Unassign the Delphi Variant Matrix
RangeMatrix := Unassigned;
end;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas