[ segment @ 10.02.2015. 20:54 ] @
Programot e vo Delphi6 a izvestaite QuickReport.
sega imam potreba izvestaite da se snimaat kako .xls i .pdf.
Pdf go resiv preku pdf creator no xls ne znam kako
Kolku sto primetiv ima QRXLSFilter ama nemozev da ja najdam taa komponenta za Delphi 6.
Dali postoi nekoj nacin kako bi mozela da gi snimam izvestaite kako xls.


[ savkic @ 10.02.2015. 21:51 ] @
Ako ima Excel (najmanje professional) instaliran na tom računaru možeš preko OLE APIa da generišeš xls fajl (ručno naravno).
[ captPicard @ 10.02.2015. 21:58 ] @
Evo ti primjer za ovo šta kolega savkic kaze:

Code (delphi):
uses ComObj;


..

Code (delphi):
          VExcel := CreateOleObject('Excel.Application');
          VExcel.Visible := False;

          VExcel.WorkBooks.Open(strPathToXLSFile);

          FWorkSheet := VExcel.WorkSheets[1];
          VExcel.Sheets[1].Activate;

              FWorkSheet.Cells[1, 2] := strSomeValue;
              FWorkSheet.Cells[1, 3] := strSomeOtherValue;

          VExcel.Visible := true;
          VExcel := unAssigned;


Ovo ti je samo osnovno, da vidiš odakle početi.
[ savkic @ 10.02.2015. 22:03 ] @
Da, ovo je OK. Samo uz jednu napomenu ako imas veliku tabelu, bice sporo prebacivati celiju po celiju. Ja uglavnom to sto prebaciti konvertujem odjednom sve u tab delimited format i onda ili ucitam takav fajl u Excel ili copy pejstujem kroz clipboard tako da je brzina pristojna.
[ segment @ 10.02.2015. 22:43 ] @
Da, jas taka napraviv na eden izvestaj koj bese za hitno megutoa toa e mnogu peski
Jas sakam nesto sto ke ovozmozi bilo koj izvestaj a gi ima mnogu da se prefrlat vo excel

[ Rapaic Rajko @ 11.02.2015. 09:47 ] @
A sta te sad buni da napravis automatsko prebacivanje u excel?

Za petlju kroz dataset, imas FieldCount, Field.AsString i Eof(), a za excel vec znas sta i kako. A nista tesko nije ni (kako savkic napisa) upisati sadrzaj dataset-a u text fajl (tabs delimited), pa odatle ucitati u excel.
Daklem..?

Pozz
[ captPicard @ 11.02.2015. 10:03 ] @
Ovo sam pronašao na netu ali ne znam da li radi, i ako radi, kako radi:

add

Code (delphi):
uses QRExport

...
Code (delphi):
Form1.Some_buttonClick :
var
  Save_to_xls  : string;
begin
  Quickrep1.Prepare;  
  Save_To_xls:= Your_Folder_name  +'\' + 'Report_name' + '.xls';
  QuickRep1.ExportToFilter(TQRXLSFilter.Create(Save_To_xls));
  QuikRep1.Preview;  // or Print
  QuickRep1.QRPrinter.Free;
  QuickRep1.QRPrinter := nil;
end;


Ali moj savjet ti je da ipak to odradiš preko OLE. Jer kako god da ovo gore prebaci, nikada to neće biti bolje od onoga šta sam napraviš, urediš. Za sve šta želiš napraviti u excelu, a ne znaš kako, možeš napraviti macro u excelu i pogledati koje funkcije koristi i onda to odradiš preko OLE-a.
[ segment @ 11.02.2015. 11:36 ] @
Citat:
Rapaic Rajko:
A sta te sad buni da napravis automatsko prebacivanje u excel?

Za petlju kroz dataset, imas FieldCount, Field.AsString i Eof(), a za excel vec znas sta i kako. A nista tesko nije ni (kako savkic napisa) upisati sadrzaj dataset-a u text fajl (tabs delimited), pa odatle ucitati u excel.
Daklem..?

