Script on Report, Action and BoImport

Script on Report, Action and BoImport

Script on Report, Action and BoImport

Το scripting είναι διαθέσιμο στις για τις ενότητες report, action, boImport και έχει σκοπό να δώσει σε αυτές τις ενότητες ευελιξία και ευκολία στη λήψη των παραμέτρων από το χρήστη αλλά και επιπλέον δυνατότητες και ευκολία υλοποίησης λειτουργιών σε όλα τα σημεία της ενότητας που θα χρησιμοποιηθεί. Παρακάτω παρατίθενται ένα πλήθος properties events και methods που αφορούν τις εν λόγο ενότητες.

Υποστηριζόμενα Properties

PropertyΠαράμετροι (index / get/set)Παράδειγμα
ParamValueparameter name: string
get/set :variant

Θέτει/επιστρέφει το περιεχόμενο μιας παραμέτρου.
r.paramvalue[‘isactive’]:= true;

SelectedDeviceget/set integer

Θέτει/επιστρέφει την επιλεγμένη συσκευή.
r.SelectedDevice:= 12;

ParamEnabledPrmName: string; “όνομα παραμέτρου”
get/set : Boolean

Θέτει/επιστρέφει την ιδιότητα “Enabled” για το control που αφορά την παράμετρο PrmName
Έγκυρο μετά το event OnAfterShowUI.
r.ParamEnabled(‘katoxos’):= true;

ParamReadOnlyPrmName: string; “όνομα παραμέτρου”
get/set : Boolean

Θέτει/επιστρέφει την ιδιότητα “ReadOnly” για το control που αφορά την παράμετρο PrmName
Έγκυρο μετά το event OnAfterShowUI.
r.ParamReadOnly(‘katoxos’):= true;

Υποστηριζόμενα methods

ΌνομαΠαράμετροι (in/out)Παράδειγμα
Procedure Print

1. PrinterName : String;  “όνομα εκτυπωτή”
2. ShowUI: boolean  “να ανοίξει ή οθόνη με τα κριτήρια”

Εκτελεί το report και στέλνει προς εκτύπωση.
r.print(“printer1”, false);

Procedure ShowhasUI: boolean “να ανοίξει ή οθόνη με τα κριτήρια”

Εκτελεί το report και το εμφανίζει στην οθόνη
r1.show(true);

Procedure LoadReportID: variant “το guid του report που θα φορτώσει.”

Φορτώνει ένα report
r.load(“{11100000-0000-0000-0000-000011100141}”)

Procedure Load2

1. ReportID: variant  “το guid του report που θα φορτώσει.”
2. ReportLayOut: variant “το guid του layout που θα φορτώσει”

Φορτώνει ένα report με τροποποιημένο layout.
r.load2(“{00000000-0000-0000-0000-00000000014D}”, “{12340001-0120-0000-0000-000000000000}”)

Procedure SendToDeviceDeviceID: integer

Στέλνει ένα report σε Device.
r.SendToDevice(12);

Function GetSelectQuery

qname: string “όνομα query”
result: TauxSelectQuery

Επιστρέφει ώς TauxSelectQuery το dataset για οποιοδήποτε query επιστρεφει δεδομένα.
Είναι έγκυρο μετά το event OnAfterExecQueries.
r.GetSelectQuery(“q1”);

Function GetUIMemDataSet

Name: string: “όνομα του control που περιέχει το sql”
result: TMemoryDataSet

Επιστρέφει ώς TMemoryDataSet το dataset που δημιουργεί η φόρμα παραμέτρων για τη λειτουργία των lookup, multilookup control.
Είναι έγκυρο μετά το event OnAfterShowUI.
r.GetUIMemDataSet(“whlfrom”);

Υποστηριζόμενα Events

PropertyΠαράμετροιΠαράδειγμα
OnBeforeShowUI ΠρIν την κλήση της οθόνης παραμέτρων.
OnAfterShowUI Mετά την κλήση της οθόνης παραμέτρων.
OnBeforeExecQueries Πρiν την διαδικασία εκτέλεσης των queries (data import)
OnAfterExecQueries Mετά την διαδικασία εκτέλεσης των queries (data import)
OnBeforeBuildNativeReport Πριν αρχίσει η κατασκευή του report.
OnParamsRowValidaton Όταν χρειαστεί να αποθηκευτούν οι παράμετροι που έχει αλλάξει ο χρήστης (αν δεν αλλάξει δεν καλείται).
OnParamsFieldValidate

1. param: string; “όνομα παραμέτρου”
2. oldValue: variant; “προηγούμενη τιμή”
3. var NewValue: variant “νέα τιμή” μπορεί να αλλαχθεί από το script

‘Όταν ο χρήστης αλλάξει το περιεχόμενο της παραμέτρου τότε καλείται το OnParamsFieldValidate αν το script θέλει να ακυρώσει τη μεταβολή εκτελεί DoError.
OnParamsFieldChange

1. param: string; “όνομα παραμέτρου”
2. oldValue: variant; “προηγούμενη τιμή”
3. var NewValue: variant “νέα τιμή”

Καλείται όταν το περιεχόμενο αλλάξει, το script μπορεί να κάνει κάτι λόγω της αλλαγής αυτής.
OnParamsBeforeOpenLookUpparam: string; “όνομα παραμέτρου”Όταν το control της φόρμας παραμέτρων είναι lookup, multiLookup τότε πριν ανοίξει η φόρμα επιλογής εκτελείται το event.
OnUIFormMiniBrowserRequestEx

1.param: string; “όνομα παραμέτρου”
2.mbri: TminiBrowserRequestInfo; “βλέπε κλάση TminiBrowserRequestInf”

Όταν το control της φόρμας παραμέτρων είναι miniBrowser τότε εκτελείται το event. Η λειτουργία  του είναι ίδια όπως και στην περίπτωση της φόρμας.

To scripting είναι διαθέσιμο από το σχεδιασμό της ενότητας, πατώντας εκτέλεση εμφανίζεται η φόρμα παραμέτρων. Στο κάτω μέρος της φόρμας εμφανίζεται ένα κουμπί “debug/edit scripting” το οποίο μας οδηγεί στην οθόνη με τον editor & debugger. Χρειάζεται προσοχή διότι παρά του ότι η συγγραφή και η εκτέλεση του script γίνεται σε αυτή την οντότητα (report,action, boimport) η αποθήκευση γίνεται στην οντότητα που είναι στην οθόνη σχεδιασμού.
Στην οθόνη σχεδιασμού ο αρχικός κόμβος του δέντρου (οντότητα report,action, boimport) έχει μια ιδιότητα ScriptActive η οποία γίνεται αυτόματα True/False ανάλογα την τελευταία κατάσταση που βρισκόταν το script στον editor πριν την αποθήκευση. Ο χρήστης μπορεί να αλλάξει με το χέρι την ιδιότητα ScriptActive ανά πάσα στιγμή και να ενεργοποιήσει ή όχι το script.
Tο method CreateReport2 της κλάσης TPRG μπορεί να δημιουργήσουμε report object.

Was this article helpful to you? Yes 2 No

How can we help?