
MemoExecDQL is the most used ExecDQL function simply because you can make your own editor form in an application where you store all your DQLs and then you transfere them to the form where they are needed via a simple lookup to a virtual memo field.
When it is looked up in the virtual memo field, you can simply execute it in the form via MemoExecDQL().
You can execute a DQL up to 64k in length this way.
MemoContianingDQL: (Field)
Field name (Memo field) that contain the DQL you want to execute.
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: (Field)
There is several different output modes for MemoExecDQL.
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: MemoExecDQL(DQL,"","","","","C:\test.txt",Layout) or : MemoExecDQL(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. MemoExecDQL(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 a Memo where the layout format for the DQL is stored. 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}]
When combining formatting and statistical the statistical need to come last.
[{Price:R15 Sum}] or [{Price:F99999.99 sum}] or [{CustomerNr:L4 Count}]
.page -- will send HTML page break.
<br><br><pre></pre>
If you use this tag around your output, the resulting code will be treated as TEXT i.e. space, line feed and position will be honoured (DFD mode)
Example 1: Simple Order printed to Memo.
DQL:
for OrderHead with OrderNr = Data-entry field1 ;
list records
OrderNr ;
Customer ;
Address ;
Address1 ;
PostCode ;
Town ;
Terms;
OrderTotal ;
DueDate .
for OrderLine
list records
Description ;
Price ;
Count ;
LineTotal : item sum ;
LineTotal*0.2 : sum ;
LineTotal+LineTotal* 0.2 : sum .
end
Body:
.header
Order nr.: [{OrderNr}]
To:
[{Customer}]
[{Address}]
[{Address1}]
[{PostCode}]
[{Town}]
Terms: [{Terms}] days. Due date: [{DueDate}]
Description Price0 Count LineTotal
-----------------------------------------------------------------------------------------------------
.items
[{Description:L40}][{Price:R10}][{Count:R8}][{LineTotal:R17}]
.footer
-----------------------------------------------------------------------------------------------------
OrderTotal : [{LineTotal:R50 sum}]
=====================================================================================================
.end
End of report....
Button Code:
MemoExecDQL(DQL,OrderNr,"","","","Memo:Result",Body)
GetValue()
ExecDQL()
LabelExecDQL()
TextExecDQL()
StringEscape()
Product: DataEase for Windows 7.x. Written by George Washington 11/04/14 at 08:26:17
Product: DataEase 8 Reporter. Written by eduardo paez 02/05/14 at 14:40:11
Product: . Written by Marco Marchesi 15/02/16 at 14:50:46
Product: . Written by Grossi Gioacchino 18/11/19 at 14:33:44
Product: Dataease [{8}]FIVE. Written by Rainer 22/03/21 at 11:13:10
Product: Dataease [{8}]FIVE. Written by Rainer 08/06/21 at 14:12:40