
Από την έκδοση 24.01.11 προστέθηκε μια νέα επιλογή «Presenter». Οι Μέθοδοι (Method) διαφέρουν από αυτές ενός κλασικού Presenter καθώς πλέον δεν δίνεται DataObject για να διαχειριστείτε αλλά δεδομένα, μέσω του DataSet των πινάκων (Data Table) και των γραμμών δεδομένων (Data Row) που έχουν γίνει Bind με την εκάστοτε φόρμα. Κλασικά χωρίζονται σε Client και Server Method. Η πρόσβαση στην κάθε παράμετρο που έρχεται σαν όρισμα γίνεται μέσω της:
sc$Method.Parameters[<Όνομα Παραμέτρου>];
Παράδειγμα: var dataSet = sc$Method.Parameters["dataSet"];

Εικόνα 22
Methods
DoColumnChanged(dataSet, table, columnName, rowNumber, value, oldValue)
Ενεργοποιείται με κάθε αλλαγή που προκαλείται στα πεδία του DataSet. Θα πρέπει σε κάθε περίπτωση να γίνεται έλεγχος για το ποιο πεδίο σε ποιόν πίνακα άλλαξε τιμή προκειμένου να καθορίσετε τις επόμενες ενέργειες.
Παράμετροι:
- dataSet (DataSet) . To DataSet object
- table (DataTable) . DataTable Object
- columnName (String). Το όνομα του πεδίου «Στήλης» που άλλαξε τιμή
- row (dataRow) . Το DataRow object της γραμμής που επεξεργάζεστε.
- value (Object). Η τρέχουσα τιμή του πεδίου μετά την αλλαγή
- oldValue (Object). Η παλιά τιμή που είχε το πεδίο πριν την αλλαγή.
Παράδειγμα:
function main() {
var dataSet = sc$Method.Parameters["dataSet"];
var table = sc$Method.Parameters["table"];
var row = sc$Method.Parameters["row"];
var columnName = sc$Method.Parameters["columnName"];
var value = sc$Method.Parameters["value"];
var oldValue = sc$Method.Parameters["oldValue"];
if ( table.TableName == "USUNIQUECSTMITEMS" ) {
if ( columnName == "USCSTMID" ) { sc$UI.Dialogs.ShowInformation("ID Πελάτη",value);}
if ( columnName == "USITEMID" ) { sc$UI.Dialogs.ShowInformation("ID Είδους",value); }
}
}
Δεν επιστρέφεται καμία τιμή (Void)
DoColumnChangedInLine(dataSet, table, columnName, rowNumber, value, oldValue)
Παρόμοια με την DoColumnChanged με την διαφορά ότι επεξεργάζεται όλες τις αλλαγές σειριακά. Θα πρέπει να προσέξετε ιδιαίτερα τον κώδικα σε αυτό το σημείο για να μην υπάρξουν Recursive calls.
Παράμετροι:
- dataSet (DataSet) . To DataSet object
- table (DataTable) . DataTable Object
- columnName (String). Το όνομα του πεδίου «Στήλης» που άλλαξε τιμή
- row (dataRow) . Το DataRow object της γραμμής που επεξεργάζεστε.
- value (Object). Η τρέχουσα τιμή του πεδίου μετά την αλλαγή
- oldValue (Object). Η παλιά τιμή που είχε το πεδίο πριν την αλλαγή.
Δεν επιστρέφεται καμία τιμή (Void)
DoTableNewRow(dataSet, table, rowNumber)
Ενεργοποιείται με κάθε προσθήκη DataRow σε Grid.
Παράμετροι:
- dataSet (DataSet) . To DataSet object
- table (DataTable) . DataTable Object
- row (dataRow) . Το DataRow object της γραμμής που επεξεργάζεστε.
Παράδειγμα:
function main() {
var dataSet = sc$Method.Parameters["dataSet"];
var table = sc$Method.Parameters["table"];
var row = sc$Method.Parameters["row"];
if ( table.TableName == "USUNIQUECSTMITEMS" ) {
κώδικας …
}
}
Σημείωση: Σε περίπτωση που το Custom Object συνδεθεί ως Προσαρμοσμένο Detail σε οντότητα της εφαρμογής τότε δεν θα εκτελεστεί ο κώδικας καθώς τον έλεγχο θα αναλάβει η εκάστοτε φόρμα οντότητας. Αν χρειάζεται να γίνει Initialization πεδίων θα πρέπει να γραφεί extra Κώδικας.