Business Object Scripting

Business Object Scripting

Business Object Scripting

Η επιλογή Client Script είναι διαθέσιμη σε όλες τις Master φόρμες του προγράμματος από το μενού System -> Scripting ->Client Script

Functions And Procedures
ΌνομαΠεριγραφήΠαράμετροιΠαράδειγμα
GetDataSetΕπιστρέφει την τιμή true αν βρει το dataset για το δοθέν tblAlias και βάζει το dataset στην παράμετρο DStblAlias :string [το alias του πίνακα]
DS :TaClientDataSet [το dataset που επιστρέφεται]
var
DS :TaClientDataset;
Begin
BOL.GetDataset('IteTrn',DS);
End.
DataSetByNameΕπιστρέφει ένα dataset για το δοθέν tblAliastblAlias :string [το alias του πίνακα]
Var
DS: TaClientDataset;
Begin
DS := BOL.DatasetByName('IteTrn');
End.
ErrorMessageΕμφάνιση μηνύματος λάθουςmess :string [Το μήνυμα που θα εμφανιστεί]
BOL.ErrorMessage('This is an error');
WarningMessageΕμφάνιση προειδοποιητικού μηνύματοςmess :string [Το μήνυμα που θα εμφανιστεί]
BOL.WarningMessage('This is a warning');
SaveΣώζει ένα ΒΟ και επιστρέφει την τιμή της εγγραφής που καταχωρήθηκε
BOL.save;
LoadΦορτώνει ένα ΒΟ με την τρέχουσα εγγραφή
BOL.Load;
LoadKeyΦορτώνει ένα ΒΟ για μια συγκεκριμένη εγγραφήkeyValue :Variant [η τιμή μιας συγκεκριμένης εγγραφής]
BOL.LoadKey(101);
DeleteΔιαγραφή της τρέχουσας εγγραφής του ΒΟ
BOL.Delete;
DeleteKeyΔιαγραφή μιας συγκεκριμένης εγγραφής του BOkeyValue :Variant [η τιμή μιας συγκεκριμένης εγγραφής]
BOL.DeleteKey(102);
CancelΑκύρωση των αλλαγών που έχουν γίνει στην τρέχουσα εγγραφή του ΒΟ
BOL.Cancel;
InsertΕισαγωγή νέας εγγραφής στο ΒΟ
BOL.Insert;
AddMemoryDataSetΠροσθήκη ενός memory dataset στο ΒΟName: String [Το όνομα του memory dayaset]
Sql: String [Το sql query με το οποίο θα γεμίσει δεδομένα το memory dataset]
Var
memDS: TmemoryDataset;
Begin
memDS := BOl.addMemoryDataset('mem1','Select * from puser');
End;
AddDetailTableΠροσθήκη ενός detail πίνακα στο ΒΟTableName:string [Το όνομα του πίνακα]
TableAlias:string [το alias του πίνακα]
MasterAlias:string [το alias name του master πίνακα]
MasterFields:string [το πεδίο “κλειδ锨του master πίνακα]
KeyFields:string [το πεδίο σύνδεσης με τον master πίνακα]
LinkField:string [το πεδίο σύνδεσης με τον master πίνακα]
UpDateFields:string [τα πεδία “κλειδία” με τα οποία γίνεται ενημέρωση του detail πίνακα]
WhereSQL:string [extra where statement]
OrderByFields :string [πεδία για ταξινόμηση]
Begin
BOL.AddDetailTable('ItemTrn','IteTrn','Dtrn','TrnDocID',TrnDocID','id",'','');
End.
AddJoinTableΠροσθήκη ενός join πίνακα στο ΒΟOwnerTable: string [Το alias του πίνακα που υπάρχει στο ΒΟ και με τον οποίο θέλουμε να join]
TableName: string [Το όνομα του πίνακα]
TableAlias: string [το alias name του πίνακα]
TableFields: string [το πεδίο με το οποίο θα γίνει join]
ΚeyFields: string [το join πεδίο με το master πίνακα]
ExtraWhere: string [extra where statement]
FlagField: string []
JoinType: TJoinType [jtleft,jtinner,jtright]
Begin
BOL.AddJoinTable('DTRN','ItemTrn','IteTrn','TrnDocID','ID','','',jtinner);
End.
AddJoinFieldΠροσθήκη πεδίου σε join tableOwnerTable:string [ο alias του πίνακα που υπάρχει στο ΒΟ και με τον οποίο θέλουμε να join]
JoinTable:string [το alias του join πίνακα]
FieldName:string [το όνομα του πεδίου]
FieldAlias :string [το alias name του πεδίου]
UseTableAlias :boolean [αν θα γίνει χρήση του table alias]
Begin
BOL.AddJoinField('DTRN','ITETRN','newfld','newfld',True);
End

Στον πίνακα που ακολουθεί περιγράφονται κάποια από τα event του BOLink. Συνήθως έχουμε την εξής σύνταξη BOL.eventName = ‘procname’, όπου procname είναι μία procedure μέσα στην οποία γράφουμε τον κώδικα που θέλουμε να εκτελέσουμε στο αντίστοιχο event.

Event NameΠεριγραφή
OnBeforeInitializeTo event αυτό καλείται πριν απο την αρχικοποίηση του BOLink
OninitializeTo event αυτό αφορά την αρχικοποίηση του BOLink. Στο σημείο αυτό ο χρήστης μπορει να προσθέσει events τα οποία αφορούν προσθήκη custom πινάκων, field validation
OnBeforesaveTo event αυτό καλείται πρίν ξεκινήσει η διαδικασία καταχώρισης μιας εγγραφής.
OnAftersaveΤο event αυτό καλείται αφού έχει ολοκληρωθεί η διαδικασία καταχωρισης μιας εγγραφής.
OnBeforeloadTo event αυτό καλείται πριν από το φόρτωμα μιας εγγραφής
OnAfterloadΤο event αυτό καλείται μετά το φόρτωμα μιας εγγραφής
OnBeforeinsertΤο event αυτό καλείται πριν την εισαγωγή νέας εγγραφής
OnAfterinsertΤο event αυτό καλείται μετά την εισαγωγή νέας εγγραφής
OnBeforedeleteTo event αυτό καλείται πρίν την διαγραφή μιας εγγραφής
OnAfterdeleteΤο event αυτό καλείται μετά τη διαγραφή μιας εγγραφής
OnBeforecancelΤο event αυτό καλείται πριν την ακύρωση των αλλαγών που έχουν γίνει σε μία καταχωρημένη ή σε μια νέα εγγραφή
OnAftercancelΤο event αυτό καλείται μετά την ακύρωση των αλλαγών που έχουν γίνει σε μία καταχωρημένη ή σε μια νέα εγγραφή
OnStatechangeΤο event αυτό καλείται κατά την αλλαγή της κατάστασης στην οποία βρίσκεται το BO Link
OnAfterOpenΤο event αυτό καλείται μετά το άνοιγμα του BO Link
OnCreateExJobΤο event αυτό καλείται κατά τη δημιουργία external job
OnDestroyΤο event αυτό καλείται όταν καταστρέφεται το BO Link
OnExecuteExJobΤο event αυτό καλείται κατά την εκτέλεση ενος external job
OnExJobAfterLoadΤο event αυτό καλείται μετά το φόρτωμα ενός external job
OnExJobAfterSaveΤο event αυτό καλείται μετά την αποθήκευση ενός external job
OnExJobdoLoadΤο event αυτό καλείται κατά το φορτωμα ενός external job
OnExJobBeforeExportΤο event αυτό καλείται πριν από την εξαγωγής ενός external job
OnSrvStartSaveΚατά την κλήση αυτού του event το bolink βρίσκεται μέσα σε transaction και καλείται πριν την καταχώριση της εγγραφής στη βάση δεδομένων
OnSrvBeforeUpdRowΚατά την κλήση αυτού του event το bolink βρίσκεται μέσα σε transaction και καλείται πριν την ενημέρωση της εγγραφής στη βάση δεδομένων
OnSrvAfterUpdRowΚατά την κλήση αυτού του event το bolink βρίσκεται μέσα σε transaction και καλείται μετά την ενημέρωση της εγγραφής στη βάση δεδομένων
OnSrvAfterSaveΚατά την κλήση αυτού του event το bolink βρίσκεται μέσα σε transaction και καλείται μετά την καταχώριση της εγγραφής στη βάση δεδομένων
OnSrvErrorΚατά την κλήση αυτού του event το bolink βρίσκεται μέσα σε transaction και καλείται όταν η βάση δεδομένων επιστρέψει κάποιο λάθος 

Στον παρακάτω πίνακα περιγράφονται events τα οποία έχουν παραμέτρους και έχουν την εξής σύνταξη BOL.EventName(param)=@procname όπου procname είναι μία procedure μέσα στην οποία γράφουμε τον κώδικα που θέλουμε να εκτελέσουμε στο αντίστοιχο events

ΌνομαΠεριγραφήΠαράμετροςΠαράδειγμα
OnFldValidateΧρησιμοποιείται για τον έλεγχο της τιμής του πεδίου που προκαλείται από τη αλλαγή τιμής τουTField
Bol.OnFldValidate(ItemTrnDS.FieldByName('ItemId')) := @ItemIDValidate;
OnFldChangeΧρησιμοποιείται για τις ενέργειες που θα γίνουν με την αλλαγή της τιμής του πεδίουTField
Bol.OnFldChange(ItemTrnDS.FieldByName('ItemId')) := @ItemIDChange;
OnRowValidationΧρησιμοποιείται για την ορθότητα των δεδομένων της γραμμής του dataset και καλείται μετά από
το BeforePost. Για να αποτρέψουμε την αποδοχή των τιμών και να σταματήσουμε τη συνέχεια
της τρέχουσας διαδικασίας εκτελούμε το method Raise Exception
TaClientDataSet
Bol.OnRowValidation(ItemTrnDS):=@OnRowValidation;
OnBeforePostΧρησιμοποιείται για ενέργειες που θα γίνουν πριν από την αποθήκευση της γραμμής του datasetTaClientDataSet
Bol.OnBeforePost(ItemTrnDS):=@OnBeforePost
OnInitValuesΧρησιμοποιείται για την απόδοση αρχικών τιμών στα πεδία της γραμμής του datasetTaClientDataSet
Bol.OnInitValues(ItemTrnDS):=@OnInitValues
OnCheckReadOnlyΧρησιμοποιείται για τον έλεγχο των readonly πεδίων του datasetTaClientDataSet
Bol.OnCheckReadOnly(ItemTrnDS):=@OncheckReadOnly
Was this article helpful to you? Yes 2 No 3

How can we help?