No edit summary |
|||
(167 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==Report Builder== | ==Report Builder== | ||
* [[Report Builder - Overview]] | |||
* [[Report Builder - Doing Simple Calculation]] | * [[Report Builder - Doing Simple Calculation]] | ||
* [[Report Builder - Get Data Directly from DB]] | * [[Report Builder - Get Data Directly from DB]] | ||
* [[Report Builder - Get Data from Available Pipeline]] | * [[Report Builder - Get Data from Available Pipeline]] | ||
<div style="float: right;"> [[#top|[top]]]</div> | |||
===FAQ=== | |||
====How to rename the component I use?==== | |||
[[File:RB-FAQ-01.jpg|800px|center]] | |||
:01. Click Icon here (eg DBText) | |||
:02. Click on the place to be print/shown | |||
:03. At the '''Properties for XXXXXX''', look for '''Identity | UserName''' & change the Name you like (Only Alphanumeric & no spacing) | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====Why when Export to PDF format the Company Logo look "ugly"?==== | |||
[[File:RB-FAQ-02.jpg|center]] | |||
:01. In the report designer set the setting | |||
::- ImageCompressionLevel to 1 | |||
::- Untick ScaleImages | |||
:02. At the Company Logo Right Click | |||
::- Tick DirectDraw | |||
::- Untick Stretch | |||
:03. Resize your Jpeg Logo to smaller dimension | |||
:04. Resize the Company Logo (Report Builder component) to the same dimension of your Jpeg Logo | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====Why when Export to PDF format the the file size so large?==== | |||
[[File:RB-FAQ-03.jpg|center]] | |||
:01. In the report designer set the setting look for '''PDFSettings''' | |||
::- CompressionLevel to clMax | |||
:02. In the report designer set the setting look for '''PDFSettings | EmbedFontOptions''' | |||
::- efUseSubset to True (checked) | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====Special DisplayFormat==== | |||
Q1 : How if data is PI-12345 but I wanted to be printed as <span style="color:#0000ff">12345</span>?<br/> | |||
A : Just Enter as Follow code:- | |||
<syntaxhighlight lang="delphi"> | |||
Procedure DBTxtDocNoOnGetText(var Text: String); | |||
begin | |||
Delete(Text, 1, 3); | |||
Text := Text; | |||
end; | |||
</syntaxhighlight> | |||
Q2 : How if data is PI-12345 but I wanted to be printed as <span style="color:#0000ff">PI12345</span>?<br/> | |||
A : Just Enter as Follow code:- | |||
<syntaxhighlight lang="delphi"> | |||
Procedure DBTxtDocNoOnGetText(var Text: String); | |||
begin | |||
Delete(Text, 3, 1); | |||
Text := Text; | |||
end; | |||
</syntaxhighlight> | |||
Q3 : How if data is 17-08-2005 but I wanted to be printed as <span style="color:#0000ff">17 hb</span>?<br /> | |||
A : Just Enter as Follow code in the DisplayFormat:- | |||
<pre> | |||
dd 'hb' | |||
</pre> | |||
Q4 : How if data is 1234-001 but I wanted to be printed as <span style="color:#0000ff">1234</span> & the value is not fixed (i.e may 12345-001, 1234-001)?<br /> | |||
A : Just Enter as Follow code:- | |||
<syntaxhighlight lang="delphi"> | |||
Procedure DBTxtDocNoOnGetText(var Text: String); | |||
begin | |||
Text := SubStrOfDelimitedStr(Text, 0, 1, '-'); | |||
end; | |||
</syntaxhighlight> | |||
Q5 : How if data is 1234-001 but I wanted to be printed as <span style="color:#0000ff">001</span> & the value is not fixed (i.e may 12345-001, 1234-32)?<br /> | |||
A : Just Enter as Follow code:- | |||
<syntaxhighlight lang="delphi"> | |||
Procedure DBTxtDocNoOnGetText(var Text: String); | |||
begin | |||
Text := SubStrOfDelimitedStr(Text, 1, 1, '-'); | |||
end; | |||
</syntaxhighlight> | |||
Q6 : How to reverse this #,0.00;-#,0.00 to this <span style="color:#0000ff">-#,0.00;#,0.00</span>?<br /> | |||
A : Just Enter as Follow code:- | |||
<syntaxhighlight lang="delphi"> | |||
procedure DetailBeforePrint; | |||
var d, s : string; | |||
begin | |||
s := Option.GetFieldValue('AccountingValueDisplayFormat'); | |||
d := ValueOfSemiColonStr(s, 1)+';'+ ValueOfSemiColonStr(s, 0); | |||
DBTxtC4.DisplayFormat := d; | |||
end; | |||
</syntaxhighlight> | |||
Q7 : How to set 0 when empty?<br/> | |||
A : Below is example | |||
<syntaxhighlight lang="delphi"> | |||
procedure DBTxtTaxOnGetText(var Text:String); | |||
begin | |||
if Trim(plSQL_1.GetFieldValue('TaxAmt')) = '' then | |||
Text := '0.00' ; | |||
end; | |||
</syntaxhighlight> | |||
Q8. How to Combine Currency Symbol with DocAmt or DBCalc.Value using TppVariable? | |||
<syntaxhighlight lang="delphi"> | |||
procedure VarSumDROnCalc(var Value : Variant); | |||
var V : string; | |||
begin | |||
V := FormatFloat(Option.GetFieldValue('AccountingValueDisplayFormat'), DBCalcSCR.Value); | |||
Value := Option.GetFieldValue('LocalCurrencySymbol') + ' ' + V; | |||
end; | |||
</syntaxhighlight> | |||
Q9. How to Set Current Date Time plus/minus N? | |||
<syntaxhighlight lang="delphi"> | |||
procedure Variable1OnCalc(var Value : Variant); | |||
var lDT : Variant; | |||
begin | |||
//Example deduct 1.5 hrs | |||
lDT := CurrentDateTime-0.0625; //(1.5/24) | |||
Value := FormatDateTime('dd/MM/yyyy hh:mm AM/PM', lDT); | |||
end; | |||
</syntaxhighlight> | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to Maintain the QR Code Size with large Data?==== | |||
: Note : It might unable to scan if size too small & data too large | |||
[[File:RB-FAQ-04.jpg|800px|center]] | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to Add QR Code for E-Invoicing?==== | |||
: Note : Only Available in Version 852 & above | |||
[[File:RB-FAQ-05.jpg|center]] | |||
{| style="margin: 1em auto 1em auto;" | |||
|- | |||
| | |||
---------------------------------------------------------------------------------------------------------------------------------------------------- | |||
{| | |||
|- | |||
| [[File:Template.Tips-01.jpg|60px]]|| | |||
:* The measurement is in Inch | |||
:* This guide design for is for Laser Printer only | |||
:* For Dot Matrix Printer make sure set to 1 for Height & Width | |||
|} | |||
---------------------------------------------------------------------------------------------------------------------------------------------------- | |||
|} | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
==Fast Report== | ==Fast Report== | ||
* [[Fast Report - | * [[Fast Report - Overview]] | ||
* [[Fast Report - Doing Simple Calculation]] | * [[Fast Report - Doing Simple Calculation]] | ||
* [[Fast Report - Get Data Directly from DB]] | * [[Fast Report - Get Data Directly from DB]] | ||
* [[Fast Report - Get Data from Available Pipeline]] | * [[Fast Report - Get Data from Available Pipeline]] | ||
* [[Fast Report - Shift Relative To Simulator]] | |||
* [[Fast Report - Down Then Across Column]] | |||
* [[Fast Report - Continue Next Page & Continue From Previous Page]] | |||
* [[Fast Report - E-Mail Client (Batch) & E-Mail (Native)]] | |||
* [[Fast Report - SQL Lite Functions Commonly Use]] | |||
* [[Fast Report - Get CSV Data from Memo Field]] | |||
* [[Fast Report - Share Text Message - WhatsApp]] | |||
:::---------------------------------------------------------------------------------------------------------------------------------------------------- | |||
::::{| | |||
|- | |||
| [[File:Template.Tips-01.jpg|60px]]|| | |||
When design for Fast Report Make sure the all the component in the <br /> | |||
MasterData or DetailData band set as following | |||
* Height : 0.1 | |||
* Stretch : True (Tick in Right Click) | |||
|} | |||
:::---------------------------------------------------------------------------------------------------------------------------------------------------- | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
===FAQ=== | |||
====Why is not same on preview?==== | |||
[[File:FR-FAQ-01.jpg|800px|center]] | |||
:Try Untick the Option '''Shift''' by right click the Memo | |||
[[File:FR-FAQ-02.jpg|center]] | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====Why my Layout in the Designer is different from the example shown?==== | |||
: Can try run [http://www.estream.com.my/downloadfile/Fairy/FastReportReg.zip This] script. Please Exit SQL Product before run the script. | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to rename the component I use?==== | |||
[[File:FR-FAQ-03.jpg|800px|center]] | |||
:01. Click the Red A Icon. | |||
:02. Click on the place to be print/shown | |||
:03. At the '''Object Inspector''', look for '''Name''' & change the Name you like (Only Alphanumeric & no spacing) | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to draw line for whole report?==== | |||
[[File:FR-FAQ-04.jpg|center]] | |||
:01. Click at empty place of outer report. | |||
:02. At the '''Object Inspector''', look for '''Frame''' & click the + sign | |||
:03. Under the '''Frame''', look for '''Typ''' & set to '''True''' for ''ftLeft'', ''ftRight'', ''ftTop'' & ''ftBottom''. | |||
[[File:FR-FAQ-05.jpg|800px|center]] | |||
{| style="margin: 1em auto 1em auto;" | |||
|- | |||
| | |||
---------------------------------------------------------------------------------------------------------------------------------------------------- | |||
{| | |||
|- | |||
| [[File:Template.Warning-01.jpg|80px]]|| | |||
: Make sure the '''Paper Margin''' for Top, Bottom, Left & Right not set to 0 | |||
|} | |||
---------------------------------------------------------------------------------------------------------------------------------------------------- | |||
|} | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to add spacing between 2 records?==== | |||
[[File:FR-FAQ-06.jpg|center]] | |||
:01. Right Click at '''DetailData'''. | |||
[[File:FR-FAQ-07.jpg|center]] | |||
:02. Select '''Add child band'''. | |||
:03. At the '''Object Inspector''', look for '''Height''' & set the gap Height you wanted | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====My More Description is very long & it shown page 1 empty & shown in page 2==== | |||
[[File:FR-FAQ-08.jpg|800px|center]] | |||
:01. Right Click at '''DetailData'''. | |||
[[File:FR-FAQ-09.jpg|center]] | |||
:02. Select '''Allow Split'''. | |||
:03. Click at '''GroupFooter:GroupFooter1'''. | |||
:04. Double Click '''OnBeforePrint''' | |||
[[File:FR-FAQ-10.jpg|800px|center]] | |||
:05. Remove '''- 60''' | |||
[[File:FR-FAQ-19.jpg|800px|center]] | |||
:06. Click at '''DetailData:DetailData1'''. | |||
:07. Double Click '''OnAfterCalcHeight''' | |||
[[File:FR-FAQ-20.jpg|800px|center]] | |||
:08. Enter '''//''' | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====Show Note at Header==== | |||
[[File:FR-FAQ-11.jpg|center]] | |||
:01. Right Click at '''GroupHeader:GroupHeader1'''. | |||
[[File:FR-FAQ-07.jpg|center]] | |||
:02. Select '''Add Child Band''' & Select '''Stretch''' | |||
:03. Adjust the Child band Height as you wanted | |||
:04. Right click at Child Band & Select '''Stretch''' | |||
:05. Move all the Title to '''Child:Child1''' | |||
:06. Click Blue A icon (RichText Object) | |||
:07. Click on the place to be print/shown & set as below setting in Right Click | |||
:::Stretch = True | |||
:::Shift = False | |||
:::Allow Expression = False | |||
:08. At the '''Object Inspector''', Look for & set as below | |||
:::DataSet ==> Main | |||
:::DataField ==> Note | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====Show Total Qty Excluding Item Code RTN5Cents ==== | |||
:01. Click the Red A Icon. | |||
:02. Click on the place to be print/shown | |||
:03. Enter the below code (make sure in the report had the '''AdjRound''' pipeline & '''GetTotal''' function (refer to Sales Invoice 7 (GST 1)) | |||
<syntaxhighlight lang="delphi"> | |||
[FormatFloat(<Option."StockQuantityDisplayFormat">, | |||
IIF(Trim(<AdjRound."LocalAmount">)<>'0', | |||
GetTotal('Qty')-1, | |||
GetTotal('Qty')) | |||
)] | |||
</syntaxhighlight> | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to print 2 page in 1 A4?==== | |||
[[File:FR-FAQ-13.jpg|900px|center]] | |||
:01. Click Margin Icon | |||
:02. Adjust the '''Height''' to fit in 1 page | |||
:03. Select '''Apply to all pages''' | |||
:04. Click Ok | |||
:05. Set the '''Zoom''' to <span style="color:#0000ff">100%</span> and/or <span style="color:#0000ff">Page Within</span> | |||
:06. Click Print Icon | |||
:07. Set '''Print Mode''' to <span style="color:#0000ff">Scale</span> & '''Print on Sheet''' to <span style="color:#0000ff">A4</span> | |||
:08. Click Ok to print | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to Load Notes/More Description to TfrRichView using script?==== | |||
Just add below script on the TfrRichView '''OnBeforePrint''' | |||
<syntaxhighlight lang="delphi"> | |||
procedure Rich1OnBeforePrint(Sender: TfrxComponent); | |||
var slOutput : TStringList; | |||
M: TMemoryStream; | |||
begin | |||
slOutput := TStringList.Create; | |||
M := TMemoryStream.Create; | |||
try | |||
slOutput.Text := <plST_Item."Note">; //The Note/More Description field | |||
slOutput.SaveToStream(M); | |||
M.Position := 0; | |||
Rich1.RichEdit.Lines.LoadFromStream(M); //eg The TfrRichView name is Rich1 | |||
finally | |||
slOutput.Free; | |||
M.Free; | |||
end; | |||
end; | |||
</syntaxhighlight> | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to reduce the Column use when Export to Excel?==== | |||
Try use '''Export to Excel Table (XML)''' option & untick the Option '''WYSIWYG''' | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====Special DisplayFormat==== | |||
Q1 : How if data is Zero(0) and I wanted to be printed as - and some space on the back?<br /> | |||
A : Just Enter as Follow code:-<br /> | |||
[FormatFloat(',0.00;-,0.00;- ',<Main."Amount">)] | |||
Q2 : How to set a given string as this 123456121234 to show as 123456-12-1234?<br /> | |||
A : Just Enter as Follow code:-<br /> | |||
[FormatMaskText('000000-00-0000;0;',<Employee."NewIC">)] | |||
Q3 : How to set displayformat follow the option for Grand Total?<br /> | |||
A : Just Enter as Follow code:-<br /> | |||
[FormatFloat(<Option."StockQuantityDisplayFormat">, SUM(<Main."TotalQty">,MasterData1))] | |||
OR<br /> | |||
[FormatFloat(<Option."AccountingValueDisplayFormat">, SUM(<Main."TotalAmt">,MasterData1))] | |||
Q4 : How to set displayformat BlankWhenZero or Hide Zeros if using FormatFloat function?<br /> | |||
A : Just set the display format at <span style="color:#0000ff">Tools | Options | Misc</span> to | |||
#,0.00;-#,0.00; ; | |||
OR<br /> | |||
A : Just Enter as Follow code :-<br /> | |||
<pre> | |||
[IIF(SimpleRoundTo(<Document_Detail."Qty">*<Document_Detail."UnitPrice">,-2) <> 0, | |||
FormatFloat(<Option."AccountingValueDisplayFormat">, | |||
SimpleRoundTo(<Document_Detail."Qty">*<Document_Detail."UnitPrice">,-2)), '')] | |||
</pre> | |||
Q5. How to Set Current Date Time plus/minus N? | |||
<pre> | |||
procedure DBTxtTimeOnBeforePrint(Sender: TfrxComponent); | |||
var lDT : variant; | |||
begin | |||
//Example deduct 1.5 hours | |||
lDT := FormatDateTime('dd/MM/yyyy hh:mm AM/PM', Now - 0.0625); //(1.5/24) | |||
DBTxtTime.Text := lDT; | |||
end; | |||
</pre> | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
Q6. Page print count base on qty. | |||
<pre> | |||
procedure Page1OnBeforePrint(Sender: TfrxComponent); | |||
begin | |||
Page1.PageCount := <DocDetail."Qty">; | |||
end; | |||
</pre> | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to use Line function?==== | |||
Default is system will use <span style="color:#0000ff">[Line#]</span> this will result as | |||
<pre> | |||
Group 1 | |||
1 | |||
2 | |||
3 | |||
Group 2 | |||
4 | |||
5 | |||
6 | |||
</pre> | |||
Use <span style="color:#0000ff">Line</span> this will result as | |||
<pre> | |||
Group 1 | |||
1 | |||
2 | |||
3 | |||
Group 2 | |||
1 | |||
2 | |||
3 | |||
</pre> | |||
:01. Select '''System Text''' | |||
:02. Enter as <span style="color:#0000ff">[Line]</span> in '''Text''' field | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====Can I do running Total for each footer?==== | |||
:Yes just add <span style="color:#0000ff">''',2'''</span> in the SUM formula | |||
:'''WARNING''' it can't batch Printing (i.e. will keep increasing) | |||
[SUM(<Document_Detail."Amount">,DetailData1<span style="color:#0000ff">''',2'''</span>)] | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How can combine each string lines from detail without the line break added?==== | |||
:For example, | |||
::{| class="wikitable" | |||
|- | |||
! Items !! Qty || Unit Price || Amount | |||
|- | |||
| RM-001 || 20 || 100 || 2000 | |||
|- | |||
| RM-002 || 40 || 200 || 8000 | |||
|} | |||
<br /> | |||
:Expected result:<br /> | |||
RM-001,20,100,2000|RM-002,40,200,8000| | |||
<syntaxhighlight lang="delphi"> | |||
Var s: string; | |||
Begin | |||
s := Items + ',' + VarToStr(Qty) + ',' + VarToStr(Amount) +'|'; | |||
Memo1.Text := '''Copy(Memo1.Text,1,Length(Memo1.Text)-2)''' + s; | |||
End; | |||
</syntaxhighlight> | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to make sure my report export to Excel as less column usage as possible?==== | |||
:Below is the guideline | |||
[[File:FR-FAQ-14.jpg|center]] | |||
:* Use align to Grid button | |||
[[File:FR-FAQ-15.jpg|center]] | |||
:* No gap between to component | |||
:* Must Align between top & Bottom of component | |||
[[File:FR-FAQ-16.jpg|center]] | |||
:* Untick '''Diagonal''' when use Line | |||
:* Avoid use Rich Text (TfrRichView) | |||
:* Untick '''Auto Width''' | |||
:* Tick '''Stretch to Max Height''' (for Detail) | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====Why when I export to PDF with Chinese Word become "tofu" or box box?==== | |||
: This is because default Font is Tahoma is not support Unicode Font | |||
: Solution : Change the Font To '''Microsft YaHei''' in Report Designer | |||
[[File:FR-FAQ-17.jpg|800px|center]] | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to Maintain the QR Code Size with large Data?==== | |||
: Note : It might unable to scan if size too small & data too large | |||
[[File:FR-FAQ-18.jpg|800px|center]] | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====Show Even row with color?==== | |||
[[File:FR-FAQ-21.jpg|800px|center]] | |||
<syntaxhighlight lang="delphi"> | |||
if <Line#> mod 2 = 1 then | |||
TfrxBrushFill(DetailData1.Fill).BackColor := clNone else | |||
TfrxBrushFill(DetailData1.Fill).BackColor := clSilver; | |||
</syntaxhighlight> | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to Add QR Code for E-Invoicing?==== | |||
: Note : Only Available in Version 852 & above | |||
: [https://download.sql.com.my/customer/Fairy/Steps-FR-FAQ-26.gif Video] | |||
[[File:FR-FAQ-22.jpg|center]]<br> | |||
[[File:FR-FAQ-23.jpg|800px|center]]<br> | |||
[[File:FR-FAQ-24.jpg|center]]<br> | |||
[[File:FR-FAQ-25.jpg|800px|center]] | |||
<syntaxhighlight lang="delphi"> | |||
procedure IRBM_QROnBeforePrint(Sender: TfrxComponent); | |||
var B : Boolean; | |||
begin | |||
B := Trim(<Main."IRBM_ValidationLink">) <> ''; | |||
IRBM_QR.Visible := B; | |||
IRBM_QR.Printable := B; | |||
IRBM_QR.Hyperlink.Value := Trim(<Main."IRBM_ValidationLink">); | |||
end; | |||
</syntaxhighlight> | |||
{| style="margin: 1em auto 1em auto;" | |||
|- | |||
| | |||
---------------------------------------------------------------------------------------------------------------------------------------------------- | |||
{| | |||
|- | |||
| [[File:Template.Tips-01.jpg|60px]]|| | |||
:* The measurement is in Inch | |||
:* This guide design for is for Laser Printer only | |||
:* For Dot Matrix Printer make sure set to 1 for Height | |||
|} | |||
---------------------------------------------------------------------------------------------------------------------------------------------------- | |||
|} | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
====How to show Document Number at every Page Footer?==== | |||
: Just add the script on procedure GroupHeader2OnBeforePrint | |||
<syntaxhighlight lang="delphi"> | |||
procedure GroupHeader2OnBeforePrint(Sender: TfrxComponent); | |||
begin | |||
... | |||
Memo69.Text := <Main."DocNo">; //Add your script | |||
end; | |||
</syntaxhighlight> | |||
<div style="float: right;"> [[#top|[top]]]</div> | |||
==See also== | |||
* [https://sites.google.com/site/sqlestream/report-designer Report Designer at HIME] | |||
* Others [[Customisation]] |
Latest revision as of 06:43, 12 September 2024
Report Builder
- Report Builder - Overview
- Report Builder - Doing Simple Calculation
- Report Builder - Get Data Directly from DB
- Report Builder - Get Data from Available Pipeline
FAQ
How to rename the component I use?
- 01. Click Icon here (eg DBText)
- 02. Click on the place to be print/shown
- 03. At the Properties for XXXXXX, look for Identity | UserName & change the Name you like (Only Alphanumeric & no spacing)
Why when Export to PDF format the Company Logo look "ugly"?
- 01. In the report designer set the setting
- - ImageCompressionLevel to 1
- - Untick ScaleImages
- 02. At the Company Logo Right Click
- - Tick DirectDraw
- - Untick Stretch
- 03. Resize your Jpeg Logo to smaller dimension
- 04. Resize the Company Logo (Report Builder component) to the same dimension of your Jpeg Logo
Why when Export to PDF format the the file size so large?
- 01. In the report designer set the setting look for PDFSettings
- - CompressionLevel to clMax
- 02. In the report designer set the setting look for PDFSettings | EmbedFontOptions
- - efUseSubset to True (checked)
Special DisplayFormat
Q1 : How if data is PI-12345 but I wanted to be printed as 12345?
A : Just Enter as Follow code:-
Procedure DBTxtDocNoOnGetText(var Text: String);
begin
Delete(Text, 1, 3);
Text := Text;
end;
Q2 : How if data is PI-12345 but I wanted to be printed as PI12345?
A : Just Enter as Follow code:-
Procedure DBTxtDocNoOnGetText(var Text: String);
begin
Delete(Text, 3, 1);
Text := Text;
end;
Q3 : How if data is 17-08-2005 but I wanted to be printed as 17 hb?
A : Just Enter as Follow code in the DisplayFormat:-
dd 'hb'
Q4 : How if data is 1234-001 but I wanted to be printed as 1234 & the value is not fixed (i.e may 12345-001, 1234-001)?
A : Just Enter as Follow code:-
Procedure DBTxtDocNoOnGetText(var Text: String);
begin
Text := SubStrOfDelimitedStr(Text, 0, 1, '-');
end;
Q5 : How if data is 1234-001 but I wanted to be printed as 001 & the value is not fixed (i.e may 12345-001, 1234-32)?
A : Just Enter as Follow code:-
Procedure DBTxtDocNoOnGetText(var Text: String);
begin
Text := SubStrOfDelimitedStr(Text, 1, 1, '-');
end;
Q6 : How to reverse this #,0.00;-#,0.00 to this -#,0.00;#,0.00?
A : Just Enter as Follow code:-
procedure DetailBeforePrint;
var d, s : string;
begin
s := Option.GetFieldValue('AccountingValueDisplayFormat');
d := ValueOfSemiColonStr(s, 1)+';'+ ValueOfSemiColonStr(s, 0);
DBTxtC4.DisplayFormat := d;
end;
Q7 : How to set 0 when empty?
A : Below is example
procedure DBTxtTaxOnGetText(var Text:String);
begin
if Trim(plSQL_1.GetFieldValue('TaxAmt')) = '' then
Text := '0.00' ;
end;
Q8. How to Combine Currency Symbol with DocAmt or DBCalc.Value using TppVariable?
procedure VarSumDROnCalc(var Value : Variant);
var V : string;
begin
V := FormatFloat(Option.GetFieldValue('AccountingValueDisplayFormat'), DBCalcSCR.Value);
Value := Option.GetFieldValue('LocalCurrencySymbol') + ' ' + V;
end;
Q9. How to Set Current Date Time plus/minus N?
procedure Variable1OnCalc(var Value : Variant);
var lDT : Variant;
begin
//Example deduct 1.5 hrs
lDT := CurrentDateTime-0.0625; //(1.5/24)
Value := FormatDateTime('dd/MM/yyyy hh:mm AM/PM', lDT);
end;
How to Maintain the QR Code Size with large Data?
- Note : It might unable to scan if size too small & data too large
How to Add QR Code for E-Invoicing?
- Note : Only Available in Version 852 & above
|
Fast Report
- Fast Report - Overview
- Fast Report - Doing Simple Calculation
- Fast Report - Get Data Directly from DB
- Fast Report - Get Data from Available Pipeline
- Fast Report - Shift Relative To Simulator
- Fast Report - Down Then Across Column
- Fast Report - Continue Next Page & Continue From Previous Page
- Fast Report - E-Mail Client (Batch) & E-Mail (Native)
- Fast Report - SQL Lite Functions Commonly Use
- Fast Report - Get CSV Data from Memo Field
- Fast Report - Share Text Message - WhatsApp
- ----------------------------------------------------------------------------------------------------------------------------------------------------
- ----------------------------------------------------------------------------------------------------------------------------------------------------
FAQ
Why is not same on preview?
- Try Untick the Option Shift by right click the Memo
Why my Layout in the Designer is different from the example shown?
- Can try run This script. Please Exit SQL Product before run the script.
How to rename the component I use?
- 01. Click the Red A Icon.
- 02. Click on the place to be print/shown
- 03. At the Object Inspector, look for Name & change the Name you like (Only Alphanumeric & no spacing)
How to draw line for whole report?
- 01. Click at empty place of outer report.
- 02. At the Object Inspector, look for Frame & click the + sign
- 03. Under the Frame, look for Typ & set to True for ftLeft, ftRight, ftTop & ftBottom.
|
How to add spacing between 2 records?
- 01. Right Click at DetailData.
- 02. Select Add child band.
- 03. At the Object Inspector, look for Height & set the gap Height you wanted
My More Description is very long & it shown page 1 empty & shown in page 2
- 01. Right Click at DetailData.
- 02. Select Allow Split.
- 03. Click at GroupFooter:GroupFooter1.
- 04. Double Click OnBeforePrint
- 05. Remove - 60
- 06. Click at DetailData:DetailData1.
- 07. Double Click OnAfterCalcHeight
- 08. Enter //
Show Note at Header
- 01. Right Click at GroupHeader:GroupHeader1.
- 02. Select Add Child Band & Select Stretch
- 03. Adjust the Child band Height as you wanted
- 04. Right click at Child Band & Select Stretch
- 05. Move all the Title to Child:Child1
- 06. Click Blue A icon (RichText Object)
- 07. Click on the place to be print/shown & set as below setting in Right Click
- Stretch = True
- Shift = False
- Allow Expression = False
- 08. At the Object Inspector, Look for & set as below
- DataSet ==> Main
- DataField ==> Note
Show Total Qty Excluding Item Code RTN5Cents
- 01. Click the Red A Icon.
- 02. Click on the place to be print/shown
- 03. Enter the below code (make sure in the report had the AdjRound pipeline & GetTotal function (refer to Sales Invoice 7 (GST 1))
[FormatFloat(<Option."StockQuantityDisplayFormat">,
IIF(Trim(<AdjRound."LocalAmount">)<>'0',
GetTotal('Qty')-1,
GetTotal('Qty'))
)]
How to print 2 page in 1 A4?
- 01. Click Margin Icon
- 02. Adjust the Height to fit in 1 page
- 03. Select Apply to all pages
- 04. Click Ok
- 05. Set the Zoom to 100% and/or Page Within
- 06. Click Print Icon
- 07. Set Print Mode to Scale & Print on Sheet to A4
- 08. Click Ok to print
How to Load Notes/More Description to TfrRichView using script?
Just add below script on the TfrRichView OnBeforePrint
procedure Rich1OnBeforePrint(Sender: TfrxComponent);
var slOutput : TStringList;
M: TMemoryStream;
begin
slOutput := TStringList.Create;
M := TMemoryStream.Create;
try
slOutput.Text := <plST_Item."Note">; //The Note/More Description field
slOutput.SaveToStream(M);
M.Position := 0;
Rich1.RichEdit.Lines.LoadFromStream(M); //eg The TfrRichView name is Rich1
finally
slOutput.Free;
M.Free;
end;
end;
How to reduce the Column use when Export to Excel?
Try use Export to Excel Table (XML) option & untick the Option WYSIWYG
Special DisplayFormat
Q1 : How if data is Zero(0) and I wanted to be printed as - and some space on the back?
A : Just Enter as Follow code:-
[FormatFloat(',0.00;-,0.00;- ',<Main."Amount">)]
Q2 : How to set a given string as this 123456121234 to show as 123456-12-1234?
A : Just Enter as Follow code:-
[FormatMaskText('000000-00-0000;0;',<Employee."NewIC">)]
Q3 : How to set displayformat follow the option for Grand Total?
A : Just Enter as Follow code:-
[FormatFloat(<Option."StockQuantityDisplayFormat">, SUM(<Main."TotalQty">,MasterData1))]
OR
[FormatFloat(<Option."AccountingValueDisplayFormat">, SUM(<Main."TotalAmt">,MasterData1))]
Q4 : How to set displayformat BlankWhenZero or Hide Zeros if using FormatFloat function?
A : Just set the display format at Tools | Options | Misc to
#,0.00;-#,0.00; ;
OR
A : Just Enter as Follow code :-
[IIF(SimpleRoundTo(<Document_Detail."Qty">*<Document_Detail."UnitPrice">,-2) <> 0, FormatFloat(<Option."AccountingValueDisplayFormat">, SimpleRoundTo(<Document_Detail."Qty">*<Document_Detail."UnitPrice">,-2)), '')]
Q5. How to Set Current Date Time plus/minus N?
procedure DBTxtTimeOnBeforePrint(Sender: TfrxComponent); var lDT : variant; begin //Example deduct 1.5 hours lDT := FormatDateTime('dd/MM/yyyy hh:mm AM/PM', Now - 0.0625); //(1.5/24) DBTxtTime.Text := lDT; end;
Q6. Page print count base on qty.
procedure Page1OnBeforePrint(Sender: TfrxComponent); begin Page1.PageCount := <DocDetail."Qty">; end;
How to use Line function?
Default is system will use [Line#] this will result as
Group 1 1 2 3 Group 2 4 5 6
Use Line this will result as
Group 1 1 2 3 Group 2 1 2 3
- 01. Select System Text
- 02. Enter as [Line] in Text field
- Yes just add ,2 in the SUM formula
- WARNING it can't batch Printing (i.e. will keep increasing)
[SUM(<Document_Detail."Amount">,DetailData1,2)]
How can combine each string lines from detail without the line break added?
- For example,
Items Qty Unit Price Amount RM-001 20 100 2000 RM-002 40 200 8000
- Expected result:
RM-001,20,100,2000|RM-002,40,200,8000|
Var s: string;
Begin
s := Items + ',' + VarToStr(Qty) + ',' + VarToStr(Amount) +'|';
Memo1.Text := '''Copy(Memo1.Text,1,Length(Memo1.Text)-2)''' + s;
End;
How to make sure my report export to Excel as less column usage as possible?
- Below is the guideline
- Use align to Grid button
- No gap between to component
- Must Align between top & Bottom of component
- Untick Diagonal when use Line
- Avoid use Rich Text (TfrRichView)
- Untick Auto Width
- Tick Stretch to Max Height (for Detail)
Why when I export to PDF with Chinese Word become "tofu" or box box?
- This is because default Font is Tahoma is not support Unicode Font
- Solution : Change the Font To Microsft YaHei in Report Designer
How to Maintain the QR Code Size with large Data?
- Note : It might unable to scan if size too small & data too large
Show Even row with color?
if <Line#> mod 2 = 1 then
TfrxBrushFill(DetailData1.Fill).BackColor := clNone else
TfrxBrushFill(DetailData1.Fill).BackColor := clSilver;
How to Add QR Code for E-Invoicing?
- Note : Only Available in Version 852 & above
- Video
procedure IRBM_QROnBeforePrint(Sender: TfrxComponent);
var B : Boolean;
begin
B := Trim(<Main."IRBM_ValidationLink">) <> '';
IRBM_QR.Visible := B;
IRBM_QR.Printable := B;
IRBM_QR.Hyperlink.Value := Trim(<Main."IRBM_ValidationLink">);
end;
|
- Just add the script on procedure GroupHeader2OnBeforePrint
procedure GroupHeader2OnBeforePrint(Sender: TfrxComponent);
begin
...
Memo69.Text := <Main."DocNo">; //Add your script
end;