Το scripting είναι διαθέσιμο στις για τις ενότητες report, action, boImport και έχει σκοπό να δώσει σε αυτές τις ενότητες ευελιξία και ευκολία στη λήψη των παραμέτρων από το χρήστη αλλά και επιπλέον δυνατότητες και ευκολία υλοποίησης λειτουργιών σε όλα τα σημεία της ενότητας που θα χρησιμοποιηθεί. Παρακάτω παρατίθενται ένα πλήθος properties events και methods που αφορούν τις εν λόγο ενότητες.
Υποστηριζόμενα Properties
Property | Παράμετροι (index / get/set) | Παράδειγμα |
---|---|---|
ParamValue | parameter name: string get/set :variant |
Θέτει/επιστρέφει το περιεχόμενο μιας παραμέτρου. |
SelectedDevice | get/set integer |
Θέτει/επιστρέφει την επιλεγμένη συσκευή. |
ParamEnabled | PrmName: string; “όνομα παραμέτρου” get/set : Boolean |
Θέτει/επιστρέφει την ιδιότητα “Enabled” για το control που αφορά την παράμετρο PrmName |
ParamReadOnly | PrmName: string; “όνομα παραμέτρου” get/set : Boolean |
Θέτει/επιστρέφει την ιδιότητα “ReadOnly” για το control που αφορά την παράμετρο PrmName |
Υποστηριζόμενα methods
Όνομα | Παράμετροι (in/out) | Παράδειγμα |
---|---|---|
Procedure Print |
1. PrinterName : String; “όνομα εκτυπωτή” |
Εκτελεί το report και στέλνει προς εκτύπωση. |
Procedure Show | hasUI: boolean “να ανοίξει ή οθόνη με τα κριτήρια” |
Εκτελεί το report και το εμφανίζει στην οθόνη |
Procedure Load | ReportID: variant “το guid του report που θα φορτώσει.” |
Φορτώνει ένα report |
Procedure Load2 |
1. ReportID: variant “το guid του report που θα φορτώσει.” |
Φορτώνει ένα report με τροποποιημένο layout. |
Procedure SendToDevice | DeviceID: integer |
Στέλνει ένα report σε Device. |
Function GetSelectQuery |
qname: string “όνομα query” |
Επιστρέφει ώς TauxSelectQuery το dataset για οποιοδήποτε query επιστρεφει δεδομένα. |
Function GetUIMemDataSet |
Name: string: “όνομα του control που περιέχει το sql” |
Επιστρέφει ώς TMemoryDataSet το dataset που δημιουργεί η φόρμα παραμέτρων για τη λειτουργία των lookup, multilookup control. |
Υποστηριζόμενα Events
Property | Παράμετροι | Παράδειγμα |
---|---|---|
OnBeforeShowUI | ΠρIν την κλήση της οθόνης παραμέτρων. | |
OnAfterShowUI | Mετά την κλήση της οθόνης παραμέτρων. | |
OnBeforeExecQueries | Πρiν την διαδικασία εκτέλεσης των queries (data import) | |
OnAfterExecQueries | Mετά την διαδικασία εκτέλεσης των queries (data import) | |
OnBeforeBuildNativeReport | Πριν αρχίσει η κατασκευή του report. | |
OnParamsRowValidaton | Όταν χρειαστεί να αποθηκευτούν οι παράμετροι που έχει αλλάξει ο χρήστης (αν δεν αλλάξει δεν καλείται). | |
OnParamsFieldValidate |
1. param: string; “όνομα παραμέτρου” | ‘Όταν ο χρήστης αλλάξει το περιεχόμενο της παραμέτρου τότε καλείται το OnParamsFieldValidate αν το script θέλει να ακυρώσει τη μεταβολή εκτελεί DoError. |
OnParamsFieldChange |
1. param: string; “όνομα παραμέτρου” | Καλείται όταν το περιεχόμενο αλλάξει, το script μπορεί να κάνει κάτι λόγω της αλλαγής αυτής. |
OnParamsBeforeOpenLookUp | param: string; “όνομα παραμέτρου” | Όταν το control της φόρμας παραμέτρων είναι lookup, multiLookup τότε πριν ανοίξει η φόρμα επιλογής εκτελείται το event. |
OnUIFormMiniBrowserRequestEx |
1.param: string; “όνομα παραμέτρου” |
Όταν το 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.