Pozz


Nekoj izvestai sodrzat i 100000 redovi
A toa snimanje nema da go pravam jas tuku nekoj koj ne se razbira mnogu. i toa tabs delimited i ostanato za nego e problem
[ segment @ 11.02.2015. 11:38 ] @
Citat:
captPicard:
Ovo sam pronašao na netu ali ne znam da li radi, i ako radi, kako radi:

add

Code (delphi):
uses QRExport

...
Code (delphi):
Form1.Some_buttonClick :
var
  Save_to_xls  : string;
begin
  Quickrep1.Prepare;  
  Save_To_xls:= Your_Folder_name  +'\' + 'Report_name' + '.xls';
  QuickRep1.ExportToFilter(TQRXLSFilter.Create(Save_To_xls));
  QuikRep1.Preview;  // or Print
  QuickRep1.QRPrinter.Free;
  QuickRep1.QRPrinter := nil;
end;


Ali moj savjet ti je da ipak to odradiš preko OLE. Jer kako god da ovo gore prebaci, nikada to neće biti bolje od onoga šta sam napraviš, urediš. Za sve šta želiš napraviti u excelu, a ne znaš kako, možeš napraviti macro u excelu i pogledati koje funkcije koristi i onda to odradiš preko OLE-a.


ovaa komponenta TQRXLSFilter vo delphi6 ja nema, i jas ne uspeav da ja najdam za delphi6. Ja ima vo delphi7
[ captPicard @ 11.02.2015. 11:41 ] @
Citat:
segment: ovaa komponenta TQRXLSFilter vo delphi6 ja nema, i jas ne uspeav da ja najdam za delphi6. Ja ima vo delphi7


To nije Delphi komponenta, komponenta je od QReport-a. Možda se posebno instlalira, pogledaj da li imaš QRXLSFilter.pas ili nešto slično.
[ captPicard @ 11.02.2015. 11:47 ] @
Uspio si me zbuniti :)

Ne treba ti QRXLSFilter.pas

Sada sam isprobao, dodaj u uses QRExport i to je to. Ono gore šta sam ti napisao radi, isprobao sam.

Code (delphi):
uses QRExport


...

Code (delphi):
Form1.Some_buttonClick :
var
  Save_to_xls  : string;
begin
  Quickrep1.Prepare;  
  Save_To_xls:= Your_Folder_name  +'\' + 'Report_name' + '.xls';
  QuickRep1.ExportToFilter(TQRXLSFilter.Create(Save_To_xls));
  QuikRep1.Preview;  // or Print
  QuickRep1.QRPrinter.Free;
  QuickRep1.QRPrinter := nil;
end;
[ segment @ 11.02.2015. 13:37 ] @
Kaj mene ne raboti
Quickrep1.Prepare;
Save_To_xls:= 'c:\proba.xls';
QuickRep1.ExportToFilter(TQRXLSFilter.Create(Save_To_xls));
QuickRep1.Preview; // or Print
QuickRep1.QRPrinter.Free;
QuickRep1.QRPrinter := nil;

[Error] Unit1.pas(34): Undeclared identifier: 'TQRXLSFilter'
[Error] Unit1.pas(34): ')' expected but identifier 'Create' found
[Error] Unit1.pas(34): Incompatible types: 'TComponent' and 'String'

QRXLSFilter.pas go nemam
[ captPicard @ 11.02.2015. 13:43 ] @
Je.emu miša

Po treći put, jesi dodao

Code (delphi):
uses QRExport


?

Ako si dodao, i opet neće, koju verziju QucikReporta imaš? Možda je neka starija verzija koja nema QRExport.

Ovaj dio

[Error] Unit1.pas(34): ')' expected but identifier 'Create' found
[Error] Unit1.pas(34): Incompatible types: 'TComponent' and 'String'

mislim da nema veze sa time, nešto si negdje krivo ubacio/prepisao. Ako hočeš. pošalji mi ID od TeamViewera na PM pa ti pogledam i ispravim.