LabelExecDQL() is part of the ExecDQL library and is complimentary to MemoExecDQL() etc. LabelExecDQL will execute the DQL script that is stored in a label in a document.
One of the challenges with ExecDQL is to store the DQL in the form from where you want to execute it. Especially if the DQL is of any size.
ExecDQL is limited to 255 charcters and even though it was much improved with the introduction of ESCAPE characters, it is still quite limited as you have to write the DQL on one line in a derivation etc.
So the Big Hitter in the ExecDQL department has been MemoExecDQL(). It is brilliant as you use the strong DE relational behaviour in combination with virtual Memo fields to lookup the DQL from a DQL storage (table) anywhere in your app. It is great since you can share a DQL between different parts of your APP, but it is limiting in the way you have to build the Relational structure and as well edit the DQL out of context.
With LabelExecDQL you can simply write the DQL into the form as a text (label) and then execute it by reference it via its Object Name.
Obviously its not very nice to have a big ugly DQL written into your form, but that is easily resolved by executing a SetState("LabelName",0) somewhere on startup.
MemoContianingDQL: (String)
Object name for the Label that contain the DQL you want to execute always in "" - "Labelname"
Data-Entry Field1: (String)
This is the parameter that you can reference inside the DQL script as Data-Entry field1.
Data-Entry Field2: (String)
This is the parameter that you can reference inside the DQL script as Data-Entry field2.
Data-Entry Field3: (String)
This is the parameter that you can reference inside the DQL script as Data-Entry field3.
Data-Entry Field4: (String)
This is the parameter that you can reference inside the DQL script as Data-Entry field4.
Output: (String)
There is several different output modes for LabelExecDQL.
File: (Default)
If you use the reserved keyword file: or refrain from using a reserved keyword in the Output argument the argument will be interpreted as a text file and the export will be saved in this file name.
ex: LabelExecDQL("DQL","","","","","C:\test.txt","Layout") or : LabelExecDQL("DQL","","","","","file:C:\test.txt","Layout")
Web:
This is the HTML mode. The output will now be interpreted as HTML and you can either Print it or Preview the output in the IE object. When using the Web: keyword you have extra formatting.
Web:<printer>,<mode> ex. LabelExecDQL("DQL","","","","","web:Default,1","Layout") -- this will preview the Result in the IE object.
<printer> -- Default, Printer1..Printer4, Actual name of printer. -- The default printer in WIndows will be changed to this printer.
<mode> -- 0,1 - Preview, 2 - Print Directly to printer without dialog, 3 - printer dialogue.
PDF:
Print directly to PDF. PDF:<filename>. Ex. MemoExecDQL(DQL,"","","","","PDF:c:\test\mypdf.pdf",Layout)
Memo:
Will put the output directly into a Memo GUI control in the active form. If the GUI control is a WebField it will display HTML correctly.
PS! If you output formatted text to a text memo, remember to use COURIER or another fixed position font.
Layout:
This is the Label where the layout format for the DQL is stored. Always in "" - "Layout"
Format:
Report Header: Free text that will come at the beginning of the report. Never repeated!
.header.
,items
.footer
.end
Tags: [{column name}]
EkstraTags:
Position: LRW ex. L30, R20, C10
[{Price:R15}] -- print Price R oriented 15 spaces.
[{Price:R15 sum}] -- print the sum off Price listed in List Records Price : sum ;
Integer to float European: [{var1:F999 999 999,99}]
Integer to float C type: [{var2:F999999999.99}]
Integer fixed leading 0s: [{var3:F00000}]
Integer to with fixed length: [{var4:F99999999}]
Float just formatet: [{var5:F999 999 999,99}]
Float to Integer: [{var6:F99999}]
Float C more dec: [{var7:F999999.999999}]
Float European more dec: [{var7:F999999,999999}]
.page -- will send HTML page break.
ExecDQL
MemoExecDQL
FileExecDQL
Product: Dataease [{8}]FIVE. Written by DataEase 13/07/15 at 19:09:21
Product: Dataease [{8}]FIVE. Written by Simon B 15/07/15 at 10:55:41
Product: Dataease [{8}]FIVE. Written by Rainer 19/03/17 at 19:44:04
Product: Dataease [{8}]FIVE. Written by DataEase 19/03/17 at 19:49:36
Product: Dataease [{8}]FIVE. Written by Rainer 31/03/17 at 10:49:37
Product: Dataease [{8}]FIVE. Written by DataEase 31/03/17 at 14:31:11
Product: Dataease [{8}]FIVE. Written by Rainer 31/03/17 at 16:45:35
Product: Dataease [{8}]FIVE. Written by DataEase 31/03/17 at 17:01:26
Product: Dataease [{8}]FIVE. Written by DataEase 01/04/14 at 16:12:14
Product: Dataease [{8}]FIVE. Written by DataEase 24/04/14 at 08:49:04
Product: Dataease [{8}]FIVE. Written by DataEase 13/07/15 at 16:48:31
Product: Dataease [{8}]FIVE. Written by DataEase 17/03/17 at 17:09:04
Product: Dataease [{8}]FIVE. Written by Rainer 17/03/17 at 21:12:27
Product: Dataease [{8}]FIVE. Written by DataEase 19/03/17 at 20:31:09