Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Softone InProcess DLL Customization

Για να κληθεί από την εφαρμογή ένα DLL θα πρέπει να υπάρχει η σχετική δήλωση (ADDON=.DLL) στο [APPLICATION] section στο ανάλογο XCO.

Παράδειγμα XCO.

[APPLICATION]
MPR=Menu
NAME=Softone ERP
SN=11100000223803
ADDON=MYDLL.DLL


[DBCONNECT]
TYPE=MSSQL
DATABASE=softone
SERVER=soft1db1
USER=sa
PASSWORD=mypassword


Κατά το Login άμεσα αρχικοποιείτε το DLL και καλεί τη μέθοδο Initialize με Mode=0 και κενές τις άλλες παραμέτρους της. Το DLL σε αυτή την περίπτωση επιστρέφει τα ονόματα των Object για τα οποία ζητά από την εφαρμογή να το καλέσει.

Στη συνέχεια για κάθε Object που ανοίγει και το όνομα του είχε δηλωθεί στην πρώτη κλήση, ξανακαλείται η Initialize με παραμέτρους :
• Mode=1
• Το όνομα του Object που την κάλεσε.
• Το Object interface Object που την κάλεσε.
• User Pointer. (Επιστρέφει ένα Pointer)

Η τιμή που θα επιστρέψει η User Pointer παράμετρος καθώς και το αποτέλεσμα που θα επιστρέψει η function, είναι και οι παράμετροι ( UserPointer, UserData) με τις οποίες θα κληθούν τα Events. Σε αυτήν της την κλήση επίσης θα πρέπει να δηλώνονται και οι μέθοδοι που θα κληθούν ανά EVENT με την χρήση της ρουτίνας AddMethod του Object interface.

Κατά το κλείσιμο του Object ξανακαλείται η Initialize με παραμέτρους :
• Mode=2
• Το όνομα του Object που την κάλεσε.
• Null
• User Pointer. (Ο ίδιος που δωθηκε στην κλήση με mode=1 )


ΠΡΟΣΟΧΗ.
Σε κάθε κλήση της Initialize το Object interface είναι διαφορετικό και αφορά το Object του οποίου το όνομα είναι πρώτη παράμετρος.
Η μέθοδος Initialize είναι η μόνη που θα πρέπει να γίνεται Export από το DLL. Θα πρέπει επίσης όπως και όλες οι άλλες μέθοδοι πού θα κληθούν από την εφαρμογή να είναι δηλωμένη σαν STDCALL. Η μορφή της σε Delphi είναι η ακόλουθη.

Function Initialize (Mode: Integer; Const ObjectName: OleVariant; Const ObjectIntf: OleVariant; Var UserPointer: Pointer): OleVariant; stdcall;


Με την χρήση της ρουτίνας AddMethod του Object interface δηλώνονται οι μέθοδοι που θα κληθούν ανά EVENT. Η AddMethod έχει δύο παραμέτρους :
• Το όνομα του Event. (Τα ονόματα των events υπάρχουν στο HELP αλλά και στο ανάλογο κείμενο παραμετροποίησης)
• Την διεύθυνση της μεθόδου που θα κληθεί γι’ αυτό το EVENT.

Η μορφή event μεθόδου σε Delphi είναι η ακόλουθη.

Function CustPost (UserPointer: Pointer; Const UserData: OleVariant): OleVariant; stdcall;
Τέλος οι ίδιες μέθοδοι που υπάρχουν διαθέσιμες για την συγγραφή VB Script και Java Script χρησιμοποιούνται και εδώ με τον ίδιο ακριβός τρόπο.(Περιγράφεται στο HELP αλλά και στο ανάλογο κείμενο παραμετροποίησης).
Η μόνη διαφορά υπάρχει στον τρόπο χρήσης των TABLES του OBJECT. Ενώ στο VB Script και Java Script είναι άμεσα διαθέσιμα όλα, εδώ για να χρησιμοποιήσουμε κάποιο TABLE θα πρέπει πρώτα να το «καλέσουμε» με την με την χρήση της ρουτίνας FINDTABLE του Object interface.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages