FR Embarcadero edition
You have to set the port (or any other config properties you want to alter)
In the config.xml file in the same direction as the server application .
Yes, change thousand separators in locale settings or change thousandSeparator variable in Delphi.
No , you cannot rotate it .
Maybe you want to use a diffrent printer in the report definition (the
*.fr3-file) so that this printer becomes the default printer for this
specific report? To do this in the report designer choose "Options..." in
the "Report"-menu. Select the "General" tab in the dialog and choose desired
printer in the printer list.
Of course you can also select/alter printer from the preview window or by code from your delphi application.
Yes, it's Thread Safe.
Create a report object inside thread and set this property:
1 2 |
frxReport.EngineOptions.EnableThreadSafe := True; frxReport.EngineOptions.DestroyForms := False; |
Use the line# variable in the OnBeforePrint event of the band write code to check the line# variable and use engine.newpage to force the newpage.
At default FastReport uses grobal Datasets list which are initialized in the module frxClass. After creating copies of TfrxDBDataset, it adds it them this list. In view of this, it’s not possible to use Datasets with the same name (Even in different streams). For using local Datasets , you need to use the following code :
1 2 3 4 |
frxReport.EngineOptions.UseGlobalDataSetList := False; frxReport.EnabledDataSets.Clear(); frxReport.EnabledDataSets.Add(frxDataSet); frxReport.LoadFromFile(ReportName); |
If in the cross-table cells you used string values, then you need to disconnect functions arguments in the cross-table editor .
Use the function TfrxMemoView.CalcWidth in the TfrxMemoView.OnAfterData:
1 2 3 4 5 6 |
procedure Memo1OnAfterData(Sender: TfrxComponent); begin Memo1.Font.Size:=10; if Memo1.CalcWidth>Memo1.Width-Memo1.GapX*2 then Memo1.Font.Size:=Trunc(Memo1.Font.Size*((Memo1.Width-Memo1.GapX*2)/Memo1.CalcWidth)); end; |
Make language file a utility of mkall.bat ( in languages catalogue) and connect the language dynamically.
1 2 |
uses frxRes; frxResources.LoadFromFile('english.xml'); |
1 2 3 4 5 |
var a: variant; begin a := VarArrayOf([1,2,3]); frxReport1.Script.Variables['a'] := a; end; |
Add the component TfrxDialogControls (TfrxRichObject, TfrxCrossObject, TfrxOLEObject, TfrxBarCodeObject, TfrxCheckBoxObject, TfrxGradientObject, frxChartObject, TfrxADOComponents, etc.) from FR component panel into the project or add in the uses section the following modules: frxDCtrl, frxRich, frxCross, frxOLE, frxBarcode, frxChBox, frxGradient, frxChart, frxADOComponents.
1 2 3 4 5 6 7 8 9 10 |
var DS: TfrxDataSet; begin DS:=Report.GetDataset('Items'); DS.First; while not DS.Eof do begin ShowMessage(DS.Value('Part Name')); DS.NEXT; end; end. |
Just add the module ConverterRB2FR. Into uses section.
FastReport script does not support sets . You can do this :
1 |
Memo1.Frame.Typ := ftLeft + ftRight + ftTop + ftBottom;
|
Just set the following :
1 |
frxReport1.ReportOptions.Name:='My Report';
|
In FastReport 4 there is an automatic setter of report preview window. If there are two pages, the size can be set by using the following :
1 |
frxPreview1.Zoom:=(frxPreview1.Width-80)/(frxPreview1.PreviewPages.PageSize[frxPreview1.PreviewPages.CurPreviewPage].X*2);
|
Go to menu – view - settings, and click on restore settings.
1 2 3 4 |
procedure MasterData1OnBeforePrint(Sender: TfrxComponent); begin if MasterData1.DataSet.RecNo = MasterData1.DataSet.RecordCount-1 then Engine.NewPage; end; |
Just add the module ConverterQR2FR into uses section and using:
1 2 3 4 5 |
conv := TConverterQr2Fr.Create; conv.Source := QuickRep1; conv.Target := FReport; conv.Convert; FReport.SaveToFile('converted_fromQR.fr3'); |
Yes , the installation file to use is FR4*D11*.EXE.
You should install FastReport 4.5 under Vista with Administrator rights. You can click right mouse button on install file and select "Run as administrator". RAD Studio 2007 must be closed.
Use the recompile wizard and select TeeChart8.
For Delphi XE5:
1. File -> open locate fsTee19.dpk in directory where Fast Report installed;
2. Compile fsTee19.dpk package.
3. File -> open locate frxTee19.dpk in directory where Fast Report installed;
4. Compile frxTee19.dpk package.
5. File -> open locate dclfrxTee19.dpk in directory where Fast Report installed;
6. Install dclfrxTee19.dpk package.
For Delphi XE4:
1. File -> open locate fsTee18.dpk in directory where Fast Report installed;
2. Compile fsTee18.dpk package.
3. File -> open locate frxTee18.dpk in directory where Fast Report installed;
4. Compile frxTee18.dpk package.
5. File -> open locate dclfrxTee18.dpk in directory where Fast Report installed;
6. Install dclfrxTee18.dpk package.
Yes you can. You just have to code that in your program. Look at this example:
1 2 3 4 5 |
frxReport1.PrepareReport; frxPDFExport1.FileName:= 'filename1.pdf'; frxReport1.Export (frxPDFExport1); frxPDFExport1.FileName:= 'filename2.pdf'; frxReport1.Export (frxPDFExport1); |
Yes you can export .Look at this simple example :
1 2 |
frxHTMLExport1.Stream := myStream; frxReport1.Export (frxHTMLExport1); |
Do a PrepareReport and then export the report to PDF immediately
before or after the Print statement.
But you will need to generate a unique filename beforehand.
Yes, export filters are enabled .
Dynamically create the needed filter before preview :
1 2 3 4 5 6 7 |
var frxRTFExport1:TfrxRTFExport; begin frxRTFExport1:=TfrxRTFExport.Create(Form1); frxReport1.PreviewOptions.Buttons:=frxReport1.PreviewOptions.Buttons+[pbExport]; frxReport1.ShowReport(); frxRTFExport1.Free; end; |
In dialogue in combo box Esc-command , choose the needed command type or assign in code . frxDotMatrixExport1.EscModel:=1; // Epson Generic
Set in Export filter the property ShowDialog, ShowProgress to False and fill DefaultPath and FileName.
This happens when TfrxMemoView.DisplayFormat.Kind is set to fkText. Set TfrxMemoView.DisplayFormat.Kind в to fkNumeric .
Exporting into RTF needs the availability of XLS - Microsoft Excel in Microsoft Word. Exporting into XML doesn’t need installation of any application.
Do this:
1 2 3 |
frxPreview1.Lock; frxReport1.Export(frxPDFExport1); frxPreview1.UnLock; |
Or this :
1 |
frxPreview1.Export(frxPDFExport1);
|
Export filter works from prepared report not from report template. That filter "does not know" what kind of data is in report cells, numbers itself or aggregate functions. You can modify exported report yourself, i.e. use SUM function for totals or any other expressions.