MOB-ImplementationGuide-5 2
ESMobile Οδηγός υλοποίησης & εξατομίκευσης εφαρμογής![]()
![]()
Entersoft Business Suite® | Entersoft CRM® | Entersoft Mobile Suite®
Τεχνικό εγχειρίδιο
Ταυτότητα
Έκδοση κειμένου 4.0
Έκδοση λογισμικού ESMobile 5.2
Τελ. ενημέρωση Δεκέμβριος 2022
Copyright
© Copyright 2011 Entersoft A.E. Με την επιφύλαξη όλων των νόμιμων δικαιωμάτων.
Δεν επιτρέπεται η αναδημοσίευση ή μετάδοση με οποιαδήποτε μορφή και για οποιοδήποτε λόγο μέρους ή όλου του παρόντος εγχειριδίου, χωρίς τη ρητή άδεια της Entersoft Α.Ε. Όσον αφορά το περιεχόμενο του παρόντος…
- Μπορεί να μεταβληθεί οποιαδήποτε στιγμή.
- Εξυπηρετεί αποκλειστικά πληροφοριακούς σκοπούς.
- Δεν παρέχεται εγγύηση για την ύπαρξη τυχόν λαθών ή για τη λανθασμένη χρήση ή για μη επιθυμητά αποτελέσματα από τη χρήση των προτεινόμενων στο παρόν διαδικασιών.
Περιεχόμενα
- 1 Εισαγωγή
- 2 Οθόνη επισκόπησης (ListForm)
- 3 Οθόνη φωτο-κατάλογος (SFListForm)
- 4 Οθόνες λίστα επιλογής
- 5 Data entry οθόνες
- 5.1 Master οντότητα (EditForm)
- 5.2 Master-Detail οντότητα (DocForm)
- 5.2.1 Δεδομένα
- 5.2.2 Μορφή εμφάνισης / Επικεφαλίδα
- 5.2.3 Μορφή εμφάνισης / Περιεχόμενα
- 5.2.3.1 Θέση εμφάνισης στοιχείου
- 5.2.3.2 Στήλη εικόνας (ImageCell)
- 5.2.3.3 Standard πλήκτρα ενεργειών
- 5.2.3.4 Διαμόρφωση επιλεγμένης γραμμής
- 5.2.3.5 Ιδιότητες μορφοποίησης στοιχείου
- 5.2.3.6 Ιδιότητες επεξεργασίας στοιχείου (LineEditing)
- 5.2.3.7 Μορφοποίηση βάσει συνθήκης (Binding)
- 5.2.3.8 Περιοχή τίτλων
- 5.2.3.9 Περιοχή ομαδοποίησης
- 5.2.3.10 Περιοχή συνόλων
- 5.2.4 Μορφή εμφάνισης / Λοιπές περιοχές
- 5.2.5 Advanced λειτουργικότητα
- 5.3 Named εργασία (NamedTask)
- 6 Οθόνες πληροφόρησης
- 7 Ειδικές οθόνες
- 8 Business Rules
- 9 Εξατομίκευση εφαρμογής
- 10 Ιδέες & Λύσεις
- 10.1 Περιβάλλον εργασίας
- 10.2 Οθόνη τύπου DocForm
- 10.2.1 Ομαδοποίηση γραμμών
- 10.2.2 Ταξινόμηση γραμμών
- 10.2.3 Μαζική μεταβολή στοιχείου γραμμής
- 10.2.4 Επιμερισμός αξίας έκπτωσης
- 10.2.5 Συνολικό % έκπτωσης γραμμής
- 10.2.6 Υπέρβαση υπολοίπου
- 10.2.7 Γραμμή τύπου δώρο
- 10.2.8 Πλήκτρο μετατροπής τύπου είσπραξης
- 10.2.9 Αυτόματη γένεση εργασίας
- 10.2.10 Αυτόματη γένεση παραστατικού
- 10.2.11 Αυτόματη εισαγωγή γραμμής ανάλυσης
- 10.2.12 Διάσπαση παραστατικού
- 10.3 Online εταιρική πολιτική
- 11 Παραρτήματα
Εισαγωγή
Σκοπός του παρόντος εγχειριδίου είναι να δώσει όλες τις απαραίτητες τεχνικές πληροφορίες σε εξειδικευμένους χρήστες που θα θελήσουν να επέμβουν στην προκαθορισμένη λειτουργικότητα της εφαρμογής Entersoft Mobile Suite (ESMobile) Συνοπτικά, οι επιμέρους στόχοι του είναι:
Η παροχή αναλυτικών οδηγιών υλοποίησης των επιμέρους οθονών της ESMobile εφαρμογής. Σημειώνουμε εδώ ότι, οι οθόνες που είτε απλά τροποποιούνται είτε υλοποιούνται εξ ολοκλήρου σε επίπεδο εξατομίκευσης της ESMobile εφαρμογής χαρακτηρίζονται ως custom και επισημαίνονται αυτόματα με έναν αστερίσκο.
Η παροχή πληροφοριών που αφορούν στις δυνατότητες επέκτασης του σχήματος ή της λειτουργικότητας σε επίπεδο εξατομίκευσης της ESMobile εφαρμογής.
Προϋποθέσεις για τη χρήση της ESMobile εφαρμογής και του παρόντος εγχειριδίου είναι:
η γνώση του περιβάλλοντος & του τρόπου χρήσης της εκάστοτε κινητής συσκευής.
η γνώση όλων των απαραίτητων ενεργειών εγκατάστασης και ρύθμισης του IIS & Application server
το σωστό στήσιμο του απαιτούμενου εξοπλισμού
Το παρόν εγχειρίδιο αφορά σε όλες τις ESMobile πλατφόρμες (iOS, UWP, Android). Τα σημεία που κατ’ εξαίρεση αφορούν σε συγκεκριμένη ESMobile πλατφόρμα, επισημαίνονται ανάλογα.
Τα επιμέρους παραδείγματα που αναπτύσσονται στο παρόν εγχειρίδιο είναι διαθέσιμα προς εγκατάσταση μέσω του εργαλείου mPortal.
Σύμβολα
| iOS πλατφόρμα | |
|---|---|
| Universal Windows (UWP) πλατφόρμα | |
| Android πλατφόρμα |
Οθόνη επισκόπησης (ListForm)
Η οθόνη επισκόπησης (ListForm) στην πιο απλή της μορφή χρησιμοποιείται για την εμφάνιση δεδομένων υπό μορφή λίστας. Μέσω όμως του κατάλληλου ανά περίπτωση «προσαρτήματος», δίνεται η δυνατότητα επέκτασης της ListForm οθόνης με τα παρακάτω χαρακτηριστικά:
Εμφάνιση των αριθμητικών δεδομένων της λίστας υπό μορφή Γραφήματος.
Μετάβαση, εστιάζοντας επί εγγραφής της λίστας, σε Dashboard οθόνη. Μέσω της Dashboard οθόνης παρέχεται η δυνατότητα επαύξησης της πληροφορίας που εμφανίζει η ListForm οθόνη αλλά και άμεσης εκτέλεσης μιας σειράς ενεργειών.
Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου ListForm είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου ListFormCreatorCommand. |
| Φόρμα | Για την υλοποίηση της μορφής εμφάνισης της οθόνης στην απλή της μορφή απαιτείται η χρήση αρχείου τύπου AdvancedList.xml. Η υλοποίηση του προσαρτήματος που αφορά στην οθόνη Γραφήματος γίνεται σε αρχείο τύπου ChartParams.xml ενώ η υλοποίηση του προσαρτήματος που αφορά στην Dashboard οθόνη σε αρχείο τύπου ExtraLayoutParams.xml. |
Στη συνέχεια της ενότητας αυτής, χρησιμοποιώντας συγκεκριμένο παράδειγμα, θα δώσουμε αναλυτικές οδηγίες υλοποίησης οθόνης τύπου ListForm.
Δεδομένα
Παράδειγμα SampleListForm
Ο ορισμός των δεδομένων της ListForm οθόνης καθώς και η σύνδεση εντολής-φόρμας γίνεται μέσω ανάλογης ρύθμισης των επιμέρους ιδιοτήτων του αρχείου της εντολής. Το αρχείο της εντολής θα πρέπει να βρίσκεται στον υπό-φάκελο Commands της περιοχής ESConfig ή CSConfig. Ιδιαίτερη προσοχή θα πρέπει να δοθεί ώστε το όνομα του αρχείου της εντολής να ταυτίζεται με το όνομα της εντολής μέσα στο αρχείο.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια οθόνη η οποία να εμφανίζει τις διευθύνσεις πελατών υπό μορφή λίστας. Η λίστα αυτή θέλουμε να πληροί τις παρακάτω βασικές προδιαγραφές:
Να περιλαμβάνει μόνο τους ενεργούς πελάτες.
Να εμφανίζει πληροφορίες από τον πελάτη & τις διευθύνσεις του.
Να είναι ταξινομημένη αλφαβητικά βάσει της κολόνας «Επωνυμία» προσώπου.
Έστω επίσης ότι η φόρμα της οθόνης αυτής είναι η SampleListForm
| Ιδιότητα | Σχόλιο |
|---|---|
| FormID | Ο φάκελος της περιοχής ESForms ή CSForms στον οποίο βρίσκεται το σχετιζόμενο με την οθόνη AdvancedList αρχείο της φόρμας, για το παράδειγμα μας δηλαδή ο φάκελος SampleListForm. |
| Title | Το λεκτικό που εμφανίζεται ως τίτλος της LisfForm οθόνης, για το παράδειγμα μας δηλαδή το λεκτικό «Points of Sales». |
| Filter | Το «στατικό» κριτήριο φιλτραρίσματος των δεδομένων, για το παράδειγμα μας δηλαδή η κολόνα ta.Inactive. |
| BaseSelect | Το select query που καθορίζει τα δεδομένα προς εμφάνιση. |
| ESQueryID | Το όνομα του ανεξάρτητου αρχείου ορισμού του base select query. Συμπληρώνεται μόνο στην περίπτωση που, για λόγους επαναχρησιμοποίησης του select query, έχει επιλεγεί ο ορισμός του σε ανεξάρτητο αρχείο. Σε μια τέτοια περίπτωση, θα πρέπει η ιδιότητα BaseSelect να έχει κενό περιεχόμενο. Σημειώνουμε εδώ ότι, το ανεξάρτητο select query αρχείο θα πρέπει να βρίσκεται στον υπό-φάκελο Queries της περιοχής ESConfig ή CSConfig. |
| SearchPanelFilter | Τα εναλλακτικά κριτήρια αναζήτησης. |
| SearchPanelID | Το όνομα του ανεξάρτητου αρχείου ορισμού των εναλλακτικών κριτηρίων αναζήτησης. Συμπληρώνεται μόνο στην περίπτωση που, για λόγους επαναχρησιμοποίησης των κριτηρίων αναζήτησης, έχει επιλεγεί ο ορισμός τους σε ανεξάρτητο αρχείο. Σε μια τέτοια περίπτωση, θα πρέπει η ιδιότητα SearchPanelFilter να έχει κενό περιεχόμενο. Σημειώνουμε εδώ ότι, το ανεξάρτητο αρχείο κριτηρίων θα πρέπει να βρίσκεται στον υπό-φάκελο SearchPanels της περιοχής ESConfig ή CSConfig. |
| LoadDataOnOpenForm | Άμεση, με την κλήση της οθόνης, εμφάνιση των δεδομένων (true) ή εμφάνιση-ανανέωση των δεδομένων μετά από συμπλήρωση των κριτηρίων αναζήτησης (false). Προτείνεται, σε περιπτώσεις λίστας με μεγάλο πλήθος εγγραφών, να δηλώνεται η τιμή false, έτσι ώστε αφενός η εμφάνιση εγγραφών να γίνεται μόνο μετά από συμπλήρωση των κριτηρίων αναζήτησης και αφετέρου η διαγραφή του περιεχομένου των κριτηρίων αναζήτησης να μην προκαλεί ταυτόχρονα και την ανανέωση των εγγραφών της λίστας. |
| CacheSearchPanel | Διατήρηση του περιεχομένου των κριτηρίων αναζήτησης εγγραφών (true) ή εκκαθάριση τους κατά το κλείσιμο της οθόνης (false). |
| OrderBy | Το «στατικό» κριτήριο ταξινόμησης των δεδομένων, για το παράδειγμα μας δηλαδή η κολόνα p.Name. |
Ταξινόμηση
Παράδειγμα SampleListForm
Η δήλωση των εναλλακτικών κριτηρίων ταξινόμησης μιας λίστας εγγραφών γίνεται στο αρχείο της εντολής και μέσω κατάλληλης ρύθμισης της ιδιότητας SortBy. Από τη στιγμή που στην εντολή έχουν δηλωθεί εναλλακτικά κριτήρια ταξινόμησης, στο πάνω-δεξιά μέρος της οθόνης εμφανίζεται το πλήκτρο
-Ταξινόμηση. Μέσω του πλήκτρου αυτού δίνεται η δυνατότητα εναλλαγής μεταξύ των διαθέσιμων κριτηρίων. Προτείνεται, στην περίπτωση που επιλεγεί η υλοποίηση εναλλακτικών κριτηρίων ταξινόμησης, να δηλωθεί και το στατικό κριτήριο ταξινόμησης ως ένα από αυτά.
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες των εναλλακτικών κριτηρίων ταξινόμησης ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| Caption | Το λεκτικό που εμφανίζεται ως τίτλος του κριτηρίου. |
| ESCaptionID | Αφορά αποκλειστικά στη διαδικασία μετάφρασης του προϊόντος (Translation key). |
| Expression | Τα πεδία – φορά ταξινόμησης της λίστας εγγραφών. |
| Default | Το κριτήριο στο οποίο δηλώνεται η τιμή True, αποτελεί το προτεινόμενο κριτήριο ταξινόμησης της λίστας εγγραφών. Η δήλωση αυτή υπερισχύει πιθανής δήλωσης στην ιδιότητα OrderBy της εντολής. |
Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε την ListForm οθόνη μας έτσι ώστε, πέρα από την ταξινόμηση βάσει της κολόνας «Επωνυμία» προσώπου, να υπάρχει και η δυνατότητα αύξουσας ή φθίνουσας ταξινόμησης βάσει της κολόνας «ABC κλάση» πελάτη διατηρώντας όμως ως προτεινόμενο κριτήριο αυτό της Επωνυμίας προσώπου.
Αναζήτηση
Παράδειγμα SampleSearchPanel
Η δήλωση των εναλλακτικών κριτηρίων αναζήτησης εγγραφών μιας λίστας γίνεται στο αρχείο της εντολής και μέσω κατάλληλης ρύθμισης της ιδιότητας SearchPanelFilter ή της ιδιότητας SearchPanelID.
Ο τρόπος ορισμού και τα χαρακτηριστικά ενός κριτηρίου αναζήτησης διαφοροποιούνται ανάλογα με τον τύπο της κολόνας στην οποία θα εφαρμοστεί το κριτήριο. Οι διαθέσιμοι τύποι κριτηρίων είναι: ColumnNames, FieldChooser, DateField, DropDown, Autocomplete & Boolean. Σημειώνουμε εδώ ότι, στο κάτω-δεξιά μέρος της οθόνης εναλλακτικών κριτηρίων προστίθεται αυτόματα το πλήκτρο «Αφαίρεση φίλτρων». Πατώντας το πλήκτρο αυτό γίνεται άμεση επαναφορά του περιεχομένου των επιμέρους κριτηρίων αναζήτησης στην αρχική τους τιμή.
ColumnNames
Αναφέρεται σε κολόνα τύπου string και είναι πληκτρολογούμενο. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του κριτηρίου ισχύουν τα παρακάτω.
|
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα κριτήριο αναζήτησης των εγγραφών μιας λίστας βάσει της κολόνας «Επωνυμία» προσώπου. |
|---|
FieldChooser
Αναφέρεται σε κολόνα τύπου string και είναι πληκτρολογούμενο. Χρησιμοποιείται για τη συγκέντρωση πολλαπλών κριτηρίων τύπου ColumnNames σε ένα κριτήριο. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του κριτηρίου ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| Id | Ο α/α του κριτηρίου ο οποίος θα πρέπει να είναι μοναδικός. |
| minimumInput | Ισχύουν τα ίδια με αυτά που περιγράφονται στο κριτήριο ColumnNames. Η ιδιότητα αφορά σε όλα τα επιμέρους κριτήρια. |
| title | Το λεκτικό που εμφανίζεται ως τίτλος του κριτηρίου. |
| column | Ισχύουν τα ίδια με αυτά που περιγράφονται στο κριτήριο ColumnNames. |
| soundex | Ισχύουν τα ίδια με αυτά που περιγράφονται στο κριτήριο ColumnNames. |
| Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα κριτήριο αναζήτησης των εγγραφών μιας λίστας επιλέγοντας μια από τις κολόνες «Διεύθυνση» ή «Τηλέφωνο» προσώπου. | |
|---|---|
DateField
Αναφέρεται σε κολόνα τύπου date δίνοντας τη δυνατότητα επιλογής χρονικού διαστήματος. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του κριτηρίου ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο | |
|---|---|---|
| id | Ο α/α του κριτηρίου ο οποίος θα πρέπει να είναι μοναδικός. | |
| title | Το λεκτικό που εμφανίζεται ως τίτλος του κριτηρίου. | |
| column | H κολόνα της εντολής πάνω στην οποία θέλουμε τα εφαρμοστεί το κριτήριο. | |
| defaultselection | Η προτεινόμενη τιμή του κριτηρίου. Οι διαθέσιμες επιλογές είναι: | |
|
|
| Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα κριτήριο αναζήτησης των εγγραφών μιας λίστας βάσει της κολόνας «Ημερομηνία έναρξης» εργασίας. Το κριτήριο να έχει ως προτεινόμενη τιμή το 3-Σήμερα. | |
|---|---|
Boolean
Αναφέρεται σε κολόνα τύπου integer που αποδίδεται πάντα ως δυο τιμές (True / False). Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του κριτηρίου ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| id | Ο α/α του κριτηρίου ο οποίος θα πρέπει να είναι μοναδικός. |
| title | Το λεκτικό που εμφανίζεται ως τίτλος του κριτηρίου. |
| column | H κολόνα της εντολής πάνω στην οποία θέλουμε τα εφαρμοστεί το κριτήριο. Σημειώνουμε εδώ ότι, αν η κολόνα στην οποία θέλουμε να εφαρμοστεί το κριτήριο δεν είναι από τη φύση της τύπου integer, απαιτείται η ανάλογη μετατροπή της σε τύπου integer. |
| truetext | Το λεκτικό που εμφανίζεται όταν πληρείται η συνθήκη του κριτηρίου. |
| truevalue | Η τιμή της κολόνας όταν πληρείται η συνθήκη του κριτηρίου. |
| falsetext | Το λεκτικό που εμφανίζεται όταν δεν πληρείται η συνθήκη του κριτηρίου. |
| falsevalue | Η τιμή της κολόνας όταν δεν πληρείται η συνθήκη του κριτηρίου. |
| nonetext | Το λεκτικό που εμφανίζεται σε περίπτωση μη επιλογής συγκεκριμένης τιμής. |
| defaultvalue | Η προτεινόμενη τιμή του κριτηρίου. |
|
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα κριτήριο αναζήτησης των εγγραφών μιας λίστας βάσει της κολόνας «Τύπος προσώπου». Το κριτήριο να μας δίνει τη δυνατότητα εναλλαγής μεταξύ Νομικού & Φυσικού προσώπου και να έχει ως προτεινόμενη τιμή το 0-Νομικό πρόσωπο. |
|---|
|
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα κριτήριο αναζήτησης των εγγραφών μιας λίστας βάσει της κολόνας «Σχετική εκστρατεία» εργασίας. Το κριτήριο να μας δίνει τη δυνατότητα εναλλαγής μεταξύ των εργασιών εντός & εκτός εκστρατείας και να μη έχει κάποια προτεινόμενη τιμή. Δεδομένου του ότι η κολόνα σχετική εκστρατεία είναι τύπου GID, θα πρέπει να γίνει χρήση της κολόνας ViaCampaign η οποία έχει τον παρακάτω ορισμό cast (
) ViaCampaign |
|---|
DropDown
Αναφέρεται σε κολόνα τύπου string δίνοντας τη δυνατότητα επιλογής από λίστα τιμών. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του κριτηρίου ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| id | Ο α/α του κριτηρίου ο οποίος θα πρέπει να είναι μοναδικός. |
| title | Το λεκτικό που εμφανίζεται ως τίτλος του κριτηρίου. |
| column | H κολόνα της εντολής πάνω στην οποία θέλουμε τα εφαρμοστεί το κριτήριο. |
| default | Το λεκτικό που εμφανίζεται σε περίπτωση μη επιλογής συγκεκριμένης τιμής της λίστας. |
| query |
Το select query που καθορίζει τα δεδομένα προς εμφάνιση στη λίστα επιλογής τιμών. Η σύνταξη θα πρέπει να είναι της μορφής: <query>select ValueMember, DisplayMember1, DisplayMemder2 from...</query> όπου
|
| selectedvalue |
Η προτεινόμενη τιμή του κριτηρίου. Μπορεί να οριστεί μια σταθερή τιμή ή εναλλακτικά να γίνει χρήση ενός select query. Στην περίπτωση αυτή η σύνταξη θα πρέπει να είναι της μορφής: <selectedvalue>query: select ValueMember from...</selectedvalue> |
| binding |
Περιορισμός της λίστας τιμών ενός κριτηρίου βάσει της τιμής που έχει επιλεχθεί σε άλλο κριτήριο. Η σύνταξη θα πρέπει να είναι της μορφής: <binding bindelement="" filter=""/> όπου
|
| Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα κριτήριο αναζήτησης των εγγραφών μιας λίστας βάσει της κολόνας «Τύπος εργασίας». Το κριτήριο να εμφανίζει λίστα επιλογής και να έχει ως προτεινόμενη τιμή τον τύπο εργασίας ES.SAP. |
|---|
Autocomplete
Αναφέρεται σε κολόνα τύπου string δίνοντας τη δυνατότητα αφενός της ανεύρεσης τιμής μέσω πληκτρολόγησης και αφετέρου της πολλαπλής επιλογής τιμών. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του κριτηρίου ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| id | Ο α/α του κριτηρίου ο οποίος θα πρέπει να είναι μοναδικός. |
| title | Το λεκτικό που εμφανίζεται ως τίτλος του κριτηρίου. |
| column | H κολόνα της εντολής πάνω στην οποία θέλουμε τα εφαρμοστεί το κριτήριο. |
| query |
Το select query που καθορίζει τα δεδομένα προς εμφάνιση στη λίστα επιλογής τιμών. Η σύνταξη θα πρέπει να είναι της μορφής: <query>select ValueMember from...</query> όπου ValueMember, η τιμή βάσει της οποίας θα γίνει το φιλτράρισμα των εγγραφών. |
| binding | Ισχύουν τα ίδια με αυτά που περιγράφονται στο κριτήριο DropDown. |
| multiselect | Πολλαπλή επιλογή τιμών (true) ή όχι (false). |
|
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα κριτήριο αναζήτησης των εγγραφών μιας λίστας βάσει της κολόνας «Τύπος εργασίας». Το κριτήριο να εμφανίζει λίστα επιλογής και να έχει τη δυνατότητα πολλαπλής επιλογής τιμών. |
|---|
Μορφή εμφάνισης / Λίστα
Παράδειγμα SampleListForm
Ο ορισμός των στοιχείων εμφάνισης της ListForm οθόνης υπό μορφή λίστας γίνεται μέσω ανάλογης ρύθμισης των επιμέρους ιδιοτήτων του AdvancedList αρχείου της φόρμας. Σημειώνουμε εδώ ότι, η ListForm οθόνη απαρτίζεται από δυο βασικές περιοχές (RowTemplates), την περιοχή δεδομένων (Normal RowTemplate) και την περιοχή τίτλων (Header RowTemplate) όπου οι προδιαγραφές σχεδίασης ανά περιοχή είναι διαφορετικές.
Στη συνέχεια της ενότητας αυτής, χρησιμοποιώντας συγκεκριμένο παράδειγμα, θα δώσουμε αναλυτικές οδηγίες σχεδίασης των περιοχών της ListForm οθόνης.
Περιοχή δεδομένων
Ο ορισμός της περιοχής δεδομένων (Normal RowTemplate) είναι υποχρεωτικός και αφορά πάντα στο πρώτο RowTemplate του AdvancedList αρχείου της φόρμας. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες σε επίπεδο περιοχής (RowTemplate) και σε επίπεδο στοιχείου (Cell) ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο | ||
|---|---|---|---|
| RowTemplate | |||
| Height | Το ύψος της περιοχής. | ||
| Cell-Required | |||
| Type | Η ListForm οθόνη στην απλή της μορφή υποστηρίζει μόνο στοιχεία τύπου TextCell. | ||
| Bounds | Η θέση εμφάνισης του στοιχείου. Τα 4 μεγέθη της ιδιότητας αυτής καθορίζουν αντίστοιχα τα x, y, width, height θεωρώντας ως μέγιστο πλάτος οθόνης το 240. | ||
| CellSource | Η κολόνα της εντολής που αντιστοιχεί στο στοιχείο. | ||
| Cell-Optional | |||
| Name | Ένα όνομα για πληροφοριακούς λόγους. | ||
| Visible | Εμφάνιση (true) ή απόκρυψη (false) του στοιχείου. | ||
| Alignment | Η στοίχιση του περιεχομένου του στοιχείου με διαθέσιμες τιμές: Left, Right & Center. | ||
| FontSize | Το μέγεθος της γραμματοσειράς. | ||
| FontStyle | Το στυλ της γραμματοσειράς με διαθέσιμες τιμές: Regular, Bold & Italic. | ||
| ForeColor | Το χρώμα της γραμματοσειράς με διαθέσιμες τιμές: Black, Blue, Brown, Cyan, Gray, Darkgray, Green, Lightgray, Magenta, Orange, Purple, Red, White & Yellow. | ||
| BackColor | Το χρώμα του φόντου με διαθέσιμες τιμές: Black, Blue, Brown, Gray, Green, Orange, Red, White & Yellow. | ||
| FormatString | Η μορφή εμφάνισης αριθμητικού στοιχείου. Κάποιες κλασικές επιλογές είναι: | ||
| Ορισμός | Αποτέλεσμα | ||
| {0:G} | 16325,62 | ||
| {0:C} | 16.325,62 € | ||
| {0:N} ή {0:#,#.00} | 16.325,62 | ||
| {0:P} ή {0:0.00\%} | 163,26 % | ||
| {0:#,0} | 16326 |
| Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια ListForm οθόνη η οποία να εμφανίζει στην περιοχή δεδομένων τα στοιχεία: Επωνυμία, Διεύθυνση, Τηλέφωνο & ABC κλάση πελάτη. Έστω επίσης ότι θέλουμε να διαφοροποιήσουμε τη μορφή εμφάνισης του στοιχείου Επωνυμία σε σχέση με αυτή των υπόλοιπων στοιχείων. |
|---|
Ειδικά σε iOS πλατφόρμα και για τη σωστή λειτουργία της ListForm οθόνης θα πρέπει στο AdvancedList αρχείο της φόρμας να υπάρχει η ιδιότητα SelectedTemplateIndex. Στην ιδιότητα αυτή θα πρέπει να δηλωθεί ο α/α του Normal RowTemplate, δηλαδή ο α/α 0.
Ειδικά σε iOS πλατφόρμα, παρέχεται η δυνατότητα διαφοροποίησης των στοιχείων και της μορφής εμφάνισης μεταξύ κανονικής (Normal) και επιλεγμένης (Selected) εγγραφής. Οι ρυθμίσεις που απαιτούνται για την αξιοποίηση της δυνατότητας αυτής είναι:
Ορισμός δεύτερου RowTemplate (Selected RowTemplate) στο AdvancedList αρχείο της φόρμας. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για το Normal RowTemplate.
Δήλωση του α/α του Selected RowTemplate στην ιδιότητα SelectedTemplateIndex.
Περιοχή τίτλων
Ο ορισμός της περιοχής τίτλων (Header RowTemplate) είναι προαιρετικός και γίνεται δηλώνοντας τον α/α του RowTemplate στην ιδιότητα TemplateIndex του section HeaderRow και θέτοντας στην ιδιότητα ShowHeader την τιμή true. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες σε επίπεδο περιοχής (RowTemplate) και σε επίπεδο στοιχείου (Cell) της περιοχής ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| RowTemplate | |
| Height | Το ύψος της περιοχής. |
| BackColor | Η δήλωση γίνεται με χρήση του RGB κωδικού χρώματος και θα πρέπει να είναι της μορφής #0,0,0. Αφορά μόνο σε UWP & Android πλατφόρμα. |
| Cell-Required | |
| Type | To Header RowTemplate υποστηρίζει μόνο στοιχεία τύπου TextCell. |
| Bounds | Η θέση εμφάνισης του στοιχείου. Τα 4 μεγέθη της ιδιότητας αυτής καθορίζουν αντίστοιχα τα x, y, width, height θεωρώντας ως μέγιστο πλάτος οθόνης το 240. |
| CellSource | Το λεκτικό που εμφανίζεται ως τίτλος. Η δήλωση θα πρέπει να είναι της μορφής ""Title"" όπου το λεκτικό quot; υποδηλώνει τον χαρακτήρα των εισαγωγικών. |
| Name | Αφορά αποκλειστικά στη διαδικασία μετάφρασης του προϊόντος (Translation key). |
| Cell-Optional | |
| Visible | Εμφάνιση (true) ή απόκρυψη (false) του στοιχείου. |
| Alignment | Η στοίχιση του περιεχομένου του στοιχείου με διαθέσιμες τιμές: Left, Right & Center. |
| FontSize | Το μέγεθος της γραμματοσειράς |
| FontStyle | Το στυλ της γραμματοσειράς με διαθέσιμες τιμές: Regular, Bold & Italic. |
| ForeColor | Το χρώμα της γραμματοσειράς με διαθέσιμες τιμές: Black, Blue, Brown, Cyan, Gray, Darkgray, Green, Lightgray, Magenta, Orange, Purple, Red, White & Yellow. |
| BackColor | Το χρώμα του φόντου με διαθέσιμες τιμές: Black, Blue, Brown, Gray, Green, Orange, Red, White & Yellow. |
| Έστω για παράδειγμα ότι θέλουμε η ListForm οθόνη του παραδείγματός μας να εμφανίζει και την περιοχή τίτλων. |
|---|
Μορφή εμφάνισης / Γράφημα
Παράδειγμα SampleListFormChart
Όπως αναφέρθηκε και παραπάνω, προσθέτοντας στη ListForm οθόνη ως «προσάρτημα» ένα αρχείο τύπου ChartParams.xml ενεργοποιείται και η δυνατότητα εμφάνισης των δεδομένων μιας λίστας υπό μορφή γραφήματος. Οι διαθέσιμοι τύποι γραφήματος είναι: Column, Bar, Pie, HalfPie & Doughnut.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια ListForm οθόνη η οποία εμφανίζει τους top 10 βάσει τζίρου πελάτες μας. Έστω επίσης ότι θέλουμε να τους εμφανίζει υπό μορφή λίστας αλλά και υπό μορφή γραφήματος τύπου Bar.
Για την κάλυψη της ανάγκης του παραδείγματος μας απαιτείται η προσθήκη αρχείου τύπου ChartParams.xml στο φάκελο που βρίσκεται και το AdvancedList αρχείο της φόρμας, για το παράδειγμα μας δηλαδή στο φάκελο SampleListFormChart.
Dashboard οθόνη
Παράδειγμα SampleDashboardForm
Όπως αναφέρθηκε και παραπάνω, η Dashboard οθόνη αποτελεί ένα «προσάρτημα» της ListForm οθόνης μέσω του οποίου δίνεται η δυνατότητα, εστιάζοντας επί εγγραφής της λίστας, τόσο για την επαύξηση της πληροφορίας που εμφανίζει η ListForm οθόνη όσο και για τη άμεση εκτέλεση μιας σειράς ενεργειών. Στη συνέχεια της ενότητας αυτής, χρησιμοποιώντας συγκεκριμένο παράδειγμα, θα δώσουμε αναλυτικές οδηγίες υλοποίησης της Dashboard οθόνης.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια ListForm οθόνη η οποία, πέρα από το να εμφανίζει τις διευθύνσεις πελατών υπό μορφή λίστας, να δίνει και άμεση πρόσβαση στα επιπλέον στοιχεία του πελάτη: ΑΦΜ, Επάγγελμα, Οικογένεια, βασικά στοιχεία Επικοινωνίας & βασικά Οικονομικά στοιχεία.
Για την κάλυψη της ανάγκης του παραδείγματος μας απαιτείται η προσθήκη αρχείου τύπου ExtraLayoutParams.xml στο φάκελο που βρίσκεται και το AdvancedList αρχείο της φόρμας, για το παράδειγμα μας δηλαδή στο φάκελο SampleDashboardForm.
Λίστα εγγραφών
Η μορφή εμφάνισης της λίστας εγγραφών ακολουθεί ένα προκαθορισμένο πρότυπο που αποτελείται από 1 στήλη εικόνας και 2 στήλες-γραμμές δεδομένων. Επομένως, η μορφή εμφάνισης της λίστας εγγραφών «επαναπροσδιορίζεται» και αυτό γίνεται μέσω των παρακάτω ιδιοτήτων του ExtraLayoutParams αρχείου της φόρμας.
| Ιδιότητα | Σχόλιο |
|---|---|
| imagecolumn | Η κολόνα της εντολής που αντιστοιχεί στο όνομα αρχείου εικόνας. |
| imagefolder | Ο φάκελος στον οποίο βρίσκεται το αρχείο εικόνας. |
| title | Η κολόνα της εντολής που αντιστοιχεί στο στοιχείο Στήλη-1 & Γραμμή-1. Το στοιχείο αυτό εμφανίζεται Bold. |
| formtitle | Η κολόνα της εντολής που αντιστοιχεί στον τίτλο της Dashboard οθόνης. Σημειώνουμε εδώ ότι αν ιδιότητα αυτή είναι κενή ή δεν υπάρχει, για τον τίτλο της Dashboard οθόνης χρησιμοποιείται η ιδιότητα title. |
| titlewidth | Το πλάτος του στοιχείου title (%). |
| subtitle | Η κολόνα της εντολής που αντιστοιχεί στο στοιχείο Στήλη-1 & Γραμμή-2. |
| subtitlewidth | Το πλάτος του στοιχείου subtitle (%). |
| info1 | Η κολόνα της εντολής που αντιστοιχεί στο στοιχείο Στήλη-2 & Γραμμή-1. |
| info1width | Το πλάτος του στοιχείου info1 (%). |
| Info2 | Η κολόνα της εντολής που αντιστοιχεί στο στοιχείο Στήλη-2 & Γραμμή-2. |
| Info2width | Το πλάτος του στοιχείου info2 (%). |
Κύρια περιοχή
Ο ορισμός των επιπλέον στοιχείων που απαιτεί το παράδειγμα μας γίνεται στο section extraparams του ExtraLayoutParams αρχείου της φόρμας. Για την εργονομική απεικόνιση των στοιχείων, δίνεται και η δυνατότητα ορισμού πολλαπλών extraparams sections. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| Περιοχή | |
| title | Το λεκτικό που εμφανίζεται ως τίτλος της περιοχής. |
| id | Ο α/α της περιοχής ο οποίος θα πρέπει να είναι μοναδικός. |
| Στοιχείο | |
| name | Η κολόνα της εντολής που αντιστοιχεί στο στοιχείο. |
| caption | Το λεκτικό που εμφανίζεται ως λεζάντα του στοιχείου. |
| type | Ο τύπος του στοιχείου. Οι τιμές email, facebook, location, mobile, skype, telephone, twitter & web προσδίδουν αυτόματα στο στοιχείο και την αντίστοιχη λειτουργικότητα (π.χ. ορίζοντας σε ένα στοιχείο το type location, πατώντας επί αυτού γίνεται μετάβαση στο χάρτη). |
Λοιπές περιοχές
Οι λοιπές περιοχές που απαρτίζουν μια Dashboard οθόνη είναι οι σελίδες-τμήματα αυτής και τα μενού πλήκτρα της. Τα στοιχεία που εμφανίζονται στις περιοχές αυτές έχουν ως προαπαιτούμενο τον ορισμό του ανάλογου ανά περίπτωση πλήκτρου ενεργειών.
Πλήκτρα ενεργειών (ButtonCell)
Τα πλήκτρα ενεργειών αναφέρονται πάντα σε κάποια προς εκτέλεση εντολή (command). Ο ορισμός των πλήκτρων ενεργειών γίνεται στο AdvancedList αρχείο της φόρμας και μέσω χρήσης στοιχείου τύπου ButtonCell. Ο ορισμός στοιχείων αυτού του τύπου γίνεται στο RowTemplate της περιοχής δεδομένων.
Ειδικά στην iOS πλατφόρμα, ο ορισμός στοιχείων τύπου ButtonCell θα πρέπει υποχρεωτικά να γίνει στο RowTemplate που αφορά στην επιλεγμένη εγγραφή, δηλαδή το RowTemplate που έχει δηλωθεί στην ιδιότητα SelectedTemplateIndex.
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες στοιχείου τύπου ButtonCell ισχύουν τα παρακάτω.
Σελίδες-Τμήματα
Συστήνεται τα στοιχεία τύπου ButtonCell που αφορούν σε επαύξηση πληροφορίας να εντάσσονται στην περιοχή σελίδες-τμήματα της Dashboard οθόνης δηλαδή στο secton Segments του ExtraLayoutParams αρχείου της φόρμας. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| Title | Το λεκτικό που εμφανίζεται ως τίτλος της σελίδας. |
| Position | Ο α/α της σελίδας ο οποίος θα πρέπει να είναι μοναδικός. |
| Command | Το ButtonCell που αντιστοιχεί στην προς εμφάνιση πληροφορία. Το περιεχόμενο της ιδιότητας αυτής θα πρέπει να ταυτίζεται με το περιεχόμενο της ιδιότητας Name του ButtonCell. Σημειώνουμε εδώ ότι, το ανώτατο πλήθος commands ανά σελίδα είναι τα 4 με εξαίρεση την πρώτη σελίδα (Position 0) όπου είναι τα 3 commands. |
| IsMainSegment | Στην πρώτη σελίδα (Position 0) δηλώνεται η τιμή true ενώ στις υπόλοιπες σελίδες δηλώνεται η τιμή false. |
Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε τη Dashboard οθόνη μας έτσι ώστε να δίνει άμεση πρόσβαση σε σχετιζόμενες με τον πελάτη πληροφορίες της τοπικής βάσης όπως: Επαφές, Εκκρεμείς εργασίες, Ιστορικό Συναντήσεων & Πωλήσεων. Έστω επίσης ότι θέλουμε την εμφάνιση της πληροφορίας αυτής σε διακριτά τμήματα των σελίδων της Dashboard οθόνης.
Στην περίπτωση που οι ανάγκες σχεδίασης της Dashboard οθόνης είναι αρκετά εξειδικευμένες, ο ορισμός των στοιχείων που αφορούν σε σελίδες-τμήματα μπορεί να γίνει με χρήση του section ESTabs. Σημειώνουμε εδώ ότι, αν επιλεγεί η χρήση του section ESTabs αυτόματα το section Segments καθίσταται μη ενεργό. Οδηγίες ρύθμισης του section ESTabs παρέχονται παρακάτω στην ενότητα Σελίδες-Τμήματα/ ESTabs.
Μενού πλήκτρα
Συστήνεται, τα στοιχεία τύπου ButtonCell που αφορούν σε άμεση εκτέλεση μιας ενέργειας, να εντάσσονται στα προκαθορισμένα πλήκτρα της Dashboard οθόνης. Η διαδικασία ένταξης γίνεται μέσω χρήσης του section newactions του ExtraLayoutParams αρχείου της φόρμας. Η ρύθμιση του section newactions δεν είναι υποχρεωτική, αλλά συστήνεται ανεπιφύλακτα για λόγους διευκόλυνσης του χρήστη κατά την πλοήγηση του μέσα στην Dashboard οθόνη. Τα προκαθορισμένα μενού πλήκτρα της Dashboard οθόνης και οι ρυθμίσεις ένταξης που απαιτούνται ανά περίπτωση είναι:
Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε τη Dashboard οθόνη μας έτσι ώστε να καλύπτει και τις παρακάτω ανάγκες:
Να δίνει τη δυνατότητα άμεσης κλήσης των ενεργειών καταχώρισης νέας Παραγγελίας & νέας Είσπραξης.
Να δίνει τη δυνατότητα εμφάνισης -σε απευθείας σύνδεση με τα κεντρικά- των αναφορών Καρτέλα πελάτη & Ενηλικίωση υπολοίπου πελάτη.
Σημειώνουμε εδώ ότι, ειδικά για το μενού πλήκτρο
-Ενέργειες, δίνεται η δυνατότητα ρύθμισης των επιλογών που εμφανίζει έτσι ώστε αρχικά να εμφανίζονται μόνο οι «δημοφιλείς» και, με το πάτημα της επιλογής «…», να εμφανίζεται το σύνολο τους. Για την ενεργοποίηση της δυνατότητας αυτής απαιτούνται οι παρακάτω ρυθμίσεις.
- Προσθήκη, στο AdvancedList αρχείο της φόρμας, στοιχείου τύπου ButtonCell που στην ιδιότητα Name έχει την τιμή More.
<Cell Type="Resco.Controls.AdvancedList.ButtonCell">
<Property Name="Text" Value="..." />
<Property Name="Name" Value="More" />
<Property Name="DesignName" Value="#82#89" />
</Cell>
- Προσθήκη στο section newactions του ExtraLayoutParams αρχείου της φόρμα στοιχείου με τον παρακάτω ορισμό και ενεργοποίηση της ιδιότητας subcommand σε όλες τις μη δημοφιλείς επιλογές του πλήκτρου
-Ενέργειες.
<newaction>
<command>xxx</command>
<online>false</online>
<subcommand>true</subcommand>
</newaction>
<newaction>
<command>More</command>
</newaction>
Ιδιαίτερες ρυθμίσεις
Στην ενότητα αυτή θα αναφερθούμε επιγραμματικά αλλά και χρησιμοποιώντας συγκεκριμένο παράδειγμα σε ιδιότητες του ExtraLayoutParams αρχείου της φόρμας μέσω των οποίων παρέχεται η δυνατότητα περαιτέρω ρύθμισης της συμπεριφοράς μιας Dashboard οθόνης.
Advanced λειτουργικότητα
Διαμόρφωση επιλεγμένης εγγραφής 
Παράδειγμα SampleListForm
Ειδικά σε iOS πλατφόρμα και σε περίπτωση που για οποιοδήποτε λόγο επιθυμούμε τη μη επέκταση της ListForm οθόνης με το προσάρτημα της Dashboard οθόνης, παρέχεται και η δυνατότητα εμφάνισης στοιχείου τύπου πλήκτρο ενεργειών (ButtonCell) εστιάζοντας απλά επί εγγραφής της λίστας. Για την αξιοποίηση της δυνατότητας αυτής απαιτούνται οι παρακάτω ρυθμίσεις:
- Δήλωση στοιχείου τύπου ButtonCell στο AdvancedList αρχείο της φόρμας. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες στοιχείου αυτού του τύπου ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα της Dashboard οθόνης με εξαίρεση το ότι εδώ συστήνεται και η δήλωση, στην ιδιότητα ImageDefault, του εικονιδίου με το οποίο γίνεται ορατό το πλήκτρο.
- Μη προσθήκη του ExtraLayoutParams.xml αρχείου στο φάκελο της ListForm φόρμας.
| Έστω για παράδειγμα ότι θέλουμε να δώσουμε στη ListForm οθόνη μας τη δυνατότητα άμεσης κλήσης της ενέργειας καταχώρισης νέας Παραγγελίας. | |
|---|---|
Μαζική ανάθεση τιμής
Παράδειγμα SampleListFormBulkUPD
Δίνεται η δυνατότητα χρήσης οθόνης τύπου ListForm ως εργαλείο μαζικής ανάθεσης τιμής επί του συνόλου των επιλεγμένων εγγραφών μιας λίστας. Για την αξιοποίηση της δυνατότητας αυτής απαιτούνται οι παρακάτω ρυθμίσεις:
- Διαμόρφωση πλήκτρου. Η διαμόρφωση του πλήκτρου κλήσης της προς εκτέλεση ενέργειας γίνεται μέσω χρήσης της ειδικού τύπου εντολής InvPopCommand. Το ιδιαίτερο χαρακτηριστικό εντολής αυτού του τύπου είναι ότι παρέχει τη δυνατότητα κλήσης ενός update query (ιδιότητα BaseUpdate).
- Ενεργοποίηση πλήκτρου. Η ενεργοποίηση του πλήκτρου γίνεται δηλώνοντας το InvPopCommand αρχείο στην ιδιότητα RightButtonDefinition της ListForm εντολής. Η σύνταξη της ιδιότητας θα πρέπει να είναι της μορφής [POP]|InvPopCommand. Η συμπλήρωση της ιδιότητας αυτής έχει σαν αποτέλεσμα την επέκταση της ListForm οθόνης με το προκαθορισμένο μενού πλήκτρο
-Ενέργειες. Σημειώνουμε εδώ ότι, για τη σωστή λειτουργία της οθόνης θα πρέπει:
Η πρώτη κολόνα του select query της ListForm εντολής να αναφέρεται στο μοναδικό κλειδί ταυτοποίησης μιας εγγραφής της λίστας.
Στο φάκελο της ListForm φόρμας να υπάρχει το αρχείο ExtraLayoutParams.xml.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια ListForm οθόνη μέσω της οποίας να δίνεται η δυνατότητα μαζικής ενημέρωσης του πεδίου «Χαρακτηρισμός-1» της διεύθυνσης. Έστω επίσης ότι η ενέργεια της μαζικής ενημέρωσης έχει υλοποιηθεί μέσω της εντολής SampleListFormBulkUPDAction.
Σελίδες-Τμήματα / ESTabs
Παράδειγμα SampleESTabs
Όπως αναφέρθηκε και παραπάνω, ο ορισμός των στοιχείων που αφορούν στις σελίδες-τμήματα μιας Dashboard οθόνης (section Segments του ExtraLayoutParams αρχείου) υπόκειται σε συγκεκριμένους περιορισμούς ως προς το πλήθος-μέγεθος και τη θέση εμφάνισης των τμημάτων ανά σελίδα. Για την περίπτωση που επιθυμούμε τη σχεδίαση μιας Dashboard οθόνης με υπέρβαση των περιορισμών αυτών, δίνεται η δυνατότητα ορισμού των σελίδων-τμημάτων στο section ESTabs του ExtraLayoutParams αρχείου. Παράλληλα, μέσω χρήσης του section ESTabs, παρέχεται και η δυνατότητα εμφάνισης των δεδομένων υπό μορφή γραφήματος ή υπό μορφή ποσοστιαίου δείκτη.
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής σε επίπεδο σελίδας (ESTab) και σε επίπεδο τμήματος (ESTabItem) ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| ESTab | |
| Caption | Το λεκτικό που εμφανίζεται ως τίτλος της σελίδας. |
| ESCaptionID | Αφορά αποκλειστικά στη διαδικασία μετάφρασης του προϊόντος (Translation key). |
| RowDefinitions | Το πλήθος γραμμών της σελίδας. Στη φάση αυτή η ιδιότητα Height είναι ανενεργή. |
| ColumnDefinitions | Το πλήθος στηλών της σελίδας. Στη φάση αυτή η ιδιότητα Widthείναι ανενεργή. |
| ESTabItem | |
| Command | Το ButtonCell που αντιστοιχεί στην προς εμφάνιση πληροφορία. Το περιεχόμενο της ιδιότητας αυτής θα πρέπει να ταυτίζεται με το περιεχόμενο της ιδιότητας Name του ButtonCell. |
| Row, Column, RowSpan, ColumnSpan | Τα 4 αυτά μεγέθη καθορίζουν αντίστοιχα τα θέση-ύψος-πλάτος του τμήματος. |
| IsMain | Στη σελίδα που εμπεριέχει την κύρια περιοχή της Dashboard οθόνης δηλώνεται η τιμή true ενώ στις υπόλοιπες σελίδες δηλώνεται η τιμή false. |
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια Dashboard οθόνη επί της λίστας Σημεία πώλησης όπου η σελίδα «Γενικά» να έχει την μορφή που δείχνει η εικόνα, δηλαδή να έχει 4 μη ισομεγέθη τμήματα όπου σε ένα από αυτά να τοποθετηθεί στοιχείο τύπου Γράφημα.
Οθόνη φωτο-κατάλογος (SFListForm)

Παράδειγμα SampleSFListForm
Η οθόνη φωτο-κατάλογος (SFListForm) χρησιμοποιείται συνήθως για την εμφάνιση δεδομένων υπό μορφή εικόνας δίνοντας ταυτόχρονα, εστιάζοντας επί εγγραφής, και τις παρακάτω δυνατότητες:
Μετάβαση σε άλλη οθόνη για άντληση επιπλέον πληροφόρησης.
Άμεση εκτέλεση μιας σειράς ενεργειών.
Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου SFListForm είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου SFListCreatorCommand.: Όσον αφορά στα στοιχεία που ορίζονται σε επίπεδο εντολής (δεδομένα, ταξινόμηση & αναζήτηση) ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου ListForm. |
| Φόρμα | Για την υλοποίηση της μορφής εμφάνισης της οθόνης απαιτείται η χρήση αρχείου τύπου AdvancedList.xml. Όσον αφορά στον τρόπο ορισμού των στοιχείων εμφάνισης της περιοχής δεδομένων και της περιοχής τίτλων ισχύουν σε γενικές γραμμές τα ίδια με αυτά που περιγράφονται για οθόνη τύπου ListForm. Στην ενότητα αυτή θα αναφερθούμε επιγραμματικά αλλά και χρησιμοποιώντας συγκεκριμένο παράδειγμα, τόσο στα σημεία εκείνα που διαφοροποιούνται όσο και σε εκείνα που αποτελούν ιδιαίτερα χαρακτηριστικά οθόνης τύπου SFListForm. |
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια οθόνη η οποία να εμφανίζει το πελατολόγιο μας αλλά, αντί να το εμφανίζει υπό μορφή λίστας, να το εμφανίζει υπό μορφή φωτο-κατάλογου χρησιμοποιώντας ως εικόνα το λογότυπο της επιχείρησης. Έστω επίσης ότι θέλουμε, εκτός του λογότυπου, να εμφανίζει και τα στοιχεία επωνυμία πελάτη & διεύθυνση-τηλέφωνο έδρας της επιχείρησης.
Μορφή εμφάνισης / Ιδιαίτερες ρυθμίσεις
Περιοχή δεδομένων
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής δεδομένων (Normal RowTemplate), σε συνδυασμό με αυτά που ισχύουν για τη ListForm οθόνη, ισχύουν και τα παρακάτω.
Θέση εμφάνισης στοιχείου
Σε οθόνη τύπου SFListForm, η θέση εμφάνισης στοιχείου δεν ορίζεται από την ιδιότητα Bounds αλλά από ένα σύνολο ιδιοτήτων που καθορίζουν την τοποθέτηση του στοιχείου μέσα σε ένα πλέγμα. Για τη ρύθμιση της θέσης εμφάνισης στοιχείου ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| Πλέγμα | |
| Version |
Σε περίπτωση υλοποίησης νέας οθόνης, συστήνεται η δήλωση της τιμής 2. Οι βελτιώσεις της έκδοσης αυτής σε σχέση με την προηγούμενη, είναι:
|
| Rows, Columns | Τα 2 αυτά μεγέθη καθορίζουν το πλήθος γραμμών-στηλών του πλέγματος. |
| Size | Το ύψος μιας εγγραφής της λίστας. Αφορά σε όλα τα RowTemplates και χρησιμοποιείται μόνο στην περίπτωση που η ιδιότητα Height των επιμέρους RowTemplates είναι κενή. |
| Orientation | Η κατεύθυνση του scrolling επί της οθόνης. Οι διαθέσιμες επιλογές είναι: vertical & horizontal. |
| ItemSpan | Λειτουργεί σε συνδυασμό με την ιδιότητα Orientation και καθορίζει τον αριθμό των εγγραφών που εντάσσονται στην οθόνη ανά γραμμή (vertical orientation) ή ανά στήλη (horizontal oriantation). |
| Cell | |
| Row, Column, RowSpan, ColumnSpan | Τα 4 αυτά μεγέθη καθορίζουν τη θέση-ύψος-πλάτος του στοιχείου. Σημειώνουμε εδώ ότι θα πρέπει να δοθεί ιδιαίτερη προσοχή έτσι ώστε τα μεγέθη αυτά να καθιστούν το στοιχείο εντός των ορίων του πλέγματος. |
Στήλη εικόνας (ImageCell)
Σε οθόνη τύπου SFListForm, ο ορισμός στήλης εικόνας γίνεται μέσω χρήσης στοιχείου τύπου ImageCell. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του στοιχείου ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| Type | Θα πρέπει το στοιχείο να είναι τύπου ImageCell. Εναλλακτικά μπορεί να δηλωθεί και ως CarouselPopupCell, οπότε, εστιάζοντας επί του στοιχείου, γίνεται μεγέθυνση της εικόνας και δίνεται η δυνατότητα εμφάνισης εναλλακτικών εικόνων. |
| CellSource | Θα πρέπει να δηλωθεί η κολόνα της εντολής που αντιστοιχεί στο στοιχείο. |
| ImageSource | Η κολόνα της εντολής που θέλουμε να χρησιμοποιηθεί για τη συσχέτιση εγγραφής της λίστας με όνομα αρχείου εικόνας. Συμπληρώνεται μόνο στην περίπτωση που θέλουμε να δηλώσουμε άλλη κολόνα από αυτή που έχει δηλωθεί στην ιδιότητα CellSource. |
| ImageFolder | Ο φάκελος στον οποίο βρίσκονται τα αρχεία εικόνας. Συμπληρώνεται μόνο στην περίπτωση που θέλουμε να δηλώσουμε άλλο φάκελο από τον «προκαθορισμένο» που είναι ο ProductImages. |
| ImageCaption | Η κολόνα της εντολής που θέλουμε να εμφανιστεί ως λεζάντα κάτω από την εικόνα. Συμπληρώνεται μόνο στην περίπτωση που θέλουμε την εμφάνιση λεζάντας. |
| Height, Width | Οι διαστάσεις της εικόνας. Συμπληρώνονται μόνο στην περίπτωση που θέλουμε η εικόνα να μην καταλαμβάνει όλο το χώρο που της αναλογεί βάσει των ιδιοτήτων Row, Column, RowSpan & ColumnSpan. |
| Name |
Συμπληρώνεται μόνο σε περίπτωση που θέλουμε το στοιχείο να συμπεριφερθεί ως ButtonCell, δηλαδή να αναφέρεται σε κάποια προς εκτέλεση εντολή. Για τον τρόπο ορισμού, ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για ButtonCell της ListForm οθόνης, απλά θα πρέπει επιπλέον να φροντίσουμε ώστε:
|
| Έστω για παράδειγμα ότι θέλουμε η στήλη εικόνα να εμφανίζει απλά το λογότυπο της επιχείρησης. Έστω επίσης ότι, η κολόνα συσχέτισης εγγραφής με αρχείο εικόνας είναι ο κωδικός πελάτη. |
|---|
| Έστω ότι θέλουμε να επεκτείνουμε το παραπάνω στοιχείο έτσι ώστε να δώσουμε και τη δυνατότητα μετάβασης, εστιάζοντας επί της στήλης εικόνα, σε οθόνη με τα οικονομικά στοιχεία του πελάτη. |
|---|
Πλήκτρα ενεργειών (ButtonCell)
Τα πλήκτρα ενεργειών αναφέρονται πάντα σε κάποια προς εκτέλεση εντολή (command). Για τον ορισμό πλήκτρου ενεργειών σε οθόνη τύπου SFListForm, ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα οθόνης τύπου ListForm. Η μόνη διαφορά είναι ότι στην περίπτωση της SFListForm οθόνης, απαιτείται και η δήλωση του εικονιδίου με το οποίο γίνεται ορατό το πλήκτρο. Εναλλακτικά, ο ορισμός του πλήκτρου μπορεί να γίνει και με χρήση στοιχείου τύπου ImageCell. Για τη ρύθμιση εικονιδίου, ανά περίπτωση, ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| ButtonCell | |
| Type | Θα πρέπει το στοιχείο να είναι τύπου ButtonCell. |
| ImageDefault | Για τη συμπλήρωση της ιδιότητας αυτής θα πρέπει να γίνει «μετατροπή» του εικονιδίου σε encoding Base64 Η μετατροπή αυτή μπορεί να γίνει εύκολα χρησιμοποιώντας εργαλεία όπως το www.browserling.com/tools/image-to-base64. |
| Height, Width | Οι διαστάσεις του πλήκτρου. Συμπληρώνονται μόνο στην περίπτωση που θέλουμε το πλήκτρο να μην καταλαμβάνει όλο το χώρο που του αναλογεί βάσει των ιδιοτήτων Row, Column, RowSpan & ColumnSpan. |
| ImageCell | |
| Type | Θα πρέπει το στοιχείο να είναι τύπου ImageCell. |
| ImageSource | Θα πρέπει αρχικά, στο select query της εντολής, να υπάρχει κολόνα το περιεχόμενο της οποίας να αντιστοιχεί στο όνομα του αρχείου εικόνας που θα χρησιμοποιηθεί στο πλήκτρο και στη συνέχεια, στην ιδιότητα ImageSource να δηλωθεί το όνομα της κολόνας αυτής. |
| ImageFolder | Θα πρέπει να δηλωθεί ο φάκελος στον οποίο βρίσκονται τα αρχεία εικόνας. |
| Έστω για παράδειγμα ότι θέλουμε να δώσουμε στην SFListForm οθόνη μας τη δυνατότητα άμεσης κλήσης της ενέργειας καταχώρισης νέας Παραγγελίας. Έστω επίσης ότι θέλουμε, να γίνει χρήση στοιχείου τύπου ButtonCell. |
|---|
| Έστω για παράδειγμα ότι θέλουμε να δώσουμε στην SFListForm οθόνη μας τη δυνατότητα άμεσης κλήσης της ενέργειας καταχώρισης νέας Παραγγελίας. Έστω επίσης ότι θέλουμε, να γίνει χρήση στοιχείου τύπου ImageCell και ότι το αρχείο εικόνας που θέλουμε να χρησιμοποιηθεί είναι το Sample_SalesOrder.png του φακέλου CSImages. |
|---|
Διαμόρφωση επιλεγμένης εγγραφής
Σε οθόνη τύπου SFListForm, υπάρχει δυνατότητα της δήλωσης δυο RowTemplates για την περιοχή δεδομένων. Η δυνατότητα αυτή έρχεται να καλύψει την ανάγκη διαφοροποίησης των στοιχείων και της μορφής εμφάνισης μεταξύ κανονικής (Normal) και επιλεγμένης (Selected) εγγραφής. Οι ρυθμίσεις που απαιτούνται είναι:
- Ορισμός δεύτερου RowTemplate (Selected RowTemplate) στο AdvancedList αρχείο της φόρμας. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για το Normal RowTemplate.
- Δήλωση του α/α του Selected RowTemplate στην ιδιότητα SelectedTemplateIndex.
Σημειώνουμε εδώ ότι, δηλώνοντας στην ιδιότητα του AdvancedList αρχείου της φόρμας SelectionMode την τιμή SelectDeselect η οθόνη αποκτά τη δυνατότητα επιλογής / από-επιλογής εγγραφής ενώ δηλώνοντας στην ιδιότητα MultiSelect την τιμή true αποκτά και τη δυνατότητα πολλαπλής επιλογής εγγραφών.
Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε την SFListForm οθόνη μας με επιπλέον πλήκτρα ενεργειών. Έστω επίσης ότι θέλουμε, για λόγους εργονομίας της οθόνης, τα πλήκτρα ενεργειών να εμφανίζονται μόνο επί επιλεγμένης εγγραφής.
Ιδιότητες μορφοποίησης στοιχείου
Σε οθόνη τύπου SFListForm παρέχονται και επιπλέον δυνατότητες ρύθμισης κάποιων από τις ιδιότητες που αφορούν στη μορφοποίηση της περιοχής δεδομένων. Συγκεκριμένα, ισχύουν τα παρακάτω.
- Χρώμα. Ο ορισμός των ιδιοτήτων που αφορούν σε χρώμα (ForeColor, BackColor κ.λπ.) μπορεί να γίνει και με χρήση του HEX αριθμού χρώματος.
- Στοίχιση. Οι διαθέσιμες τιμές της ιδιότητας Alignment είναι: Left, UpperLeft, LowerLeft, Right, UpperRight, LowerRight & Center, UpperCenter, LowerCenter.
- Wrapping. Ο ορισμός της επιθυμητής συμπεριφοράς, σε περίπτωση που το περιεχόμενο του στοιχείου υπερβαίνει τα όρια της θέσης του, γίνεται στην ιδιότητα LineBreakMode. Οι διαθέσιμες τιμές είναι: 0-Do not wrap, 1-Wrap at word boundaries, 2- Wrap at character boundaries, 3-Truncate the head of text, 4-Truncate the tail of text & 5-Truncate the middle of text.
Μορφοποίηση βάσει συνθήκης (Binding)
Σε οθόνη τύπου SFListForm παρέχεται και η δυνατότητα διαφοροποίησης βάσει συνθήκης (Binding) κάποιων από τις ιδιότητες που αφορούν στη μορφοποίηση της περιοχής δεδομένων. Οι ρυθμίσεις που απαιτούνται για ενεργοποίηση της δυνατότητας αυτής είναι:
- Εντολή. Ορισμός, στο select query της εντολής, διακριτής κολόνας το περιεχόμενο της οποίας περιγράφει την Binding συνθήκη.
- Φόρμα. Δήλωση της κολόνας αυτής ως Value των στοιχείων του AdvancedList αρχείου της φόρμας στα οποία θέλουμε εφαρμοστεί η Binding συνθήκη. Η δήλωση θα πρέπει να είναι της μορφής {Binding Column} όπου Column η κολόνα που περιγράφει την Binding συνθήκη . Οι ιδιότητες τύπου string στις οποίες μπορεί να γίνει χρήση του Binding είναι οι BackColor, ForeColor & BorderColor ενώ οι τύπου boolean είναι οι InputTransparent & Visible.
Σημειώνουμε εδώ ότι, όταν οι προδιαγραφές σχεδίασης της οθόνης απαιτούν την εμφάνιση δυο στοιχείων στην ίδια ακριβώς θέση της οθόνης, κάτι που ισχύει στο δεύτερο παράδειγμα μας, θα πρέπει να φροντίσουμε έτσι ώστε παράλληλα με τη ρύθμιση της ιδιότητας Visible να γίνει και ανάλογη ρύθμιση της ιδιότητας InputTrasnparent. Η Binding συνθήκη της ιδιότητας αυτής θα πρέπει να φέρνει σαν αποτέλεσμα την αντίθετη τιμή από αυτήν που έχει οριστεί για τη ιδιότητα Visible.
Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε την SFListForm οθόνη μας έτσι ώστε να εμφανίζει και την πληροφορία της ABC κλάσης του πελάτη. Έστω επίσης ότι θέλουμε, διαφοροποίηση της ιδιότητας ForeColor του στοιχείου αυτού βάσει της κλάσης στην οποία εντάσσεται ο κάθε πελάτης.
Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε την SFListForm οθόνη μας έτσι ώστε, η ενέργεια καταχώρισης νέας Παραγγελίας να είναι διαθέσιμη μόνο σε πελάτες Α κλάσης. Σε πελάτες άλλης κλάσης, στη θέση που εμφανίζεται η ενέργεια αυτή, να εμφανίζεται οθόνη με τα οικονομικά στοιχεία του πελάτη.
Περιοχή τίτλων
Σε οθόνη τύπου SFListForm παρέχεται και η δυνατότητα εμφάνισης περιοχής τίτλων (Header RowTemplate). Ο ορισμός της περιοχής αυτής είναι προαιρετικός ενώ η ενεργοποίηση της γίνεται δηλώνοντας τον α/α του αντίστοιχου RowTemplate στην ιδιότητα HeaderTemplateIndex του AdvancedList αρχείου της φόρμας.
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα της ListForm οθόνης με εξαίρεση τη ρύθμιση της θέσης εμφάνισης στοιχείου όπου απαιτείται και εδώ η τοποθέτηση του στοιχείου μέσα σε πλέγμα.
Περιοχή ομαδοποίησης
Παράδειγμα SampleSFListGrouping
Σε οθόνη τύπου SFListForm παρέχεται και η δυνατότητα εμφάνισης περιοχής ομαδοποίησης των δεδομένων. Για την ενεργοποίηση της δυνατότητας αυτής αρκεί, στην ιδιότητα GroupField του AdvancedList αρχείου της φόρμας, να δηλωθεί η κολόνα εκείνη του select query της εντολής η οποία αποτελεί το κριτήριο ομαδοποίησης.
Ειδικά στην περίπτωση SFListForm οθόνης που αναφέρεται στην οντότητα Είδος ή Πελάτης, δίνεται και η δυνατότητα κεντρικού ορισμού του κριτηρίου ομαδοποίησης. Για τον τρόπο ρύθμισης της συμπεριφοράς αυτής απαιτούνται τα παρακάτω.
- Δήλωση στις παραμέτρους κινητού SFList_GroupFieldItem & SFList_GroupFieldICustomer του επιθυμητού κριτηρίου, για Είδος & Πελάτη αντίστοιχα, βάσει του οποίου θέλουμε να γίνεται η ομαδοποίηση. Θα πρέπει βέβαια να φροντίσουμε ώστε το κριτήριο αυτό να συμπεριλαμβάνεται στις κολόνες του select query της εκάστοτε εντολής.
- Δήλωση στην ιδιότητα GroupField του AdvancedList αρχείου της φόρμας, της ανάλογης παραμέτρου κινητού. Η δήλωση αυτή θα πρέπει να είναι της μορφής ##SFList_GroupFieldItem ή ##SFList_GroupFieldICustomer αντίστοιχα.
Σε οποιαδήποτε περίπτωση, εστιάζοντας στην περιοχή μιας ομάδας, γίνεται ανάπτυξη-σύμπτυξη της συγκεκριμένης ομάδας ενώ μέσω του πλήκτρου
-Σύμπτυξη γίνεται ανάπτυξη-σύμπτυξη όλων των ομάδων. Αν για οποιονδήποτε λόγο επιθυμούμε την απόκρυψη του πλήκτρου, θα πρέπει στην ιδιότητα HideExpandButton της SFListForm εντολής να δηλωθεί η τιμή True.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια SFListForm οθόνη η οποία να εμφανίζει το κορυφαίο σε τζίρο είδος ανά πελάτη. Έστω επίσης ότι θέλουμε την ομαδοποίηση των δεδομένων της οθόνης βάσει της παραμέτρου κινητού SFList_GroupFieldItem στην οποία έχει δηλωθεί η τιμή ItemGroup.
Έστω για παράδειγμα ότι θέλουμε να αλλάξουμε την SFListForm οθόνη μας έτσι ώστε να γίνεται ομαδοποίηση των δεδομένων της βάσει της κολόνας ABCClass.
Σημειώνουμε εδώ ότι ως προς τη μορφή εμφάνισης της περιοχής, το χρώμα φόντου είναι προκαθορισμένο ενώ οι διαθέσιμες πληροφορίες είναι τα κριτήριο ομαδοποίησης & πλήθος εγγραφών ομάδας. Σε περίπτωση που επιθυμούμε οποιαδήποτε διαφοροποίηση της μορφής εμφάνισης απαιτείται η δήλωση, στο AdvancedList αρχείο της φόρμας, ειδικού RowTemplate (SectionHeader RowTemplate). Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής αυτής ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| RowTemplate | |
| Name | Θα πρέπει υποχρεωτικά να έχει το λεκτικό sectionheader. |
| Height | Το ύψος της περιοχής. Για την απόκρυψη της περιοχής θα πρέπει να δηλωθεί η τιμή 0. |
| BackColor | Το χρώμα του φόντου της περιοχής. Η δήλωση μπορεί να γίνει και με χρήση του HEX αριθμού χρώματος. |
| Cell | |
| Type | Θα πρέπει το στοιχείο να είναι τύπου TextCell. |
| CellSource | Για το κριτήριο ομαδοποίησης απαιτείται δήλωση του λεκτικού GroupField ενώ για το πλήθος εγγραφών απαιτείται δήλωση του λεκτικού Count. |
Έστω για παράδειγμα ότι θέλουμε να διατηρήσουμε μεν την ομαδοποίηση των δεδομένων της SFListForm οθόνη μας βάσει ABCClass αλλά να αλλάξουμε την μορφή εμφάνισης της περιοχής ομαδοποίησης.
Εναλλακτικές διατάξεις
Παράδειγμα SampleSFListForm
Σε οθόνη τύπου SFListForm, μέσω των εναλλακτικών διατάξεων, δίνεται η δυνατότητα δυναμικής μεταβολής μορφής εμφάνισης της οθόνης. Για τις απαιτούμενες ρυθμίσεις ισχύουν τα παρακάτω.
Διαμόρφωση διάταξης. Η διαμόρφωση διάταξης γίνεται μέσω χρήσης αρχείου τύπου AdvancedList.xml. Όσον αφορά στον τρόπο ορισμού των επιμέρους στοιχείων του AdvancedList αρχείου, ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για την «προκαθορισμένη» διάταξη της SFListForm οθόνης.- Τοποθέτηση διάταξης. Τα αρχεία εναλλακτικών διατάξεων μπορούν να έχουν οποιοδήποτε όνομα εκτός του ονόματος «AdvancedList.xml» και θα πρέπει να βρίσκονται στον υπό-φάκελο Layouts της περιοχής που βρίσκεται και η «προκαθορισμένη» διάταξη της SFListForm οθόνης.
- Πλήκτρο κλήσης διάταξης. Η κλήση των εναλλακτικών διατάξεων γίνεται από το πλήκτρο
-Διατάξεις της SFListForm οθόνης. Για την εμφάνιση του πλήκτρου αυτού απαιτείται η δήλωση των διαθέσιμων διατάξεων στο section Layouts της SFListForm εντολής. Η σύνδεση πλήκτρου & αρχείου διάταξης γίνεται δηλώνοντας στην ιδιότητα FormID το όνομα αρχείου της προς κλήση διάταξης.
| Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε την SFListForm οθόνη μας με μια διάταξη που να εμφανίζει το πελατολόγιο και υπό μορφή λίστας εγγραφών. Έστω επίσης ότι, το όνομα αρχείου της διάταξης αυτής είναι το RowView.xml. |
|---|
Οθόνες λίστα επιλογής
Οι οθόνες επιλογής δεν είναι αυτόνομες οθόνες αλλά οθόνες που καλούνται πάντα μέσα από το περιβάλλον μιας Data entry οθόνης. Εμφανίζουν τα δεδομένα υπό μορφή λίστας και χρησιμοποιούνται ως εργαλείο «ενημέρωσης» στοιχείων μιας οντότητας είτε κάνοντας ανάθεση τιμής σε πεδίο είτε κάνοντας εισαγωγή εγγραφής. Η λειτουργικότητα τους διαφοροποιείται κάπως ανάλογα του σημείου από το οποίο γίνεται η κλήση της οθόνης.
Τυπική λίστα επιλογής (InvForm)
Παράδειγμα SampleInvForm
Η τυπική λίστα επιλογής (InvForm) καλείται εστιάζοντας σε συγκεκριμένο πεδίο μιας Data entry οθόνης και χρησιμοποιείται ως εργαλείο αναζήτησης & επιλογής μιας εγγραφής με στόχο την ανάθεση αυτής σε πεδίο της οθόνης από την οποία γίνεται η κλήση της. Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου InvForm είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου InvFormCreatorCommand. Όσον αφορά στα στοιχεία που ορίζονται σε επίπεδο εντολής (δεδομένα, ταξινόμηση & αναζήτηση) ισχύουν σε γενικές γραμμές τα ίδια με αυτά που περιγράφονται για οθόνη τύπου ListForm. Στην ενότητα αυτή θα αναφερθούμε επιγραμματικά αλλά και χρησιμοποιώντας συγκεκριμένο παράδειγμα, στα σημεία εκείνα που διαφοροποιούνται και επομένως απαιτούν ιδιαίτερη προσοχή κατά την υλοποίηση οθόνης τύπου InvForm. |
| Φόρμα | Για την υλοποίηηση της μορφής εμφάνισης της οθόνης απαιτείται η χρήση αρχείου τύπου AdvancedList.xml. Όσον αφορά στον τρόπο ορισμού των στοιχείων εμφάνισης της περιοχής δεδομένων ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου ListForm. |
Δεδομένα / Ιδιαίτερες ρυθμίσεις
Για τις ρυθμίσεις σε επίπεδο εντολής, σε συνδυασμό με αυτά που ισχύουν για οθόνη τύπου ListForm, ισχύουν και τα παρακάτω.
- Τύπος. Θα πρέπει να γίνει χρήση εντολής τύπου InvFormCreatorCommand.
- Δεδομένα. Θα πρέπει στο select query να υπάρχει κολόνα η οποία να αποτελεί το μοναδικό κλειδί ταυτοποίησης μιας εγγραφής της λίστας και η κολόνα αυτή θα πρέπει να έχει το όνομα GID. Για το παράδειγμα μας δηλαδή, θα πρέπει να υπάρχει στο select query κολόνα με το όνομα GID η οποία να αναφέρεται στο πεδίο GID του πίνακα ESGOSites.
- Ιδιότητες εντολής. Θα πρέπει να υπάρχει η ιδιότητα FilterBy έστω και με κενό περιεχόμενο. Μέσω της ιδιότητας αυτής δίνεται η δυνατότητα δυναμικού φιλτραρίσματος των δεδομένων της λίστας βάσει της τιμής άλλων πεδίων της Data entry οθόνης. Για το παράδειγμα μας δηλαδή, η ιδιότητα αυτή θα χρησιμοποιηθεί για το φιλτράρισμα της λίστας διευθύνσεων βάσει του εκάστοτε προσώπου στο οποίο αναφέρεται η Data entry οθόνη μας. Η σύνταξη της ιδιότητας θα πρέπει να είναι της μορφής
<FilterBy Type="System.String"
Value=" Column1#=#DataMember1,Column2#=#DataMember2,…" /> όπου
Column, η κολόνα του select query πάνω στην οποία θα εφαρμοστεί το φιλτράρισμα.
DataMember, το στοιχείο της Data entry οθόνης βάσει του οποίου θα γίνει το φιλτράρισμα.
Λίστα εισαγωγής γραμμών (AddLineForm) 
Παράδειγμα SampleAddLineForm
Η οθόνη τύπου AddLineForm καλείται από κατάλληλα διαμορφωμένο πλήκτρο της Data entry οθόνης εργασίας-παραστατικού και χρησιμοποιείται ως εργαλείο αναζήτησης & επιλογής εγγραφών με στόχο την καταχώρηση τους στις γραμμές εργασίας-παραστατικού. Η AddLineForm οθόνη αποκτά αυτόματα και τα παρακάτω επιπλέον, σε σχέση με την InvForm οθόνη, χαρακτηριστικά:
Δυνατότητα πολλαπλής επιλογής εγγραφών.
Προσθήκη στήλης μέσω της οποίας δίνεται η δυνατότητα εμφάνισης εικόνας σχετιζόμενης με τις εγγραφές της λίστας.
Δυνατότητα ανάθεσης τιμής σε στοιχείο των γραμμών εργασίας-παραστατικού.
Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου AddLineForm είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου InvFormCreatorCommand. Όσον αφορά στα στοιχεία που ορίζονται σε επίπεδο εντολής (δεδομένα, ταξινόμηση & αναζήτηση) ισχύουν σε γενικές γραμμές τα ίδια με αυτά που περιγράφονται για οθόνη τύπου ListForm. Στην ενότητα αυτή θα αναφερθούμε επιγραμματικά αλλά και χρησιμοποιώντας συγκεκριμένο παράδειγμα, στα σημεία εκείνα που διαφοροποιούνται και επομένως απαιτούν ιδιαίτερη προσοχή κατά την υλοποίηση οθόνης τύπου AddLineForm. |
| Φόρμα | Για την υλοποίηση της μορφής εμφάνισης της οθόνης απαιτείται η χρήση αρχείου τύπου AdvancedList.xml. Όσον αφορά στον τρόπο ορισμού των στοιχείων εμφάνισης της περιοχής δεδομένων ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου ListForm. |
Δεδομένα / Ιδιαίτερες ρυθμίσεις
Για τις ρυθμίσεις σε επίπεδο εντολής, σε συνδυασμό με αυτά που ισχύουν για οθόνη τύπου ListForm, ισχύουν και τα παρακάτω.
- Τύπος. Θα πρέπει να γίνει χρήση εντολής τύπου InvFormCreatorCommand.
- Δεδομένα. Θα πρέπει στο select query
να υπάρχει κολόνα η οποία να αποτελεί το μοναδικό κλειδί ταυτοποίησης μιας εγγραφής της λίστας και η κολόνα αυτή θα πρέπει να έχει το όνομα GID. Για το παράδειγμα μας δηλαδή, θα πρέπει να υπάρχει στο select query κολόνα με το όνομα GID η οποία να αναφέρεται στο πεδίο GID του πίνακα ESFIItem.
Στην περίπτωση που το μοναδικό κλειδί ταυτοποίησης μια εγγραφής της λίστας συντίθεται από περισσότερες της μιας κολόνες, θα πρέπει η κολόνα GID να προκύπτει από τη σύνθεση αυτών.
Για λίστα εισαγωγής γραμμών ανταγωνισμού, όπου το ίδιο είδος μπορεί να παρέχεται από πολλούς ανταγωνιστές
να υπάρχει κολόνα με το όνομα Qty η οποία να έχει ως περιεχόμενο τη σταθερά 1.0.
να υπάρχει κολόνα με το όνομα Code έστω και με κενό περιεχόμενο. Η κολόνα αυτή χρησιμοποιείται για την συσχέτιση εγγραφής της λίστας με όνομα αρχείου εικόνας. Σημειώνουμε εδώ ότι, μέσω κατάλληλης ρύθμισης, δίνεται η δυνατότητα διαφοροποίησης της συμπεριφοράς αυτής.
να υπάρχουν οι κολόνες fMUCode & fItemMUGID έστω και με κενό περιεχόμενο. Οι κολόνες αυτές χρησιμοποιούνται προκειμένου να υπάρχει η δυνατότητα επιλογής μονάδας μέτρησης. Ειδικά για την οντότητα Task, συστήνεται να υπάρχει και κολόνα «ανάθεσης» της βασικής μονάδας μέτρησης του είδους στο αντίστοιχο στοιχείο της γραμμής εργασίας.
να υπάρχει η κολόνα ItemMUDecimals, αν θέλουμε έλεγχο του επιτρεπόμενου -βάσει μονάδας μέτρησης- πλήθους δεκαδικών ποσότητας.
- Ιδιότητες εντολής. Θα πρέπει, αν θέλουμε να υπάρχει δυνατότητα μαζικής καταχώρισης ποσότητας για το σύνολο των επιλεγμένων εγγραφών, να ενεργοποιηθεί η ιδιότητα SelectaAllEnabled.
Ανάθεση τιμής σε στοιχείο (Assign_CellSource)
Όπως αναφέρθηκε και παραπάνω, ένα από τα ιδιαίτερα χαρακτηριστικά της AddLineForm οθόνης είναι η δυνατότητα ανάθεσης τιμής σε στοιχείο των γραμμών εργασίας-παραστατικού. Για την αξιοποίηση της δυνατότητας αυτής αρκεί ο ορισμός, στο select query της εντολής, διακριτής κολόνας της μορφής ValueMember Assign_CellSource όπου
ValueMember, η τιμή προς ανάθεση η οποία μπορεί να είναι μια σταθερά, το περιεχόμενο ενός πεδίου ή ακόμα και μια έκφραση.
CellSource, το στοιχείο της γραμμής εργασίας-παραστατικού στο οποίο θα γίνει η ανάθεση. Σημειώνουμε εδώ ότι, ως στοιχείο προς ανάθεση μπορεί να δηλωθεί οποιοδήποτε store ή non store πεδίο της γραμμής.
| Έστω για παράδειγμα ότι θέλουμε η κολόνα «Κατασκευαστής» της AddLineForm οθόνης μας να ανατίθεται στο στοιχείο «Κείμενο-1» της γραμμής παραστατικού. |
|---|
Στην περίπτωση που το σενάριο ανάθεσης τιμής σε στοιχείο είναι αρκετά εξειδικευμένο, δίνεται και η δυνατότητα ορισμού της assign συνθήκης μέσω χρήσης του εργαλείου Business Rules.
Μορφή εμφάνισης / Ιδιαίτερες ρυθμίσεις
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής δεδομένων, σε συνδυασμό με αυτά που ισχύουν για οθόνη τύπου ListForm, ισχύουν και τα παρακάτω.
Στήλη εικόνας
Όπως αναφέρθηκε και παραπάνω, ένα από τα ιδιαίτερα χαρακτηριστικά της AddLineForm οθόνης είναι η προσθήκη στήλης εικόνας σχετιζόμενης με τις εγγραφές της λίστας. Για την αυτόματη ενεργοποίηση του χαρακτηριστικού αυτού αρκεί:
Στο φάκελο ProductImages της συσκευής να υπάρχουν αρχεία εικόνας που το όνομα τους ταυτίζεται με το περιεχόμενο της κολόνας Code του select query της εντολής και ο τύπος τους ταυτίζεται με το περιεχόμενο της παραμέτρου κινητού ImageFileExtension.
Η παράμετρος κινητού Item_ShowThumbs να έχει την τιμή 1-Ναι.
Παράλληλα και μέσω κατάλληλης ρύθμισης της AddLineForm εντολής, δίνεται η δυνατότητα διαφοροποίησης των προκαθορισμένων «προδιαγραφών» εμφάνισης εικόνας. Οι ρυθμίσεις που απαιτούνται είναι:
| Ιδιότητα | Σχόλιο |
|---|---|
| ImageColumn | Η κολόνα του select query που θέλουμε να χρησιμοποιηθεί για τη συσχέτιση εγγραφής της λίστας με το όνομα αρχείου εικόνας. |
| ImageDirectory | Ο φάκελος στον οποίο βρίσκονται τα αρχεία εικόνας. |
| ImageExtension | Ο τύπος των αρχείων εικόνας. |
Σημειώνουμε εδώ ότι, εστιάζοντας πάνω στην εικόνα γίνεται αυτόματα μεγέθυνση της και δίνεται η δυνατότητα μετάβασης σε οθόνη με τα πλήρη στοιχεία είδους καθώς και αποστολής της εικόνας με E-mail.
Standard πλήκτρα ενεργειών
Ειδικά στην iOS πλατφόρμα, αλλάζοντας απλά το όνομα της φόρμας έτσι ώστε να περιέχει το λεκτικό ItemInvForm, η AddLineForm οθόνη εμπλουτίζεται αυτόματα, εστιάζοντας επί εγγραφής, με τα παρακάτω standard πλήκτρα ενεργειών.
Τα στοιχεία που δηλώνονται μέσω των πλήκτρων αυτών στην AddLineForm οθόνη μεταφέρονται ως έχουν στα αντίστοιχα πεδία της γραμμής εργασίας-παραστατικού.
Έστω ότι επιλέγουμε να αλλάξουμε το όνομα της φόρμας του παραδείγματος μας από SampleAddLineForm σε SampleAddLineItemInvForm
Λίστα εισαγωγής γραμμών (AddLineSFForm)

Παράδειγμα SampleAddLineSFForm
Η οθόνη τύπου AddLineSFForm καλείται από κατάλληλα διαμορφωμένο πλήκτρο της Data entry οθόνης εργασίας-παραστατικού και χρησιμοποιείται ως εργαλείο αναζήτησης & επιλογής εγγραφών με στόχο την καταχώρηση τους στις γραμμές εργασίας-παραστατικού. Η AddLineSFForm οθόνη είναι διαθέσιμη μόνο σε UWP & Android πλατφόρμα.
Μια οθόνη τύπου AddLineForm που έχει υλοποιηθεί σε iOS πλατφόρμα μπορεί να χρησιμοποιηθεί ακριβώς ως έχει και σε UWP & Android πλατφόρμα. Υλοποίηση οθόνης τύπου AddLineSFForm απαιτείται μόνο στην περίπτωση που υπάρχει ανάγκη εμπλουτισμού της οθόνης με τα standard πλήκτρα ενεργειών.
Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου AddLineSFForm είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου SFInvFormCreatorCommand. Όσον αφορά στα στοιχεία που ορίζονται σε επίπεδο εντολής (δεδομένα, ταξινόμηση & αναζήτηση) ισχύουν σε γενικές γραμμές τα ίδια με αυτά που περιγράφονται για οθόνη τύπου ListForm. Στην ενότητα αυτή θα αναφερθούμε επιγραμματικά αλλά και χρησιμοποιώντας συγκεκριμένο παράδειγμα, στα σημεία εκείνα που διαφοροποιούνται και επομένως απαιτούν ιδιαίτερη προσοχή κατά την υλοποίηση οθόνης τύπου AddLineSFForm. |
| Φόρμα | Για την υλοποίηση της μορφής εμφάνισης της οθόνης απαιτείται η χρήση αρχείου τύπου AdvancedList.xml. Όσον αφορά στον τρόπο ορισμού των στοιχείων εμφάνισης της περιοχής δεδομένων ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου SFListForm. Στην ενότητα αυτή θα αναφερθούμε μόνο στις ρυθμίσεις που απαιτούνται έτσι ώστε η AddLineSFForm οθόνη να προσομοιώνει πλήρως την αντίστοιχη AddLineForm οθόνη. |
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε σε UWP ή Android πλατφόρμα μια οθόνη τύπου λίστα εισαγωγής γραμμών η οποία να προσομοιώνει πλήρως σε εμφάνιση και λειτουργικότητα την οθόνη του παραδείγματος SampleAddLineForm.
Δεδομένα / Ιδιαίτερες ρυθμίσεις
Για τις ρυθμίσεις σε επίπεδο εντολής, σε συνδυασμό με αυτά που ισχύουν για οθόνη τύπου ListForm, ισχύουν και τα παρακάτω.
- Τύπος. Θα πρέπει να γίνει χρήση εντολής τύπου SFInvFormCreatorCommand.
- Δεδομένα. Θα πρέπει στο select query
να υπάρχει κολόνα η οποία να αποτελεί το μοναδικό κλειδί ταυτοποίησης μιας εγγραφής της λίστας και η κολόνα αυτή θα πρέπει να έχει το όνομα GID. Για το παράδειγμα μας δηλαδή, θα πρέπει να υπάρχει στο select query κολόνα με το όνομα GID η οποία να αναφέρεται στο πεδίο GID του πίνακα ESFIItem. Όπως αναφέρθηκε και παραπάνω, στην ενότητα της AddLineForm οθόνης, στην περίπτωση που το μοναδικό κλειδί ταυτοποίησης μιας εγγραφής της λίστας συντίθεται από περισσότερες της μιας κολόνες, θα πρέπει η κολόνα GID να προκύπτει από τη σύνθεση αυτών.
να υπάρχει κολόνα με το όνομα Qty η οποία να έχει ως περιεχόμενο τη σταθερά 1.0.
να υπάρχουν κολόνες με το όνομα fMUCode & fItemMUGID έστω και με κενό περιεχόμενο. Οι κολόνες αυτές χρησιμοποιούνται προκειμένου να υπάρχει η δυνατότητα επιλογής μονάδας μέτρησης.
να υπάρχει η κολόνα ItemMUDecimals, αν θέλουμε έλεγχο του επιτρεπόμενου -βάσει μονάδας μέτρησης- πλήθους δεκαδικών ποσότητας.
- Ιδιότητες εντολής. Θα πρέπει, αν θέλουμε να υπάρχει δυνατότητα μαζικής καταχώρισης ποσότητας για το σύνολο των επιλεγμένων εγγραφών, να ενεργοποιηθεί η ιδιότητα SelectAllQtyEnabled.
Ανάθεση τιμής σε στοιχείο (Assign_CellSource)
Σε οθόνη τύπου AddLineSFForm, για την αξιοποίηση της δυνατότητας ανάθεσης τιμής σε στοιχείο των γραμμών εργασίας-παραστατικού ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα της AddLineForm οθόνης.
Μορφή εμφάνισης / Ιδιαίτερες ρυθμίσεις
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής δεδομένων, σε συνδυασμό με αυτά που ισχύουν για οθόνη τύπου ListForm & SFListForm, ισχύουν και τα παρακάτω.
Θέση εμφάνισης στοιχείου
Όπως αναφέρθηκε και παραπάνω, σε UWP & Android πλατφόρμα η ιδιότητα Bounds αγνοείται πλήρως με αποτέλεσμα τα επιμέρους στοιχεία να μην έχουν συγκεκριμένη θέση εμφάνισης αλλά να διανέμονται «αναλογικά» στο διαθέσιμο χώρο της οθόνης. Σε περίπτωση που αυτή η μορφή εμφάνισης δεν μας ικανοποιεί, προτείνεται η επέκταση του AdvancedList αρχείου της φόρμας με τις ιδιότητες που αφορούν στην τοποθέτηση στοιχείου μέσα σε ένα πλέγμα. Στην περίπτωση αυτή, και για τη ρύθμιση της θέσης εμφάνισης στοιχείου ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα της SFListForm οθόνης.
Στήλη εικόνας (ImageCell)
Σε οθόνη τύπου AddLineSFForm ο ορισμός στήλης εικόνας γίνεται στο RowTemplate της περιοχής δεδομένων και μέσω χρήσης στοιχείου τύπου ImageCell. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της στήλης εικόνας ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα της SFListForm οθόνης.
Standard πλήκτρα ενεργειών
Σε οθόνη τύπου AddLineSFForm ο ορισμός των standard πλήκτρων ενεργειών γίνεται στο RowTemplate της περιοχής δεδομένων και μέσω χρήσης στοιχείων τύπου TextCell & ButtonCell. Προτείνεται, για λόγους εργονομίας της οθόνης, τα standard πλήκτρα ενεργειών να εμφανίζονται μόνο επί επιλεγμένης εγγραφής. Για την προσθήκη των standard πλήκτρων ενεργειών σε AddLineSFForm οθόνη απαιτείται δήλωση στοιχείου με τις παρακάτω, ανά πλήκτρο, ιδιότητες.
Διαμόρφωση επιλεγμένης εγγραφής
Σε οθόνη τύπου AddLineSFForm παρέχεται και η δυνατότητα διαφοροποίησης των στοιχείων και της μορφής εμφάνισης μεταξύ κανονικής (Normal) και επιλεγμένης (Selected) εγγραφής. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα της SFListForm οθόνης. Ιδιαίτερη προσοχή όμως θα πρέπει να δοθεί στις παρακάτω ιδιότητες.
| Ιδιότητα | Σχόλιο |
|---|---|
| SelectedTemplateIndex | Θα πρέπει να δηλωθεί ο α/α του RowTemplate που αφορά σε επιλεγμένη εγγραφή (Selected RowTemplate). |
| SelectionMode | Θα πρέπει να δηλωθεί η τιμή SelectDeselect έτσι ώστε να δοθεί η δυνατότητα επιλογής / από-επιλογής εγγραφής. |
| MultiSelect | Θα πρέπει να δηλωθεί η τιμή true έτσι ώστε να υπάρχει η δυνατότητα πολλαπλής επιλογής εγγραφών. |
| AlternateRowColor | Θα πρέπει να δηλωθεί η τιμή true έτσι ώστε να υπάρχει η δυνατότητα διαφοροποίησης του BackColor των εγγραφών που αντιστοιχούν σε ήδη καταχωρημένες γραμμές εργασίας-παραστατικού. Η δήλωση της ιδιότητας αυτής θα πρέπει να γίνει στο RowTemplate που αφορά σε κανονική εγγραφή (Normal RowTemplate). |
Περιοχή ομαδοποίησης
Σε αντίθεση με την AddLineForm οθόνη, στην AddLineSFForm οθόνη παρέχεται και η δυνατότητα εμφάνισης περιοχής ομαδοποίησης των δεδομένων. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα της SFListForm οθόνης.
Data entry οθόνες
Οι Data entry οθόνες καλούνται συνήθως μέσω πλήκτρου ενεργειών επί επιλεγμένης εγγραφής μιας λίστας και χρησιμοποιούνται για την καταχώριση νέας ή τη διαχείριση υπάρχουσας εγγραφής. Η μορφή εμφάνισης αλλά και η λειτουργικότητα μιας Data entry οθόνης διαφοροποιείται σημαντικά ανάλογα με την οντότητα την οποία καλείται να διαχειριστεί.
Master οντότητα (EditForm)
Παράδειγμα SampleEditFormMaster
Η Data entry οθόνη master οντότητας (EditForm) χρησιμοποιείται για τη διαχείριση των στοιχείων εγγραφής που αναφέρεται σε κάποια από τις βασικές οντότητες της ESMobile εφαρμογής οι οποίες είναι:
Πρόσωπο, Πελάτης & Διεύθυνση. Για τις οντότητες αυτές υπάρχει δυνατότητα τόσο της καταχώρισης νέας εγγραφής όσο και της προβολής-τροποποίησης ήδη υπάρχουσας.
Είδος. Για την οντότητα αυτή υπάρχει μόνο η δυνατότητα προβολής ήδη υπάρχουσας εγγραφής.
Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου EditForm είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου NewFormCreatorCommand ή EditFormCreatorCommand για την καταχώριση ή τη διαχείριση εγγραφής αντίστοιχα. |
| Φόρμα | Για την υλοποίηση της μορφής εμφάνισης της οθόνης απαιτείται η χρήση αρχείου τύπου DetailView.xml. |
Στη συνέχεια της ενότητας αυτής, χρησιμοποιώντας συγκεκριμένο παράδειγμα, θα δώσουμε αναλυτικές οδηγίες υλοποίησης οθόνης τύπου EditForm.
Για να εξασφαλιστεί η απρόσκοπτη αναβάθμιση της ESMobile εφαρμογής θα πρέπει, αν το DetailView αρχείο της οθόνης γίνει custom να γίνει απαραίτητα custom και το αρχείο εντολής της οθόνης. Ο κανόνας αυτός ισχύει ακόμα και στην περίπτωση που δεν υπάρχει καμία ανάγκη επέμβασης στο αρχείο της εντολής.
Δεδομένα
Ο ορισμός των δεδομένων της EditForm οθόνης καθώς και η σύνδεση εντολής-φόρμας γίνεται μέσω ανάλογης ρύθμισης των επιμέρους ιδιοτήτων του αρχείου της εντολής. Το αρχείο της εντολής θα πρέπει να βρίσκεται στον υπό-φάκελο Commands της περιοχής ESConfig ή CSConfig. Ιδιαίτερη προσοχή θα πρέπει να δοθεί ώστε το όνομα του αρχείου της εντολής να ταυτίζεται με το όνομα της εντολής μέσα στο αρχείο.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια Data entry οθόνη η οποία να χρησιμοποιηθεί για την προβολή εγγραφής της λίστας «Ανταγωνιστές». Η οθόνη αυτή θέλουμε απλά να εμφανίζει κάποια βασικά στοιχεία του προσώπου χωρίς όμως να υπάρχει δυνατότητα επέμβασης σε αυτά. Έστω επίσης ότι η φόρμα της οθόνης αυτής είναι η SampleEditFormMaster.
| Ιδιότητα | Σχόλιο |
|---|---|
| FormID | Ο φάκελος της περιοχής ESForms ή CSForms στον οποίο βρίσκεται το σχετιζόμενο με την οθόνη DetailView αρχείο φόρμας, για το παράδειγμα μας δηλαδή ο φάκελος SampleEditFormMaster. |
| Title | Το λεκτικό που εμφανίζεται ως τίτλος της EditForm οθόνης, για το παράδειγμα μας δηλαδή το λεκτικό «Edit Competitor». |
| Filter | Η κολόνα «σύνδεσης» της λίστας δεδομένων με την προς εμφάνιση EditForm οθόνη, για το παράδειγμα μας δηλαδή η κολόνα PersonGID. Θυμίζουμε εδώ ότι, η μεταβλητή [CURRENT] τροφοδοτέίται από από την ιδιότητα CellCource του πλήκτρου κλήσης της Data entry οθόνης. |
| BaseSelect | Το select query που καθορίζει τα δεδομένα προς εμφάνιση. Θα πρέπει να περιέχει όλες τις κολόνες που αναφέρονται στο DetailView αρχείο της φόρμας. |
| BaseInsert | Το insert query που καθορίζει τα δεδομένα προς εισαγωγή. Συμπληρώνεται μόνο στην περίπτωση που η EditForm οθόνη αναφέρεται σε οντότητα για την οποία υπάρχει δυνατότητα καταχώρισης νέας εγγραφής. |
| BaseUpdate | Το update query που καθορίζει τα δεδομένα προς μεταβολή. Συμπληρώνεται μόνο στην περίπτωση που η EditForm οθόνη αναφέρεται σε οντότητα για την οποία υπάρχει δυνατότητα τροποποίησης εγγραφής. |
| Editable | Επέμβαση (true) ή απαγόρευση επέμβασης (false) στα στοιχεία των εγγραφών της οθόνης. Σημειώνουμε εδώ ότι, όταν στο select query της εντολής υπάρχει κολόνα με το όνομα RecordState, η τιμή της ιδιότητας Editable αγνοείται πλήρως και ο έλεγχος επέμβασης μεταφέρεται σε επίπεδο επιλεγμένης εγγραφής. Αν η κολόνα RecordState της εγγραφής έχει την τιμή 1, η επέμβαση τα στοιχεία της απαγορεύεται. |
Μορφή εμφάνισης
Ο ορισμός των στοιχείων εμφάνισης της EditForm οθόνης γίνεται μέσω ανάλογης ρύθμισης των επιμέρους ιδιοτήτων του DetaiView αρχείου της φόρμας. Σημειώνουμε εδώ ότι, οι ιδιότητες προς ρύθμιση διαφοροποιούνται ανάλογα με τον τύπο του στοιχείου (Item) που εμφανίζεται. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες ανά τύπο στοιχείου ισχύουν τα παρακάτω.
Advanced λειτουργικότητα
Επέμβαση βάσει συνθήκης
Δίνεται δυνατότητα ορισμού συνθήκης απαγόρευσης επέμβασης στα στοιχεία της EditForm οθόνης. Οι ρυθμίσεις που απαιτούνται για την ενεργοποίηση της δυνατότητας αυτής είναι:
- Εντολή. Ορισμός, στο select query της εντολής, διακριτής κολόνας με το όνομα RecordState το περιεχόμενο της οποίας περιγράφει τη συνθήκη απαγόρευσης επέμβασης. Η απαγόρευση επέμβασης ισχύει μόνο για τις εγγραφές όπου η συνθήκη επιστρέφει την τιμή 1.
- Φόρμα. Προσθήκη στο DetailView αρχείο της φόρμας μη ορατού στοιχείου το οποίο να αντιστοιχεί στην κολόνα RecordState.
Έστω για παράδειγμα ότι θέλουμε η επέμβαση στα στοιχεία της EditForm οθόνης του «Ανταγωνιστή» να επιτρέπεται μόνο όταν η εγγραφή δεν έχει συμπληρωμένο το ΑΦΜ του προσώπου.
Προστασία επέμβασης
Δίνεται δυνατότητα ρύθμισης του επιθυμητού βαθμού προστασίας επέμβασης στα στοιχεία της EditForm οθόνης. Οι ρυθμίσεις που απαιτούνται για την ενεργοποίηση της δυνατότητας αυτής διαφοροποιούνται ανάλογα με το αν επιθυμούμε την προστασία επέμβασης στο σύνολο των στοιχείων της EditForm οθόνης ή για συγκεκριμένο στοιχείο της.
Σύνολο στοιχείων
Ο έλεγχος ενεργοποιείται κατά την κλήση της EditForm οθόνης. Η ρύθμιση του βαθμού προστασίας γίνεται δηλώνοντας την τιμή true στην κατάλληλη, ανάλογα με τον επιθυμητό βαθμό προστασίας, ιδιότητα της εντολής.
Συγκεκριμένο στοιχείο
Ο έλεγχος ενεργοποιείται εστιάζοντας σε στοιχείο της EditForm οθόνης. Η ρύθμιση του βαθμού προστασίας γίνεται στο DetailView αρχείο της οθόνης και δηλώνοντας στην ιδιότητα Tag του εκάστοτε στοιχείου, το λεκτικό #RequiresExtraPin ή το λεκτικό #RequiresPassword για υψηλό ή χαμηλό βαθμό προστασίας αντίστοιχα Η δυνατότητα είναι διαθέσιμη σε παντός τύπου στοιχεία της EditForm οθόνης. Σημειώνουμε εδώ ότι, ειδικά στην περίπτωση στοιχείου τύπου ItemLink, η δήλωση θα πρέπει να γίνει χωρίς το πρόθεμα του χαρακτήρα #.
Έστω για παράδειγμα ότι θέλουμε την χαμηλού βαθμού προστασία επέμβασης στα στοιχεία ΑΦΜ & ΔΟΥ προσώπου της EditForm οθόνης του «Ανταγωνιστή».
Υποχρεωτική συμπλήρωση στοιχείου
Δίνεται δυνατότητα ορισμού στοιχείου της EditForm οθόνης ως υποχρεωτικής συμπλήρωσης. Ενεργοποιώντας τη δυνατότητα αυτή, κατά την αποθήκευση εγγραφής, γίνεται έλεγχος στα στοιχεία της EditForm οθόνης και στην περίπτωση που κάποιο από τα στοιχεία υποχρεωτικής συμπλήρωσης είναι κενό περιεχομένου, η διαδικασία αποθήκευσης αποτυγχάνει εμφανίζοντας ανάλογο μήνυμα λάθους.
Η ρύθμιση των στοιχείων υποχρεωτικής συμπλήρωσης γίνεται στο DetailView αρχείο της EditForm οθόνης και δηλώνοντας στην ιδιότητα Required του εκάστοτε στοιχείου την τιμή true ή εναλλακτικά τη συνθήκη (με χρήση αριθμητικού πεδίου) η οποία καθιστά υποχρεωτική τη συμπλήρωση του στοιχείου. Η δυνατότητα είναι διαθέσιμη σε παντός τύπου στοιχεία της EditForm οθόνης με εξαίρεση τα αριθμητικά πεδία που εκ φύσεως δεν μπορούν να είναι κενά περιεχομένου.
| Έστω για παράδειγμα ότι θέλουμε το στοιχείο Επωνυμία προσώπου της EditForm οθόνης του «Ανταγωνιστή» να οριστεί ως υποχρεωτικής συμπλήρωσης. |
|---|
| Έστω για παράδειγμα ότι θέλουμε, όταν το στοιχείο Χαρακτηρισμός-1 της EditForm οθόνης του «Ανταγωνιστή» είναι ενεργοποιημένο, η συμπλήρωση του στοιχείου Κείμενο-1 να είναι υποχρεωτική. |
|---|
Μενού πλήκτρο (ActionsCommand)
Παράδειγμα SampleEditFormActions
Δίνεται δυνατότητα επέκτασης της EditForm οθόνης με το προκαθορισμένο μενού πλήκτρο
-Ενέργειες. Η επέκταση αυτή έρχεται να καλύψει την ανάγκη άμεσης εκτέλεσης κάποιων ενεργειών μέσα από το περιβάλλον της EditForm οθόνης. Οι επιθυμητές ενέργειες προς εκτέλεση εμφανίζονται ως διακριτές επιλογές του μενού πλήκτρου. Για την αξιοποίηση της δυνατότητας αυτής απαιτούνται οι παρακάτω ρυθμίσεις.
Διαμόρφωση πλήκτρου
Η δήλωση των προς εκτέλεση εντολών γίνεται μέσω χρήσης της ειδικού τύπου εντολής CommandSelector Το ιδιαίτερο χαρακτηριστικό εντολής αυτού του τύπου είναι ότι παρέχει τη δυνατότητα δήλωσης λίστας εντολών (section CommandList). H σύνταξη των επιμέρους εντολών της λίστας θα πρέπει να είναι της μορφής
Σκέλος-1|Σκέλος-2|Σκέλος-3 όπου:
| Σκέλος-1: | Λεκτικό ενέργειας#Command |
|---|---|
| Σκέλος-2: | #AppIDPlatforfID1#AppIDPlatforfID2 |
| Σκέλος-3: |
Οι «προδιαγραφές» εκτέλεσης της εντολής. Η απαιτούμενη ρύθμιση διαφοροποιείται ανάλογα με τον τύπο της προς εκτέλεση εντολής.
όπου ως DataSource δηλώνεται η κολόνα τροφοδότησης της μεταβλητής [CURRENT] ή [PARENT] αντίστοιχα. |
Ενεργοποίηση πλήκτρου
- H εμφάνιση του πλήκτρου
-Ενέργειες ενεργοποιείται δηλώνοντας το CommandSelector αρχείο στην ιδιότητα ActionsCommand της EditForm εντολής. Η σύνταξη της ιδιότητας θα πρέπει να είναι της μορφής
CommandSelector|DataSource όπου ως DataSource δηλώνεται η κολόνα τροφοδότησης των μεταβλητών [CURRENT] & [PARENT]. Στην περίπτωση που το DataSource δεν είναι κοινό για όλες τις προς εκτέλεση εντολές, η ιδιότητα ActionsCommand θα πρέπει να είναι της μορφής CommandSelector|DataSource1|DataSource2|…
Η κολόνα DataSource θα πρέπει οπωσδήποτε να υπάρχει ως διακριτό στοιχείο στο DetailView αρχείο της EditForm οθόνης. Επίσης, το περιεχόμενο των ιδιοτήτων DataMember & Name του στοιχείου αυτού θα πρέπει να ταυτίζεται με το όνομα της DataSource κολόνας.
Έστω για παράδειγμα ότι θέλουμε να δώσουμε στην EditForm οθόνη του «Ανταγωνιστή» τη δυνατότητα άμεσης κλήσης των ενεργειών καταχώρισης νέας Εργασίας και εμφάνισης της λίστας διευθύνσεων του.
Master-Detail οντότητα (DocForm)
Η Data entry οθόνη master-detail οντότητας (DocForm) χρησιμοποιείται για τη διαχείριση των στοιχείων εγγραφής που αναφέρεται στις οντότητες της ESMobile εφαρμογής Εργασία (Task) και Παραστατικό (Document). Το ιδιαίτερο χαρακτηριστικό οθόνης τύπου DocForm είναι ότι απαρτίζεται από τα παρακάτω μέρη καθένα από τα οποία υλοποιείται σε ανεξάρτητο αρχείο φόρμας.
Επικεφαλίδα. Αφορά στο master σκέλος της οντότητας. Αναφέρεται σε βασικά στοιχεία της οντότητας (κωδικός, πρόσωπο, διεύθυνση, κ.λπ.) και η ύπαρξη του είναι υποχρεωτική.
Περιεχόμενα. Αφορά στο detail σκέλος της οντότητας. Για την οντότητα Task το σκέλος αυτό μπορεί να αναφέρεται σε είδη καταλόγου, είδη αποθήκης, πρόσωπα ή πόρους και η ύπαρξη του είναι προαιρετική. Για την οντότητα Document αναφέρεται αποκλειστικά σε είδη αποθήκης και η ύπαρξη του είναι υποχρεωτική.
Λοιπές περιοχές. Μέσω κατάλληλου προσαρτήματος παρέχεται η δυνατότητα επαύξησης της πληροφορίας που εμφανίζει η DocForm οθόνη αλλά και άμεσης εκτέλεσης μιας σειράς ενεργειών.
Οι «αρχές» υλοποίησης οθόνης τύπου DocForm είναι σε γενικές γραμμές ίδιες ανεξάρτητα του αν η οθόνη αφορά στην οντότητα Task ή στην οντότητα Document. Τα σημεία που κατ’ εξαίρεση αφορούν σε συγκεκριμένη οντότητα, επισημαίνονται ανάλογα.
Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου DocForm είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Οντότητα Task |
| Απαιτείται η χρήση εντολής τύπου NewTaskCommand ή EditTaskCommand για την καταχώριση ή τη διαχείριση εγγραφής αντίστοιχα. Επισημαίνουμε εδώ ότι, όταν η καταχώριση νέας εγγραφής καλείται μέσα από το περιβάλλον προσώπου ή σημείου πώλησης-συνάντησης, απαιτείται η χρήση εντολής τύπου NewTaskFromPersonCommand ή NewTaskFromSiteCommand αντίστοιχα. | |
| Οντότητα Document | |
| Απαιτείται η χρήση εντολής τύπου NewDocumentCreatorCommand ή EditDocumentCreatorCommand για την καταχώριση ή τη διαχείριση εγγραφής αντίστοιχα. Επισημαίνουμε εδώ ότι, όταν η καταχώριση νέας εγγραφής καλείται μέσα από το περιβάλλον σημείου πώλησης ή συνάντησης, απαιτείται η χρήση εντολής τύπου NewDocumentFromSiteCommand ή NewDocumentFromAppCommand αντίστοιχα. | |
| Φόρμα | |
| Επικεφαλίδα | Για την υλοποίηση του σκέλους Επικεφαλίδα απαιτείται η χρήση αρχείου τύπου DetailView.xml. |
| Περιεχόμενα | Για την υλοποίηση του σκέλους Περιεχόμενα απαιτείται η χρήση αρχείου τύπου AdvancedList.xml. Παράλληλα, για την υλοποίηση οθόνης που εμφανίζει τα πλήρη στοιχεία επιλεγμένης γραμμής, απαιτείται η χρήση αρχείου τύπου DetailView.xml. |
| Λοιπές περιοχές | Για την υλοποίηση του σκέλους Λοιπές περιοχές απαιτείται η χρήση αρχείου τύπου Actions.xml. |
Σημειώνουμε εδώ ότι, το σύνολο των αρχείων φόρμας που απαρτίζουν την DocForm οθόνη θα πρέπει υποχρεωτικά να βρίσκεται σε προκαθορισμένο φάκελο της περιοχής ESForms ή CSForms. Συγκεκριμένα, ανά οντότητα, ισχύουν τα παρακάτω.
Το σύνολο των αρχείων της φόρμας θα πρέπει να βρίσκεται σε υπό-φάκελο της περιοχής GenericTaskForm. Το όνομα του υπό-φάκελου θα πρέπει να ταυτίζεται με το InternationalID του εκάστοτε τύπου εργασίας. Ιδιαίτερη προσοχή θα πρέπει να δοθεί ώστε το όνομα του υπό-φακέλου να δηλώνεται πάντα με πεζούς χαρακτήρες. Στην περιοχή αυτή τοποθετείται το αρχείο του σκέλους Επικεφαλίδα (DetailView.xml) ενώ στον υπό-φάκελο TaskItem τοποθετούνται τα αρχεία του σκέλους Περιεχόμενα (AdvancedList.xml) & Πλήρη στοιχεία γραμμής (DetailView.xml) καθώς και του σκέλους Λοιπές περιοχές (Actions.xml).
Οντότητα Document
Το σύνολο των αρχείων της φόρμας θα πρέπει να βρίσκεται σε υπό-φάκελο της περιοχής GenericDocForm. Το όνομα του υπό-φάκελου θα πρέπει να ταυτίζεται με το ID του εκάστοτε τύπου παραστατικού. Στην περιοχή αυτή τοποθετούνται όλα τα αρχεία της φόρμας. Σημειώνουμε εδώ ότι, το αρχείο της οθόνης με τα Πλήρη στοιχεία γραμμής (DetailView_LineItem.xml) είναι διαθέσιμο προς ρύθμιση μόνο σε UWP & Android πλατφόρμα.
Στη συνέχεια της ενότητας αυτής, χρησιμοποιώντας συγκεκριμένα παραδείγματα, θα δώσουμε αναλυτικές οδηγίες υλοποίησης οθόνης τύπου DocForm. Για λόγους απλούστευσης, τα παραδείγματα μας αναφέρονται μόνο σε καταχώριση νέας εγγραφής μέσα από το περιβάλλον σημείου πώλησης.
Δεδομένα
Είναι σημαντικό να επισημάνουμε ότι στην περίπτωση οθόνης τύπου DocForm τα δεδομένα φορτώνονται δυναμικά και δεν προκύπτουν από τη σύνταξη κάποιου select query σε επίπεδο εντολής. Αυτό σημαίνει ότι οι ρυθμίσεις που απαιτούνται σε επίπεδο εντολής είναι αρκετά περιορισμένες καθότι οι διαθέσιμες κολόνες για τα σκέλη Επικεφαλίδα & Περιεχόμενα είναι προκαθορισμένες από την ESMobile εφαρμογή. Το αρχείο της εντολής θα πρέπει να βρίσκεται στον υπό-φάκελο Commands της περιοχής ESConfig ή CSConfig. Ιδιαίτερη προσοχή θα πρέπει να δοθεί ώστε το όνομα του αρχείου της εντολής να ταυτίζεται με το όνομα της εντολής μέσα στο αρχείο. Για τις απαιτούμενες ρυθμίσεις σε επίπεδο εντολής, ανά τύπο DocForm οντότητας, ισχύουν τα παρακάτω.
Οντότητα Task
Παράδειγμα ES.MCH-Μέτρηση
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια Data entry οθόνη η οποία να χρησιμοποιηθεί για την καταχώριση εργασίας τύπου ES.MCH-Μέτρηση. Η οθόνη αυτή θέλουμε να εμφανίζει κάποια βασικά στοιχεία ταυτοποίησης της εργασίας και να παρέχει τη δυνατότητα διαχείρισης γραμμών είδους.
| Ιδιότητα | Σχόλιο |
|---|---|
| TaskType | Το InternationalID του τύπου εργασίας, για το παράδειγμα μας δηλαδή το es.mch. |
| FormID | Ο φάκελος της περιοχής ESForms ή CSForms στον οποίο βρίσκονται τα σχετιζόμενα με την οθόνη αρχεία φόρμας. Η δήλωση θα πρέπει να είναι της μορφής GenericTaskForm/InternationalID τύπου εργασίας, για το παράδειγμα μας δηλαδή ο φάκελος GenericTaskForm/es.mch. Η δήλωση της ιδιότητας είναι υποχρεωτική μόνο σε περίπτωση που η εργασία δεν έχει το σκέλος Περιεχόμενα (π.χ. εργασία τύπου ES.SAP-Συνάντηση πωλήσεων). |
| NoDetail | Η εργασία έχει και σκέλος Περιεχόμενα (false) ή όχι (true). Η δήλωση της ιδιότητας είναι υποχρεωτική μόνο σε περίπτωση που η εργασία δεν έχει το σκέλος Περιεχόμενα (π.χ. εργασία τύπου ES.SAP-Συνάντηση πωλήσεων). Σημειώνουμε εδώ ότι, η ιδιότητα αυτή αφορά μόνο σε iOS πλατφόρμα. Σε UWP & Android πλατφόρμα, η αντίστοιχη ρύθμιση γίνεται στην ιδιότητα ShowContents του Actions αρχείου της οθόνης. |
| SaveMenu | Οι επιλογές του πλήκτρου αποθήκευσης. Οι κλασικές επιλογές είναι: 1-Αποθήκευση, 2-Ολοκλήρωση, 3-Ακύρωση. Σημειώνουμε εδώ ότι, ο ορισμός των επιλογών αποθήκευσης μπορεί να γίνει και «κεντρικά» μέσω κατάλληλης παραμετροποίησης του εκάστοτε τύπου εργασίας. Στην περίπτωση αυτή, θα πρέπει η ιδιότητα SaveMenu να έχει κενό περιεχόμενο. |
Σε DocForm οθόνη για την οντότητα Task, στις διαθέσιμες κολόνες του σκέλους Περιεχόμενα συμπεριλαμβάνονται αφενός όλα τα πεδία του πίνακα «Είδος θέματος» (πίνακας ESTMTaskItem) και αφετέρου τα non store πεδία του παρακάτω πίνακα.
| Όνομα κολόνας | |||
|---|---|---|---|
| PersonName | ItemMUCode | LastCountedDate | ExtStringField1 |
| ItemCode | SiteGID | LastSoldDate | ExtStringField2 |
| ItemDescription | TypeGID | CountedQty1 | ExtStringField3 |
| InventoryItemCode* | TypeInternationalID | CountedQty2 | ExtStringField4 |
| InventoryItemDescription* | GroupField | CountedQty3 | ExtStringField5 |
| InventoryItemCodeDescription* | GroupFieldSubTotal1 | SoldQty1 | ExtDateField1 |
| CatalogueItemCode* | GroupFieldSubTotal2 | SoldQty2 | ExtDateField2 |
| CatalogueItemDescription* | Category1Code | SoldQty3 | ExtDateField3 |
| CatalogueItemCodeDescription* | Category2Code | ExtNumericField1 | ExtDateField4 |
| ItemFamilyCode | Category1Description | ExtNumericField2 | ExtDateField5 |
| ItemGroupCode | Category2Description | ExtNumericField3 | Warning |
| ItemCategoryCode | LastCountedQty | ExtNumericField4 | WarningMessage |
| ItemSubcategoryCode | LastSoldQty | ExtNumericField5 | Error |
| ItemTaskCategoryValueGID | LastSoldPrice | ErrorMessage | |
| * Οι κολόνες αυτές αποκτούν περιεχόμενο μόνο όταν η γραμμή αναφέρεται σε είδος αποθήκης ή είδος καταλόγου αντίστοιχα. Αν για παράδειγμα θέλουμε η κολόνα «Κωδικός είδους» να έχει περιεχόμενο πάντα, ανεξάρτητα δηλαδή από το αν αναφέρεται σε είδος αποθήκης ή είδος καταλόγου, θα πρέπει να γίνει χρήση του non store πεδίου ItemCode. Aν θέλουμε να έχει περιεχόμενο μόνο όταν αναφέρεται σε είδος αποθήκης θα πρέπει να γίνει χρήση του non store πεδίου InventoryItemCode ενώ αν θέλουμε να έχει περιεχόμενο μόνο όταν αναφέρεται σε είδος καταλόγου θα πρέπει να γίνει χρήση του non store πεδίου CatalogueItemCode. |
Οντότητα Document
Παράδειγμα 1-Παραγγελία
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια Data entry οθόνη η οποία να χρησιμοποιηθεί για την καταχώριση παραστατικού τύπου 1-Παραγγελία. Η οθόνη αυτή θέλουμε να εμφανίζει κάποια βασικά στοιχεία ταυτοποίησης του παραστατικού και να παρέχει τη δυνατότητα διαχείρισης γραμμών είδους.
| Ιδιότητα | Σχόλιο |
|---|---|
| SiteGID | Το σημείο πώλησης στο οποίο εκδίδεται το παραστατικό. Η ιδιότητα αυτή τροφοδοτείται δυναμικά και επομένως το περιεχόμενο της θα πρέπει να είναι κενό. Σημειώνουμε εδώ ότι, τον ίδιο ρόλο ακριβώς παίζουν και οι ιδιότητες PersonGID & AppGID. |
| DocType | Το ID του τύπου παραστατικού, για το παράδειγμα μας δηλαδή το 1. Η δήλωση της ιδιότητας απαιτείται μόνο μόνο όταν ο τύπος παραστατικού δεν προκύπτει από την παραμετροποίηση του πλήκτρου κλήσης της ενέργειας (π.χ. πλήκτρο Doc#NewDocumentfromApp#1) |
| NullCustomer | Το παραστατικό είναι τύπου διακίνησης αποθέματος (true) ή τύπου πώλησης - είσπραξης (false). Η δήλωση της ιδιότητας είναι υποχρεωτική μόνο σε περίπτωση που το παραστατικό είναι τύπου διακίνησης αποθέματος (π.χ. παραστατικό τύπου 13-Δελτίο αποστολής σε υποκατάστημα). |
Σε DocForm οθόνη για την οντότητα Document, στις διαθέσιμες κολόνες του σκέλους Περιεχόμενα συμπεριλαμβάνονται αφενός όλα τα πεδία του πίνακα «Γραμμή είδους» (πίνακας ESFISalesDocLineItem) και αφετέρου τα non store πεδία του παρακάτω πίνακα.
| Όνομα κολόνας | ||||||
|---|---|---|---|---|---|---|
| ItemCode | ItemWeightQuantity | ExtStringField1 | ExtDateField1 | |||
| ItemDescription | ItemWeightMURelation | ExtStringField2 | ExtDateField2 | |||
| ItemFamilyCode | ItemWeightMUDecimals | ExtStringField3 | ExtDateField3 | |||
| ItemGroupCode | ItemWeightRelationWithMMU | ExtStringField4 | ExtDateField4 | |||
| ItemCategoryCode | ItemWeightMUCode | ExtStringField5 | ExtDateField5 | |||
| ItemSubcategoryCode | ItemVolumeQuantity | ExtNumericField1 | Warning | |||
| ItemMUCode | ItemVolumeMURelation | ExtNumericField2 | WarningMessage | |||
| GroupField | ItemVolumeMUDecimals | ExtNumericField3 | Error | |||
| fColorCode | ItemVolumeRelationWithMMU | ExtNumericField4 | ErrorMessage | |||
| fSizeCode | ItemVolumeMUCode | ExtNumericField5 |
Μορφή εμφάνισης / Επικεφαλίδα
Το σκέλος Επικεφαλίδα τοποθετείται πάντα ως η πρώτη σε σειρά σελίδα της DocForm οθόνης. Η υλοποίηση της φόρμας για τη σελίδα αυτή γίνεται με τη χρήση αρχείου τύπου DetailView.xml. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του DetailView αρχείου ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου EditForm.
Μορφή εμφάνισης / Περιεχόμενα
Το σκέλος Περιεχόμενα τοποθετείται πάντα ως η δεύτερη σε σειρά σελίδα της DocForm οθόνης και έχει πάντα ως τίτλο το λεκτικό «Περιεχόμενα». Η υλοποίηση της φόρμας για τη σελίδα αυτή γίνεται με τη χρήση αρχείου τύπου AdvancedList.xml. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του AdvancedList αρχείου ισχύουν σε γενικές γραμμές τα ίδια αυτά που περιγράφονται για οθόνη τύπου ListForm. Σημειώνουμε εδώ ότι, το AdvancedList αρχείο του σκέλους Περιεχόμενα που έχει υλοποιηθεί σε iOS πλατφόρμα μπορεί να χρησιμοποιηθεί, με κάποιες minimum επεμβάσεις, και σε UWP & Android πλατφόρμα. Σε περίπτωση όμως που η μορφή εμφάνισης της σελίδας «Περιεχόμενα» δεν μας ικανοποιεί, θα πρέπει να γίνει επέκταση του AdvancedList αρχείου με τις ιδιότητες εκείνες που αφορούν στα ιδιαίτερα χαρακτηριστικά οθόνης τύπου SFListForm.
Έστω για παράδειγμα ότι έχουμε υλοποιήσει σε iOS πλατφόρμα μια DocForm οθόνη την οποία θέλουμε να χρησιμοποιήσουμε ως έχει σε UWP & Android πλατφόρμα.
Όπως φαίνεται από τις εικόνες του παραδείγματος μας, με τις minimum επεμβάσεις, η μορφή εμφάνισης της οθόνης σε UWP & Android πλατφόρμα προσομοιώνει ικανοποιητικά αυτήν της iOS πλατφόρμας. Οι minimum απαιτούμενες επεμβάσεις είναι:
- Ρύθμιση της ιδιότητας BackColor τόσο όλης της οθόνης όσο και της περιοχής δεδομένων.
- Αν η οθόνη έχει περιοχή τίτλων, προσθήκη & ρύθμιση της ιδιότητας HeaderTemplateIndex.
- Αν η οθόνη έχει περιοχή συνόλων, προσθήκη & ρύθμιση της ιδιότητας FooterTemplateIndex. Επισημαίνουμε εδώ ότι, ειδικά για την οντότητα Document , απαιτείται και ρύθμιση των στοιχείων της περιοχής συνόλων βάσει των προδιαγραφών που ισχύουν σε UWP & Android πλατφόρμα. Οδηγίες για τις απαιτούμενες ρυθμίσεις παρέχονται παρακάτω στην ενότητα «Περιοχή συνόλων».
- Αν η οθόνη έχει περιοχή ομαδοποίησης, η επέκταση του AdvancedList αρχείου με τις ιδιότητες που αφορούν στα ιδιαίτερα χαρακτηριστικά οθόνης τύπου SFListForm είναι υποχρεωτική.
Στη συνέχεια της ενότητας αυτής, χρησιμοποιώντας συγκεκριμένο παράδειγμα, θα δώσουμε αναλυτικές οδηγίες υλοποίησης του σκέλους Περιεχόμενα μιας DocForm οθόνης. Για λόγους απλούστευσης, το παράδειγμα έχει υλοποιηθεί έτσι ώστε το ίδιο AdvancedList αρχείο να μπορεί να χρησιμοποιηθεί τόσο στην Data entry οθόνη της οντότητας Task (για το παράδειγμα μας δηλαδή, εργασία τύπου ES.MCH-Μέτρηση) όσο και στην Data entry οθόνη της οντότητας Document (για το παράδειγμα μας δηλαδή παραστατικό τύπου 1-Παραγγελία).
Θέση εμφάνισης στοιχείου
Σε οθόνη τύπου DocForm, ο ορισμός της θέσης εμφάνισης στοιχείου του σκέλους Περιεχόμενα διαφοροποιείται ανάλογα με την πλατφόρμα της ESMobile εφαρμογής. Συγκεκριμένα, ανά πλατφόρμα, ισχύουν τα παρακάτω.
iOS πλατφόρμα. Ρύθμιση της ιδιότητας Bounds.
UWP & Android πλατφόρμα. Προσθήκη των ιδιοτήτων που αφορούν στον ορισμό πλέγματος (ιδιότητες Rows-Columns) και των ιδιοτήτων που φορούν στην τοποθέτηση στοιχείου μέσα στο πλέγμα (ιδιότητες Row, Column, RowSpan, ColumnSpan).
| Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε το AdvancedList αρχείο της DocForm οθόνης μας έτσι ώστε να έχουμε και σε UWP & Android πλατφόρμα μια «ρυθμιζόμενη» τοποθέτηση των στοιχείων στο χώρο. | |
|---|---|
Σημειώνουμε εδώ ότι, μέσω της ιδιότητας ApplicationVisible, παρέχεται και η δυνατότητα εμφάνισης ή απόκρυψης ενός στοιχείου από συγκεκριμένη εφαρμογή-πλατφόρμα. Η σύνταξη της ιδιότητας είναι της μορφής #AppIDPlatforfID1#AppIDPlatforfID2 όπου:
|
Platform | ||||
|---|---|---|---|---|---|
| 8 | Merchandising | 2 | iOS | ||
| 22 | Field Service | 3 | Android | ||
| 322 | xVan | 4 | UWP | ||
| 1024 | Medical Representative | 9 | UWP & Android |
| Έστω για παράδειγμα ότι θέλουμε να ρυθμίσουμε το AdvancedList αρχείο της DocForm οθόνης μας έτσι ώστε το στοιχείο Κωδικός είδους να εμφανίζεται μόνο σε iOS πλατφόρμα. |
|---|
Στήλη εικόνας (ImageCell)
Σε οθόνη τύπου DocForm, ο ορισμός στήλης εικόνας του σκέλους Περιεχόμενα γίνεται μέσω χρήσης στοιχείου τύπου ImageCell. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του στοιχείου ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| Type | Θα πρέπει το στοιχείο να είναι τύπου ImageCell. |
| CellSource | Η κολόνα συσχέτισης της γραμμής με το όνομα αρχείου εικόνας. Σημειώνουμε εδώ ότι, αν η κολόνα συσχέτισης δεν ανήκει στα πεδία του πίνακα της γραμμής, θα πρέπει να γίνει χρήση του ανάλογου non store πεδίου (π.χ. για συσχέτιση βάσει κωδικού είδους, δηλώνεται το non store πεδίο ItemCode). |
| ImageFolder | Ο φάκελος στον οποίο βρίσκονται τα αρχεία εικόνας. Συμπληρώνεται μόνο στην περίπτωση που θέλουμε να δηλώσουμε άλλο φάκελο από τον «προκαθορισμένο» που είναι ο ProductImages. |
| ImageExtention | Ο τύπος των αρχείων εικόνας. Συμπληρώνεται μόνο στην περίπτωση που θέλουμε να δηλώσουμε άλλον τύπο από τον «προκαθορισμένο». Σημειώνουμε εδώ ότι, ο προκαθορισμένος τύπος ορίζεται στην παράμετρο κινητού ImageFileExtension. |
| Height, Width | Οι διαστάσεις της εικόνας. Συμπληρώνονται μόνο στην περίπτωση που θέλουμε η εικόνα να μην καταλαμβάνει όλο το χώρο που της αναλογεί βάσει των ιδιοτήτων της θέσης εμφάνισης της. Αφορά μόνο σε UWP & Android πλατφόρμα. |
| Visible | Εμφάνιση (true) ή απόκρυψη (false) του στοιχείου. |
| Selectable | Δηλώνοντας την τιμή true, εστιάζοντας στην εικόνα γίνεται αυτόματα μεγέθυνση της. Αφορά μόνο σε iOS πλατφόρμα. |
| Έστω για παράδειγμα ότι θέλουμε στη στήλη εικόνα της DocForm οθόνης μας να εμφανίζεται η εικόνα του είδους της γραμμής. | |
|---|---|
Standard πλήκτρα ενεργειών
Σε οθόνη τύπου DocForm ο ορισμός πλήκτρων ενεργειών επί του σκέλους Περιεχόμενα γίνεται μέσω χρήσης στοιχείου τύπου ButtonCell όπου στην ιδιότητα ImageDefault δηλώνεται το εικονίδιο του πλήκτρου και στην ιδιότητα Name δηλώνεται η προς εκτέλεση εντολή. Για την προσθήκη των standard πλήκτρων ενεργειών απαιτείται δήλωση στοιχείου με τις παρακάτω, ανά πλήκτρο, ιδιότητες.
| Έστω για παράδειγμα ότι θέλουμε να προσθέσουμε στο σκέλος Περιεχόμενα της DocForm οθόνη μας το πλήκτρο της διαγραφής γραμμής. | |
|---|---|
Διαμόρφωση επιλεγμένης γραμμής
Σε οθόνη τύπου DocForm υπάρχει δυνατότητα δήλωσης δυο RowTemplates για την περιοχή δεδομένων. Η δυνατότητα αυτή έρχεται να καλύψει την ανάγκη διαφοροποίησης των στοιχείων και της μορφής εμφάνισης μεταξύ κανονικής (Normal RowTemplate) και επιλεγμένης (Selected RowTemplate) γραμμής. Οι «αρχές» υλοποίησης της περιοχής Selected RowTemplate διαφοροποιούνται ανάλογα με την οντότητα στην οποία αναφέρεται η DocForm οθόνη.
Οντότητα Task. Η δήλωση διακριτού Selected RowTemplate για την επιλεγμένη γραμμή δεν υποστηρίζεται. Παρόλα αυτά θα πρέπει, στο AdvancedList αρχείο της οθόνης, να υπάρχει η ιδιότητα SelectedTemplateIndex η οποία και θα πρέπει να έχει την τιμή 0.
Οντότητα Document. Η δήλωση διακριτού Selected RowTemplate για την επιλεγμένη γραμμή είναι υποχρεωτική ακόμα και αν τα στοιχεία αυτής ταυτίζονται πλήρως με αυτά της κανονικής γραμμής. Υποχρεωτικό επίσης είναι, στο AdvancedList αρχείο της οθόνης, να υπάρχει η ιδιότητα SelectedTemplateIndex η οποία και θα πρέπει να έχει την τιμή του α/α του Selected RowTemplate. Ειδικά σε iOS πλατφόρμα, ως Selected RowTemplate θα πρέπει υποχρεωτικά να οριστεί αυτό με τον α/α 1.
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της επιλεγμένης γραμμής ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για την κανονική γραμμή.
Ιδιότητες μορφοποίησης στοιχείου
Για τις ιδιότητες μορφοποίησης στοιχείου του σκέλους Περιεχόμενα της DocForm οθόνης, ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο | |||
|---|---|---|---|---|
| Alignment | Η στοίχιση του περιεχομένου του στοιχείου με διαθέσιμες τιμές: Left, Right & Center. Ειδικά σε UWP & Android πλατφόρμα, μπορεί να γίνει και χρήση των τιμών UpperLeft, LowerLeft, UpperRight, LowerRight & UpperCenter, LowerCenter. | |||
| LineBreakMode | H συμπεριφορά σε περίπτωση που το περιεχόμενο του στοιχείου υπερβαίνει τα όρια της θέσης του με διαθέσιμες τιμές: 0-Do not wrap, 1-Wrap at word boundaries, 2- Wrap at character boundaries, 3-Truncate the head of text, 4-Truncate the tail of text & 5-Truncate the middle of text. | |||
| FontSize | Το μέγεθος της γραμματοσειράς. | |||
| FontStyle | Το στυλ της γραμματοσειράς με διαθέσιμες τιμές: Regular, Bold & Italic. | |||
| ForeColor | Το χρώμα της γραμματοσειράς με διαθέσιμες τιμές: Black, Blue, Brown, Cyan, Gray, Darkgray, Green, Lightgray, Magenta, Orange, Purple, Red, White & Yellow. Ειδικά σε UWP & Android πλατφόρμα, ο ορισμός χρώματος μπορεί να γίνει και με χρήση HEX αριθμού χρώματος. | |||
| BackColor | Το χρώμα του φόντου με διαθέσιμες τιμές: Black, Blue, Brown, Gray, Green, Orange, Red, White & Yellow. Ειδικά σε UWP & Android πλατφόρμα, ο ορισμός χρώματος μπορεί να γίνει και με χρήση HEX αριθμού χρώματος. | |||
| Border | Οι πλευρές του πλέγματος με διαθέσιμες τιμές: All, Bottom, Left, Right & Top. | |||
| BorderColor | Το χρώμα του πλέγματος με διαθέσιμες τιμές: Black, Blue, Brown, Gray, Green, Orange, Red, White & Yellow. Ειδικά σε UWP & Android πλατφόρμα, ο ορισμός χρώματος μπορεί να γίνει και με χρήση HEX αριθμού χρώματος. | |||
| FormatString | Η μορφή εμφάνισης στοιχείου τύπου αριθμός ή στοιχείου τύπου ημερομηνία. Κάποιες κλασικές επιλογές, ανά περίπτωση, είναι: | |||
| Ορισμός | Αποτέλεσμα | Ορισμός | Αποτέλεσμα | |
| {0:G} | 16325,62 | {0:ddd d/M HH:mm} | Sun 9/7 00:33 | |
| {0:C} | 16.325,62 € | {0: dd/MM/yyyy} | 09/07/2022 | |
| {0:N} ή {0:#,#.00} | 16.325,62 | {0: HH:mm} | 00:33 | |
| {0:P} ή {0:0.00\%} | 163,26 % | |||
| {0:#,0} | 16326 |
Ιδιότητες επεξεργασίας στοιχείου (LineEditing)
Σε οθόνη τύπου DocForm παρέχεται και η δυνατότητα της επεξεργασίας στοιχείου σε επίπεδο γραμμής (LineEditing). Οι ιδιότητες που σχετίζονται με τη λειτουργικότητα αυτή είναι συγκεκριμένες και η ρύθμιση τους διαφοροποιείται ανάλογα με τον τύπο του στοιχείου στον οποίο θέλουμε να δώσουμε (Cell-Editable) ή όχι (Cell-Not Editable) τη δυνατότητα του LineEditing. Οι διαθέσιμοι τύποι στοιχείου είναι: String, Date, Numeric, Boolean & Zoom.
| Cell-Editable | ||
|---|---|---|
| Ιδιότητα | Τύπος | Σχόλιο |
| Type | All Types | Θα πρέπει να δηλωθεί η τιμή TextCell. |
| Zoom | Ειδικά σε iOS πλατφόρμα και για την οντότητα Document, θα πρέπει να δηλωθεί η τιμή ButtonCell. | |
| Selectable | All Types | Θα πρέπει να δηλωθεί η τιμή true. |
| DesignName | String | Θα πρέπει να δηλωθεί η τιμή string. Εστιάζοντας στο στοιχείο εμφανίζεται το αλφαριθμητικό πληκτρολόγιο. |
| Date | Θα πρέπει να δηλωθεί η τιμή datetime ή date. Εστιάζοντας στο στοιχείο εμφανίζεται οθόνη επιλογής ημερομηνίας-ώρας ή ημερομηνίας αντίστοιχα. | |
| Numeric | Η ιδιότητα θα πρέπει να έχει κενό περιεχόμενο. Με τον τρόπο αυτό, εστιάζοντας στο στοιχείο εμφανίζεται το pop up αριθμητικό πληκτρολόγιο. | |
| Boolean | Θα πρέπει να δηλωθεί η τιμή bool. Το στοιχείο αποκτά τη μορφή επιλογής (τιμή 1) / από-επιλογής (τιμή 0). | |
| Zoom |
Εστιάζοντας στο στοιχείο εμφανίζεται λίστα επιλογής τιμής. Η δήλωση που απαιτείται είναι της μορφής: zoom=Command#ValueMember#CellSource όπου
Σημειώνουμε εδώ ότι, απαιτείται και προσθήκη, στο select query της InvForm εντολής, κολόνας τύπου Assign_CellSource όπου ως τιμή προς ανάθεση δηλώνεται το ValueMember και ως στοιχείο ανάθεσης το CellSource. | |
| BindType | All Types | Η ιδιότητα θα πρέπει να έχει κενό περιεχόμενο. Αφορά μόνο σε iOS πλατφόρμα. |
| Numeric | Θα πρέπει να δηλωθεί η τιμή label. Αφορά μόνο σε iOS πλατφόρμα. | |
| DisableKeyboard, DisablePaste | String | Αν για οποιονδήποτε λόγο επιθυμούμε την αφαίρεση της δυνατότητας συμπλήρωσης του στοιχείου μέσω πληκτρολογίου ή μέσω επικόλλησης, θα πρέπει στις ιδιότητες αυτές να δηλωθεί η τιμή true (π.χ. επιθυμούμε τη συμπλήρωση μόνο μέσω barcode scanning). Αφορά μόνο σε iOS πλατφόρμα. |
| Cell-Not Editable | ||
| Ιδιότητα | Τύπος | Σχόλιο |
| Type | All Types | Δηλώνεται η τιμή TextCell. |
| DesignName | All Types | Ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για το Cell-Editable. Σημειώνουμε εδώ ότι, για Cell-Not Editable η δήλωση της ιδιότητας αυτής είναι προαιρετική. |
| Selectable | All Types | Δηλώνεται η τιμή false. |
| BindType | All Types | Θα πρέπει να δηλωθεί η τιμή label. Αφορά μόνο σε iOS πλατφόρμα. |
| Έστω για παράδειγμα ότι θέλουμε να προσθέσουμε στο σκέλος Περιεχόμενα της DocForm οθόνη μας το πεδίο Αριθμός-1 της γραμμής το οποίο να έχει τη μορφή επιλογής / από-επιλογής και να είναι Editable. | |
|---|---|
Όπως αναφέρθηκε και παραπάνω, για την iOS πλατφόρμα το στοιχείο τύπου zoom θα πρέπει να δηλωθεί ως ButtonCell ενώ για την UWP & Android πλατφόρμα θα πρέπει να δηλωθεί ως TextCell. Η ιδιαιτερότητα αυτή μπορεί να αντιμετωπιστεί μέσω της δήλωσης δυο στοιχείων και χρήσης της ιδιότητας ApplicationVisible.
Μορφοποίηση βάσει συνθήκης (Binding)
Σε οθόνη τύπου DocForm παρέχεται και η δυνατότητα διαφοροποίησης βάσει συνθήκης (Binding) κάποιων από τις ιδιότητες μορφοποίησης του σκέλους Περιεχόμενα. Συγκεκριμένα, χρήση του Binding μπορεί να γίνει στις ιδιότητες BackColor, ForeColor, BorderColor & Visible στοιχείου τύπου TextCell. Οι τύποι συνθήκης που μπορούν να χρησιμοποιηθούν κατά τη σύνταξη του Binding είναι: GreaterThan, LessThan, Equals, NotNull, Compound, IsOddIndex & AlwaysTrue. Για την αξιοποίησης της δυνατότητας αυτής απαιτείται:
- Ο ορισμός σε ειδική περιοχή (Binding) του AdvancedList αρχείου του σκέλους Περιεχόμενα, της Binding συνθήκης.
- Η κλήση της Binding συνθήκης είτε σε επίπεδο περιοχής (RowTemplate) είτε σε επίπεδο στοιχείου (Cell). Η δήλωση θα πρέπει να είναι της μορφής {Binding Name} όπου Name το όνομα της Binding συνθήκης. Σημειώνουμε εδώ ότι, στην περίπτωση της κλήσης της συνθήκης σε επίπεδο Cell, ιδιαίτερη προσοχή θα πρέπει να δοθεί και στη σωστή ρύθμιση των ιδιοτήτων που αφορούν στο LineEditing δηλαδή τις ιδιότητες DesignName, Selectable & BindType.
Έστω για παράδειγμα ότι θέλουμε τη μορφοποίηση του σκέλους Περιεχόμενα της DocForm οθόνη μας βάσει των παρακάτω προδιαγραφών.
Εναλλαγή του BackColor του Normal RowTemplate για μονό-ζυγό αριθμό γραμμής
Απόκρυψη του στοιχείου «Περιγραφή είδους» όταν η ποσότητα γραμμής είναι < 3. Το στοιχείο αυτό θα πρέπει να είναι Not Editable.
Αλλαγή του ForeColor των στοιχείων «Κωδικός είδους» & «Ποσότητα» όταν η ποσότητα γραμμής είναι < 3. Το στοιχείο «Κωδικός είδους» θα πρέπει να είναι Not Editable ενώ το στοιχείο «Ποσότητα» θα πρέπει να είναι Editable.
| Ορισμός συνθήκης | Κλήση συνθήκης | |
|---|---|---|
| 1 | ||
| 2 | ||
| 3 | ||
Ειδικά σε UWP & Android πλατφόρμα, και για την περίπτωση που είτε η Binding συνθήκη είναι αρκετά εξειδικευμένη είτε επιθυμούμε την κλήση της σε στοιχείο τύπου ImageCell ή ButtonCell, δίνεται η δυνατότητα ορισμού της Binding συνθήκης μέσω χρήσης του εργαλείου Business Rules.
Περιοχή τίτλων
Σε οθόνη τύπου DocForm παρέχεται και η δυνατότητα εμφάνισης περιοχής τίτλων (Header RowTemplate). Ο ορισμός της περιοχής αυτής γίνεται στο AdvancedList αρχείο της οθόνης και είναι προαιρετικός ενώ ο τρόπος εμφάνισης-απόκρυψης της περιοχής διαφοροποιείται ανάλογα με την πλατφόρμα της ESMobile εφαρμογής. Συγκεκριμένα, ανά πλατφόρμα, ισχύουν τα παρακάτω.
iOS πλατφόρμα. Η δήλωση διακριτού Header RowTemplate είναι υποχρεωτική. Υποχρεωτικό επίσης είναι, ως Header RowTemplate να οριστεί αυτό με τον α/α 3. Για την εμφάνιση της περιοχής θα πρέπει στην ιδιότητα TemplateIndex του section HeaderRow να δηλωθεί ο α/α του Header RowTemplate. Για την απόκρυψη της αρκεί, στην ιδιότητα Height της περιοχής να δηλωθεί η τιμή 0.
UWP & Android πλατφόρμα. Η δήλωση διακριτού Header RowTemplate είναι προαιρετική. Για την εμφάνιση της περιοχής θα πρέπει στην ιδιότητα HeaderTemplateIndex να δηλωθεί ο α/α του Header RowTemplate. Για την απόκρυψη της αρκεί η ιδιότητα αυτή να έχει κενό περιεχόμενο. Προτείνεται, για λόγους συμβατότητας με την iOS πλατφόρμα, ως Header RowTemplate να ορίζεται αυτό με τον α/α 3.
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της περιοχής τίτλων ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα της ListForm οθόνης συμπεριλαμβανομένων βέβαια -για UWP & Android πλατφόρμα- και των ιδιαίτερων χαρακτηριστικών οθόνης τύπου SFListForm.
Περιοχή ομαδοποίησης
Σε οθόνη τύπου DocForm παρέχεται και η δυνατότητα εμφάνισης περιοχής ομαδοποίησης των γραμμών (SectionHeader RowTemplate). Η δήλωση του κριτηρίου ομαδοποίησης για την οντότητα Task γίνεται σε επίπεδο τύπου εργασίας, ενώ για την οντότητα Document γίνεται μέσω ρύθμισης της παραμέτρου κινητού Doc_GroupField.
Ως κριτήριο ομαδοποίησης μπορεί να δηλωθεί οποιοδήποτε από τα πεδία της γραμμής εργασίας-παραστατικού. Παράλληλα όμως, μέσω χρήσης του εργαλείου Business Rules, δίνεται και η δυνατότητα δήλωσης πεδίου συνδεόμενης οντότητας (βλέπε ενότητα Ιδέες & Λύσεις/ Οθόνη τύπου DocForm/ Ομαδοποίηση γραμμών)
Στις διαθέσιμες προς εμφάνιση στην περιοχή ομαδοποίησης πληροφορίες συμπεριλαμβάνονται οι προκαθορισμένες κολόνες του παρακάτω πίνακα. Ειδικά για την οντότητα Task συμπεριλαμβάνονται και όλα τα ελεύθερα οριζόμενα αριθμητικά πεδία της γραμμής εργασίας.
| Όνομα κολόνας | Πληρορφορία | Όνομα κολόνας | Πληρορφορία | |
|---|---|---|---|---|
| Οντότητα Task | Οντότητα Document | |||
| GroupField | Κριτήριο ομαδοποίησης | GroupField | Κριτήριο ομαδοποίησης | |
| GroupFieldSubTotal1 | Ποσότητα | LineSubTotal | Πλήθος γραμμών | |
| GroupFieldSubTotal2 | Ποσότητα προς παραγγελία | QtySubTotal | Ποσότητα | |
| NetSubTotal | Καθαρή αξία | |||
| VatSubTotal | Αξία ΦΠΑ | |||
| DicountSubTotal | Συνολική αξία έκπτωσης | |||
| TotalSubTotal | Συνολική αξία | |||
| DiscTotalPercSubTotal | Μέσο % έκπτωσης | |||
| WeightSubTotal | Βάρος | |||
| VolumeSubTotal | Όγκος |
Ο ορισμός της περιοχής αυτής γίνεται στο AdvancedList αρχείο της οθόνης και είναι προαιρετικός ενώ ο τρόπος εμφάνισης-απόκρυψης της περιοχής διαφοροποιείται ανάλογα με την πλατφόρμα της ESMobile εφαρμογής. Συγκεκριμένα, ανά πλατφόρμα, ισχύουν τα παρακάτω.
iOS πλατφόρμα. Από τη στιγμή που έχει οριστεί στη βάση δεδομένων πεδίο ομαδοποίησης, η δήλωση διακριτού SectionHeader RowTemplate είναι υποχρεωτική. Η εμφάνιση της περιοχής γίνεται αυτόματα ενώ για την απόκρυψη της αρκεί, στην ιδιότητα Height της περιοχής να δηλωθεί η τιμή 0.
UWP & Android πλατφόρμα. Από τη στιγμή που έχει οριστεί στη βάση δεδομένων πεδίο ομαδοποίησης, γίνεται αυτόματα και εμφάνιση της περιοχής με την προκαθορισμένη της μορφή. Σε περίπτωση που επιθυμούμε διαφοροποίηση της προκαθορισμένης μορφής εμφάνισης, απαιτείται και η δήλωση διακριτού SectionHeader RowTemplate. Για την απόκρυψη της περιοχής αρκεί, στην ιδιότητα Height να δηλωθεί η τιμή 0.
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες σε επίπεδο περιοχής (RowTemplate) και σε επίπεδο στοιχείου (Cell) ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| RowTemplate | |
| Name | Θα πρέπει υποχρεωτικά να έχει το λεκτικό sectionheader. |
| Height | Το ύψος της περιοχής. |
| BackColor | Η δήλωση γίνεται με χρήση του RGB κωδικού χρώματος και θα πρέπει να είναι της μορφής #0,0,0. Ειδικά σε UWP & Android πλατφόρμα μπορεί να γίνει και χρήση του HEX αριθμού χρώματος. |
| Cell | |
| Type | To SectionHeader RowTemplate υποστηρίζει μόνο στοιχεία τύπου TextCell. |
| CellSource |
|
Σημειώνουμε εδώ ότι μέσω του πλήκτρου
-Σύμπτυξη, παρέχεται η δυνατότητα ανάπτυξης-σύμπτυξης όλων των ομάδων. Ειδικά σε UWP & Android πλατφόρμα παρέχεται και η δυνατότητα, εστιάζοντας στην περιοχή μιας ομάδας, για ανάπτυξη-σύμπτυξη συγκεκριμένης ομάδας.
Περιοχή συνόλων
Σε οθόνη τύπου DocForm παρέχεται και η δυνατότητα εμφάνισης περιοχής συνόλων (Footer RowTemplate) επί των γραμμών. Στις διαθέσιμες προς εμφάνιση στην περιοχή συνόλων πληροφορίες συμπεριλαμβάνονται αφενός όλα τα ελεύθερα οριζόμενα αριθμητικά πεδία επικεφαλίδας & γραμμής και αφετέρου οι προκαθορισμένες κολόνες του παρακάτω πίνακα.
| Όνομα κολόνας | Πληρορφορία | Όνομα κολόνας | Πληρορφορία | |
|---|---|---|---|---|
| Οντότητα Task | Οντότητα Document | |||
| LineTotal | Πλήθος γραμμών | LineTotal | Πλήθος γραμμών | |
| QtyTotal | Ποσότητα | QtyTotal | Ποσότητα | |
| GiftTotal | Ποσότητα δώρων | |||
|
(iOS) NetTotal (UWP & Android) NetValue |
Καθαρή αξία | |||
|
(iOS) VatTotal (UWP & Android) VatValue |
Αξία ΦΠΑ | |||
|
(iOS) Total (UWP & Android) TotalValue |
Συνολική αξία | |||
|
(iOS) DiscTotal (UWP & Android) DiscValue |
Συνολική αξία έκπτωσης | |||
| DiscTotalPerc | Μέσο % έκπτωσης | |||
| Budget | Στόχος τζίρου συνάντησης | |||
| MinValue | Ελάχιστη αξία παραστατικού | |||
| TradeAccountAvgCollectionTime | Μέσος χρόνος αποπληρωμής |
Ο ορισμός της περιοχής αυτής γίνεται στο AdvancedList αρχείο της οθόνης και είναι προαιρετικός ενώ ο τρόπος εμφάνισης-απόκρυψης της περιοχής διαφοροποιείται ανάλογα με την πλατφόρμα της ESMobile εφαρμογής. Συγκεκριμένα, ανά πλατφόρμα, ισχύουν τα παρακάτω.
iOS πλατφόρμα. Η δήλωση διακριτού Footer RowTemplate είναι υποχρεωτική. Υποχρεωτικό επίσης είναι, ως Footer RowTemplate να οριστεί αυτό με τον α/α 2. Για την εμφάνιση της περιοχής θα πρέπει στην ιδιότητα TemplateIndex του section FooterRow να δηλωθεί ο α/α του Footer RowTemplate. Για την απόκρυψη της αρκεί, στην ιδιότητα Height της περιοχής να δηλωθεί η τιμή 0.
UWP & Android πλατφόρμα. Η δήλωση διακριτού Footer RowTemplate είναι προαιρετική. Για την εμφάνιση της περιοχής θα πρέπει στην ιδιότητα FooterTemplateIndex να δηλωθεί ο α/α του Footer RowTemplate. Για την απόκρυψη της αρκεί η ιδιότητα αυτή να έχει κενό περιεχόμενο. Προτείνεται, για λόγους συμβατότητας με την iOS πλατφόρμα, ως Footer RowTemplate να ορίζεται αυτό με τον α/α 2.
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες σε επίπεδο περιοχής (RowTemplate) και σε επίπεδο στοιχείου (Cell) ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| RowTemplate | |
| Height | Το ύψος της περιοχής. |
| BackColor | Η δήλωση γίνεται με χρήση του RGB κωδικού χρώματος που θα πρέπει να είναι της μορφής #0,0,0 ή με χρήση του HEX αριθμού χρώματος. Αφορά μόνο σε UWP & Android πλατφόρμα. |
| Cell-iOS πλατφόρμα | |
| Type | To SectionHeader RowTemplate υποστηρίζει μόνο στοιχεία τύπου TextCell. |
| CellSource | Χρησιμοποιείται μόνο για πληροφορίες της επικεφαλίδας. Δηλώνεται το όνομα του πεδίου στη βάση δεδομένων. |
| Name |
Χρησιμοποιείται για τις προκαθορισμένες κολόνες και για τα πεδία της γραμμής. Ο απαιτούμενος τρόπος δήλωσης, ανά περίπτωση, είναι:
|
| Cell-UWP & Android πλατφόρμα | |
| Type | To SectionHeader RowTemplate υποστηρίζει μόνο στοιχεία τύπου TextCell. |
| CellSource |
Χρησιμοποιείται για όλες τις διαθέσιμες πληροφορίες. Ο απαιτούμενος τρόπος δήλωσης, ανά περίπτωση, είναι:
|
Έστω για παράδειγμα ότι θέλουμε να προσθέσουμε στην DocForm οθόνη μας την περιοχή συνόλων η οποία να εμφανίζει τις παρακάτω πληροφορίες. Έστω επίσης ότι θέλουμε η ρύθμιση των στοιχείων να γίνει έτσι ώστε το AdvancedList αρχείο της φόρμας να είναι συμβατό με όλες τις πλατφόρμες της ESMobile εφαρμογής.
Το πλήθος των γραμμών
Το σύνολο του πεδίου «Ποσότητα» γραμμής
Το ποσό που έχει καταχωρηθεί στο πεδίο «Αριθμός-1» της επικεφαλίδας
Το σύνολο του πεδίου «Αριθμός-1» γραμμής
| Ορισμός στοιχείων | |||
|---|---|---|---|
| 1 | 3 | ||
| 2 | 4 | ||
Μορφή εμφάνισης / Λοιπές περιοχές
Η υλοποίηση της φόρμας που αντιστοιχεί στο σκέλος Λοιπές περιοχές γίνεται με τη χρήση αρχείου τύπου Actions.xml. Οι λοιπές περιοχές που απαρτίζουν μια DocForm οθόνη είναι: οι επιπλέον Σελίδες (section Tabs), τα Πλήκτρα ενεργειών (section Actions), τα Μενού πλήκτρα
-Ενέργειες (section ToolbarActions) &
-Online ενέργειες (section ToolbarOnLineActions) και τέλος τα πλήκτρα
-Ταξινόμηση (section SortBy) &
-Διατάξεις (section Layouts). Τα στοιχεία που τοποθετούνται στις περιοχές αυτές, με εξαίρεση τα πλήκτρα Ταξινόμηση & Διατάξεις, έχουν ως προαπαιτούμενο τον ορισμό της ανάλογης ανά περίπτωση προς εκτέλεση εντολής. Στην ενότητα αυτή θα αναφερθούμε επιγραμματικά αλλά και χρησιμοποιώντας συγκεκριμένο παράδειγμα στον τροπο ορισμού και τις διαθέσιμες ιδιότητες των περιοχών του Actions αρχείου της DocForm οθόνης.
Επιπλέον σελίδες (DocTab)
Ο ορισμός των στοιχείων που αφορούν σε επιπλέον σελίδες της DocForm οθόνης γίνεται στο section Tabs του Actions αρχείου της οθόνης. Στο section αυτό τοποθετούνται συνήθως ενέργειες που αφορούν στην εμφάνιση πληροφορίας σχετικής με το «τρέχον πρόσωπο» (οντότητα ESGOPerson) ή τον «τρέχοντα πελάτη» (οντότητα ESFITradeAccount).
Οι επιπλέον σελίδες τοποθετούνται αμέσως μετά τη σελίδα «Περιεχόμενα» και με τη σειρά που έχει γίνει η δήλωση τους στο Actions αρχείο. Σημειώνουμε εδώ ότι, η σελίδα «Περιεχόμενα» αποτελεί πάντα την «προτεινόμενη» σελίδα της DocForm οθόνης. Για αλλαγή της συμπεριφοράς αυτής αρκεί, στην ιδιότητα DefaultTab του Actions αρχείου, να δηλωθεί ο α/α της σελίδας που θέλουμε να λειτουργήσει ως «προτεινόμενη».
Ειδικά σε iOS πλατφόρμα, για να είναι εφικτή η εμφάνιση επιπλέον σελίδων θα πρέπει η ιδιότητα Tag του AdvancedList αρχείου της DocForm οθόνης να είναι κενή.
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του section Tabs ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο | ||
|---|---|---|---|
| Caption | Το λεκτικό που εμφανίζεται ως τίτλος της σελίδας. | ||
| ESCaptionID | Αφορά αποκλειστικά στη διαδικασία μετάφρασης του προϊόντος (Translation key). | ||
| Command | Η προς εκτέλεση εντολή. | ||
| ParamList | Οι «προδιαγραφές» εκτέλεσης της εντολής. | ||
| Name | Το όνομα της παραμέτρου. Οι διαθέσιμες τιμές είναι οι Current & Parent οι οποίες τροφοδοτούν αντίστοιχα τις μεταβλητές [CURRENT] & [PARENT] της προς εκτέλεση εντολής. Ειδικά στην περίπτωση που η σελίδα αφορά σε οθόνη τύπου DataGridReport, διαθέσιμες προς τροφοδότηση είναι και οι μεταβλητές με το όνομα [DOCGID], [APPGID] & [SITEGID]. | ||
| DataSource | Η κολόνα τροφοδότησης της εκάστοτε μεταβλητής. Μπορεί να γίνει χρήση οποιασδήποτε κολόνας της επικεφαλίδας εργασίας – παραστατικού. |
Έστω για παράδειγμα ότι θέλουμε να προσθέσουμε στην DocForm οθόνη μας την επιπλέον σελίδα «Ledger» η οποία να εμφανίζει, αντλώντας πληροφορία από την τοπική βάση δεδομένων, την καρτέλα του τρέχοντος πελάτη (command CustomerLedgerIOSListForm).
Έστω για παράδειγμα ότι θέλουμε να προσθέσουμε στην DocForm οθόνη μας την επιπλέον σελίδα «Counts» η οποία να εμφανίζει τις εργασίες τύπου ES.MCH-Μέτρηση του τρέχοντος πελάτη (command SampleDocFormTabPage).
Έστω για παράδειγμα ότι θέλουμε να ρυθμίσουμε την επιπλέον σελίδα «Counts» έτσι ώστε να εμφανίζει τις εργασίες τύπου ES.MCH-Μέτρηση του τρέχοντος σημείου πώλησης (command SampleDocFormTabPage).
Πλήκτρα ενεργειών (ActionButton)
Τα πλήκτρα ενεργειών αναφέρονται πάντα σε κάποια προς εκτέλεση εντολή (command). Ο ορισμός των στοιχείων που αφορούν στα πλήκτρα ενεργειών (ActionButton) της DocForm οθόνης γίνεται στο section Actions του Actions αρχείου της οθόνης. Η ιδιαιτερότητα του section είναι ότι κάθε ένα από τα στοιχεία του εμφανίζεται ως διακριτό πλήκτρο της DocForm οθόνης.
Στο section Actions τοποθετούνται κυρίως πλήκτρα που αφορούν στην κλήση σεναρίων λίστας εισαγωγής γραμμών. Παράλληλα όμως τοποθετούνται και πλήκτρα που ενεργοποιούνται επί επιλεγμένης γραμμής όπως για παράδειγμα τα «κλασικά» πλήκτρα προβολής-διαγραφής γραμμής, αλλά και πιο εξειδικευμένα πλήκτρα όπως αυτά της μετάβασης σε οθόνη που αντλεί πληροφόρηση είτε από την τοπική βάση δεδομένων είτε σε απευθείας σύνδεση με τα κεντρικά. Τέλος, συνήθως τοποθετείται και το ειδικό πλήκτρο μετάβασης στην οθόνη διαχείρισης σχετικών εγγράφων της DocForm οντότητας.
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του section Actions ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο | ||||||
|---|---|---|---|---|---|---|---|
| ImagePath | Ο φάκελος στον οποίο βρίσκεται το αρχείο εικόνας που αντιστοιχεί στο πλήκτρο. | ||||||
| Name |
Ο τύπος του πλήκτρου. Η ιδιότητα αυτή δέχεται κάποιες προκαθορισμένες τιμές με πιο συνηθισμένες τις:
|
||||||
| Command | Η εντολή προς εκτέλεση. Αφορά μόνο σε πλήκτρο τύπου «Command». | ||||||
| ParamList | Οι «προδιαγραφές» εκτέλεσης της εντολής. Αφορά μόνο σε πλήκτρο τύπου «Command». | ||||||
| Name | Το όνομα της παραμέτρου. Οι διαθέσιμες τιμές είναι οι Current & Parent οι οποίες τροφοδοτούν αντίστοιχα τις μεταβλητές [CURRENT] & [PARENT] της προς εκτέλεση εντολής. Ειδικά στην περίπτωση που το πλήκτρο αφορά σε οθόνη τύπου DataGridReport, διαθέσιμες προς τροφοδότηση είναι και οι μεταβλητές με το όνομα [DOCGID], [APPGID] & [SITEGID]. | ||||||
| DataSource | Η κολόνα τροφοδότησης της εκάστοτε μεταβλητής. Μπορεί να γίνει χρήση οποιασδήποτε κολόνας της επικεφαλίδας ή της γραμμής εργασίας–παραστατικού. Στην περίπτωση χρήσης κολόνας της γραμμής απαιτείται δήλωση της μορφής ESTMTaskItem.Field & ESFISalesDocLineItem.Field για την οντότητα Task & την οντότητα Document αντίστοιχα. | ||||||
| ApplicationVisible |
Οι εφαρμογές-πλατφόρμες στις οποίες είναι διαθέσιμο το πλήκτρο. Η σύνταξη είναι της μορφής
|
||||||
|
Platform | ||||||
| 8 | Merchandising | 2 | iOS | ||||
| 22 | Field Service | 3 | Android | ||||
| 322 | xVan | 4 | UWP | ||||
| 1024 | Medical Representative | 9 | UWP & Android | ||||
| Width, Height | Το πλάτος-ύψος του πλήκτρου. Σημειώνουμε εδώ ότι, η δήλωση «κενού» πλήκτρου με συγκεκριμένο πλάτος έχει σαν αποτέλεσμα τη δημιουργία της αντίστοιχης απόστασης ανάμεσα σε άλλα πλήκτρα της περιοχής. Αφορά μόνο σε iOS πλατφόρμα. |
Παράδειγμα-Λίστα εισαγωγής γραμμών
| Έστω για παράδειγμα ότι θέλουμε να προσθέσουμε στην DocForm οθόνη μας ένα πλήκτρο το οποίο να εμφανίζει μια λίστα εισαγωγής γραμμών (command SampleAddLineForm για iOS πλατφόρμα & AddLineSFForm για UWP & Android πλατφόρμα). |
|---|
| Έστω για παράδειγμα ότι θέλουμε να προσθέσουμε στην DocForm οθόνη μας ένα πλήκτρο το οποίο να έχει σαν αποτέλεσμα την άμεση κλήση της διαδικασίας αποστολής δεδομένων στα κεντρικά (command SyncPush). |
|---|
Έστω για παράδειγμα ότι θέλουμε να προσθέσουμε στην DocForm οθόνη μας ένα πλήκτρο το οποίο να εμφανίζει, αντλώντας πληροφορία από την τοπική βάση δεδομένων, το ιστορικό της ποσότητας παραγγελίας για τον τρέχοντα πελάτη – είδος & μονάδα μέτρησης της επιλεγμένης γραμμής (command SampleDocFormActionButton).
Έστω για παράδειγμα ότι θέλουμε να προσθέσουμε στην DocForm οθόνη μας ένα πλήκτρο το οποίο να εμφανίζει, σε απευθείας σύνδεση με τα κεντρικά, το ιστορικό πωλήσεων το είδος της επιλεγμένης γραμμής (command Html_ESSalesPerItem).
Μενού πλήκτρα (DocToolbarAction)
Τα μενού πλήκτρα της DocForm οθόνης είναι προκαθορισμένα και έρχονται να καλύψουν την ανάγκη εργονομικής απεικόνισης ενεργειών που αφορούν συνήθως στη διαχείριση της DocForm οντότητας αλλά και ενεργειών που αφορούν στην άντληση πληροφόρησης σε απευθείας σύνδεση με τα κεντρικά. Οι ενέργειες αυτές εμφανίζονται ως διακριτές επιλογές του μενού πλήκτρου στο οποίο έχουν ενταχθεί. Τα προκαθορισμένα πλήκτρα της DocForm οθόνης και οι ρυθμίσεις που απαιτούνται για την ένταξη ενεργειών σε αυτά είναι:
Ταξινόμηση
Ο ορισμός των εναλλακτικών κριτηρίων ταξινόμησης του σκέλους Περιεχόμενα μιας DocForm οθόνης γίνεται στο section SortBy του Actions αρχείου της οθόνης. Από τη στιγμή που έχουν δηλωθεί εναλλακτικά κριτήρια ταξινόμησης, στο πάνω-δεξιά μέρος της οθόνης εμφανίζεται το πλήκτρο
-Ταξινόμηση. Μέσω του πλήκτρου αυτού δίνεται η δυνατότητα εναλλαγής μεταξύ των διαθέσιμων κριτηρίων ταξινόμησης. Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες των εναλλακτικών κριτηρίων ταξινόμησης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα οθόνης τύπου LsitForm.
Έστω για παράδειγμα ότι θέλουμε να δώσουμε στη DocForm οθόνης μας τη δυνατότητα ταξινόμησης του σκέλους Περιεχόμενα βάσει α/α γραμμής και κωδικού ή περιγραφής είδους.
Στην περίπτωση που έχει ενεργοποιηθεί η δυνατότητα ομαδοποίησης των γραμμών της DocForm οθόνης, η δήλωση του GroupField ως πρώτο πεδίο ταξινόμησης των γραμμών είναι υποχρεωτική.
Η ενέργεια ταξινόμησης των γραμμών διαχειρίζεται όλα τα πεδία ως τύπου κείμενο. Για να είναι σωστή η ταξινόμηση βάσει αριθμητικού πεδίου, απαιτείται «μετατροπή» του αριθμού σε κείμενο. (βλέπε ενότητα Ιδέες & Λύσεις/ Οθόνη τύπου DocForm/ Ταξινόμηση γραμμών)
Εναλλακτικές διατάξεις
Σε οθόνη τύπου DocForm, μέσω των εναλλακτικών διατάξεων, δίνεται η δυνατότητα δυναμικής μεταβολής μορφής εμφάνισης του σκέλους Περιεχόμενα. Για τις απαιτούμενες ρυθμίσεις ισχύουν τα παρακάτω.
Διαμόρφωση διάταξης. Η διαμόρφωση διάταξης γίνεται μέσω χρήσης αρχείου τύπου AdvancedList.xml. Όσον αφορά στον τρόπο ορισμού των επιμέρους στοιχείων του AdvancedList αρχείου, ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για την «προκαθορισμένη» διάταξη του σκέλους Περιεχόμενα.- Τοποθέτηση διάταξης. Τα αρχεία εναλλακτικών διατάξεων μπορούν να έχουν οποιοδήποτε όνομα εκτός του ονόματος «AdvancedList.xml» και θα πρέπει να βρίσκονται στον υπό-φάκελο Layouts της περιοχής που βρίσκεται και η «προκαθορισμένη» διάταξη του σκέλους Περιεχόμενα (π.χ. φάκελος GenericTaskForm/es.mch/TaskItem/Layouts για εργασία τύπου μέτρηση και φάκελος GenericDocForm/1/Layouts για παραστατικό τύπου παραγγελία).
- Πλήκτρο κλήσης διάταξης. Η κλήση των εναλλακτικών διατάξεων γίνεται από το πλήκτρο
-Διατάξεις της DocForm οθόνης. Για την εμφάνιση του πλήκτρου αυτού απαιτείται η δήλωση των διαθέσιμων διατάξεων στο section Layouts του Actions αρχείου της DocForm οθόνης. Η σύνδεση πλήκτρου & αρχείου διάταξης γίνεται δηλώνοντας στην ιδιότητα FormID το όνομα αρχείου της προς κλήση διάταξης.
Advanced λειτουργικότητα
Αναζήτηση 
Σε DocForm οθόνη δίνεται η δυνατότητα δήλωσης εναλλακτικών κριτηρίων αναζήτησης επί του σκέλους Περιεχόμενα της οθόνης. Ο ορισμός των κριτηρίων αναζήτησης γίνεται μέσω χρήσης της ειδικού τύπου εντολής SearchPanelCreatorCommand. Το όνομα της εντολής είναι προκαθορισμένο και θα πρέπει, για την οντότητα Task να είναι της μορφής SP_InternationalID (π.χ. SP_es.mch για εργασία τύπου Μέτρηση), ενώ για την οντότητα Document θα πρέπει να είναι της μορφής SP_doc_ID (π.χ. SP_doc_1 για παραστατικό τύπου Παραγγελία). Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες των εναλλακτικών κριτηρίων αναζήτησης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα οθόνης τύπου LsitForm. Σημειώνουμε εδώ ότι, η δυνατότητα δήλωσης εναλλακτικών κριτηρίων αναζήτησης είναι διαθέσιμη μόνο σε iOS πλατφόρμα.
Εναλλακτικό αριθμητικό πληκτρολόγιο 
Παράδειγμα ES.COMPT-Ανταγωνισμός
Σε DocForm οθόνη της οντότητας Task και για την περίπτωση που οι ανάγκες συμπλήρωσης των αριθμητικών στοιχείων γραμμής είναι αρκετά εξειδικευμένες, δίνεται η δυνατότητα «αντικατάστασης» του προκαθορισμένου pop up αριθμητικού πληκτρολογίου με ένα εναλλακτικό το οποίο, πέρα από τα κλασικά πλήκτρα, περιέχει και πλήκτρα άμεσης μετάβασης σε επόμενη-προηγούμενη γραμμή ή στήλη του σκέλους Περιεχόμενα. Ενεργοποίηση της δυνατότητας αυτής γίνεται από το AdvancedList αρχείο της DocForm οθόνης και μέσω κατάλληλης ρύθμισης των παρακάτω ιδιοτήτων του εκάστοτε αριθμητικού στοιχείου της γραμμής:
| Ιδιότητα | Σχόλιο |
|---|---|
| KeyboardID | Δήλωση της τιμής NumericDpad. |
| TabIndex | Δήλωση ενός α/α οποίος αφορά στην επιθυμητή σειρά μετακίνησης μεταξύ των στοιχείων της γραμμής. |
| Selectable | Δήλωση της τιμής true. |
Έστω για παράδειγμα ότι θέλουμε την ενεργοποίηση του εναλλακτικού πληκτρολογίου στα στοιχεία προβολές & ποσότητα της Data entry οθόνης εργασίας τύπου ES.COMPT-Ανταγωνισμός.
Οθόνη Υπογραφή
Σε DocForm οθόνη δίνεται η δυνατότητα αυτόματης εμφάνισης, με την ολοκλήρωση εργασίας-παραστατικού, οθόνης καταχώρισης της υπογραφής πελάτη και επισύναψης αυτής (ως αρχείο τύπου jpg) στα σχετικά έγγραφα της τρέχουσας εργασίας-παραστατικού.
Η ενεργοποίηση της λειτουργικότητας αυτής γίνεται από τα κεντρικά και μέσω ρύθμισης του πεδίου «Υπογραφή» του τύπου εργασίας-παραστατικού με διαθέσιμες επιλογές τα 0-Όχι, 1-Προαιρετική & 2-Υποχρεωτική.
Σημειώνουμε εδώ ότι ειδικά για την οντότητα Document, δίνεται και η δυνατότητα της υπό συνθήκες εμφάνισης οθόνης υπογραφής. Για την αξιοποίηση της δυνατότητας αυτής αρκεί η δήλωση, μέσω χρήσης του εργαλείου Business rules, του επιθυμητού κανόνα ανάθεσης τιμής στο non store πεδίο ShouldCaptureSignature της επικεφαλίδας παραστατικού.
| Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια Data entry οθόνη η οποία να χρησιμοποιηθεί για την καταχώριση παραστατικού τύπου 6-Τιμολόγιο πώλησης. Έστω επίσης ότι θέλουμε μη εμφάνιση της οθόνης υπογραφής στην περίπτωση που το τιμολόγιο χαρακτηριστεί ως «Μετρητοίς». |
|---|
Οθόνη E-mail
Σε DocForm οθόνη δίνεται η δυνατότητα αυτόματης σύνταξης E-mail με επισυναπτόμενο ένα αρχείο τύπου pdf στο οποίο απεικονίζονται τα στοιχεία της τρέχουσας εργασίας-παραστατικού. Για τις απαιτούμενες ρυθμίσεις ισχύουν τα παρακάτω.
Η δυνατότητα αυτόματης παραγωγής επισυναπτόμενου αρχείου τύπου pdf δεν είναι διαθέσιμη στην UWP πλατφόρμα. Επίσης, στην iOS πλατφόρμα, είναι διαθέσιμη σε iOS λειτουργικό σύστημα έκδοσης >=13.
Διαμόρφωση οθόνης
Η υλοποίηση οθόνης E-mail γίνεται μέσω χρήσης της ειδικού τύπου εντολής MailMergeCommand. Το ιδιαίτερο χαρακτηριστικό εντολής αυτού του τύπου είναι ότι παρέχει τη δυνατότητα ρύθμισης των στοιχείων που συνθέτουν τους αποδέκτες και το σώμα ενός E-mail. Οι προς ρύθμιση ιδιότητες της εντολής είναι:
| Ιδιότητα | Σχόλιο | |
|---|---|---|
| FormID |
Ο φάκελος της περιοχής ESReports ή CSReports στον οποίο βρίσκεται το σχετιζόμενο με την οθόνη report αρχείο. Σημειώνουμε εδώ ότι, για την υλοποίηση της μορφής εμφάνισης της οθόνης απαιτείται η χρήση αρχείου τύπου ReportDefinition.xml. Σημειώνουμε επίσης ότι, μέσω κατάλληλης ρύθμισης του report αρχείου, παρέχεται και η δυνατότητα εμφάνισης:
| |
| SubjectSQL | Το select query που καθορίζει τα δεδομένα προς εμφάνιση στο στοιχείο E-mail / Subject. | |
| MailRecipientSQL | Το select query που καθορίζει τα δεδομένα προς εμφάνιση στο στοιχείο E-mail / To | |
| MailCCRecipientSQL | Το select query που καθορίζει τα δεδομένα προς εμφάνιση στο στοιχείο E-mail / Cc. | |
| MailBCCRecipientSQL | Το select query που καθορίζει τα δεδομένα προς εμφάνιση στο στοιχείο E-mail / Bcc. | |
| MailMode |
Η «συμπεριφορά» της διαδικασίας αποστολής E-mail. Οι διαθέσιμες επιλογές είναι:
| |
| TableList | Οι «προδιαγραφές» σύνταξης του E-mail «σώματος». |
Ενεργοποίηση οθόνης
Η ενεργοποίηση οθόνης E-mail γίνεται μέσω δήλωσης της MailMergeCommand εντολής στο Actions αρχείο της DocForm οθόνης και κατά προτίμηση, στο section ToolbarActions. Η δήλωση θα πρέπει να είναι της μορφής MailMerge#Command όπου στο σκέλος Command δηλώνεται η προς εκτέλεση εντολή.
Οθόνη Επιβεβαίωση & Υπογραφή
Σε DocForm οθόνη δίνεται η δυνατότητα αυτόματης εμφάνισης, με την ολοκλήρωση εργασίας-παραστατικού, οθόνης επιβεβαίωσης & υπογραφής των στοιχείων της τρέχουσας εγγραφής. Για τις απαιτούμενες ρυθμίσεις ισχύουν τα παρακάτω.
Διαμόρφωση οθόνης
Η υλοποίηση οθόνης Επιβεβαίωση & Υπογραφή γίνεται μέσω χρήσης της ειδικού τύπου εντολής ConfirmationCommand. Το ιδιαίτερο χαρακτηριστικό εντολής αυτού του τύπου είναι ότι «συντίθεται» από δυο υπό-οθόνες, την οθόνη E-mail και την οθόνη Υπογραφή ενώ ταυτόχρονα παρέχει και τη δυνατότητα της φυσικής εκτύπωσης των δεδομένών. Οι προς ρύθμιση ιδιότητες της εντολής είναι:
| Ιδιότητα | Σχόλιο | |
|---|---|---|
| SignatureType | Απαιτείται η δήλωση της τιμής 5 ή 3 για την οντότητα Task ή Document αντίστοιχα. | |
| MailMergeCommand | Η προς εκτέλεση εντολή που αφορά στην οθόνη E-mail. | |
| AutoEmail | Αυτόματη αποστολή e-mail (true) ή όχι (false). | |
| PrintCommand | Η προς εκτέλεση εντολή που αφορά στη φυσική εκτύπωση. | |
| AutoPrint | Αυτόματη εκτύπωση (true) ή όχι (false). |
Ενεργοποίηση οθόνης
Η ενεργοποίηση οθόνης Επιβεβαίωση & Υπογραφή γίνεται μέσω ρύθμισης, της ιδιότητας ConfirmationCommand του Actions αρχείου της DocForm οθόνης, Απαραίτητη προϋπόθεση είναι το να είναι ενεργοποιημένη, σε επίπεδο τύπου εργασίας-παραστατικού, η λειτουργικότητα της εμφάνισης οθόνης Υπογραφή.
Εισαγωγή γραμμών από PDF

Παράδειγμα SampleAddLineFromPDF
Η οθόνη Εισαγωγής γραμμών από PDF (AddLineFromPDF) είναι διαθέσιμη σε DocForm οθόνη της οντότητας Document και αποτελεί ένα εναλλακτικό εργαλείο εισαγωγής γραμμών με την επιλογή ειδών να γίνεται από κατάλληλα διαμορφωμένο αρχείο τύπου PDF. Για την αξιοποίηση του εργαλείου απαιτείται αφενός η διαμόρφωση ενός PDF αρχείου και αφετέρου η προσθήκη του ανάλογου πλήκτρου ενεργειών στην DocForm οθόνη παραστατικού. Η AddLineFromPDF οθόνη είναι διαθέσιμη μόνο σε iOS & Android πλατφόρμα.
Λόγω των ιδιαίτερων χαρακτηριστικών της AddLineFromPDF οθόνης, η ESMobile εφαρμογή δεν παρέχει κάποιο προϊοντικό σενάριο υλοποίησης της. Στην ενότητα αυτή θα δόσουμε αναλυτικές οδηγίες για την υλοποίηση -σε επίπεδο εξατομίκευσης της εφαρμογής- οθόνης αυτού του τύπου.
Πλήκτρο ενεργειών (ActionButton)
Η υλοποίηση της AddLineFromPDF οθόνης γίνεται μέσω χρήσης της ειδικού τύπου εντολής PdfInputCommand στην οποία ουσιαστικά το μόνο που δηλώνεται είναι η περιοχή και το όνομα του PDF αρχείου προς κλήση (ιδιότητα PdfFilePath).
Η ενεργοποίηση της οθόνης γίνεται μέσω δήλωσης, της συγκεκριμένης εντολής ως διακριτού πλήκτρου της DocForm οθόνης (section Actions του Actions.xml αρχείου). Στην ιδιότητα Name του πλήκτρου δηλώνεται υποχρεωτικά η τιμή AddFromPdf ενώ στην ιδιότητα Command δηλώνεται η προς εκτέλεση εντολή.
Διαμόρφωση PDF αρχείου
Στο PDF αρχείο δηλώνονται τα είδη που θέλουμε να είναι διαθέσιμα προς επιλογή. Ως προς τη σχεδίαση της μορφής εμφάνισης του PDF δεν υπάρχουν συγκεκριμένοι περιορισμοί. Ιδιαίτερη προσοχή θα πρέπει όμως να δοθεί κατά τη σύνταξη του URL που αντιστοιχεί στο κάθε είδος του PDF.
Το URL είναι της μορφής http://entersoft/{%22Code%22:%22είδος%22} όπου το σκέλος "είδος" πρέπει να ταυτίζεται με κάποιον από τους διαθέσιμους κωδικούς επιλογής είδους (κωδικό ή barcode). Το URL της μορφής αυτής αντιστοιχεί στην προκαθορισμένη οθόνη δήλωσης των στοιχείων προς εισαγωγή η οποία περιλαμβάνει τα πεδία: Ποσότητα, Μονάδα μέτρησης & Χρώμα-Μέγεθος.
Σημειώνουμε εδώ ότι, η σειρά με την οποία επιχειρείται ο έλεγχος ταυτοποίησης του είδους, εξαρτάται από τη ρύθμιση της παραμέτρου κινητού Barcode_SearchMethod.
Έστω για παράδειγμα ότι θέλουμε, για όλα τα είδη του PDF, εμφάνιση της προκαθορισμένης οθόνης
|
απλό είδος με κωδικό 200-21 |
απλό είδος με barcode 900002 |
είδος χρώμα-μέγεθος με κωδικό 500-01 | |
|---|---|---|---|
| http://entersoft/{"Code":"200-21"} | http://entersoft/{"Code":"900002"} | http://entersoft/{"Code":"500-01"} | |
| Για το παράδειγμα μας, η παράμετρος κινητού Barcode_SearchMethod θα πρέπει να έχει την τιμή 1-2 έτσι ώστε να υπάρχει δυνατότητα ταυτοποίησης τόσο μέσω κωδικού είδους όσο και μέσω barcode είδους. |
Μέσω περεταίρω παραμέτροποίησης, δίνεται η δυνατότητα επέκτασης της προκαθορισμένης οθόνης είτε για όλα τα είδη είτε για συγκεκριμένο είδος του PDF.
- Όλα τα είδη. Η δήλωση των επιπλέον πεδίων γίνεται στο αρχείο PdfEntryFields.json. Το αρχείο αυτό θα πρέπει να βρίσκεται στο φάκελο ESConfig ή CSConfig της ESMobile εφαρμογής.
- Συγκεκριμένο είδος. Το URL του είδους είναι της μορφής http://entersoft/{%22Code%22:%22είδος%22,%22InputFields%22:[{πεδίο-1},{πεδίο-2], ...]}. όπου στο σκέλος "InputFields" δηλώνονται τα επιπλέον πεδία.
Ανεξάρτητα της μεθόδου επέκτασης της προκαθορισμένης οθόνης, για τη δήλωση κάθε επιπλέον πεδίου απαιτείται ορισμός των παρακάτω ιδιοτήτων:
| Ιδιότητα | Τιμή |
|---|---|
| Label | Ο τίτλος του πεδίου. |
| DataMember | Το πεδίο της γραμμής παραστατικού που θα ενημερωθεί. |
| Value | Μια προτεινόμενη τιμή για το πεδίο. |
| DataType | Ο τύπος του πεδίου. Οι διαθέσιμες τιμές είναι: 0-Κείμενο, 1-Αριθμός, 2-Λίστα επιλογής & 3-Ημερομηνία |
| FieldType | Η συμπεριφορά του πεδίου. Οι διαθέσιμες τιμές είναι: 0-Editable & 1-ReadOnly |
| Options | Συμπληρώνεται μόνο στην περίπτωση που η ιδιότητα DataType έχει την τιμή 2-Λίστα επιλογής. Ο ορισμός των επιλογών θα πρέπει να είναι της μορφής: [“επιλογή-1”,”επιλογή-2”] |
Έστω για παράδειγμα ότι θέλουμε, για όλα τα είδη του PDF, επέκταση της προκαθορισμένης οθόνης έτσι ώστε να εμφανίζει και τα πεδία Ημερομηνία-1 & Αιτιολογία, όπου στο πεδίο Αιτιολογία θέλουμε να εμφανίζεται λίστα επιλογής τιμών. Έστω επίσης ότι θέλουμε, ειδικά για το είδος 500-01, η επέκταση να περιλαμβάνει μόνο το πεδίο Ημερομηνία-1.
| απλό είδος με κωδικό 000-01 | |||
|---|---|---|---|
| 1 | http://entersoft/{"Code":"000-01"} | ||
| 2 | αρχείο PdfEntryFields.json με την παρακάτω σύνταξη | ||
|
[
] |
|||
| είδος χρώμα-μέγεθος με κωδικό 500-01 | |||
| http://entersoft/{%22Code%22:%22500-01%22,%22InputFields%22:[{"Label": "Due date","DataMember":"DateField3","Value":"","DataType":3,"FieldType":0,"Options":""}]} |
Στην περίπτωση που επιθυμούμε κάποια από τα είδη που αναφέρονται στο PDF αρχείο να είναι επιλέξιμα μόνο από συγκεκριμένη ESMobile εφαρμογή, δίνεται η δυνατότητα εξειδίκευσης του URL σε επίπεδο ESMobile εφαρμογής. Για την αξιοποίηση της δυνατότητας αυτής απαιτείται δήλωση URL της παρακάτω μορφής:
[[1]], για την εφαρμογή SFA-Merchandising
[[2]], για την εφαρμογή xVan
[[3]], για την εφαρμογή Field Service
[[4]], για την εφαρμογή Medical Representative
Ειδικά στην iOS πλατφόρμα, για την αναγνώριση URL με μη λατινικούς χαρακτήρες, απαιτείται συγκεκριμένο encoding. Στην περίπτωση ενός τέτοιου URL, θα πρέπει να γίνει μετατροπή του στο απαιτούμενο encoding. Η μετατροπή αυτή μπορεί να γίνει εύκολα χρησιμοποιώντας εργαλεία όπως το www.urlencoderτου.org.
π.χ. για είδος με κωδικό ΔΠ-001, το URL δεν πρέπει να είναι της μορφής [[5]] αλλά της μορφής [[6]]
Εισαγωγή γραμμών από είδη καταλόγου 
Σε DocForm οθόνη της οντότητας Document δίνεται η δυνατότητα αυτόματης «αντικατάστασης» μιας λίστας εισαγωγής γραμμών (πλήκτρο τύπου AddLineButton) με μια προκαθορισμένη λίστα 2 επιπέδων όπου στο πρώτο επίπεδο εμφανίζεται λίστα με τα είδη καταλόγου και στο δεύτερο λίστα με τα είδη αποθήκης που αναφέρονται στο επιλεγμένο είδος καταλόγου. Για την ενεργοποίηση της δυνατότητας αυτής αρκεί στην παράμετρο κινητού Doc_UseCatalogueItems να δηλωθεί η τιμή 1-Ναι.
Οι οθόνες που αφορούν στις λίστες είδη καταλόγου & είδη αποθήκης είναι προκαθορισμένες και υλοποιούνται μέσω χρήσης των εντολών CatalogueItemInvForm & ItemInvList αντίστοιχα.
Μαζική ενημέρωση επιλεγμένων γραμμών
Παράδειγμα ES.MCHCP-Τιμοληψία
Σε DocForm οθόνη δίνεται η δυνατότητα μαζικής ενημέρωσης στοιχείων για το σύνολο των επιλεγμένων γραμμών εργασίας-παραστατικού. Για την αξιοποίηση της δυνατότητας αυτής απαιτείται αφενός η διαμόρφωση οθόνης στην οποία δηλώνονται τα στοιχεία προς ενημέρωση και αφετέρου η προσθήκη ανάλογης ενέργειας στην DocForm οθόνη εργασίας-παραστατικού.
Λόγω των ιδιαίτερων χαρακτηριστικών της λειτουργικότητας αυτής, η ESMobile εφαρμογή δεν παρέχει κάποιο προϊοντικό σενάριο υλοποίησης της. Στην ενότητα αυτή, χρησιμοποιόντας συγκεκριμένο παράδειγμα, θα δόσουμε αναλυτικές οδηγίες υλοποίησης -σε επίπεδο εξατομίκευσης της εφαρμογής- σενάριου μαζικής ενημέρωσης επιλεγμένων γραμμών.
Διαμόρφωση οθόνης
Η διαμόρφωση της οθόνης στην οποία δηλώνονται τα στοιχεία προς ενημέρωση γίνεται μέσω χρήσης αρχείου τύπου DetailView.xml. Το αρχείο αυτό θα πρέπει να έχει το όνομα MassUpdateDetailView.xml και να έχει τοποθετηθεί στην περιοχή όπου βρίσκονται όλα τα αρχεία του σκέλους Περιεχόμενα της DocForm οθόνης (π.χ. περιοχή GenericTaskForm/es.mch/TaskItem για εργασία τύπου μέτρηση και περιοχή GenericDocForm/1 για παραστατικό τύπου παραγγελία). Επισημαίνουμε εδώ ότι, η οθόνη μαζικής ενημέρωσης μπορεί να περιέχει παντός τύπου στοιχεία (κείμενο, αριθμός, ημερομηνία, χαρακτηρισμός & λίστα επιλογής). Ειδικά στην περίπτωση στοιχείου τύπου λίστα επιλογής, η δήλωση θα πρέπει να είναι της μορφής [POP].
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια οθόνη που να δίνει τη δυνατότητα μαζικής ενημέρωσης των στοιχείων Κείμενο-1, Αριθμός-1, Ημερομηνία-1, Χαρακτηρισμός-1 & Πίνακας-1 γραμμών εργασίας τύπου ES.MCHCP-Τιμοληψία.
Προσθήκη ενέργειας
Η κλήση της οθόνης μαζικής ενημέρωσης γίνεται μέσω δήλωσης της ενέργειας BatchUpdateSelected ως διακριτής επιλογής στο μενού πλήκτρο
-Ενέργειες της της DocForm οθόνης (section ToolbarActions του Actions.xml αρχείου). Επισημαίνουμε εδώ ότι, για να είναι εφικτή η επιλογή των γραμμών προς ενημέρωση θα πρέπει -στο AdvancedList.xml αρχείο του σκέλους Περιεχόμενα- να υπάρχει και το στοιχείο IsRowSelected.
Named εργασία (NamedTask) 
Η Data entry οθόνη τύπου Named εργασία (NamedTask) είναι διαθέσιμη μόνο σε iOS πλατφόρμα και μπορεί να χρησιμοποιηθεί ως εναλλακτικός τρόπος υλοποίησης της Data entry οθόνης εργασίας η οποία δεν έχει το σκέλος Περιεχόμενα (π.χ. εργασία τύπου ES.SAP-Συνάντηση πωλήσεων). Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου NamedTask είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου NewFormCreatorCommand ή EditFormCreatorCommand για την καταχώριση ή τη διαχείριση εγγραφής αντίστοιχα. Όσον αφορά στα στοιχεία που ορίζονται σε επίπεδο εντολής ισχύουν σε γενικές γραμμές τα ίδια με αυτά που περιγράφονται για οθόνη τύπου EditForm. Στην ενότητα αυτή θα αναφερθούμε επιγραμματικά στα σημεία εκείνα που διαφοροποιούνται και επομένως απαιτούν ιδιαίτερη προσοχή κατά την υλοποίηση οθόνης τύπου NamedTask. |
| Φόρμα | Για την υλοποίηση της μορφής εμφάνισης της οθόνης απαιτείται η χρήση αρχείου τύπου DetailView.xml. Όσον αφορά στον τρόπο ορισμού των στοιχείων εμφάνισης της φόρμας ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου EditForm. |
Για να εξασφαλιστεί η απρόσκοπτη αναβάθμιση της ESMobile εφαρμογής θα πρέπει, αν το DetailView αρχείο της οθόνης γίνει custom να γίνει απαραίτητα custom και το αρχείο εντολής της οθόνης. Ο κανόνας αυτός ισχύει ακόμα και στην περίπτωση που δεν υπάρχει καμία ανάγκη επέμβασης στο αρχείο της εντολής.
Δεδομένα / Ιδιαίτερες ρυθμίσεις
Για τις ρυθμίσεις σε επίπεδο εντολής, σε συνδυασμό με αυτά που ισχύουν για οθόνη τύπου EditForm, ισχύουν και τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| IsTask | Επιλογή κατάστασης αποθήκευσης της εργασίας (true) ή όχι (false). |
| TaskType | Ο τύπος εργασίας με διαθέσιμες τιμές 1-Συνάντηση πωλήσεων και 3-Εργασία πωλήσεων. Σημειώνουμε εδώ ότι, στην περίπτωση που για οποιονδήποτε λόγο επιθυμούμε τη χρήση της NamedTask οθόνης για υλοποίηση εργασίας άλλου τύπου, στην ιδιότητα αυτή θα πρέπει να δηλωθεί το InternationalID του τύπου εργασίας. |
| SaveMenu | Οι επιλογές αποθήκευσης. Οι κλασικές επιλογές είναι: 1-Αποθήκευση, 2-Ολοκλήρωση, 3-Ακύρωση. |
Σημειώνουμε εδώ ότι σε iOS πλατφόρμα και σε προηγούμενες της 3.10 εκδόσεις της ESMobile εφαρμογής, για τις εργασίες τύπου ES.SAP-Συνάντηση πωλήσεων και ES.STK-Εργασία πωλήσεων, η χρήση οθόνης τύπου NamedTask ήταν η μοναδική επιλογή. Όμως, από την έκδοση 3.10 και μετά όπου δόθηκε η δυνατότητα χρήσης οθόνης τύπου DocForm και για τους συγκεκριμένους τύπους εργασίας, συστήνεται πλέον ανεπιφύλακτα η αποφυγή της χρήσης οθόνης τύπου NamedTask. Τα βασικά πλεονεκτήματα της DocForm οθόνης έναντι της NamedTask είναι:
Υλοποίηση οθόνης. Κοινοί «κανόνες» υλοποίησης οθόνης για την οντότητα Task για όλους τους τύπους εργασίας.
Λοιπές περιοχές οθόνης. Δυνατότητα αξιοποίησης της επιπλέον λειτουργικότητας που παρέχεται μέσω του Actions.xml αρχείου της φόρμας.
Business Rules. Δυνατότητα αξιοποίησης της επιπλέον λειτουργικότητας που παρέχεται μέσω του εργαλείου Business Rules.
Οι ενέργειες που απαιτούνται για τη «μετάβαση» στο νέο τρόπο διαχείρισης των εργασιών ES.SAP-Συνάντηση πωλήσεων και ES.STK-Εργασία πωλήσεων είναι:
Δήλωση στην παράμετρο εταιρείας AppTodoAsTask της τιμής 1-Ναι. Σημειώνουμε εδώ ότι, μετά την αλλαγή στην τιμή της παραμέτρου απαιτείται και ανανέωση της cache του συστήματος.
Εκτέλεση από τη συσκευή της διαδικασίας αρχικοποίησης δεδομένων. Σημειώνουμε εδώ ότι, με την ολοκλήρωση της διαδικασίας αρχικοποίησης, οι αυτόνομοι πίνακες των τύπων εργασίας ES.APP-Συνάντηση Πωλήσεων (πίνακας ESTMAppointment) και ES.STK-Εργασία Πωλήσεων (πίνακας ESTMToDO) γίνονται πλέον ανενεργοί.
Οθόνες πληροφόρησης
Οι οθόνες πληροφόρησης χρησιμοποιούνται για την εμφάνιση δεδομένων υπό μορφή report. Ο τρόπος υλοποίησης του report διαφοροποιείται ανάλογα με το αν οι προς εμφάνιση πληροφορίες αντλούνται από την τοπική βάση δεδομένων ή μέσω online σύνδεσης με τα κεντρικά αλλά και ανάλογα με την επιθυμητή μορφή εμφάνισης του report.
Local grid report (DataGridReport)
Παράδειγμα SampleDataGridReport
Η οθόνη πληροφόρησης τύπου DataGridReport χρησιμοποιείται για την υλοποίηση report που εμφανίζει πληροφόρηση υπό μορφή πίνακα (Grid) αντλώντας στοιχεία από την τοπική βάση δεδομένων. Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου DataGridReport είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου ESDataGridCommand. |
| Report | Για την υλοποίηση της μορφής εμφάνισης του repot απαιτείται η χρήση αρχείου τύπου ReportDefinition.xml. |
Στη συνέχεια της ενότητας αυτής, χρησιμοποιώντας συγκεκριμένο παράδειγμα, θα δώσουμε αναλυτικές οδηγίες υλοποίησης οθόνης τύπου DataGridReport.
Δεδομένα
Ο ορισμός των δεδομένων της DataGridReport οθόνης καθώς και η σύνδεση εντολής-report γίνεται μέσω ανάλογης ρύθμισης των επιμέρους ιδιοτήτων του αρχείου της εντολής. Το αρχείο της εντολής θα πρέπει να βρίσκεται στον υπό-φάκελο Commands της περιοχής ESConfig ή CSConfig. Ιδιαίτερη προσοχή θα πρέπει να δοθεί ώστε το όνομα του αρχείου της εντολής να ταυτίζεται με το όνομα της εντολής μέσα στο αρχείο.
Όσον αφορά στα στοιχεία που ορίζονται σε επίπεδο εντολής (δεδομένα, ταξινόμηση & αναζήτηση) ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου ListForm με εξαίρεση το ότι το αρχείο του report της οθόνης θα πρέπει να βρίσκεται σε υπό-φάκελο της περιοχής ESReports ή CSReports.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια οθόνη τύπου DataGridReport η οποία να εμφανίζει κάποια βασικά οικονομικά στοιχεία των πελατών αντλώντας πληροφόρηση από την τοπική βάση δεδομένων. Το report αυτό θέλουμε να πληροί τις παρακάτω βασικές προδιαγραφές:
Να περιλαμβάνει μόνο τους ενεργούς πελάτες
Να είναι ταξινομημένο αλφαβητικά βάσει επωνυμίας πελάτη, αλλά να δίνει και τη δυνατότητα ταξινόμησης βάσει υπολοίπου πελάτη.
Να δίνει τη δυνατότητα αναζήτησης εγγραφών βάσει επωνυμίας πελάτη
Έστω επίσης ότι το report της οθόνης αυτής είναι το SampleDataGridReport.
Μορφή εμφάνισης
Ο ορισμός των στοιχείων που καθορίζουν τη μορφή εμφάνισης του report γίνεται μέσω ανάλογης ρύθμισης των επιμέρους ιδιοτήτων του ReportDefinition αρχείου της οθόνης. Το αρχείο αυτό έχει τα παρακάτω προκαθορισμένα σκέλη.
CssStyle. Στο σκέλος αυτό γίνεται η ρύθμιση των στοιχείων που σχετίζονται με τη μορφή εμφάνισης των περιοχών και των δεδομένων του report. Σημειώνουμε εδώ ότι, οδηγίες γύρω από τις δυνατότητες ρύθμισης του σκέλους αυτού ξεπερνούν τα όρια του παρόντος εγχειρίδιου οπότε και δεν θα γίνει αναφορά σε αυτές.
ColumnSections. Στο σκέλος αυτό γίνεται ο ορισμός των στοιχείων που εμφανίζει το report καθώς και η θέση εμφάνισης καθενός από αυτά. Δίνεται η δυνατότητα τοποθέτησης όλων των προς εμφάνιση στοιχείων (Column) μέσα σε ένα τμήμα (ColumnSection) αλλά και του διαχωρισμού τους σε πολλαπλά τμήματα.
Για τις βασικές ιδιότητες του σκέλους ColumnSections ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| ColumnSection | |
| Caption | Το λεκτικό που εμφανίζεται ως τίτλος του τμήματος. |
| Column | |
| ID | Ο α/α του στοιχείου ο οποίος θα πρέπει να είναι μοναδικός. |
| Caption | Το λεκτικό που εμφανίζεται ως τίτλος του στοιχείου. |
| DataMember | Η κολόνα της εντολής που αντιστοιχεί στο στοιχείο. |
| AggregateFunction | Η συνάρτηση που θέλουμε να εφαρμοστεί επί των δεδομένων του στοιχείου. Το αποτέλεσμα της συνάρτησης εμφανίζεται αυτόματα στην περιοχή συνόλων του report. |
| Tag |
Συμπληρώνοντας την ιδιότητα αυτή, το report εμπλουτίζεται με τη δυνατότητα του drill down. Δηλώνεται η προς εκτέλεση εντολή και οι «προδιαγραφές» εκτέλεσης της. Η σύνταξη θα πρέπει να είναι της μορφής Command#ParamName@DataSource όπου
|
| Weight | Το πλάτος του στοιχείου το οποίο καθορίζεται πάντα αναλογικά ως προς το σύνολο των προς εμφάνιση στοιχείων. |
Έστω για παράδειγμα ότι θέλουμε η DataGridReport οθόνη μας να εμφανίζει σε ένα τμήμα τα στοιχεία πελάτη: Επωνυμία, Υπόλοιπο, Ανοικτά αξιόγραφα, Τζίρος και Τελευταία χρώση-πίστωση.
Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε την DataGridReport οθόνη μας έτσι ώστε να γίνεται ομαδοποίηση των δεδομένων βάσει της ABC κλάσης του πελάτη.
Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε την DataGridReport οθόνη μας έτσι ώστε, εστιάζοντας σε μια εγγραφή, να γίνεται drill down σε DataGridReport οθόνη που εμφανίζει την καρτέλα του τρέχοντος πελάτη. Έστω επίσης ότι η εντολή της οθόνης αυτής είναι η SampleDataGridDrillDown.
Οθόνη E-mail
Σε οθόνη τύπου DataGridReport δίνεται η δυνατότητα αυτόματης σύνταξης E-mail με επισυναπτόμενο ένα αρχείο τύπου pdf στο οποίο απεικονίζονται τα στοιχεία του τρέχοντος report. Για την αξιοποίηση της λειτουργικότητας αυτής δεν απαιτούνται επιπλέον ρυθμίσεις πέρα από τη ρύθμιση των ιδιοτήτων της DataGridReport εντολής που σχετίζονται με την αυτόματη συμπλήρωση των αποδεκτών του E-mail (ιδιότητες MailRecipientSQL, MailCCRecipientSQL & MailBCCRecipientSQL).
Online reports
Τα online reports χρησιμοποιούνται για την υλοποίηση report που αντλεί πληροφόρηση σε απευθείας σύνδεση με τα κεντρικά. Ο τρόπος υλοποίησης ενός online report διαφοροποιείται ανάλογα με την εφαρμογή που θα επιλεγεί ως το εργαλείο κλήσης του report με διαθέσιμες επιλογές την ESMobile εφαρμογή (HTMLReport) ή την εφαρμογή ESAnalyzer (HybridReport).
ESMobile εφαρμογή (HTMLReport) 
Η οθόνη πληροφόρησης τύπου HTMLReport είναι διαθέσιμη μόνο σε iOS πλατφόρμα. Ο ορισμός των δεδομένων της οθόνης γίνεται σε επίπεδο EBS εφαρμογής και μέσω υλοποίησης του ανάλογου EBS scroller. Η μορφή εμφάνισης του report είναι προκαθορισμένη και προκύπτει από τον τύπο εντολής που θα χρησιμοποιηθεί για την κλήση του report με διαθέσιμες επιλογές αυτή της εμφάνισης των στοιχείων συγκεκριμένης εγγραφής υπό μορφή κάρτας (Card) και αυτή της εμφάνισης μιας λίστας εγγραφών υπό μορφή πίνακα (Grid). Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες της HTMLReport οθόνης ισχύουν τα παρακάτω.
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | HTMLReport τύπου Card |
| Απαιτείται η χρήση εντολής τύπου InfoCommand. Στην ιδιότητα Scroller δηλώνονται τα περιοχή / όνομα του EBS scroller ενώ στην ιδιότητα ParamName1 δηλώνεται το όνομα της παραμέτρου εκτέλεσης του EBS scroller. Σημειώνουμε εδώ ότι, αν θέλουμε την κλήση του online report επί επιλεγμένης εγγραφής, θα πρέπει ο EBS scroller να έχει μια μη ερωτώμενη παράμετρο η οποία να αντιστοιχεί στο μοναδικό κλειδί ταυτοποίησης της οντότητας από την οποία γίνεται η κλήση του online report. | |
| HTMLReport τύπου Gid | |
| Απαιτείται η χρήση εντολής τύπου HtmlScrollerCommand. Στις ιδιότητες ScrollerGroup & ScrollerID δηλώνονται η περιοχή & το όνομα του EBS scroller αντίστοιχα ενώ στην ιδιότητα ParamName δηλώνεται το όνομα της παραμέτρου εκτέλεσης του EBS scroller. Σημειώνουμε εδώ ότι, αν θέλουμε την κλήση του online report επί επιλεγμένης εγγραφής, θα πρέπει ο EBS scroller να έχει μια μη ερωτώμενη παράμετρο η οποία να αντιστοιχεί στο μοναδικό κλειδί ταυτοποίησης της οντότητας από την οποία γίνεται η κλήση του online report. |
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια HTMLReport οθόνη η οποία να εμφανίζει τη συνολική διαθεσιμότητα στοκ του τρέχοντος είδους.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια HTMLReport οθόνη η οποία να εμφανίζει τη διαθεσιμότητα στοκ ανά αποθήκη για το τρέχον είδος.
Σημειώνουμε εδώ ότι σε iOS πλατφόρμα και σε προηγούμενες της 5.0 εκδόσεις της ESMobile εφαρμογής, η χρήση για τα online reports οθόνης τύπου HTMLReport ήταν η μοναδική επιλογή. Όμως, από την έκδοση 5.0 και μετά όπου δόθηκε και η δυνατότητα χρήσης οθόνης τύπου HybridReport συστήνεται πλέον ανεπιφύλακτα η αποφυγή χρήσης οθόνης τύπου HTMLReport. Τα βασικά πλεονεκτήματα της HybridReport οθόνης έναντι της HTMLReport είναι:
Παράμετροι report. Προσθήκη αυτόνομης περιοχής με τις παραμέτρους εκτέλεσης του report αλλά και δυνατότητα χρήσης παραμέτρου παντός τύπου (χρονικό διάστημα, λίστα επιλογής, λίστα πολλαπλής επιλογής κ.λπ.)
Μορφή εμφάνισης report. Διατήρηση των ρυθμίσεων που ορίζονται σε επίπεδο EBS scroller και αφορούν στη μορφοποίηση των στοιχείων του report (πλάτος στήλης, στοίχιση περιεχομένου, μορφή αριθμού κ.λπ.).
Τύποι εμφάνισης δεδομένων. Πέρα από τους τύπους εμφάνισης δεδομένων που υποστηρίζονται από την ESMobile εφαρμογή (Grid & Card) υποστηρίζονται και οι τύποι: Chart, Treemap, Pivot, Map & Combo.
Αναλυτικές οδηγίες τόσο για την ενεργοποίηση της εφαρμογής ESAnalyzer ως το εργαλείο κλήσης των online reports όσο και για την υλοποίηση οθόνης τύπου HybridReport δίνονται στην παρακάτω ενότητα.
Εφαρμογή ESAnalyzer (HybridReport)
Παράδειγμα SampleHybridReportGRID & SampleHybridReportPIVOT
Οι προϋποθέσεις που πρέπει να πληρούνται -σε επίπεδο εγκατάστασης- έτσι ώστε να υπάρχει η δυνατότητα χρήσης της εφαρμογής ESAnalyzer ως το εργαλείο κλήσης των online reports είναι:
- Να υπάρχει η δυνατότητα εκτέλεσης της εφαρμογής Entersoft Online reports for Mobile Applications (ESAnalyzer).
- Να υπάρχει στην περιοχή HybridWebReports της συσκευής υπό-φάκελος με τα αρχεία της τρέχουσας έκδοσης της εφαρμογής ESAnalyzer η οποία, στη φάση αυτή, είναι η 3.0.10.
- Να υπάρχει στην περιοχή ESPublicQueries ή CSPublicQueries της EBS εφαρμογής, για κάθε έναν ESB scroller που αφορά σε online report, και το αντίστοιχο public query.
- Να έχει γίνει ανάλογη συμπλήρωση των παρακάτω παραμέτρων κινητού. Σημειώνουμε εδώ ότι, ειδικά σε iOS πλατφόρμα και για διασφάλιση της συμβατότητας με προηγούμενες εκδόσεις, διατηρώντας κενό το περιεχόμενο των παραμέτρων αυτών δεν ενεργοποιείται και η «μετάβαση» στην εφαρμογή ESAnalyzer.
| Παράμετρος κινητού | Τιμή |
|---|---|
| HybridOnlineReports_BridgeID | … |
| HybridOnlineReports_Host | api.entersoft.gr |
| HybridOnlineReports_SubscriptionID | … |
| HybridOnlineReports_SubscriptionPassword | … |
| HybridOnlineReports_Version | 3.0.10 |
Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου HybridReport είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου HybridReportsCommand. Σημειώνουμε εδώ ότι, για λόγους συμβατότητας με προηγούμενες της 5.0 εκδόσεις της ESMobile εφαρμογής, υποστηρίζεται και η χρήση εντολής τύπου InfoCommand &. HtmlScrollerCommand όπου για την υλοποίηση τους ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην ενότητα HTMLReport. |
| Report | Για την υλοποίηση της μορφής εμφάνισης του repot απαιτείται η χρήση αρχείου τύπου jason. Ειδικά στην περίπτωση της χρήσης εντολής τύπου HybridReportsCommand η δήλωση του jason αρχείου είναι υποχρεωτική καθότι η δήλωση της περιοχής & του ονόματος του EBS scroller γίνεται στις ιδιότητες GroupID & FilterID του αρχείου αυτού. |
Δεδομένα
Ο ορισμός των δεδομένων του report γίνεται σε επίπεδο EBS εφαρμογής και μέσω υλοποίησης του ανάλογου EBS scroller. Επισημαίνουμε εδώ ότι, απαραίτητη είναι και η δημιουργία του αντίστοιχου public query. Όπως αναφέρθηκε και παραπάνω, στην περίπτωση της HybridReport οθόνης η δήλωση του EBS scroller γίνεται στο jason αρχείο της οθόνης οπότε η εντολή χρησιμοποιείται απλά για τη σύνδεση εντολής-report. Το αρχείο της εντολής θα πρέπει να βρίσκεται στον υπό-φάκελο Commands της περιοχής ESConfig ή CSConfig. Ιδιαίτερη προσοχή θα πρέπει να δοθεί ώστε το όνομα του αρχείου της εντολής να ταυτίζεται με το όνομα της εντολής μέσα στο αρχείο.
| Ιδιότητα | Σχόλιο |
|---|---|
| Title | Το λεκτικό που εμφανίζεται ως τίτλος της HybridReport οθόνης. |
| FormID | Ο φάκελος της περιοχής ESReports ή CSReports στον οποίο βρίσκεται το σχετιζόμενο με την οθόνη jason αρχείο του report. Επισημαίνουμε εδώ ότι, το όνομα του φακέλου και του jason αρχείου θα πρέπει να ταυτίζονται. |
Μορφή εμφάνισης
Ο ορισμός της μορφής εμφάνισης του report γίνεται μέσω ανάλογης ρύθμισης της ιδιότητας ESUIType του jason αρχείου της οθόνης με διαθέσιμες τιμές τα: ESGrid, ESCard, ESChart, ESTreemap, ESPivot, ESMap & ESCombo. Οι περαιτέρω ρυθμίσεις του jason αρχείου διαφοροποιούνται ανάλογα με τη μορφή εμφάνισης που θα επιλεγεί. Σημειώνουμε εδώ ότι, οι αναλυτικές οδηγίες σύνταξης του jason αρχείου ξεπερνούν τα όρια του παρόντος εγχειριδίου και παρέχονται στο εγχειρίδιο της εφαρμογής ESAnalyzer.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια HybridReport οθόνη η οποία να εμφανίζει υπό μορφή Grid τα μεγέθη ποσότητα πωλήσεων & τζίρος ανά ομάδα ειδών.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια HybridReport οθόνη η οποία να εμφανίζει υπό μορφή Pivot τα μεγέθη ποσότητα πωλήσεων & τζίρος ανά ομάδα ειδών.
Κυκλικός μετρητής (CircularGauge)
Η οθόνη Κυκλικός μετρητής (CircularGauge) χρησιμοποιείται για την υλοποίηση report που εμφανίζει πληροφόρηση υπό μορφή ποσοστιαίου δείκτη αντλώντας στοιχεία από την τοπική βάση δεδομένων. Η CircularGauge οθόνη μπορεί να λειτουργήσει είτε ως αυτόνομη οθόνη είτε ως διακριτό τμήμα μιαs Dashboard οθόνης. Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου CircularGauge είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση της ειδικού τύπου εντολής CircularGaugeCommand. Όσον αφορά στα στοιχεία που ορίζονται σε επίπεδο εντολής (δεδομένα, ταξινόμηση & αναζήτηση) ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου ListForm. Το ιδιαίτερο όμως χαρακτηριστικό εντολής αυτού του τύπου αποτελεί το στοιχείο GaugeParams μέσω των επιμέρους ιδιοτήτων του οποίου καθορίζεται και η μορφή εμφάνισης της CircularGauge οθόνης. |
Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες του στοιχείου GaugeParams ισχύουν τα παρακάτω.
Home dashboard οθόνη (HomePage)
Η οθόνη Home dashboard (HomePage) χρησιμοποιείται ως εργαλείο εποπτικής πληροφόρησης αντλώντας στοιχεία από την τοπική βάση δεδομένων με κύριο χαρακτηριστικό της το ότι παρέχει τη δυνατότητα «συγκερασμού» όλων των διαθέσιμων μορφών εμφάνισης δεδομένων (λίστα, γράφημα & κυκλικός μετρητής). Η HomePage οθόνη αποτελεί πάντα μια αυτόνομη οθόνη, δηλαδή μια οθόνη που δεν συνδέεται με συγκεκριμένη λίστα εγγραφών.
Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου HomePage είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου DashboardCreatorCommand. Όσον αφορά στα στοιχεία που ορίζονται σε επίπεδο εντολής (δεδομένα, ταξινόμηση & αναζήτηση) ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου ListForm. |
| Φόρμα | Για την υλοποίηση της μορφής εμφάνισης της οθόνης απαιτείται η χρήση αρχείου τύπου AdvancedList.xml και αρχείου τύπου ExtraLayoutParams.xml. Όσον αφορά στον τρόπο ορισμού των αρχείων αυτών ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου ListForm με τον περιορισμό όμως ότι για τον ορισμό των σελίδων-τμημάτων απαιτείται η χρήση του section ESTabs του ExtraLayoutParams αρχείου. |
Ένα κλασικό παράδειγμα υλοποίησης οθόνης αυτού του τύπου αποτελεί η οθόνη που εμφανίζεται καλώντας την επιλογή Η εικόνα μου του κεντρικού μενού των εφαρμογών ES-SFA & ES-xVan.
Ειδικές οθόνες
Στην ενότητα αυτή θα αναφερθούμε σε οθόνες της ESMobile εφαρμογής στις οποίες τόσο η λειτουργικότητα όσο και η μορφή εμφάνισης τους είναι σχετικά προκαθορισμένη με αποτέλεσμα να μην παρέχονται ιδιαίτερες δυνατότητες ρύθμισης των στοιχείων τους.
Κεντρικό μενού
Η σχεδίαση του κεντρικού μενού της ESMobile εφαρμογής γίνεται με τη χρήση του ειδικού τύπου αρχείου Home.xml της φόρμας με το όνομα HomeForm. Μέσω των επιμέρους στοιχείων του Home αρχείου, δίνεται η δυνατότητα ρύθμισης της δομής και των περιεχομένων του κεντρικού μενού έτσι ώστε να ανταποκρίνεται καλύτερα στις ανάγκες πλοήγησης του χρήστη. Το κεντρικό μενού απαρτίζεται από τρεις προκαθορισμένους τύπους στοιχείων:
Ομάδα επιλογών. Το στοιχείο τύπου ομάδα επιλογών (Group) αποτελεί το πρώτο επίπεδο του κεντρικού μενού και χρησιμοποιείται για τη συγκέντρωση ενός συνόλου ομοειδών επιλογών κάτω από ένα κοινό τίτλο.
Υπό-ομάδα επιλογών. Το στοιχείο τύπου υπό-ομάδα επιλογών (Submenu) αποτελεί το δεύτερο επίπεδο του κεντρικού μενού και χρησιμοποιείται για τη συγκέντρωση ενός συνόλου ομοειδών επιλογών κάτω από ένα κοινό τίτλο. Εστιάζοντας σε στοιχείο αυτού του τύπου, εμφανίζονται, υπό μορφή λίστας επιλογής, οι προς εκτέλεση εντολές.
Επιλογή. Το στοιχείο τύπου επιλογή (Command) αποτελεί το τρίτο και τελευταίο επίπεδο του κεντρικού μενού. Εστιάζοντας σε στοιχείο αυτού του τύπου, γίνεται μετάβαση στην οθόνη της ESMobile εφαρμογής στην οποία αναφέρεται το εκάστοτε στοιχείο.
Από πλευράς ρύθμισης του Home αρχείου η μόνη δυνατότητα που παρέχεται είναι αυτή μεταβολής των στοιχείων που περιλαμβάνει (προσθήκη ή αφαίρεση στοιχείου, μετονομασία στοιχείου κ.λπ.). Για τον τρόπο ορισμού και τις διαθέσιμες ιδιότητες, ανά τύπο στοιχείου, ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| Group | |
| Title | Το λεκτικό που εμφανίζεται ως τίτλος του στοιχείου. |
| ID | Αφορά αποκλειστικά στη διαδικασία μετάφρασης του προϊόντος (Translation key). |
| Submenu | |
| ID | Αφορά αποκλειστικά στη διαδικασία μετάφρασης του προϊόντος (Translation key). |
| System | Αφορά αποκλειστικά στο προκαθορισμένο Home αρχείο της ESMobile εφαρμογής όπου ως «συστημικό» έχει χαρακτηριστεί το Submenu στοιχείο «Συγχρονισμός». Αποτέλεσμα της ρύθμισης αυτής είναι να έχει αφαιρεθεί πλήρως η δυνατότητα απόκρυψης του συγκεκριμένου στοιχείου. |
| Title | Το λεκτικό που εμφανίζεται ως τίτλος του στοιχείου. |
| Icon | Το εικονίδιο του στοιχείου. |
| Command | Η ιδιότητα θα πρέπει να έχει κενό περιεχόμενο. |
| Command | |
| ID | Αφορά αποκλειστικά στη διαδικασία μετάφρασης του προϊόντος (Translation key). |
| System | Αφορά αποκλειστικά στο προκαθορισμένο Home αρχείο της ESMobile εφαρμογής όπου ως «συστημικό» έχει χαρακτηριστεί το Command στοιχείο «Ρυθμίσεις». Αποτέλεσμα της ρύθμισης αυτής είναι να έχει αφαιρεθεί πλήρως η δυνατότητα απόκρυψης του συγκεκριμένου στοιχείου. |
| Title | Το λεκτικό που εμφανίζεται ως τίτλος του στοιχείου. |
| Icon | Το εικονίδιο του στοιχείου. Σημειώνουμε εδώ ότι, για τα στοιχεία που εντάσσονται κάτω από στοιχείο τύπου Submenu δεν εμφανίζεται εικονίδιο. |
| Command | Η προς εκτέλεση εντολή. |
| PopToRoot | Χαρακτηρισμός του στοιχείου ως κύριας οθόνης (true) ή ως προστιθέμενης στην ήδη υπάρχουσα «στοίβα» οθονών (false). Συστήνεται, για λόγους καλύτερης απόκρισης της ESMobile εφαρμογής, η αποφυγή της άκριτης χρήσης της τιμής false. |
Από την έκδοση 4.0 της ESMobile εφαρμογής και μετά, για λόγους διευκόλυνσης της πρόσβασης στις διαδικασίες συγχρονισμού δεδομένων, έγινε μεταφορά όλων των ενεργειών του πλήκτρου
-Συγχρονισμός της οθόνης Ημερολόγιο σε αντίστοιχες επιλογές του κεντρικού μενού. Παράλληλα, έγινε επέκταση της οθόνης «Ρυθμίσεις» έτσι ώστε να ενταχθούν σε αυτήν και όλες οι ενέργειες των υπόλοιπων πλήκτρων ελέγχου της οθόνης Ημερολόγιο.
| Πλήκτρο | Οθόνη Ρυθμίσεις | |
|---|---|---|
| Πληροφορίες | Εργασίες συντήρησης/ Πληροφορίες | |
| Συνδεσιμότητα | Συνδεσιμότητα | |
| Ρυθμίσεις | Πληροφορίες έκδοσης/ Παράμετροι εφαρμογής |
Ημερολόγιο
Η οθόνη Ημερολόγιο χρησιμοποιείται αποκλειστικά για την εμφάνιση εγγραφών της οντότητας Task υπό μορφή ετικέτας & πινέζας στο χάρτη. Για την υλοποίηση της οθόνης απαιτείται η χρήση εντολής τύπου FormCreatorCommand η οποία όμως πρέπει υποχρεωτικά να έχει το όνομα TaskListForm.xml. Τα ιδιαίτερο χαρακτηριστικό της οθόνης Ημερολόγιο είναι ότι συνοδεύεται απαραίτητα και από ένα «προσάρτημα» (αρχείο CalendarTaskSettings) το οποίο βρίσκεται στον υπό-φάκελο Settings της περιοχής με τα αρχεία της φόρμας Ημερολόγιο. Μέσω του αρχείου CalendarTaskSettings ρυθμίζονται στοιχεία που σχετίζονται τόσο με τη μορφή εμφάνισης της οθόνης όσο και με τη λειτουργικότητα της. Στην ενότητα αυτή θα αναφερθούμε στις ιδιότητες του συγκεκριμένου αρχείου.
Μορφή εμφάνισης
Για τη ρύθμιση των στοιχείων του αρχείου CalendarTaskSettings που σχετίζονται με τη μορφή εμφάνισης της οθόνης Ημερολόγιο ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| DefaultTab | Η προτεινόμενη σελίδα του Ημερολογίου με διαθέσιμες τιμές τις 0-Ημέρα, 1-Εβδομάδα, 2-Μήνας & 3-Λίστα. Σημειώνουμε εδώ ότι, η σελίδα Λίστα είναι διαθέσιμη μόνο σε iOS πλατφόρμα. |
| DisableDayTab | Απόκρυψη σελίδας «Ημέρα» (true) ή όχι (false). |
| DisableWeekTab | Απόκρυψη σελίδας «Εβδομάδα» (true) ή όχι (false). |
| DisableMonthTab | Απόκρυψη σελίδας «Μήνας» (true) ή όχι (false). |
| DisableListTab | Απόκρυψη σελίδας «Λίστα» (true) ή όχι (false). Αφορά μόνο σε iOS πλατφόρμα. |
| DisableMap | Απόκρυψη περιοχής χάρτη (true) ή όχι (false). |
| TimeInterval | Το χρονικό διάστημα (σε λεπτά) «κατάτμησης» των ωρών μιας ημέρας. Δηλώνεται μόνο ακέραιος αριθμός. |
| TimeFormat | Η μορφή εμφάνισης των ωρών μιας ημέρας. |
| VisitPlanTrayWidth | Το πλάτος (σε ποσοστό) της οθόνης μαζικής εισαγωγής εργασιών. Δηλώνεται τιμή από 0 έως 1, όπου η τιμή 1 αντιστοιχεί στο 100% του πλάτους της οθόνης. Αφορά μόνο σε iOS πλατφόρμα. |
| BalloonTitle | Η πληροφορία που εμφανίζεται ως περιεχόμενο σε ετικέτα & πινέζα. Η σύνταξη θα πρέπει να είναι της μορφής Column1-Column2-Column… όπου Column η εκάστοτε κολόνα του select query της TaskListForm εντολής. |
Παράλληλα, παρέχεται και δυνατότητα ρύθμισης του χρώματος φόντου & κειμένου της ετικέτας. Οι προϋποθέσεις αξιοποίησης της δυνατότητας αυτής είναι:
- Να έχει γίνει δήλωση του επιθυμητού χρώματος στα πεδία «Χρώμα φόντου» & «Χρώμα κειμένου» του τύπου εργασίας. Η δήλωση χρώματος γίνεται από τα κεντρικά και με χρήση του αντίστοιχου HEX αριθμού.
- Να υπάρχουν, στο select query της TaskListForm εντολής, οι κολόνες BackgroundColor & TextColor
Τέλος, παρέχεται και δυνατότητα διαφοροποίησης χρώματος φόντου ή κειμένου βάσει συνθήκης. Για την αξιοποίηση της δυνατότητας αυτής αρκεί, οι κολόνες BackgroundColor ή TextColor του select query της TaskListForm εντολής να περιγράφουν την επιθυμητή συνθήκη.
Έστω για παράδειγμα ότι θέλουμε, ενώ το προκαθορισμένο χρώμα κειμένου της ετικέτας είναι το μαύρο, ειδικά στην περίπτωση της ad hoc εργασίας να είναι το πορτοκαλί.
Λειτουργικότητα
Μαζική εισαγωγή εργασιών
Από το πλήκτρο
-Νέα της οθόνης Ημερολόγιο παρέχεται η δυνατότητα μαζικής εισαγωγής εργασιών με διαθέσιμα τα εναλλακτικά σενάρια επιλογής εγγραφών από λίστα σημείων πώλησης ή από λίστα συναντήσεων. Πέρα από τα χρονικά πλαίσια δημιουργίας των εργασιών (ημερομηνία-ώρα έναρξης, λεπτά προετοιμασίας & διάρκειας) παρέχεται και η δυνατότητα επιλογής του προς εισαγωγή τύπου εργασίας. Η δήλωση των διαθέσιμων τύπων εργασίας γίνεται από τα κεντρικά και μέσω ρύθμισης του πεδίου «Εμφάνιση στο Ημερολόγιο» με διαθέσιμες τιμές τα 0-Όχι, 1-Εμφάνιση χωρίς δέσμευση χρόνου & 2-Εμφάνιση και δέσμευση χρόνου. Για τη ρύθμιση των στοιχείων του αρχείου CalendarTaskSettings που σχετίζονται με τη διαδικασία μαζικής εισαγωγής εργασιών ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| NewAppFromSiteVisitPlanCommand | Η εντολή που προκαλεί την εισαγωγή εργασιών με επιλογή από λίστα σημείων πώλησης. Απαιτείται χρήση της ειδικού τύπου εντολής SQLCommand. Η προκαθορισμένη από την ESMobile εφαρμογή εντολή είναι η NewAppFromSiteVisitPlan. |
| NewAppFromAppVisitPlanCommand | Η εντολή που προκαλεί την εισαγωγή εργασιών με επιλογή από λίστα συναντήσεων. Απαιτείται χρήση της ειδικού τύπου εντολής SQLCommand. Η προκαθορισμένη από την ESMobile εφαρμογή εντολή είναι η NewAppFromAppVisitPlan. |
| VisitPlanCommand | Η δήλωση των εναλλακτικών σεναρίων επιλογής εγγραφών. Απαιτείται χρήση της ειδικού τύπου εντολής VisitPlanCommand. Η προκαθορισμένη από την ESMobile εφαρμογή εντολή είναι η VisitPlanCommand. |
Ειδικά στην iOS πλατφόρμα, για την ενεργοποίηση της συγκεκριμένης λειτουργικότητας θα πρέπει η παράμετρος κινητού Appointment_creator_enable να έχει την τιμή 1-Ναι. Επίσης, για να υπάρχει και δυνατότητα της επιλογής του προς εισαγωγή τύπου εργασίας θα πρέπει και η παράμετρος εταιρείας AppTodoAsTask να έχει την τιμή 1-Ναι.
Μαζική εισαγωγή εργασιών 
Ειδικά σε iOS πλατφόρμα και για λόγους συμβατότητας με παλαιότερες εκδόσεις της ESMobile εφαρμογής, παραμένει σε ισχύ και ένα περιορισμένης ευελιξίας σενάριο μαζικής εισαγωγής εργασιών. Ο βασικός περιορισμός του σεναρίου είναι ότι η διαδικασία είναι διαθέσιμη μόνο για τους τύπους εργασίας Συνάντηση, Εργασία, Είσπραξη & Εργασία εξυπηρέτησης. Για τη ρύθμιση των στοιχείων του αρχείου CalendarTaskSettings που σχετίζονται με το συγκεκριμένο σενάριο ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| NewAppointmentEnabled | Ο τύπος εργασίας Συνάντηση είναι διαθέσιμος στη διαδικασία μαζικής εισαγωγής (true) ή όχι (false). |
| AppointmentPersonList | Η εντολή που αφορά στην εμφάνιση της λίστας επιλογής εγγραφών. Απαιτείται χρήση εντολής τύπου InvFormCreatorCommand. Η προκαθορισμένη από την ESMobile εφαρμογή εντολή είναι η AppointmentSiteInvForm. |
| AppointmentNewCommand | Η εντολή που προκαλεί την εισαγωγή συνάντησης στην περίπτωση της επιλογής μιας μόνο εγγραφής. Η προκαθορισμένη από την ESMobile εφαρμογή εντολή είναι η AppointmentSiteNewForm. |
| NewMultiAppointment | Η εντολή που προκαλεί την εισαγωγή συναντήσεων στην περίπτωση της πολλαπλής επιλογής εγγραφών. Απαιτείται χρήση της ειδικού τύπου εντολής SQLCommand. Η προκαθορισμένη από την ESMobile εφαρμογή εντολή είναι η NewMultiAppointment. |
| * Οι ιδιότητες αυτές αφορούν στον τύπο εργασίας Συνάντηση πωλήσεων (Appointment). Αντίστοιχο σετ ιδιοτήτων υπάρχει και για τους τύπους εργασίας Εργασία πωλήσεων (ToDo), Είσπραξη (Collection) & Εργασία εξυπηρέτησης (SOS, ROS & PRM). |
Για την ενεργοποίηση της συγκεκριμένης λειτουργικότητας θα πρέπει τόσο η παράμετρος εταιρείας AppTodoAsTask όσο και η παράμετρος κινητού Appointment_creator_enable να έχουν την τιμή 0-Όχι.
Πλάνο συναντήσεων
Από το πλήκτρο
-Πλάνο της οθόνης Ημερολόγιο παρέχεται η δυνατότητα μαζικής εισαγωγής συναντήσεων βάσει προκαθορισμένου πλάνου. Για τη ρύθμιση των στοιχείων του αρχείου CalendarTaskSettings που σχετίζονται με τη διαδικασία αυτή ισχύουν τα παρακάτω.
Μαζική αντιγραφή εργασιών
Από το πλήκτρο
-Αντιγραφή της οθόνης Ημερολόγιο παρέχεται η δυνατότητα μαζικής αντιγραφής εργασιών μέσω επιλογής εγγραφών από λίστα εργασιών οι οποίες πληρούν το κριτήριο προεπιλεγμένου χρονικού διαστήματος. Για τη ρύθμιση των στοιχείων του αρχείου CalendarTaskSettings που σχετίζονται με τη διαδικασία αυτή ισχύουν τα παρακάτω.
Στοιχεία πινέζας
Εστιάζοντας επί πινέζας του χάρτη εμφανίζεται pop up οθόνη με τα στοιχεία του επιλεγμένου σημείου πώλησης. Στην περίπτωση που υπάρχουν εργασίες τύπου ES.PHOTO-Φωτογραφία με τον χαρακτηρισμό «Σημείο πώλησης», η οθόνη εμπλουτίζεται και με φωτογραφήσεις του σημείου.
Παράλληλα, παρέχεται η δυνατότητα εμφάνισης της χιλιομετρικής απόστασης ανάμεσα στην τρέχουσα θέση του χρήστη και του επιλεγμένου σημείου πώλησης. Ειδικά σε UWP & Android πλατφόρμα, η πληροφορία αυτή διατίθεται μέσω συγκεκριμένης υπηρεσίας της Google (Distance Matrix) οπότε για την εμφάνιση της θα πρέπει, στην παράμετρο εταιρείας «Κλειδί για χρήση της χαρτογραφικής υπηρεσίας της Google» (GoogleKey), να έχει δηλωθεί το κλειδί ενεργοποίησης της υπηρεσίας αυτής
Τέλος, πατώντας το πλήκτρο
-Πληροφορίες, γίνεται μετάβαση στην Dashboard οθόνη του σημείου πώλησης ενώ πατώντας το πλήκτρο
-Δρομολόγηση γίνεται μετάβαση σε εξειδικευμένη Maps εφαρμογή με αυτόματα συμπληρωμένα τα σημεία αφετηρίας-προορισμού.
Σχετικά έγγραφα
Η οθόνη Σχετικά έγγραφα χρησιμοποιείται για τη διαχείριση των συνημμένων επί μιας εγγραφής αρχείων. Από την οθόνη διαχείρισης σχετικών εγγράφων παρέχεται η δυνατότητα λήψης συνημμένων από τα κεντρικά, επισύναψης αρχείου από τη συσκευή αλλά και επισκόπησης του περιεχομένου του εκάστοτε συνημμένου. Οι οντότητες για τις οποίες είναι διαθέσιμη η λειτουργικότητα των σχετικών εγγράφων είναι οι: Είδος, Πρόσωπο-Πελάτης-Διεύθυνση, Εργασία, Παραστατικό & Εξοδολόγιο.
Για να είναι εφικτή η αποστολή στα κεντρικά συνημμένων αρχείων που η πρωτογενής καταχώριση τους γίνεται από το χρήστη της συσκευής θα πρέπει να έχει οριστεί από τα κεντρικά αυτόματα παραγόμενος μετρητής για την οντότητα των σχετικών εγγράφων.
Για να είναι εφικτή η διαχείριση των συνημμένων ως μη αποθηκεύσιμα στη βάση δεδομένων (non-blob), απαιτούνται οι παρακάτω ρυθμίσεις:
Δήλωση στην παράμετρο εταιρείας «Αποθήκευση συσχετιζόμενων εγγράφων στον εξυπηρετητή» (SRVISBLOB) της τιμής Ναι.
Δήλωση στην παράμετρο εταιρείας «Φάκελος αποθήκευσης συσχετιζόμενων εγγράφων στον εξυπηρετητή» (SRVRELATEDDOCSPATH) της περιοχής …ESMobileData\ESSync\Memos του IIS Server.
Οι ρυθμίσεις αυτές εξασφαλίζουν τόσο η δυνατότητα της λήψης non-blob συνημμένων από τα κεντρικά όσο και αυτή της αποστολής των συνημμένων της συσκευής στα κεντρικά ως non-blob.
Λήψη συνημμένων
Πρόσβαση στην πλήρη, ανεξάρτητα οντότητας, λίστα διαχείρισης σχετικών εγγράφων παρέχεται από την επιλογή «Συνημμένα έγγραφα» του μενού «Συγχρονισμός». Παράλληλα, πατώντας το πλήκτρο
-Συνημμένα της Dashboard οθόνης μιας οντότητας (π.χ. οντότητα Είδος), εμφανίζεται λίστα με το σύνολο των συνημμένων που αφορούν στην επιλεχθείσα εγγραφή. Ανεξάρτητα του σημείου της εφαρμογής από το οποίο θα γίνει η κλήση της οθόνης διαχείρισης σχετικών εγγράφων, πατώντας το πλήκτρο
-Ενέργειες, δίνεται η δυνατότητα λήψης, από τα κεντρικά στο φάκελο memos της συσκευής, των αρχείων σχετικών εγγράφων. Με την ολοκλήρωση της διαδικασίας λήψης γίνεται αυτόματα και μεταβολή του εικονιδίου που χαρακτηρίζει τα προς λήψη έγγραφα (εικονίδιο
) με εικονίδιο που αντιστοιχεί στον ιδιαίτερο τύπο του κάθε εγγράφου. Οι διαθέσιμοι προς λήψη τύποι εγγράφων καθώς και το χαρακτηριστικό, ανά τύπο εγγράφου, εικονίδιο είναι:
| DOC | WAV | ||||
|---|---|---|---|---|---|
| XLS | HTML | URL διεύθυνση | |||
| PPT | JPG ή PNG | Άλλο |
Επισύναψη αρχείου
Πατώντας τα αντίστοιχα πλήκτρα-επιλογές της οθόνης διαχείρισης σχετικών εγγράφων, δίνεται η δυνατότητα καταχώρισης σχετικού εγγράφου τύπου εικόνα ή ήχος.
Εικόνα. Η επισύναψη αρχείου τύπου εικόνα γίνεται είτε μέσω επιλογής υπάρχουσας φωτογραφίας είτε μέσω κλήσης νέας φωτογράφησης. Κατά την ολοκλήρωση μιας νέας φωτογράφησης δίνεται και δυνατότητα συμπλήρωσης κάποιων πληροφοριακών στοιχείων (Περιγραφή, Κατηγορία & Ομάδα) επί του σχετικού εγγράφου. Σημειώνουμε εδώ ότι, ειδικά σε iOS πλατφόρμα, δηλώνοντας στην παράμετρο κινητού Memo_Disable_FolderButton την τιμή 1-Ναι, απενεργοποιείται η δυνατότητα επιλογής υπάρχουσας φωτογραφίας.
Ήχος. Η επισύναψη αρχείου τύπου ήχος γίνεται αποκλειστικά μέσω κλήσης νέας ηχογράφησης.
Επισύναψη αρχείου άλλου τύπου 
Ειδικά σε iOS πλατφόρμα, δίνεται και η δυνατότητα επισύναψης αρχείου άλλου τύπου μέσα από το περιβάλλον της αντίστοιχης, με τον τύπο του αρχείου, εφαρμογής. Στην περίπτωση αυτή, ενεργοποιούμε σε πρώτη φάση την επιθυμητή εφαρμογή (π.χ. εφαρμογή Acrobat), επιλέγουμε το προς επισύναψη αρχείο, πατάμε το πλήκτρο
«Ενέργειες» και καλούμε την ενέργεια «Open in…». Στη συνέχεια, επιλέγοντας από την οθόνη που εμφανίζεται το αντιπροσωπευτικό για την ESMobile εφαρμογή εικονίδιο, μεταβαίνουμε σε λίστα με τις διαθέσιμε οθόνες της ESMobile εφαρμογής. Τέλος, επιλέγοντας την επιθυμητή οθόνη, μεταβαίνουμε στην αναλυτική λίστα εγγραφών της από την οποία επιλέγεται η εγγραφή στην οποία θέλουμε να γίνει η επισύναψη του αρχείου.
Οι ListForm οθόνες της ESMobile εφαρμογής στις οποίες είναι διαθέσιμη η συγκεκριμένη λειτουργικότητα είναι προκαθορισμένη. Παρόλα αυτά, μέσω κατάλληλης ρύθμισης, δίνεται και η δυνατότητα επέκτασης της προκαθορισμένης λίστας οθονών. Για τις απαιτούμενες ρυθμίσεις ισχύουν τα παρακάτω.
- Διαμόρφωση λίστας. Η διαμόρφωση της λίστας οθονών γίνεται στην εντολή OpenUrlListForm. Για την προσθήκη νέας οθόνης στη λίστα απαιτείται ανάλογη επέκταση του select query της συγκεκριμένης εντολής.
- Ενεργοποίηση επέκτασης. Η ενεργοποίηση της λειτουργικότητας στη νέα οθόνη γίνεται μέσω ρύθμισης, σε επίπεδο της ListForm εντολής, της ιδιότητας EntityType με διαθέσιμες τιμές τις: 0-Εργασία, 3-Παραστατικό, 6-Πρόσωπο & 7-Διεύθυνση και της ιδιότητας EntityGIDfield στην οποία θα πρέπει να δηλωθεί η κολόνα του select query της ListForm εντολής που αποτελεί το μοναδικό κλειδί ταυτοποίησης μιας εγγραφής.
Έστω για παράδειγμα ότι θέλουμε να κάνουμε διαθέσιμη τη δυνατότητα επισύναψης αρχείου άλλου τύπου και στη λίστα «Ανταγωνιστές» (command CompetitorListForm).
Διαχείριση συνημμένου
Εστιάζοντας από την οθόνη διαχείρισης σχετικών εγγράφων σε συγκεκριμένη εγγραφή, γίνεται μετάβαση στην αντίστοιχη, ανάλογα με τον τύπο του εγγράφου, οθόνη επισκόπησης συνημμένου. Από το σημείο αυτό δίνεται και δυνατότητα αποστολής του εγγράφου μέσω email ή επισκόπησης του μέσα από το περιβάλλον άλλης εφαρμογής (π.χ. εφαρμογή Acrobat).
Από την οθόνη διαχείρισης σχετικών εγγράφων δίνεται και δυνατότητα διαγραφής συνημμένου. Το πλήκτρο διαγραφής εμφανίζεται επιλέγοντας το προς διαγραφή συνημμένο και κάνοντας ολίσθηση προς τα αριστερά. Ειδικά σε iOS πλατφόρμα, θα πρέπει να έχει προηγηθεί και το πάτημα του κεντρικού πλήκτρου «Διαγραφή».
Η διαγραφή συνημμένου έχει σαν αποτέλεσμα (α) τη διαγραφή του αρχείου από το φάκελο Memos της συσκευής και (β) τη διαγραφή της αντίστοιχης εγγραφής από τον πίνακα ES00Attachment της συσκευής. Στην περίπτωση βέβαια που το συνημμένο έχει σταλεί στα κεντρικά, θα πρέπει να φροντίσουμε ώστε η διαγραφή του να γίνει από τα κεντρικά.
Κοντινοί πελάτες
Η οθόνη Κοντινοί πελάτες χρησιμοποιείται για την εμφάνιση υπό μορφή λίστας αλλά και πινέζας στο χάρτη των σημείων πώλησης που βρίσκονται σε συγκεκριμένη απόσταση από το τρέχον σημείο του χρήστη της συσκευής. Η προτεινόμενη χιλιομετρική ακτίνα δηλώνεται στο αντίστοιχο πεδίο της οθόνης «Ρυθμίσεις» (οθόνη Ρυθμίσεις/ Προφίλ λειτουργίας/ Χάρτης) αλλά, από τη συγκεκριμένη οθόνη, δίνεται και δυνατότητα περιορισμού ή διεύρυνσης της ακτίνας. Παράλληλα παρέχεται η δυνατότητα άμεσης κλήσης, από τη λίστα των σημείων πώλησης που πληρούν το κριτήριο της ακτίνας, της διαδικασίας μαζικής εισαγωγής συναντήσεων.
Η υλοποίηση της οθόνης Κοντινοί πελάτες γίνεται μέσω χρήσης της ειδικού τύπου εντολής NearestCustomersCommand όπου τα δεδομένα & η μορφή εμφάνισης της οθόνης είναι προκαθορισμένα.
Δεδομένα / Ιδιαίτερες ρυθμίσεις
Δίνεται η δυνατότητα, μέσω κατάλληλης ρύθμισης, διαφοροποίησης των προκαθορισμένων δεδομένων προς εμφάνιση. Για τις απαιτούμενες ρυθμίσεις ισχύουν τα παρακάτω.
- Διαμόρφωση οθόνης. Η δήλωση των δεδομένων προς εμφάνιση γίνεται μέσω χρήσης μιας «κλασικής» ListForm οθόνης. Για να δοθεί όμως η δυνατότητα περιορισμού των δεδομένων βάσει χιλιομετρικής απόστασης απαιτείται, αφενός στο select query της εντολής να υπάρχουν οι κολόνες Latitude & Longitude και αφετέρου στην ιδιότητα Filter της εντολής, να εμπεριέχονται και οι μεταβλητές με το όνομα [LATITUDE], [LONGITUDE] & [RADIUS].
- Ενεργοποίηση οθόνης. Για την ενεργοποίηση της οθόνης αρκεί να γίνει η δήλωση της ListForm εντολής, στην ιδιότητα NearestSiteListCommand της ειδικού τύπου εντολή NearestCustomersCommand.
Ερωτηματολόγιο
Η οθόνη Ερωτηματολόγιο χρησιμοποιείται ως ένα μέσο συλλογής προσχεδιασμένης πληροφορίας είτε από τους πελάτες της εταιρείας είτε από ανώνυμους τρίτους.
Η υλοποίηση οθόνης Ερωτηματολόγιο γίνεται μέσω χρήσης της ειδικού τύπου εντολής NewQuestionnaireCommand όπου τα δεδομένα & η μορφή εμφάνισης της οθόνης είναι προκαθορισμένα.
Μενού πλήκτρο (ActionsCommand)
Η μόνη δυνατότητα επέκτασης της οθόνης Ερωτηματολόγιο είναι αυτή της προσθήκης του μενού πλήκτρου
-Ενέργειες. Η επέκταση αυτή έρχεται να καλύψει την ανάγκη άμεσης εκτέλεσης κάποιων ενεργειών μέσα από το περιβάλλον της συγκεκριμένης οθόνης. Οι επιθυμητές ενέργειες προς εκτέλεση εμφανίζονται ως διακριτές επιλογές του μενού πλήκτρου.
Για τη διαμόρφωση του μενού πλήκτρου
-Ενέργειες, ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται στην αντίστοιχη ενότητα οθόνης τύπου EdiForm.
Φωτογράφηση
![]()
Η οθόνη Φωτογράφηση χρησιμοποιείται ως ένα μέσο αποτύπωσης υπό μορφή εικόνας πληροφορίας που συλλέγεται από τους πελάτες της εταιρείας.
Η υλοποίηση οθόνης Φωτογράφηση γίνεται μέσω χρήσης της ειδικού τύπου εντολής PhotoCommand όπου τα δεδομένα & η μορφή εμφάνισης της οθόνης είναι προκαθορισμένα και δεν παρέχεται καμία δυνατότητα επέμβασης σε αυτά. Σημειώνουμε εδώ ότι, τα δεδομένα της οθόνης Φωτογράφηση αποθηκεύονται στην οντότητα Task χρησιμοποιώντας ως τύπο εργασίας τον ES.PHOTO-Φωτογραφία ενώ τα αρχεία εικόνας αποθηκεύονται στο φάκελο Photos της συσκευής. Η σύνδεση μεταξύ εργασίας-εικόνας γίνεται μέσω του μοναδικού κωδικού ταυτοποίησης (πεδίο GID) της εγγραφής εργασίας.
Οθόνη μαζικής διαχείρισης (ModalForm)
Παράδειγμα SampleModalForm
Η οθόνη μαζικής διαχείρισης (ModalForm) εμφανίζει τα δεδομένα υπό μορφή λίστας και χρησιμοποιείται ως εργαλείο μαζικής εκτέλεσης ενέργειας επί του συνόλου των επιλεγμένων εγγραφών μιας λίστας. Σημειώνουμε εδώ ότι, κλήση της προς εκτέλεση ενέργειας γίνεται πατώντας το πλήκτρο
-Επιλογή που εμφανίζεται στο πάνω-δεξιά μέρος της ModalForm οθόνης.
Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου ModalForm είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση εντολής τύπου InvFormCreatorCommand. Όσον αφορά στα στοιχεία που ορίζονται σε επίπεδο εντολής (δεδομένα, ταξινόμηση & αναζήτηση) ισχύουν σε γενικές γραμμές τα ίδια με αυτά που περιγράφονται για οθόνη τύπου ListForm. Στην ενότητα αυτή θα αναφερθούμε επιγραμματικά αλλά και χρησιμοποιώντας συγκεκριμένο παράδειγμα, στα σημεία εκείνα που διαφοροποιούνται και επομένως απαιτούν ιδιαίτερη προσοχή κατά την υλοποίηση οθόνης τύπου ModalForm. |
| Φόρμα | Για την υλοποίηση της μορφής εμφάνισης της οθόνης απαιτείται η χρήση αρχείου τύπου AdvancedList.xml. Όσον αφορά στον τρόπο ορισμού των στοιχείων εμφάνισης της περιοχής δεδομένων ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για οθόνη τύπου ListForm. |
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια οθόνη η οποία να εμφανίζει τις εκκρεμείς εργασίες δίνοντας ταυτόχρονα τη δυνατότητα μαζικής ενημέρωσης του πεδίου «Κατάσταση» εργασίας. Έστω επίσης ότι η ενέργεια της μαζικής ενημέρωσης έχει υλοποιηθεί μέσω της εντολής SampleModalFormAction.
Δεδομένα / Ιδιαίτερες ρυθμίσεις
Για τις ρυθμίσεις σε επίπεδο εντολής, σε συνδυασμό με αυτά που ισχύουν για οθόνη τύπου ListForm, ισχύουν και τα παρακάτω.
- Τύπος. Θα πρέπει να γίνει χρήση εντολής τύπου InvFormCreatorCommand.
- Δεδομένα. Θα πρέπει η πρώτη κολόνα του select query να αποτελεί το μοναδικό κλειδί ταυτοποίησης μιας εγγραφής της λίστας και η κολόνα αυτή θα πρέπει να έχει το όνομα GID. Για το παράδειγμα μας δηλαδή, θα πρέπει να υπάρχει στο select query κολόνα με το όνομα GID η οποία να αναφέρεται στο πεδίο GID του πίνακα ESTMTask.
- Ιδιότητες εντολής
Οι επιπλέον προϋποθέσεις που πρέπει να πληρούνται έτσι ώστε να ενεργοποιηθούν τα ιδιαίτερα χαρακτηριστικά της ModalForm οθόνης είναι:
Απευθείας κλήση της οθόνης από επιλογή του κεντρικού μενού ή της dashboard οθόνης. Ειδικά στην περίπτωση κλήσης από το κεντρικό μενού, θα πρέπει στην ιδιότητα PopToRoot να δηλωθεί η τιμή false.
Μη προσθήκη του ExtraLayoutParams.xml αρχείου στο φάκελο της ModalForm φόρμας.
Ειδικά σε iOS πλατφόρμα, θα πρέπει στο AdvancedList αρχείο της φόρμας να οριστεί διακριτό RowTemplate για την επιλεγμένη εγγραφή (Selected RowTemplate).
Οθόνη φωτο-κατάλογος (CollectionView) 
Η οθόνη φωτο-κατάλογος (CollectionView) χρησιμοποιείται συνήθως για την εμφάνιση δεδομένων υπό μορφή εικόνας δίνοντας ταυτόχρονα, εστιάζοντας επί εγγραφής, και τις παρακάτω δυνατότητες:
Μετάβαση σε άλλη οθόνη για άντληση επιπλέον πληροφόρησης.
Άμεση εκτέλεση μιας σειράς ενεργειών.
Η CollectionView οθόνη μπορεί να λειτουργήσει είτε ως αυτόνομη οθόνη είτε ως εργαλείο αναζήτησης & επιλογής εγγραφών με στόχο την καταχώρηση τους στις γραμμές εργασίας-παραστατικού. Τα στοιχεία που απαιτούνται για την υλοποίηση οθόνης τύπου CollectionView είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Εντολή | Απαιτείται η χρήση της ειδικού τύπου εντολής CollectionViewCommand. Το ιδιαίτερο χαρακτηριστικό εντολής αυτού του τύπου αποτελεί το στοιχείο Gallery μέσω των επιμέρους ιδιοτήτων του οποίου καθορίζεται τόσο η λειτουργικότητα όσο και η μορφή εμφάνισης της CollectionView οθόνης. |
Οι αναλυτικές οδηγίες υλοποίησης οθόνης τύπου CollectionView ξεπερνούν τα όρια του παρόντος εγχειριδίου και παρέχονται στο εγχειρίδιο MOB-PhotoGallery που συνοδεύει την ESMobile εφαρμογή.
Ιστοσελίδα
Παράδειγμα SampleWebSite
Η οθόνη Ιστοσελίδα χρησιμοποιείται ως ένα μέσο άμεσης μετάβασης, μέσα από το περιβάλλον της ESMobile εφαρμογής, σε κάποια προκαθορισμένη ιστοσελίδα.
Η υλοποίηση οθόνης Ιστοσελίδα γίνεται μέσω χρήσης της ειδικού τύπου εντολής WebViewCommand. Το ιδιαίτερο χαρακτηριστικό εντολής αυτού του τύπου είναι ότι παρέχει τη δυνατότητα κλήσης συγκεκριμένης ηλεκτρονικής διεύθυνσης. Οι προς ρύθμιση ιδιότητες της εντολής είναι:
| Ιδιότητα | Σχόλιο |
|---|---|
| Title | Το λεκτικό που εμφανίζεται ως τίτλος της οθόνης. |
| URL |
Το URL της επιθυμητής ιστοσελίδας (π.χ. http://www.entersoft.gr). Ειδικά στην περίπτωση που η κλήση της εντολής από λίστα ειδών, δίνεται και δυνατότητα σύνθεσης του URL δυναμικά βάσει του κωδικού του επιλεγμένου είδους. Στην περίπτωση αυτή η δήλωση θα πρέπει να είναι της μορφής <Url Type="System.String" Value="http://MyURL/{0}.html"/> όπου το σκέλος {0} συμπληρώνεται δυναμικά με τον κωδικό του επιλεγμένου είδους. |
| LocalFile | Ανίχνευση της ιστοσελίδας επί της συσκευής (true) ή στο διαδίκτυο (false). |
| NavigationBarHidden | Πλήρης επικάλυψη της οθόνης της ESMobile εφαρμογής από αυτή της ιστοσελίδας (true) ή όχι (false). Στην περίπτωση που επιλεγεί η πλήρης επικάλυψη, έξοδος από την ιστοσελίδα και επιστροφή στο περιβάλλον της ESMobile εφαρμογής γίνεται πατώντας τριπλό «κλικ». Αφορά μόνο σε iOS πλατφόρμα. |
Business Rules
Μέσω του εργαλείου Business Rules (BRs) παρέχεται η δυνατότητα ορισμού εξειδικευμένων κανόνων που αποσκοπούν στην επέκταση της προϊοντικής λειτουργικότητας της ESMobile εφαρμογής σε σχέση με τις οντότητες Εργασία (Task) ή Παραστατικό (Document).
Η υλοποίηση των BRs γίνεται σε ειδικού τύπου αρχεία τα οποία ακολουθούν μια συγκεκριμένη ονοματολογία και βρίσκονται σε προκαθορισμένο φάκελο της περιοχής ESConfig ή CSConfig. Συγκεκριμένα, ανά οντότητα, ισχύουν τα παρακάτω:
| Οντότητα | Φάκελος | Ονοματολογία |
|---|---|---|
| Task | BusinessRules/ Tasks |
InternationalID_Rules.xml όπου το σκέλος InternationalID θα πρέπει να ταυτίζεται με τον διεθνή κωδικό του εκάστοτε τύπου εργασίας στον οποίο θέλουμε την εφαρμογή του BR. Ιδιαίτερη προσοχή θα πρέπει να δοθεί ώστε το InternationalID να δηλώνεται πάντα με πεζούς χαρακτήρες (π.χ. es.mdh_Rules.xml για εργασία τύπου Μέτρηση). |
| Document | BusinessRules/ Documents |
ID_Rules.xml όπου το σκέλος ID θα πρέπει να ταυτίζεται με τον κωδικό του εκάστοτε τύπου παραστατικού στον οποίο θέλουμε την εφαρμογή του BR (π.χ. 1_Rules.xml για παραστατικό τύπου Παραγγελία). |
Η ESMobile εφαρμογή συνοδεύεται και από κατάλληλα διαμορφωμένο wizard μέσω του οποίου παρέχεται στο χρήστη συστηματική καθοδήγηση κατά την υλοποίηση Business Rule.
Σύνταξη BR
Η λειτουργικότητα που προσδίδει ένα BR καθώς και τα στοιχεία προς ρύθμιση διαφοροποιούνται σημαντικά ανάλογα με τον τύπο του BR. Οι διαθέσιμοί τύποι BR είναι:
0-Ανάθεση. Το BR έχει σαν αποτέλεσμα την ανάθεση τιμής σε πεδίο της επικεφαλίδας ή της γραμμής της εκάστοτε οντότητας. Οι απαιτούμενες ρυθμίσεις ορίζονται στο στοιχείο OnChangeField.
1-Έλεγχος. Το BR έχει σαν αποτέλεσμα την ενεργοποίηση ελέγχου εγκυρότητας επί των δεδομένων της εκάστοτε οντότητας με δυνατότητα είτε εμφάνισης μηνύματος προειδοποίησης είτε διακοπής της διαδικασίας. Οι απαιτούμενες ρυθμίσεις ορίζονται στο στοιχείο Validate.
2-Εκτέλεση. Το BR έχει σαν αποτέλεσμα την άμεση κλήση, με την αποθήκευση της εκάστοτε οντότητας, μιας διαδικασίας προς εκτέλεση Οι απαιτούμενες ρυθμίσεις ορίζονται στο στοιχείο Execute.
Στην ενότητα αυτή γίνεται αρχικά μια συνοπτική παράθεση των διαθέσιμων, ανά τύπο BR, στοιχείων προς ρύθμιση καθώς και κάποιων γενικών «αρχών» που διέπουν τη ρύθμιση τους ενώ στη συνέχεια δίνονται αναλυτικές οδηγίες υλοποίησης BR παντός τύπου.
| Action | Activation | ScriptType | |
|---|---|---|---|
| Η ιδιότητα Action καθορίζει τον τύπο του BR με διαθέσιμες επιλογές τα: | Η ιδιότητα Activation καθορίζει το «γεγονός» που προκαλεί την εκτέλεση του BR με διαθέσιμες επιλογές τα: | Η ιδιότητα ScriptType λειτουργεί σε συνδυασμό με την ιδιότητα Script και προδιαγράφει το αποτέλεσμα του BR με διαθέσιμες επιλογές τα: | |
|
<BusinessRule Title="…"
</BusinessRule> |
0-OnChangeField 2-OnSave 1-OnAddLine 3-OnLoad 4-OnLoadDetail 7-OnAboutToSave |
0-Formula 1-SQL 2-Constant value |
|
<BusinessRule Title="…"
</BusinessRule> |
2-OnSave 5-OnEdit |
1-SQL 3-Validation script 4-Regular expression 5-Duplicate line values check 6-Validate same values 7- Validate any values of 9-Validate Subtotals |
|
<BusinessRule Title="…"
</BusinessRule> |
6-AfterSave |
1-SQL 8-Command |
Γενικές αρχές
Οντότητες BR
Διαθέσιμες προς χρήση σε BR είναι οι οντότητες:
- Επικεφαλίδα εργασίας & παραστατικού (ESFISalesDocument & ESTMTask αντίστοιχα).
- Γραμμή εργασίας & παραστατικού (ESTMTaskItem & ESFISalesDocLineItem αντίστοιχα).
Σύνταξη BR script
- Το περιεχόμενο του BR script είναι case sensitive.
- Κατά τη σύνταξη του BR script η αναφορά σε πεδίο οντότητας θα πρέπει να είναι της μορφής [TableName].[FieldName].
- Πέρα από τα πεδία οντότητας, διαθέσιμες κατά τη σύνταξη του BR script είναι και παρακάτω ειδικές συναρτήσεις:
ESSSum. H συνάρτηση ESSum υπολογίζει το άθροισμα των τιμών ενός πεδίου. Η σύνταξη της συνάρτησης θα πρέπει να είναι της μορφής: ESSum | [TableName].[FieldName] |
ESSumWhere. H συνάρτηση ESSumWhere υπολογίζει το άθροισμα των τιμών ενός πεδίου (1ο σκέλος) που έχουν σε ένα πεδίο (2ο σκέλος) μια συγκεκριμένη τιμή (3ο σκέλος). Η σύνταξη της συνάρτησης θα πρέπει να είναι της μορφής: ESSumWhere | [TableName].[FieldName] | [TableName].[FieldName] | Value |
ESCountWhere. H συνάρτηση ESCountWhere υπολογίζει το πλήθος των εγγραφών που έχουν σε ένα πεδίο (1ο σκέλος) μια συγκεκριμένη τιμή (2ο σκέλος). Η σύνταξη της συνάρτησης θα πρέπει να είναι της μορφής:
ESCountWhere | [TableName].[FieldName] | Value |
- Ειδικά στην περίπτωση BR script τύπου 1-SQL, παρέχεται η δυνατότητα ορισμού αυτόνομου script το οποίο χρησιμοποιείται από περισσότερα του ενός BRs. Για την αξιοποίηση της δυνατότητας αυτής απαιτείται ορισμός του αυτόνομου script στο section BusinessScripts και δήλωση του ID του στην ιδιότητα ScriptID του εκάστοτε BR. Κλήση του αυτόνομου BR script μπορεί να γίνει από οποιοδήποτε στοιχείο ενός BR (OnChangeField, Validate, Execute & ExecutionConditions). Σημειώνουμε εδώ ότι, σε μια τέτοια περίπτωση θα πρέπει η ιδιότητα Script να έχει κενό περιεχόμενο.
Action: 0-Ανάθεση
Το BR τύπου 0-Ανάθεση έχει σαν αποτέλεσμα την ανάθεση τιμής σε πεδίο της επικεφαλίδας ή της γραμμής της εκάστοτε οντότητας και οι ρυθμίσεις του γίνονται στο στοιχείο OnChangeField. Οι αρχές υλοποίησης BR αυτού του τύπου διαφοροποιούνται σημαντικά ανάλογα με τον τύπο Activation.
Activation: 0-OnChangeField
Παράδειγμα-οντότητα Επικεφαλίδα
|
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα BR το οποίο να πληροί τις παρακάτω προδιαγραφές:
|
|---|
|
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα BR το οποίο να πληροί τις παρακάτω προδιαγραφές:
|
|---|
|
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα BR το οποίο να πληροί τις παρακάτω προδιαγραφές:
|
|---|
Παράδειγμα-AssignFieldScriptType
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε ένα BR το οποίο να πληροί τις παρακάτω προδιαγραφές:
Να υπολογίζεται το σύνολο του πεδίου «Ποσότητα» των γραμμών ανά ομάδα είδους. Το αποτέλεσμα της κάθε ομάδας να ανατίθεται σε άλλο πεδίο της γραμμής.
Η διαδικασία υπολογισμού & ανάθεσης να εκτελείται σε κάθε μεταβολή του πεδίου «Ποσότητα» της γραμμής.
Activation: 1-OnAddLine
| Ιδιότητα | Σχόλιο |
|---|---|
| Action | |
| Activation | Θα πρέπει να δηλωθεί η τιμή 1. Δήλωση της τιμής αυτής έχει σαν αποτέλεσμα την εκτέλεση του BR κατά την εισαγωγή γραμμής. |
| Entity | Θα πρέπει να δηλωθεί η οντότητα Επικεφαλίδα. |
| Activation | |
| Entity | Θα πρέπει να δηλωθεί η οντότητα Γραμμή (προφανώς αυτή που σχετίζεται με την οντότητα Επικεφαλίδα του Action). |
| Field | Μη διαθέσιμη ιδιότητα. |
| AssignField | Το πεδίο στο οποίο γίνεται η ανάθεση τιμής. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 0-OnChangeField του BR τύπου 0-Ανάθεση. |
| ScriptType & Script | Το «σενάριο» βάσει του οποίου γίνεται η ανάθεση τιμής. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 0-OnChangeField του BR τύπου 0-Ανάθεση. |
| ScriptID | Το ID του αυτόνομου script. Οι απαιτούμενες ρυθμίσεις της ιδιότητας περιγράφονται στην ενότητα με τις γενικές αρχές σύνταξης script. |
Activation: 2-OnSave
| Ιδιότητα | Σχόλιο |
|---|---|
| Action | |
| Activation | Θα πρέπει να δηλωθεί η τιμή 2. Δήλωση της τιμής αυτής έχει σαν αποτέλεσμα την εκτέλεση του BR κατά την αποθήκευση της οντότητας. |
| Entity | Θα πρέπει να δηλωθεί η οντότητα Επικεφαλίδα. |
| Activation | |
| Entity | Μπορεί να δηλωθεί η οντότητα Επικεφαλίδα ή η οντότητα Γραμμή. Επισημαίνουμε εδώ ότι, δηλώνοντας ως Activation οντότητα τη Γραμμή, το BR εκτελείται διαδοχικά για κάθε μια από τις γραμμές της οντότητας που αποθηκεύεται. |
| Field | Μη διαθέσιμη ιδιότητα. |
| AssignField | Το πεδίο στο οποίο γίνεται η ανάθεση τιμής. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 0-OnChangeField του BR τύπου 0-Ανάθεση. Εξαίρεση αποτελεί η δυνατότητα ανάθεσης τιμής από πεδίο Γραμμής σε πεδίο Επικεφαλίδας (ιδιότητα AssignToHeader) η οποία δεν είναι διαθέσιμη σε Activation αυτού του τύπου. |
| ScriptType & Script | Το «σενάριο» βάσει του οποίου γίνεται η ανάθεση τιμής. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 0-OnChangeField του BR τύπου 0-Ανάθεση. |
| ScriptID | Το ID του αυτόνομου script. Οι απαιτούμενες ρυθμίσεις της ιδιότητας περιγράφονται στην ενότητα με τις γενικές αρχές σύνταξης script. |
Activation: 3-OnLoad
| Ιδιότητα | Σχόλιο |
|---|---|
| Action | |
| Activation | Θα πρέπει να δηλωθεί η τιμή 3. Δήλωση της τιμής αυτής έχει σαν αποτέλεσμα την εκτέλεση του BR κατά την προβολή ήδη καταχωρημένης οντότητας. |
| Entity | Μπορεί να δηλωθεί η οντότητα Επικεφαλίδα ή η οντότητα Γραμμή. |
| Activation | |
| Entity | Μη διαθέσιμη ιδιότητα. |
| Field | Μη διαθέσιμη ιδιότητα. |
| AssignField | Το πεδίο στο οποίο γίνεται η ανάθεση τιμής. Δηλώνεται υποχρεωτικά κάποιο πεδίο της οντότητας Επικεφαλίδα. |
| ScriptType & Script | Το «σενάριο» βάσει του οποίου γίνεται η ανάθεση τιμής. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 0-OnChangeField του BR τύπου 0-Ανάθεση. |
| ScriptID | Το ID του αυτόνομου script. Οι απαιτούμενες ρυθμίσεις της ιδιότητας περιγράφονται στην ενότητα με τις γενικές αρχές σύνταξης script. |
Activation: 4-OnLoadDetail
| Ιδιότητα | Σχόλιο |
|---|---|
| Action | |
| Activation | Θα πρέπει να δηλωθεί η τιμή 4. Δήλωση της τιμής αυτής έχει σαν αποτέλεσμα την εκτέλεση του BR κατά την προβολή ήδη καταχωρημένης γραμμής. Σημειώνουμε εδώ ότι, ο συγκεκριμένος τύπος Activation έχει κυρίως χρησιμότητα όταν η ανάθεση τιμής γίνεται σε non store πεδίο της οντότητας Γραμμή. |
| Entity | Θα πρέπει να δηλωθεί η οντότητα Επικεφαλίδα. |
| Activation | |
| Entity | Θα πρέπει να δηλωθεί η οντότητα Γραμμή (προφανώς αυτή που σχετίζεται με την οντότητα Επικεφαλίδα του Action). |
| Field | Μη διαθέσιμη ιδιότητα. |
| AssignField | Το πεδίο στο οποίο γίνεται η ανάθεση τιμής. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 0-OnChangeField του BR τύπου 0-Ανάθεση. |
| ScriptType & Script | Το «σενάριο» βάσει του οποίου γίνεται η ανάθεση τιμής. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 0-OnChangeField του BR τύπου 0-Ανάθεση. |
| ScriptID | Το ID του αυτόνομου script. Οι απαιτούμενες ρυθμίσεις της ιδιότητας περιγράφονται στην ενότητα με τις γενικές αρχές σύνταξης script. |
Activation: 7-OnAboutToSave
| Ιδιότητα | Σχόλιο |
|---|---|
| Action | |
| Activation | Θα πρέπει να δηλωθεί η τιμή 7. Δήλωση της τιμής αυτής έχει σαν αποτέλεσμα την εκτέλεση του BR κατά την προετοιμασία αποθήκευσης της οντότητας. |
| Entity | Θα πρέπει να δηλωθεί η οντότητα Επικεφαλίδα. |
| Activation | |
| Entity | Μπορεί να δηλωθεί η οντότητα Επικεφαλίδα ή η οντότητα Γραμμή. Επισημαίνουμε εδώ ότι, δηλώνοντας ως Activation οντότητα τη Γραμμή, το BR εκτελείται διαδοχικά για κάθε μια από τις γραμμές της οντότητας που αποθηκεύεται. |
| Field | Μη διαθέσιμη ιδιότητα. |
| AssignField | Το πεδίο στο οποίο γίνεται η ανάθεση τιμής. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 0-OnChangeField του BR τύπου 0-Ανάθεση. . Εξαίρεση αποτελεί η δυνατότητα ανάθεσης τιμής από πεδίο Γραμμής σε πεδίο Επικεφαλίδας (ιδιότητα AssignToHeader) η οποία δεν είναι διαθέσιμη σε Activation αυτού του τύπου. |
| ScriptType & Script | Το «σενάριο» βάσει του οποίου γίνεται η ανάθεση τιμής. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 0-OnChangeField του BR τύπου 0-Ανάθεση. |
| ScriptID | Το ID του αυτόνομου script. Οι απαιτούμενες ρυθμίσεις της ιδιότητας περιγράφονται στην ενότητα με τις γενικές αρχές σύνταξης script. |
Action: 1-Έλεγχος
Το BR τύπου 1-Έλεγχος έχει σαν αποτέλεσμα την ενεργοποίηση ελέγχου εγκυρότητας επί των δεδομένων της εκάστοτε οντότητας με δυνατότητα είτε εμφάνισης μηνύματος προειδοποίησης είτε διακοπής της διαδικασίας και οι ρυθμίσεις του γίνονται στο στοιχείο Validate. Οι αρχές υλοποίησης BR αυτού του τύπου διαφοροποιούνται σημαντικά ανάλογα με τον τύπο Activation.
Activation: 2-OnSave
Activation: 5-OnEdit
| Ιδιότητα | Σχόλιο |
|---|---|
| Action | |
| Activation | Θα πρέπει να δηλωθεί η τιμή 5. Δήλωση της τιμής αυτής έχει σαν αποτέλεσμα την εκτέλεση του BR κατά την επέμβαση -μέσω LineEditing- σε πεδίο της οντότητας Γραμμή. |
| Entity | Θα πρέπει να δηλωθεί η οντότητα Γραμμή. |
| Activation | |
| Entity | Μη διαθέσιμη ιδιότητα. |
| Field | Το πεδίο με την αλλαγή του οποίου προκαλείται η εκτέλεση του BR. Θα πρέπει να δηλωθεί κάποιο από τα πεδία της οντότητας Γραμμή. |
| ScriptType & Script | Το «σενάριο» βάσει του οποίου γίνεται ο έλεγχος εγκυρότητας. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 2-OnSave του BR τύπου 1-Έλεγχος. Επισημαίνουμε εδώ ότι, δεν υπάρχει η δυνατότητα χρήσης του ScriptType 4-Regular expression. |
| ScriptID | Το ID του αυτόνομου script. Οι απαιτούμενες ρυθμίσεις της ιδιότητας περιγράφονται στην ενότητα με τις γενικές αρχές σύνταξης script. |
| Operator | Μη διαθέσιμη ιδιότητα. |
| ErrorType | Η μορφή ελέγχου. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 2-OnSave του BR τύπου 1-Έλεγχος. |
| Caption | Το μήνυμα που εμφανίζεται σε περίπτωση μη εγκυρότητας. |
Action: 2-Εκτέλεση
Το BR τύπου 2-Εκτέλεση έχει σαν αποτέλεσμα την άμεση κλήση, με την αποθήκευση της εκάστοτε οντότητας, μιας διαδικασίας προς εκτέλεση και οι ρυθμίσεις του γίνονται στο στοιχείο Execute. Οι αρχές υλοποίησης BR αυτού του τύπου διαφοροποιούνται σημαντικά ανάλογα με τον τύπο Activation.
Activation: 7-AfterSave
Συνθήκες εκτέλεσης BR
Δηλώνοντας στην ιδιότητα Inactive την τιμή true, δίνεται η δυνατότητα πλήρους απενεργοποίησης ενός BR. Παράλληλα, μέσω κατάλληλης ρύθμισης του στοιχείου ExecutionConditions, δίνεται η δυνατότητα της υπό συνθήκες εκτέλεσης ενός BR. Για τις αρχές υλοποίησης συνθήκης εκτέλεσης BR ισχύουν τα παρακάτω.
| Ιδιότητα | Σχόλιο |
|---|---|
| Entity | Μπορεί να δηλωθεί η οντότητα Επικεφαλίδα ή η οντότητα Γραμμή. Επισημαίνουμε εδώ ότι, αν ως Action οντότητα έχει δηλωθεί η Επικεφαλίδα, δηλώνοντας ως ExecutionConditions οντότητα τη Γραμμή η συνθήκη εκτελείται διαδοχικά για κάθε μια από τις γραμμές της οντότητας. Σε μια τέτοια περίπτωση, η τιμή που επιστρέφει ο έλεγχος εξαρτάται και από τον τελεστή σύνδεσης των γραμμών (ιδιότητα Operator). |
| ScriptType & Script | Το «σενάριο» βάσει του οποίου γίνεται ο έλεγχος εκτέλεσης. Για τις δυνατότητες ρύθμισης ισχύουν τα ίδια ακριβώς με αυτά που περιγράφονται για Activation τύπου 2-OnSave του BR τύπου 1-Έλεγχος. Επισημαίνουμε εδώ ότι, δεν υπάρχει η δυνατότητα χρήσης του ScriptType 4-Regular expression. |
| ScriptID | Το ID του αυτόνομου script. Οι απαιτούμενες ρυθμίσεις της ιδιότητας περιγράφονται στην ενότητα με τις γενικές αρχές σύνταξης script. |
| Operator |
Ο τελεστής σύνδεσης των γραμμών της οντότητας. Οι διαθέσιμες επιλογές είναι:
|
| ZeroLinesValue |
Η τιμή που επιστρέφει ο έλεγχος στην περίπτωση μη εύρεσης γραμμών που να εμπίπτουν στο σενάριο της συνθήκης. Οι διαθέσιμες επιλογές είναι:
|
BRs Wizard
Όπως αναφέρθηκε και παραπάνω, για παροχή συστηματικής καθοδήγησης κατά την υλοποίηση των εκάστοτε BRs, η ESMobile εφαρμογή συνοδεύεται και από κατάλληλα διαμορφωμένο Business Rules Wizard (BRs Wizard). Επισημαίνουμε εδώ ότι λόγω της εξειδίκευσης που απαιτεί η υλοποίηση BR, ο συγκεκριμένος wizard δεν είναι διαθέσιμος σε «κινητή» συσκευή και ότι η αξιοποίηση του έχει ως προαπαιτούμενο την εγκατάσταση της UWP ESMobile εφαρμογής σε «desktop» περιβάλλον.
Πρόσβαση στον BRs Wizard παρέχεται από αντίστοιχη επιλογή της οθόνης «Ρυθμίσεις» (Ρυθμίσεις/ Διαχείριση συστήματος-βάσης δεδομένων/ Βοηθητικές εργασίες). Καλώντας την επιλογή αυτή, εμφανίζεται αρχικά λίστα με τους διαθέσιμους στην τρέχουσα εγκατάσταση τύπους παραστατικού (σελίδα Παραστατικά) και τύπους εργασίας (σελίδα Εργασίες) και στη συνέχεια, εστιάζοντας σε μια εγγραφή της λίστας, εμφανίζονται τα ήδη υπάρχοντα BRs του επιλεγμένου τύπου εργασίας–παραστατικού. Τέλος, είτε επιλέγοντας συγκεκριμένο BR είτε πατώντας το πλήκτρο Νέο, γίνεται μετάβαση στην οθόνη σύνταξης BR.
Η διαδικασία σύνταξης BR αποτελείται από τρία βήματα καθένα από τα οποία έχει αντιστοιχιστεί σε διακριτή σελίδα της οθόνης σύνταξης BR.
Βήμα 1 / Βασικά στοιχεία
Καθορίζονται τα στοιχεία Τύπος, Γεγονός και Οντότητα. Μέσω της επιλογής «Πλήρης απενεργοποίηση κανόνα» ρυθμίζεται η εκτέλεση ή μη εκτέλεση του BR ενώ μέσω της επιλογής «Εκτέλεση κανόνα υπό συνθήκες» ρυθμίζεται η ενεργοποίηση ή μη ενεργοποίηση της σελίδας που αφορά στον ορισμό συνθήκης εκτέλεσης του BR (σελίδα Συνθήκες εκτέλεσης). Σημειώνουμε εδώ ότι, η περιοχή «Γεγονός εκτέλεσης κανόνα» προσαρμόζεται αυτόματα βάσει του στοιχείου «Τύπος κανόνα».
Βήμα 2 / Στοιχεία εκτέλεσης
Η σελίδα προσαρμόζεται αυτόματα βάσει των επιλογών της σελίδας «Βασικά στοιχεία». Η προσαρμογή αφορά τόσο στα στοιχεία που εμφανίζονται όσο και στις διαθέσιμες επιλογές κατά τη συμπλήρωση των στοιχείων αυτών. Συγκεκριμένα, η λίστα επιλογής του στοιχείου «Τύπος σεναρίου» προσαρμόζεται αυτόματα βάσει του στοιχείου «Τύπος κανόνα» και η λίστα επιλογής στοιχείου που αφορά σε δήλωση πεδίου οντότητας (π.χ. πεδίο ενεργοποίησης ανάθεσης ) προσαρμόζεται αυτόματα βάσει του στοιχείου «Οντότητα εκτέλεσης».
Βήμα 3 / Συνθήκες εκτέλεσης
Το συγκεκριμένο βήμα είναι προαιρετικό. Η ενεργοποίηση ή μη ενεργοποίηση της σελίδας εξαρτάται από τη ρύθμιση του στοιχείου «Εκτέλεση κανόνα υπό συνθήκες» της σελίδας «Βασικά στοιχεία». Μέσω της επιλογής «Επιτυχής έλεγχος σε περίπτωση μη εύρεσης γραμμών» ρυθμίζεται η τιμή που επιστρέφει η συνθήκη εκτέλεσης στην περίπτωση μη εύρεσης γραμμών που να εμπίπτουν στο σενάριο της συνθήκης.
Με την ολοκλήρωση της σύνταξης του BR και πατώντας το πλήκτρο
-Αποθήκευση, εκτελείτε αρχικά ο έλεγχος ορθότητας σύνταξης του τρέχοντος BR. Σε περίπτωση που διαπιστωθεί οποιοσδήποτε λανθασμένος ορισμός, η διαδικασία αποθήκευσης αποτυγχάνει εμφανίζοντας ανάλογο μήνυμα λάθους. Αντίθετα, η διαδικασία αποθήκευσης προχωράει στην παραγωγή xml αρχείου το οποίο περιλαμβάνει το σύνολο των BRs της τρέχουσας εργασίας-παραστατικού και την αποθήκευση του παραγόμενου αρχείου στον κατάλληλο φάκελο της περιοχής CSConfig.
Κατά τη σύνταξη script μέσα από το περιβάλλον του BRs Wizard, η αναφορά σε ειδικούς χαρακτήρες γίνεται με απευθείας χρήση του εκάστοτε χαρακτήρα και όχι μέσω χρήσης της ιδιαίτερης μορφής που απαιτεί η xml γλώσσα. Για παράδειγμα, το «μεγαλύτερο» δηλώνεται με το χαρακτήρα > και όχι με τη μορφή του >.
Σε οποιαδήποτε φάση της διαδικασίας σύνταξης BR, πατώντας το πλήκτρο
-E-mail, παρέχεται η δυνατότητα αποστολής του τρέχοντος BR μέσω E-mail.
Εξατομίκευση εφαρμογής
Στην ενότητα αυτή αναπτύσσονται θέματα που σχετίζονται με τις δυνατότητες επέκτασης, σε επίπεδο customization, της προϊοντικής υλοποίησης της ESMobile εφαρμογής. Οι επεκτάσεις αυτές αφορούν τόσο στα δεδομένα όσο και στη λειτουργικότητα & μορφή εμφάνισης της εφαρμογής.
Δεδομένα
Master οντότητα
Οριζόμενα πεδία
Οι master οντότητες που διαχειρίζεται η ESMobile εφαρμογή είναι οι: Πρόσωπο (ESGOPerson), Διεύθυνση (ESGOSites), Πελάτης (ESFITradeAccount) & Είδος (ESFIItem). Τα ελεύθερα οριζόμενα πεδία της EBS εφαρμογής για τις οντότητες αυτές είναι διαθέσιμα στο σύνολο τους και στην ESMobile εφαρμογή. Τα πεδία αυτά υποστηρίζονται πλήρως από την προϊοντική υλοποίηση της ESMobile εφαρμογής και επομένως για την αξιοποίηση τους δεν απαιτείται καμία επέμβαση σε επίπεδο customization της εφαρμογής.
Οντότητα Task
Οριζόμενα πεδία
Τα ελεύθερα οριζόμενα πεδία της EBS εφαρμογής για τα σκέλη Επικεφαλίδα (ESTMTask) και Περιεχόμενα (ESTMTaskItem) της οντότητας Task είναι διαθέσιμα στο σύνολο τους και στην ESMobile εφαρμογή. Τα πεδία αυτά από πλευράς βάσης δεδομένων και διαδικασίας συγχρονισμού δεδομένων (from_ & to_ πακέτα δεδομένων) υποστηρίζονται πλήρως από την προϊοντική υλοποίηση της ESMobile εφαρμογής. Δεδομένου όμως του ότι η προϊοντική υλοποίηση των Data entry οθονών δεν υποστηρίζει το σύνολο των πεδίων αυτών, για την αξιοποίηση πεδίου που δεν είναι ήδη διαθέσιμο στην οθόνη απαιτείται επέμβαση, σε επίπεδο customization της εφαρμογής, στο DetailView (για το σκέλος Επικεφαλίδα) και AdvancedList (για το σκέλος Περιεχόμενα) αρχείο της DocForm οθόνης εργασίας.
Τα ελεύθερα οριζόμενα πεδία της οντότητας Task έχουν την ιδιαιτερότητα να μην είναι προκαθορισμένα αλλά να διαμορφώνονται «δυναμικά» μέσα από το περιβάλλον της EBS εφαρμογής. Επομένως, και για να διασφαλιστεί η απρόσκοπτη λειτουργία της διαδικασίας αποστολής δεδομένων, απαιτείται προσθήκη των επιθυμητών πεδίων στα οριζόμενα του εκάστοτε τύπου εργασιών. Ειδικά στην περίπτωση πεδίου τύπου zoom πίνακας απαιτείται και η δήλωση της λίστας με τις διαθέσιμες τιμές του πίνακα.
Τύποι εργασίας
Η ESMobile εφαρμογή συνοδεύεται από συγκεκριμένους τύπους εργασίας μέσω των οποίων έχουν υλοποιηθεί τα προϊοντικά σενάρια διαχείρισης εργασιών. Παράλληλα όμως και για την κάλυψη εξειδικευμένων αναγκών μιας εγκατάστασης, παρέχεται η δυνατότητα υλοποίησης επιπλέον σεναρίων σε επίπεδο customization της εφαρμογής. Για την αξιοποίηση της δυνατότητας αυτής απαιτούνται οι παρακάτω ρυθμίσεις.
EBS εφαρμογή
Προσθήκη τύπου εργασιών της κλάσης Γενική εργασία. Από τα στοιχεία παραμετροποίησης του τύπου εργασιών ιδιαίτερη προσοχή θα πρέπει να δοθεί στα:
Διεθνής κωδικός. Ο διεθνής κωδικός θα πρέπει να δηλωθεί με λατινικούς χαρακτήρες. Συστήνεται, για τον εύκολο διαχωρισμό προϊοντικών–custom τύπων εργασίας, ο διεθνής κωδικός των custom τύπων να ξεκινάει με το λεκτικό CS.
Ομάδες εργασίας. Δήλωση της ομάδας Mobile_Custom (για τις εφαρμογές ES-SFA, ES-xVan, ES-Service) ή PharmaIndustryCustom (για την εφαρμογή ES-MedRep). Η δήλωση της ομάδας αυτής είναι απαραίτητη προκειμένου ο custom τύπος εργασίας να γίνει διαθέσιμος στην τοπική βάση της ESMobile εφαρμογής.
Κανόνες ανάθεσης. Ταυτοποίηση των ρόλων του τύπου εργασίας με αυτούς του πόρου-χρήστη της ESMobile εφαρμογής. Ειδικά στην περίπτωση που ο τύπος εργασίας έχει δηλωθεί με ανάθεση «Στους επιλεγμένους πόρους», η ταυτοποίηση αυτή είναι απαραίτητη προκειμένου ο custom τύπος εργασίας να γίνει διαθέσιμος και σε επίπεδο συγκεκριμένου πόρου-χρήστη της ESMobile εφαρμογής.
ESMobile εφαρμογή
Data entry οθόνη. Υλοποίηση Data entry οθόνης για τον νέο τύπο εργασίας έτσι ώστε να δοθεί δυνατότητα εισαγωγής-προβολής εργασιών του συγκεκριμένου τύπου μέσα από το περιβάλλον της ESMobile εφαρμογής. Αναλυτικές οδηγίες υλοποίησης της Data entry οθόνης παρέχονται παραπάνω στην ενότητα Master-detail οντότητα (DcoForm).
Κατάσταση εργασίας. Προσθήκη των επιθυμητών καταστάσεων του νέου τύπου εργασίας στον αντίστοιχο πίνακα (πίνακας ESTMStatus). Η προσθήκη αυτή γίνεται μέσω επέμβασης στο αρχείο InitializeData.txt της περιοχής ESFiles/SQLiteFiles/x.xx του IIS Server όπου x.xx ο αριθμός της τρέχουσας έκδοσης.
Οντότητα Document
Οριζόμενα πεδία
Τα ελεύθερα οριζόμενα πεδία της EBS εφαρμογής για τα σκέλη Επικεφαλίδα (ESFISalesDocument) και Περιεχόμενα (ESFISalesDocLineItem) της οντότητας Document είναι διαθέσιμα στο σύνολο τους και στην ESMobile εφαρμογή. Τα πεδία αυτά από πλευράς βάσης δεδομένων και διαδικασίας συγχρονισμού δεδομένων (from_ & to_ πακέτα δεδομένων) υποστηρίζονται πλήρως από την προϊοντική υλοποίηση της ESMobile εφαρμογής. Δεδομένου όμως του ότι η προϊοντική υλοποίηση των Data entry οθονών δεν υποστηρίζει το σύνολο των πεδίων αυτών, για την αξιοποίηση πεδίου που δεν είναι ήδη διαθέσιμο στην οθόνη απαιτείται επέμβαση, σε επίπεδο customization της εφαρμογής, στο DetailView (για το σκέλος Επικεφαλίδα) και AdvancedList (για το σκέλος Περιεχόμενα) αρχείο της DocForm οθόνης παραστατικού.
Σχήμα βάσης δεδομένων
Η βάση δεδομένων της ESMobile εφαρμογής περιλαμβάνει τους πίνακες και τα πεδία που είναι απολύτως απαραίτητα για την προϊοντική υλοποίηση της λειτουργικότητας της εφαρμογής. Παράλληλα όμως και για την κάλυψη εξειδικευμένων αναγκών μιας εγκατάστασης, παρέχεται η δυνατότητα επέκτασης του σχήματος βάσης δεδομένων σε επίπεδο customization της εφαρμογής. Σημειώνουμε εδώ ότι, ανεξάρτητα του αν η επέκταση αφορά στην προσθήκη πίνακα ή στην προσθήκη πεδίου επί προϊοντικού πίνακα, για την υλοποίηση της επέκτασης απαιτούνται οι ίδιες ακριβώς ρυθμίσεις.
Δήλωση πίνακα
Προσθήκη του νέου πίνακα στο αρχείο InitializeSchema.txt της περιοχής ESFiles/SQLiteFiles/x.xx του IIS Server όπου x.xx ο αριθμός της τρέχουσας έκδοσης. Συστήνεται, για τον εύκολο διαχωρισμό προϊοντικών–custom πινάκων, το όνομα των custom πινάκων να ξεκινάει με το λεκτικό CS. Ο τρόπος ορισμού των επιμέρους πεδίων του πίνακα διαφοροποιείται ανάλογα με τον τύπο του πεδίου.
| Type | Size | Not Null | Collate | Default | |
|---|---|---|---|---|---|
| GID | nvarchar | 36 | NOCASE | ||
| String | nvarchar | xxx | NOCASE | ||
| Date | nvarchar | 36 | NOCASE | ||
| Numeric | real | True | BINARY | 0.0 | |
| Flag | smallint | True | BINARY | 0 |
Επισημαίνουμε εδώ ότι, πέρα από τη δήλωση των επιθυμητών πεδίων του πίνακα, απαραίτητη είναι και η δήλωση τόσο του Primary όσο και των πιθανών Foreign keys του πίνακα. Η δήλωση τους θα πρέπει να γίνει χρησιμοποιώντας το όνομα πεδίου.
Προσθήκη του νέου πίνακα στο αρχείο TablesOrdered.txt της περιοχής ESFiles/SQLiteFiles/x.xx του IIS Server όπου x.xx ο αριθμός της τρέχουσας έκδοσης.
Προσθήκη του νέου πίνακα στο αρχείο Sync.txt της περιοχής ESFiles/SQLiteFiles/x.xx του IIS Server όπου x.xx ο αριθμός της τρέχουσας έκδοσης. Επισημαίνουμε εδώ ότι, πέρα από τη δήλωση του πίνακα, απαραίτητη είναι και η δήλωση των πεδίων τύπου Ημερομηνία & Αριθμός. Η δήλωση τους θα πρέπει να γίνει χρησιμοποιώντας τον α/α πεδίου (index μείον 1) και δηλώνοντας πρώτα τα πεδία τύπου Ημερομηνία και στη συνέχεια τα πεδία τύπου Αριθμός.
Ενημέρωση δεδομένων πίνακα
Προσθήκη στο to_πακέτο δεδομένων σεναρίου μέσω του οποίου γίνεται ενημέρωση του νέου πίνακα της ESMobile εφαρμογής με δεδομένα της EBS εφαρμογής. Ιδιαίτερη προσοχή θα πρέπει να δοθεί ώστε το όνομα παραγόμενου αρχείου να είναι της μορφής Πίνακας_.txt. Η προσθήκη αυτή είναι αρκετή προκειμένου να έχουμε την ενημέρωση των δεδομένων μέσω της διαδικασίας αρχικοποίησης δεδομένων.
Ειδικά στην περίπτωση που επιθυμούμε την ενημέρωση και μέσω της διαδικασίας διαφορικού συγχρονισμού δεδομένων, απαιτούνται οι παρακάτω επιπλέον ρυθμίσεις:
Δημιουργία αντίγραφου του προϊοντικού αρχείου SyncPullTablesOrdered.ini της περιοχής ESConfig/ Sync στην περιοχή CSConfig/ Sync και προσθήκη του νέου πίνακα στο αρχείο αυτό. Επισημαίνουμε εδώ ότι, πέρα από τη δήλωση του πίνακα, απαραίτητη είναι και η δήλωση των πεδίων τύπου Ημερομηνία & Αριθμός καθώς και του πεδίου που αποτελεί το Primary key του πίνακα. Η δήλωση τους θα πρέπει να γίνει χρησιμοποιώντας τον α/α πεδίου (index μείον 1) και δηλώνοντας πρώτα τα πεδία τύπου Αριθμός στη συνέχεια τα πεδία τύπου Ημερομηνία και τέλος το Primary key.
Δημιουργία αντίγραφου του προϊοντικού αρχείου SyncPullTablesOrdered.xml της περιοχής ESConfig/ Sync στην περιοχή CSConfig/ Sync και προσθήκη του νέου πίνακα στο αρχείο αυτό.
Εκτέλεση της διαδικασίας παραγωγής custom έκδοσης έτσι ώστε να γίνει ενημέρωση των συσκευών με την επέκταση των παραπάνω αρχείων.
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε έναν custom πίνακα που να ενημερώνεται, κατά τη διαδικασία αρχικοποίησης, με δεδομένα του πίνακα «Αριθμός σειράς» της EBS εφαρμογής. Έστω επίσης ότι θέλουμε ο πίνακας αυτός να έχει το όνομα CSMyCustomTable και πέρα από τα βασικά στοιχεία ταυτοποίησης ενός αριθμού σειράς να περιλαμβάνει και από 2 ελεύθερα οριζόμενα πεδία παντός τύπου.
Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε τη διαδικασία συγχρονισμού δεδομένων έτσι ώστε να υπάρχει και η δυνατότητα ενημέρωσης του custom πίνακα CSMyCustomTable και κατά τη διαδικασία διαφορικού συγχρονισμού δεδομένων.
Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε την προϊοντική υλοποίηση του πίνακα «Είδος αποθήκης» της ESMobile εφαρμογής με την προσθήκη του πεδίου «Εναλλακτική περιγραφή». Έστω επίσης ότι θέλουμε ο custom πίνακας στον οποίο θα δηλωθεί το επιπλέον πεδίο να έχει το όνομα CSMyCustomField.
Σενάρια συγχρονισμού δεδομένων
Η ESMobile εφαρμογή συνοδεύεται από αρχεία τύπων δεδομένων (espak αρχεία) στα οποία έχουν υλοποιηθεί τα προϊοντικά σενάρια συγχρονισμού δεδομένων μεταξύ EBS & ESMobile εφαρμογής. Μέσω του εργαλείου Data Interchange, παρέχεται η δυνατότητα επέμβασης στα προϊοντικά σενάρια σε επίπεδο customization της εφαρμογής. Σημειώνουμε εδώ ότι, τα σενάρια που έχουν δεχθεί οποιαδήποτε επέμβαση γίνονται διακριτά μέσω ιδιαίτερης χρωματικής επισήμανσης (χρώμα φόντου το
-ροζ).
Παράλληλα, και για διευκόλυνση της διαδικασίας αναβάθμισης της ESMobile εφαρμογής, παρέχεται η δυνατότητα μαζικής μεταφοράς custom σεναρίων εισαγωγής ή εξαγωγής δεδομένων από προηγούμενη έκδοση της εφαρμογής στην τρέχουσα. Τα βήματα που απαιτούνται για την αξιοποίηση της δυνατότητας αυτής είναι:
Εγκατάσταση των τύπων δεδομένων της νέας έκδοσης.
Μετάβαση στους τύπους δεδομένων της αμέσως προηγούμενης έκδοσης, μαζική επιλογή των custom σεναρίων και πάτημα του πλήκτρου «Αντιγραφή».
Μετάβαση στους τύπους δεδομένων της νέας έκδοσης και πάτημα του πλήκτρου «Επικόλληση».
Η συγκεκριμένη λειτουργικότητα είναι διαθέσιμη επί τύπων δεδομένων έκδοσης 4.0 ή μεταγενέστερης και εφόσον πληρούνται οι παρακάτω προϋποθέσεις:
γίνεται χρήση των προϊοντικών τύπων δεδομένων και όχι πιθανού αντίγραφου αυτών.
η επέμβαση στους προϊοντικούς τύπους δεδομένων έχει γίνει από οποιονδήποτε άλλον χρήστη εκτός του χρήστη με τον κωδικό πρόσβασης esdev
Επιλέγοντας την αντιγραφή custom σεναρίου από προηγούμενη έκδοση, τυχόν διαφοροποιήσεις της νέας έκδοσης στο αντίστοιχο προϊοντικό σενάριο γίνονται αυτόματα μη διαθέσιμες. Θυμίζουμε εδώ ότι, για διευκόλυνση στον εντοπισμό διαφοροποιήσεων μεταξύ custom - προϊοντικού σεναρίου, δίνεται η δυνατότητα της ταυτόχρονης προβολής τους.
Ρυθμίσεις IIS server
Παραγωγή custom έκδοσης
Η διαδικασία παραγωγής custom έκδοσης διαφοροποιείται ανάλογα με το αν έχουμε κοινό customization για όλες τις πλατφόρμες & εφαρμογές ή όχι. Η ενδεδειγμένη, ανά περίπτωση, διαδικασία είναι:
Κοινή custom έκδοση
Η παραγωγή του αριθμού custom έκδοσης γίνεται πατώντας το πλήκτρο Create custom version iOS του εργαλείου Web Configurator.
Custom έκδοση ανά πλατφόρμα & εφαρμογή
Η παραγωγή του αριθμού custom έκδοσης γίνεται πατώντας το πλήκτρο Multiple Custom Versions του εργαλείου Web Configurator. Στην οθόνη που εμφανίζεται δηλώνουμε τα παρακάτω στοιχεία:
Λειτουργικό σύστημα. Δηλώνουμε τον κωδικό πλατφόρμας. Οι διαθέσιμες τιμές είναι: 2-iOS, 3-Android και 4-UWP.
Εφαρμογή. Δηλώνουμε τον κωδικό εφαρμογής. Οι διαθέσιμες τιμές είναι: 8-SFA/Merchandising, 32-xVan, 2-Service και 1024-MedRep.
Αριθμός. Δηλώνουμε τον επιθυμητό αριθμό έκδοσης
Αποστολή ρυθμίσεων συσκευής
Με στόχο τη διευκόλυνση της διαδικασίας στησίματος των συσκευών μιας εγκατάστασης, παρέχεται η δυνατότητα ενημέρωσης των ρυθμίσεων της ESMobile εφαρμογής μέσω αρχείου. Για την αξιοποίηση της δυνατότητας αυτής απαιτείται:
- Δήλωση των στοιχείων προς ρύθμιση στο αρχείο settings.json. Από το σύνολο των διαθέσιμων στοιχείων, δηλώνουμε μόνο εκείνα για τα οποία θέλουμε να γίνει συγκεκριμένη ρύθμιση.
- Τοποθέτηση του αρχείου settings.json στη συσκευή. Το αρχείο θα πρέπει να τοποθετηθεί στο φάκελο ESConfig ή CSConfig της ESMobile εφαρμογής.
- Είσοδος του χρήστη στην ESMobile εφαρμογή. Με την είσοδο στην ESMobile εφαρμογή, γίνεται αρχικά η ενημέρωση των ρυθμίσεων της εφαρμογής βάσει των στοιχείων που έχουν δηλωθεί στο αρχείο και στη συνέχεια γίνεται διαγραφή του αρχείου από τη συσκευή.
Διαθέσιμα στο αρχείο settings.json είναι τα παρακάτω στοιχεία της οθόνης «Ρυθμίσεις»:
| Στοιχείο | Τιμή |
|---|---|
| AppLanguage |
Διαθέσιμες τιμές: el-GR / en-US / ro-RO / bg-BG / sq-AL / es-ES / pl-PL / sr-SP Aντιστοιχεί στο πεδίο «Γλώσσα εφαρμογής». |
| ServerUrl |
Δηλώνεται το πλήρες URL όπως αυτό συντίθεται από τα επιμέρους στοιχεία Name, Port & ESMobileServices της σελίδας «Ρυθμίσεις εξυπηρετητή». π.χ. http://192.168.50.199:8080/ESMobileServices_4.4/smartservices.asmx |
| AutoSetUrl |
Διαθέσιμες τιμές: true / false Aντιστοιχεί στο πεδίο «Αυτόματη ρύθμιση» της σελίδας «Ρυθμίσεις εξυπηρετητή». |
| SelectedPrinter |
Δηλώνεται το όνομα ενός από τους διαθέσιμους εκτυπωτές. Aντιστοιχεί στο πεδίο «Εκτυπωτής». |
| DeviceOrientation |
Διαθέσιμες τιμές: Landscape / Portrait Aντιστοιχεί στο πεδίο «Προσανατολισμός οθόνης». Αφορά μόνο σε Android πλατφόρμα. |
| UseBiometetricAuthentication |
Διαθέσιμες τιμές: true / false Aντιστοιχεί στο πεδίο «Βιομετρική ταυτοποίηση». |
| UseGrayscaleTheme |
Διαθέσιμες τιμές: true / false Aντιστοιχεί στο πεδίο «Στυλ σε κλίμακα του γκρι». |
| IsCalendarIso8601 |
Διαθέσιμες τιμές: true / false Aντιστοιχεί στο πεδίο «Ημερολόγιο ISO 8601». Αφορά μόνο σε iOS πλατφόρμα. |
| NearestCustomerRadius |
Δηλώνεται ένας αριθμός. Aντιστοιχεί στο πεδίο «Ακτίνα (χμ) αναζήτησης» της σελίδας «Χάρτης». |
| NearestCustmerMaxPins |
Δηλώνεται ένας αριθμός. Aντιστοιχεί στο πεδίο «Μέγιστος αριθμός πινεζών» της σελίδας «Χάρτης». |
| ShowWeatherOnMap |
Διαθέσιμες τιμές: true / false Aντιστοιχεί στο πεδίο «Εμφάνιση πρόγνωσης καιρού» της σελίδας «Χάρτης». Αφορά μόνο σε iOS πλατφόρμα. |
| EnableAutoVersionCheck |
Διαθέσιμες τιμές: true / false Aντιστοιχεί στο πεδίο «Αυτόματος έλεγχος έκδοσης» της σελίδας «Βοηθητικές εργασίες». |
| ShowDataToSend |
Διαθέσιμες τιμές: true / false Aντιστοιχεί στο πεδίο «Αυτόματος έλεγχος έκδοσης» της σελίδας «Βοηθητικές εργασίες». Αφορά μόνο σε iOS πλατφόρμα. |
| EnableDebugMode |
Διαθέσιμες τιμές: true / false Aντιστοιχεί στο πεδίο «Debug mode» της σελίδας «Βοηθητικές εργασίες». |
| DebugUseCache |
Διαθέσιμες τιμές: true / false Aντιστοιχεί στο πεδίο «Χρήση της XML cache (AdvancedList)» της σελίδας «Βοηθητικές εργασίες». Αφορά μόνο σε iOS πλατφόρμα. |
Έστω για παράδειγμα ότι θέλουμε η ρύθμιση (α) των στοιχείων σύνδεσης με τον εξυπηρετητή και (β) του προτεινόμενου εκτυπωτή να γίνει μέσω χρήσης του αρχείου settings.json.
{
"ServerUrl": "http://192.168.50.199:8080/ESMobileServices_4.4/smartservices.asmx%22,
"SelectedPrinter": "BIXOLON SPP-R410",
}
Πολύ-εταιρική λειτουργία
Το σενάριο της πολύ-εταιρικής λειτουργίας έρχεται να καλύψει τις εγκαταστάσεις εκείνες οι οποίες
χρησιμοποιούν περισσότερες της μιας ESMobile εφαρμογές
επιθυμούν τη διαχείριση των επιμέρους ESMobile εφαρμογών από την ίδια συσκευή
έχουν αναπτύξει τα δεδομένα της κάθε ESMobile εφαρμογής σε διαφορετική εταιρεία της EBS εφαρμογής.
Δεδομένου του ότι βάσει των προδιαγραφών λειτουργίας της ESMobile εφαρμογής μια συσκευή συνδέεται πάντα με συγκεκριμένη εταιρεία της EBS εφαρμογής, οι ρυθμίσεις που απαιτούνται για την κάλυψη της πολύ-εταιρικής λειτουργίας είναι:
- Ο χρήστης της συσκευής να έχει ανοιχθεί ως διακριτός χρήστης-πόρος-πωλητής σε κάθε μια από τις επιμέρους εταιρείες.
- Να έχει δημιουργηθεί στον IIS server ένα site ανά εταιρεία. Τα sites αυτά θα πρέπει να έχουν ενεργοποιημένη την επιλογή Multi Company Device.
- Να έχει γίνει, μέσω των ιδιοτήτων ES_CENTRAL_COMPANY & ES_CENTRAL_BRANCH του εργαλείου data interchange, η ανάλογη σύνδεση κόμβων με εταιρεία-υποκατάστημα.
Έστω για παράδειγμα ότι θέλουμε να δώσουμε τη δυνατότητα εκτέλεσης των εφαρμογών ES-xVan & ES-SFA από την ίδια συσκευή. Έστω επίσης ότι, τα δεδομένα των εφαρμογών αυτών έχουν αναπτυχθεί αντίστοιχα στις εταιρείες 001 & 002 της EBS εφαρμογής.
- Δημιουργούμε ένα site για την εταιρεία 001 και ένα για την 002 ενεργοποιώντας και στα δυο sites την επιλογή Multi Company Device.
- Κάνουμε την εγκατάσταση των εφαρμογών ES-xVan & ES-SFA στη συσκευή. Η ενεργοποίηση της επιλογής «Multi Company Device» στα επιμέρους sites έχει σαν αποτέλεσμα τη δημιουργία, κατά την εγκατάσταση της εφαρμογής, μιας εγγραφής συσκευής ανά εταιρεία με κωδικό αναγνώρισης της μορφής IDΣυσκευής_CompanyCode. Σημειώνουμε εδώ ότι, στην περίπτωση που για οποιονδήποτε λόγο υπάρχει ήδη στη βάση δεδομένων συσκευή που αναφέρεται στο ID της τρέχουσας συσκευής, θα πρέπει, πριν την έναρξη της διαδικασίας εγκατάστασης, να γίνει διαγραφή της.
- Κάνουμε σύνδεση κόμβων με την αντίστοιχη εταιρεία-υποκατάστημα. Η σύνδεση αυτή γίνεται δηλώνοντας στις ιδιότητες ES_CENTRAL_COMPANY & ES_CENTRAL_BRANCH του κάθε κόμβου την κατάλληλη εταιρεία-υποκατάστημα και είναι απαραίτητη προκειμένου να λειτουργήσουν σωστά οι διαδικασίες συγχρονισμού δεδομένων.
Ιδέες & Λύσεις
Περιβάλλον εργασίας
Οθόνη εισόδου
Παρέχεται η δυνατότητα ορισμού αρχείου εικόνας τύπου png το οποίο να απεικονίζει το εταιρικό λογότυπο. Η εικόνα εμφανίζεται στο κάτω-δεξιά μέρος της οθόνης εισόδου και καταλαμβάνει χώρο ανάλογο των διαστάσεων της. Για αξιοποίηση της δυνατότητας αυτής αρκεί το επιθυμητό αρχείο εικόνας να έχει το όνομα CompanyLogo.png και να έχει τοποθετηθεί στο φάκελο CSConfig της ESMobile εφαρμογής.
Ταυτοποίηση χρήστη
Παρέχεται στο χρήστη της συσκευής η δυνατότητα επιλογής της μεθόδου ταυτοποίησης της πρόσβασης του στην ESMobile εφαρμογή.
Ταυτοποίηση βάσει κωδικού
Στην περίπτωση αυτή, ο κωδικός πρόσβασης στην ESMobile εφαρμογή ταυτίζεται με αυτόν της EBS εφαρμογής. Δίνεται όμως και η δυνατότητα αλλαγής κωδικού πρόσβασης μέσα από το περιβάλλον της ESMobile εφαρμογής. Η αλλαγή αυτή γίνεται πατώντας την αντίστοιχη επιλογή της οθόνης «Ρυθμίσεις» (μενού Ρυθμίσεις/ Προφίλ λειτουργίας). Σημειώνουμε εδώ ότι, για να είναι εφικτή η αποθήκευση του νέου κωδικού πρόσβασης θα πρέπει να υπάρχει σύνδεση με τα κεντρικά.
Βιομετρική ταυτοποίηση
Ενεργοποιώντας την επιλογή βιομετρική ταυτοποίηση της οθόνης «Ρυθμίσεις» (μενού Ρυθμίσεις/ Προφίλ λειτουργίας) δίνεται στο χρήστη της συσκευής η δυνατότητα ταυτοποίησης του είτε μέσω χρήσης δακτυλικού αποτυπώματος είτε μέσω χρήσης προσωπικού κωδικού ταυτοποίησης (PIN). Σημειώνουμε εδώ ότι, για να είναι εφικτή η βιομετρική ταυτοποίηση, θα πρέπει να υποστηρίζεται από τη συσκευή σαρωτής δακτυλικού αποτυπώματος ή εναλλακτικά να έχει γίνει δήλωση προσωπικού κωδικού ταυτοποίησης (PIN).
Έχοντας ενεργοποιήσει τη συγκεκριμένη επιλογή, κατά την είσοδο στην ESMobile εφαρμογή επιχειρείται βιομετρική ταυτοποίηση του χρήστη μέσω δακτυλικού αποτυπώματος ή -αν δεν υπάρχει δακτυλικό αποτύπωμα- μέσω PIN. Σε οποιοδήποτε περίπτωση, για να «πιστοποιηθεί» η βιομετρική ταυτοποίηση του χρήστη, απαιτείται μια τουλάχιστον επιτυχημένη είσοδος του στην ESMobile εφαρμογή με χρήση δακτυλικού αποτυπώματος ή PIN.
Ακύρωση της διαδικασίας βιομετρικής ταυτοποίησης προκαλείται είτε αυτόματα, μετά από επάλληλες λανθασμένες προσπάθειες ταυτοποίησης, είτε με πάτημα του πλήκτρου «Ακύρωση» της οθόνης βιομετρικής ταυτοποίησης. Στην περίπτωση αυτή, ενεργοποιείται η διαδικασία ταυτοποίησης του χρήστη μέσω του «κλασικού» κωδικού πρόσβασης στην ESMobile εφαρμογή.
| iOS |
UWP |
Android | |
|---|---|---|---|
|
Δακτυλικό αποτύπωμα |
|||
| PIN |

Στυλ εφαρμογής
Μέσω της επιλογής στυλ σε κλίμακα του γκρι της οθόνης «Ρυθμίσεις» (μενού Ρυθμίσεις/ Προφίλ λειτουργίας), δίνεται στο χρήστη της συσκευής η δυνατότητα αλλαγής του προκαθορισμένου στυλ λειτουργίας της εκάστοτε ESMobile εφαρμογής. Η συγκεκριμένη ρύθμιση έχει επίδραση στο μενού, τις λίστες, τις οθόνες διαχείρισης και γενικά σε όλο το user interface της εφαρμογής. Η ενεργοποίηση της ρύθμισης γίνεται ορατή στο χρήστη μετά από επανεκκίνηση της ESMobile εφαρμογής.
Επιπλέον παρέχεται η δυνατότητα ρύθμισης χρώματος & γραμματοσειράς κάποιων ακόμα στοιχείων της ESMobile εφαρμογής. Για την αξιοποίηση της δυνατότητας αυτής απαιτείται η δημιουργία αντιγράφου του προϊοντικού αρχείου Theme.xml στην περιοχή CSConfig. Τα στοιχεία που επιδέχονται ρύθμιση αυτής της μορφής είναι:
| Στοιχείο | Σχόλιο |
|---|---|
| Settings | Η οθόνη Ρυθμίσεις. Διαθέσιμο μόνο σε UWP & Android πλατφόρμα. |
| SfSchedule | Η οθόνη Ημερολόγιο. Διαθέσιμο μόνο σε UWP & Android πλατφόρμα. |
| MainMenu | Το κεντρικό μενού της εφαρμογής. |
| Navigator | Η περιοχή στην οποία εμφανίζεται ο τίτλος οθόνης. Διαθέσιμο μόνο σε UWP & Android πλατφόρμα. |
| TabMenu | Η περιοχή των σελίδων της dashboard & data entry οθόνης. |
| PopUpMenu | Τα μενού πλήκτρα της εφαρμογής (π.χ. πλήκτρο «Ενέργειες»). |
| SearchPanel | Η περιοχή των κριτηρίων αναζήτησης. Διαθέσιμο μόνο σε UWP & Android πλατφόρμα. |
| ESKeyboard | Το pop up αριθμητικό πληκτρολόγιο. |
| DetailView | Η data entry οθόνη τύπου DetailView. Διαθέσιμο μόνο σε UWP & Android πλατφόρμα. |
| SFList | Οι οθόνες με τα χαρακτηριστικά της SFListForm (π.χ. Λίστα εισαγωγής γραμμών, σκέλος Περιεχόμενα της DocForm οθόνης). Διαθέσιμο μόνο σε UWP & Android πλατφόρμα. |
| ColorSize | Η οθόνη δήλωσης των διαστάσεων χρώμα-μέγεθος. Διαθέσιμο μόνο σε UWP & Android πλατφόρμα. |
Μήνυμα τύπου ειδοποίηση
Παρέχεται η δυνατότητα αποστολής ειδοποίησης από την EBS εφαρμογή προς τον χρήστη της ESMobile εφαρμογής. Καλώντας από τα κεντρικά την οθόνη «Διαχείριση συσκευών» (μενού Πωλήσεις/ Κινητές συσκευές) εμφανίζεται η λίστα των διαθέσιμων συσκευών. Από τη λίστα αυτή επιλέγουμε τις επιθυμητές και καλούμε την ενέργεια Αποστολή γνωστοποίησης. Στην οθόνη που εμφανίζεται δηλώνουμε την ESMobile εφαρμογή, το μήνυμα που θέλουμε να αποσταλεί και πατάμε το πλήκτρο «Αποστολή». Το μήνυμα εμφανίζεται άμεσα στο χρήστη της συσκευής ανεξάρτητα του αν αυτός βρίσκεται τη συγκεκριμένη στιγμή μέσα στο περιβάλλον της ESMobile εφαρμογής ή όχι.
Για να είναι εφικτή η αποστολή ειδοποίησης σε μια συσκευή θα πρέπει να έχει δηλωθεί στα κεντρικά το ID ειδοποιήσεων της συγκεκριμένης συσκευής. Η δήλωση του ID ειδοποιήσεων γίνεται αυτόματα από το σύστημα κατά την πρώτη εγκατάσταση της ESMobile εφαρμογής. Εναλλακτικά, μέσω του αυτοματισμού «Προετοιμασία για αποστολή ειδοποίησης», δίνεται και η δυνατότητα χειροκίνητης καταχώρισης του ID ειδοποιήσεων. Σημειώνουμε εδώ ότι, η πληροφορία του ID ειδοποιήσεων που αντιστοιχεί στην εκάστοτε εφαρμογή-συσκευή παρέχετε από το αντίστοιχο πεδίο της οθόνης «Ρυθμίσεις» της ESMobile εφαρμογής.
Διασύνδεση με OneDrive
Παρέχεται η δυνατότητα άμεσης διασύνδεσης, μέσα από το περιβάλλον της ESMobile εφαρμογής, με την υπηρεσία OneDrive. Οι εναλλακτικές μέθοδοι αξιοποίησης της δυνατότητας αυτής είναι:
Ορισμός από τα κεντρικά σχετικού εγγράφου τύπου URL διεύθυνση
Χρήση της ειδικού τύπου εντολής OneDriveCommand.στην οποία ουσιαστικά το μόνο που δηλώνεται είναι η ηλεκτρονική διεύθυνση του προς κλήση αρχείου.
<SampleOneDrive Assembly="Entersoft.Mobile.ESMerchandize"
Type="Entersoft.Mobile.ESMerchandize.OneDriveCommand">
<Params>
<Url
Type="System.String"
Value="https://entersoftgr-my.sharepoint.com/.../EcDcDHvUQE5Ov47FNcbxCH0BFFKLOK7TN4TAWaVHgCwMw"/>
</Params>
</SampleOneDrive>
Οθόνη τύπου DocForm
Ομαδοποίηση γραμμών
Παρέχεται η δυνατότητα χρήσης πεδίου συνδεόμενης οντότητας, πεδίο δηλαδή που δεν υπάρχει στη λίστα διαθέσιμων πεδίων της γραμμής, ως κριτήριο ομαδοποίησης των γραμμών εργασίας-παραστατικού. Για την αξιοποίηση της δυνατότητας αυτής αρκεί η δήλωση, μέσω χρήσης του εργαλείου Business rules, του επιθυμητού κανόνα ανάθεσης τιμής στο non store πεδίο GroupField της γραμμής εργασίας-παραστατικού. Επισημαίνουμε εδώ ότι, η ανάθεση τιμής θα πρέπει να γίνεται τόσο κατά την εισαγωγή γραμμής (Activation: 1-OnAddLine) όσο και κατά την εμφάνιση της Data entry οθόνης (Activation: 4-OnLoadDetail).
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια Data entry οθόνη η οποία να χρησιμοποιηθεί για την καταχώριση παραστατικού τύπου 1-Παραγγελία. Έστω επίσης ότι θέλουμε ως κριτήριο ομαδοποίησης των γραμμών το πεδίο «Περιγραφή» του zoom πίνακα «Ομάδα είδους».
Θυμίζουμε εδώ ότι, απαιτείται και συμπλήρωση της παραμέτρου κινητού Doc_GroupField με το πεδίο που αποτελεί το κριτήριο ομαδοποίησης, για το παράδειγμα μας δηλαδή με το πεδίο GroupField.
Ταξινόμηση γραμμών
Δεδομένου του ότι η ενέργεια ταξινόμησης γραμμών εργασίας-παραστατικού διαχειρίζεται όλα τα πεδία ως τύπου κείμενο, για να είναι σωστή η ταξινόμηση βάσει αριθμητικού πεδίου, απαιτείται η χρήση κάποιου non store πεδίου της γραμμής για τη «μετατροπή» ενός αριθμού σε κείμενο. Η δήλωση του κανόνα μετατροπής γίνεται μέσω χρήσης του εργαλείου Business rules. Επισημαίνουμε εδώ ότι, η μετατροπή θα πρέπει να γίνεται τόσο κατά την εισαγωγή & μεταβολή γραμμής (Activation: 1-OnAddLine & 0-OnChangeField αντίστοιχα) όσο και κατά την εμφάνιση της Data entry οθόνης (Activation: 4-OnLoadDetail).
Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια Data entry οθόνη η οποία να χρησιμοποιηθεί για την καταχώριση παραστατικού τύπου 1-Παραγγελία. Έστω επίσης ότι θέλουμε να υπάρχει δυνατότητα χρήσης του πεδίου «% Έκπτωσης-2» της γραμμής ως ένα από τα εναλλακτικά κριτήρια ταξινόμησης των γραμμών.
Μαζική μεταβολή στοιχείου γραμμής
Παρέχεται η δυνατότητα μαζικής μεταβολής τιμής αριθμητικού πεδίου των γραμμών παραστατικού. Για την ενεργοποίηση της δυνατότητας αυτής αρκεί να επέμβουμε στο Actions αρχείο της DocForm οθόνης παραστατικού καιστο section ToolbarActions, να προσθέσουμε την εντολή BatchUpdate.
π.χ. για μαζική μεταβολή ποσότητας των ήδη καταχωρημένων γραμμών παραστατικού
<ToolbarActions>
…
<DocToolbarAction Caption="Μαζική μεταβολή ποσότητας" Command="BatchUpdate#Quantity" ESCaptionID=""/>
</ToolbarActions>
Επιμερισμός αξίας έκπτωσης
Παρέχεται η δυνατότητα μαζικής ανάθεσης, στις γραμμές παραστατικού, αξίας έκπτωσης η οποία προκύπτει μέσω επιμερισμού ενός συνολικού ποσού έκπτωσης που δηλώνεται από το χρήστη. Για την ενεργοποίηση της δυνατότητας αυτής αρκεί να επέμβουμε στο Actions αρχείο της DocForm οθόνης παραστατικού και, στο section ToolbarActions, να προσθέσουμε την εντολή AllocateDiscount.
π.χ. για μαζική ανάθεση του αναλογούντος ποσού στο πεδίο Αξία έκπτωσης-1 των γραμμών παραστατικού
<ToolbarActions>
…
<DocToolbarAction Caption="Επιμερισμός έκπτωσης" Command="AllocateDiscount#Disc1" ESCaptionID=""/>
</ToolbarActions>
Συνολικό % έκπτωσης γραμμής
Παρέχεται η δυνατότητα εμφάνισης του συνολικού % έκπτωσης γραμμής παραστατικού. Το ποσοστό αυτό προκύπτει από τις τρεις επιμέρους εκπτώσεις της γραμμής και ο τύπος υπολογισμού του είναι: Συνολική αξία έκπτωσης / (Ποσότητα * Τιμή). Για την εμφάνιση της πληροφορίας αυτής αρκεί να προσθέσουμε στο AdvancedList αρχείο της DocForm οθόνης παραστατικού νέο στοιχείο τύπου TextCell που στην ιδιότητα CellSource έχει την τιμή DiscountPercent.
<Cell Type="Resco.Controls.AdvancedList.TextCell">
<Property Name="TextFont" Value="Tahoma, 8pt, style=Bold" />
<Property Name="Bounds" Value="95,10,20,16" />
<Property Name="CellSource" Value="DiscountPercent" />
<Property Name="FormatString" Value="{0:0.##\%}" />
</Cell>
Υπέρβαση υπολοίπου
Παρέχεται η δυνατότητα επισήμανσης των γραμμών παραστατικού για τις οποίες υπάρχει υπέρβαση διαθέσιμου υπολοίπου. Για την ενεργοποίηση της δυνατότητας αυτής αρκεί να προσθέσουμε στο AdvancedList αρχείο της DocForm οθόνης παραστατικού νέο στοιχείο τύπου TextCell που στην ιδιότητα CellSource έχει την τιμή ItemBalanceErrorMessage.
<Cell Type="Resco.Controls.AdvancedList.TextCell">
<Property Name="Bounds" Value="23,25,180,16" />
<Property Name="Alignment" Value="Left"/>
<Property Name="ForeColor" Value="red"/>
<Property Name="CellSource" Value="ItemBalanceErrorMessage"/>
</Cell>
Γραμμή τύπου δώρο
Παρέχεται η δυνατότητα υλοποίησης ενέργειας η οποία καλείται επί επιλεγμένης γραμμής παραστατικού και έχει σαν αποτέλεσμα την εισαγωγή νέας γραμμής, ως ακριβές αντίγραφο της επιλεγμένης, με ποσότητα 1 στη βασική μονάδα μέτρησης του είδους και έκπτωση 100%. Σημειώνουμε εδώ ότι, η λειτουργικότητα αυτή είναι διαθέσιμη μόνο σε iOS πλατφόρμα.
Παράλληλα, παρέχεται και η δυνατότητα επισήμανσης των γραμμών «δώρο» με το επιθυμητό εικονίδιο. Για την υλοποίηση της ενέργειας αυτής απαιτούνται οι παρακάτω επεμβάσεις στο AdvancedList αρχείο της DocForm οθόνης παραστατικού.
- Προσθήκη, στο RowTemplate που αφορά σε επιλεγμένη εγγραφή, στοιχείου τύπου ButtonCell που στην ιδιότητα Name έχει την τιμή έχει την τιμή NewByCopyGiftButton.
<RowTemplate>
<Property Name="Name" Value="SelectedRowTemplate" />
…
<Cell Type="Resco.Controls.AdvancedList.ButtonCell">
<Property Name="Bounds" Value="200,44,40,40" />
<Property Name="ImageDefault" Value="iVBORw0KGg..." />
<Property Name="Name" Value="NewByCopyGiftButton" />
<Property Name="Selectable" Value="true" />
<Property Name="CellSource" Value=""-1"" />
</Cell>
</RowTemplate>
- Αν επιθυμούμε και την ειδική επισήμανση των γραμμών δώρο, προσθέτουμε και ένα ακόμη στοιχείο τύπου ButtonCell που στην ιδιότητα Name έχει την τιμή έχει την τιμή ConditionalButton και στην ιδιότητα CellSource έχει την τιμή IsGift. Τέλος, στην ιδιότητα TrueImageFile δηλώνουμε την περιοχή στην οποία βρίσκεται το εικονίδιο που θέλουμε να χρησιμοποιηθεί για την επισήμανση.
<Cell Type="Resco.Controls.AdvancedList.ButtonCell">
<Property Name="TrueImageFile" Value="CSImages/Gift.png" />
<Property Name="CellSource" Value="IsGift" />
<Property Name="Bounds" Value="1,1,10,32" />
<Property Name="Name" Value="ConditionalButton" />
</Cell>
Η ανάθεση έκπτωσης 100% γίνεται στο πεδίο έκπτωσης της γραμμής που έχει δηλωθεί στην παράμετρο κινητού Doc_GiftDiscount_Field.
Πλήκτρο μετατροπής τύπου είσπραξης
Παρέχεται η δυνατότητα δήλωσης πλήκτρου μετατροπής του τύπου μιας ήδη καταχωρημένης γραμμής είσπραξης. Για την ενεργοποίηση της δυνατότητας αυτής αρκεί να προσθέσουμε, στο Actions αρχείο της DocForm οθόνης είσπραξης, πλήκτρο που να αναφέρεται την εντολή ConvertLineButton.
π.χ. για τον ορισμό πλήκτρου άμεσης μετατροπής σε γραμμή τύπου έμβασμα
<Actions>
…
<ActionButton ImagePath="…" Name="ConvertLineButton#ColPayTransferCode" Width="30" Height="30"/>
</Actions>
Αυτόματη γένεση εργασίας
Παράδειγμα SampleAutoTask
Παρέχεται η δυνατότητα υλοποίησης ενέργειας η οποία καλείται επί επιλεγμένης εγγραφής προσώπου και σαν αποτέλεσμα την εμφάνιση Data entry οθόνης της οντότητας Task με προ-συμπληρωμένα τα στοιχεία της επικεφαλίδας και των γραμμών βάσει ενός ελεύθερα οριζόμενου select query. Για την αξιοποίηση της λειτουργικότητας αυτής απαιτείται η χρήση εντολής τύπου NewTaskCommand όπου η δήλωση του επιθυμητού query για επικεφαλίδα & γραμμές γίνεται στις ιδιότητες CreateHeaderQuery & GreateLinesQuery αντίστοιχα.
| Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια Data entry οθόνη η οποία να χρησιμοποιηθεί για την καταχώριση εργασίας τύπου ES.MCH-Μέτρηση. Έστω επίσης ότι θέλουμε στο σκέλος Περιεχόμενα της οθόνης μας να εισάγονται αυτόματα όλα τα είδη που οι πωλήσεις του τρέχοντας έτους υπερβαίνουν τα 5 τεμάχια ενημερώνοντας ταυτόχρονα με το ύψος πωλήσεων το πεδίο «Ποσότητα προς παραγγελία». |
|---|
Αυτόματη γένεση παραστατικού
Παράδειγμα SampleAutoDocument
Παρέχεται η δυνατότητα υλοποίησης ενέργειας η οποία καλείται επί επιλεγμένης εγγραφής προσώπου και σαν αποτέλεσμα την εμφάνιση Data entry οθόνης της οντότητας Document με προ-συμπληρωμένα τα στοιχεία της επικεφαλίδας και των γραμμών βάσει ενός ελεύθερα οριζόμενου select query. Για την αξιοποίηση της λειτουργικότητας αυτής απαιτείται η χρήση εντολής τύπου NewDocumentCommand όπου η δήλωση του επιθυμητού query για επικεφαλίδα & γραμμές γίνεται στις ιδιότητες CreateHeaderQuery & GreateLinesQuery αντίστοιχα.
| Έστω για παράδειγμα ότι θέλουμε να υλοποιήσουμε μια Data entry οθόνη η οποία να χρησιμοποιηθεί για την καταχώριση παραστατικού τύπου 1-Παραγγελία. Έστω επίσης ότι θέλουμε στο σκέλος Περιεχόμενα της οθόνης μας να εισάγονται αυτόματα όλα τα είδη που οι πωλήσεις του τρέχοντας έτους υπερβαίνουν τα 5 τεμάχια ενημερώνοντας ταυτόχρονα με το ύψος πωλήσεων το πεδίο «Ποσότητα». |
|---|
Αυτόματη εισαγωγή γραμμής ανάλυσης
Παρέχεται η δυνατότητα επέκτασης της διαδικασίας εισαγωγής γραμμών παραστατικού έτσι ώστε, αν η προς εισαγωγή γραμμή έχει συμπληρωμένη την πληροφορία που αφορά σε Χρώμα-Μέγεθος, να μπαίνει αυτόματα και η αντίστοιχη γραμμή ανάλυσης. Για την αξιοποίηση της δυνατότητας αυτής αρκεί να φροντίσουμε την ανάθεση, κατά την εισαγωγή της γραμμής παραστατικού, της επιθυμητής τιμής Χρώματος-Μεγέθους στα non store πεδία fColorCode και fSizeCode αντίστοιχα. Σημειώνουμε εδώ ότι, απαραίτητη προϋπόθεση για την αυτόματη εισαγωγή γραμμής ανάλυσης είναι στο πεδίο «Συμπεριφορά ίδιου είδους» του τύπου παραστατικού να έχει δηλωθεί η τιμή 1-Προσθήκη νέας γραμμής.
| Έστω για παράδειγμα ότι έχουμε ρυθμίσει την οθόνη καταχώρισης μέτρησης έτσι ώστε οι ποσότητες μέτρησης & προς παραγγελία να δηλώνονται σε επίπεδο χρώματος-μεγέθους. Έστω επίσης ότι η πληροφορία του χρώματος-μεγέθους δηλώνεται στα πεδία Κείμενο-3 & Κείμενο-4 της γραμμής μέτρησης. Έστω τέλος ότι θέλουμε, κατά τη δημιουργία παραγγελίας από μέτρηση, να γίνεται και αυτόματη εισαγωγή των γραμμών ανάλυσης βάσει της ποσότητας προς παραγγελία που έχει δηλωθεί στη μέτρηση. |
|---|
Διάσπαση παραστατικού
Παράδειγμα/ SampleSplitGiftDocument
Παρέχεται η δυνατότητα υλοποίησης κανόνα, μέσω χρήσςη του εργαλείου Business rules, o οποίος αναλαμβάνει την εκτέλεση ενός query ή μιας εντολής μετά από την αποθήκευση της τρέχουσας εγγραφής.
Έστω για παράδειγμα ότι θέλουμε κατά την αποθήκευση παραγγελίας και εφόσον αυτή περιέχει γραμμές δώρο, να γίνεται αυτόματη έκδοση παραστατικού δωρεάν χορήγησης και ταυτόχρονα διαγραφή των συγκεκριμένων γραμμών από την παραγγελία.
Έκδοση παραστατικού δωρεάν χορήγησης
Προσθήκη εντολής τύπου NewDocumentCommand (π.χ. εντολή SampleSplitGiftDocument) για τον ορισμό των στοιχείων γένεσης του παραστατικού δωρεάν χορήγησης. Τα στοιχεία επικεφαλίδας & γραμμών του προς γένεση παραστατικού δηλώνονται στις ιδιότητες CreateHeaderQuery & CreateLinesQuery αντίστοιχα.
<SampleSplitGiftDocument Assembly="Entersoft.Mobile.ESMobile"
Type="Entersoft.Mobile.ESMobile.NewDocumentCommand">
<Params>
<CreateHeaderQuery Type="System.String" Value="
Select
h.fTradeAccountGID Assign_fTradeAccountGID,
h.fAddressGID Assign_fAddressGID
From ESFISalesDocument h
Where h.GID = '[PARENT]' " />
<CreateLinesQuery Type="System.String" Value="
Select
l.fItemGID fItemGID, l.fItemMUGID fItemMUGID,
l.Quantity Quantity, l.fTaskItemGID Assign_fTaskItemGID,
l.Price Assign_Price,
l.Disc1 Assign_Disc1, l.Disc2 Assign_Disc2, l.Disc3 Assign_Disc3
From ESFISalesDocLineItem l
Where l.fDocumentGID = '[PARENT]' and l.TotalValue = 0 " />
<DocType Type="System.String" Value="9" />
<NullCustomer Type="System.Boolean" Value="false" />
<ShowDocument Type="System.Boolean" Value="false" />
</Params>
</SampleSplitGiftDocument>
Επέμβαση στο αρχείο των Business rules της παραγγελίας για την προσθήκη κανόνα ο οποίος ενεργοποιείται μετά την αποθήκευση (Activation: 6-AfterSave) και έχει σαν αποτέλεσμα την εκτέλεση (Action: 2-Execute) της παραπάνω εντολής (ScriptType: 8-Command). Σημειώνουμε εδώ ότι, για τη σύνταξη script τύπου 8-Command ισχύουν τα ίδια με αυτά της σύνταξης πλήκτρου ενεργειών και ότι οι μεταβλητές [PARENT] ή [CURRENT] τροφοδοτούνται πάντα με το GID της δηλωθείσας στον κανόνα οντότητας.
<BusinessRule Title = "Create Gift Document / 6-AfterSave"
Entity = "ESFISalesDocument"
Activation = "6"
Action = "2"
Inactive = "false">
<ExecutionConditions
Entity = "ESFISalesDocLineItem"
Operator = "1"
ScriptType = "3"
Script = "[ESFISalesDocLineItem].[TotalValue] = 0"/>
<Execute
Entity = "ESFISalesDocument"
ScriptType = "8"
Script = "New#SampleSplitGiftDocument" />
</BusinessRule>
Διαγραφή γραμμές δώρο από την παραγγελία
Επέμβαση στο αρχείο των Business rules της παραγγελίας για την προσθήκη κανόνα ο οποίος ενεργοποιείται μετά την αποθήκευση (Activation: 6-AfterSave) και έχει σαν αποτέλεσμα την εκτέλεση (Action: 2-Execute) του query διαγραφής των γραμμών δώρο (ScriptType: 1-SQL). Ειδικά στην περίπτωση που το αρχικό παραστατικό κάνει ενημέρωση αποθέματος (π.χ. Τιμολόγιο) θα πρέπει το συγκεκριμένο Business rule να αναλάβει και την ανάλογη ενημέρωση των αποθεμάτων.
<BusinessRule Title = "Delete Gift Lines / 6-AfterSave"
Entity = "ESFISalesDocument"
Activation = "6"
Action = "2"
Inactive = "false">
<ExecutionConditions
Entity = "ESFISalesDocLineItem"
Operator = "1"
ScriptType = "3"
Script = "[ESFISalesDocLineItem].[TotalValue] = 0"/>
<Execute
Entity = "ESFISalesDocLineItem"
ScriptType = "1"
Script = "
update ESMMItemBalance set
LastUpdate = datetime('now', 'localtime'),
BranchBalance =
(select ib.BranchBalance + li.BasicQuantity
from ESMMItemBalance ib
inner join ESGOCompany com on ib.fWarehousegid = com.fcurrentWarehousegid
inner join ESFISalesDocLineItem li on li.fitemGID = ib.fitemGID
where li.GID = '[ESFISalesDocLineItem].[GID]' and li.TotalValue = 0 )
where fitemGID in
(select fitemGID
from ESFISalesDocLineItem
where GID = '[ESFISalesDocLineItem].[GID]' and TotalValue = 0 )
and fwarehouseGID in (select fcurrentWarehousegid from ESGOCompany);
delete from ESFISalesDocLineItem
where GID = '[ESFISalesDocLineItem].[GID]' and TotalValue = 0" />
</BusinessRule>
Στο σενάριο αυτόματης γένεσης παραστατικού μέσω «διάσπασης», δεν υπάρχει δυνατότητα εμφάνισης του παραγόμενου παραστατικού. Αυτό σημαίνει ότι, η υπογραφή & εκτύπωση του παραστατικού, πρέπει να γίνουν σε δεύτερο χρόνο.
Online εταιρική πολιτική
Αντιστοίχιση πεδίων παραστατικού
Κατά την κλήση της διαδικασίας εφαρμογής online εταιρικής πολιτικής αποστέλλονται προς & λαμβάνονται από τα κεντρικά όλα τα «ονοματισμένα» πεδία του τρέχοντος παραστατικού. Για επαύξηση της ανταλλασσόμενης πληροφορίας με ελεύθερα οριζόμενα πεδία της επικεφαλίδας ή της γραμμής παραστατικού, απαιτείται η προσθήκη εντολών που περιγράφουν την επιθυμητή αντιστοίχιση των πεδίων (εντολή OnLineSaveMapping για αποστολή προς κεντρικά & OnLineSaveReturnMapping για λήψη από κεντρικά) και αποθήκευση των εντολών αυτών στο φάκελο της φόρμας διαχείρισης παραστατικού (π.χ. περιοχή CSForms\GenericDocForm\6 για παραστατικό τύπου τιμολόγιο πώλησης).
π.χ. για αποστολή προς τα κεντρικά της πληροφορίας «Πίνακας-1» της επικεφαλίδας παραστατικού
εντολή: OnLineSaveMapping
<OnLineSaveMapping>
<Header>
<Columns>
<Column ServerName="fADTableField2Code" LocalName="fADTableField2Code" Type="System.String"/>
</Columns>
</Header>
<Line>
<Columns>
</Columns>
</Line>
</OnLineSaveMapping>
π.χ. για λήψη από τα κεντρικά της πληροφορίας «Αριθμός-1» της επικεφαλίδας παραστατικού
εντολή: OnLineSaveMapping
<OnLineSaveMapping>
<Header>
<Columns>
<Column ServerName="ADValueField1" LocalName="NumericField1" Type="System.Decimal"/>
</Columns>
</Header>
<Line>...
</OnLineSaveMapping>
εντολή: OnLineSaveReturnMapping
<OnLineSaveMapping>
<Header>
<Columns>
<Column ServerName="ADValueField1" LocalName="NumericField1" Type="System.Decimal"/>
</Columns>
</Header>
<Line>...
</OnLineSaveMapping>
Αυτόματη εφαρμογή
Παρέχεται η δυνατότητα είτε για εξειδίκευση της αυτόματης εφαρμογής της online εταιρικής πολιτικής σε επίπεδο σημείου πώλησης είτε για υπό συνθήκες ενεργοποίηση της. Οι ρυθμίσεις που απαιτούνται είναι:
- Ενεργοποίηση σε σημείο πώλησης, Θα πρέπει ο τύπος παραστατικού να έχει ενεργοποιημένο το χαρακτηρισμό «Αυτόματη εφαρμογή online εταιρικής πολιτικής», στην παράμετρο κινητού «Doc_AutoApplyCommercialPolicy_SiteField» να έχει δηλωθεί το πεδίο της οντότητας διεύθυνση (π.χ. NumericField1) που θέλουμε να χρησιμοποιηθεί από τη συγκεκριμένη διαδικασία και τέλος να φροντίσουμε έτσι ώστε το πεδίο αυτό να ενημερώνεται με την τιμή 1 ή 0 ανάλογα με το αν επιθυμούμε ή όχι την αυτόματη εφαρμογή.
- Ενεργοποίηση υπό συνθήκες. Θα πρέπει ο τύπος παραστατικού να έχει μη ενεργοποιημένο το χαρακτηρισμό «Αυτόματη εφαρμογή online εταιρικής πολιτικής» και να γίνει δήλωση, μέσω χρήσης του εργαλείου Business rules, του επιθυμητού κανόνα ανάθεσης τιμής στο non store πεδίο AutoApplyOnlinePolicy της επικεφαλίδας παραστατικού. Η ανάθεση θα πρέπει να γίνει στη φάση κλήσης της ενέργειας αποθήκευσης του παραστατικού (Activation 7-OnAboutToSave).
π.χ. αυτόματη εφαρμογή online εταιρικής πολιτικής μόνο όταν το παραστατικό περιλαμβάνει συντιθέμενο είδος
π.χ. αυτόματη εφαρμογή online εταιρικής πολιτικής μόνο όταν η απόδειξη περιλαμβάνει γραμμή τύπου έμβασμα
Παραρτήματα
Command / Ιδιότητες
Στο παράρτημα αυτό γίνεται παράθεση των ιδιοτήτων προς ρύθμιση σε επίπεδο εντολής. Κάποιες «κλασικές» ιδιότητες είναι διαθέσιμες προς χρήση σε παντός τύπου οθόνες. Όμως, σε συγκεκριμένους τύπους οθόνης, ο κατάλογος των διαθέσιμων ιδιοτήτων εμπλουτίζεται και με επιπλέον ιδιότητες.
Command / Μεταβλητές
Στο παράρτημα αυτό γίνεται παράθεση των μεταβλητών που είναι διαθέσιμες προς χρήση σε ιδιότητες της εντολής όπου απαιτείται η σύνταξη ενός query (ιδιότητες BaseSelect, BaseInsert, Filter κ.λπ.). Κάποιες «κλασικές» μεταβλητές είναι διαθέσιμες προς χρήση σε παντός τύπου οθόνες. Όμως, σε συγκεκριμένους τύπους οθόνης, ο κατάλογος των διαθέσιμων μεταβλητών εμπλουτίζεται και με επιπλέον μεταβλητές. Σημειώνουμε εδώ ότι, ανεξάρτητα τύπου οθόνης και ιδιότητας, η δήλωση της προς χρήση μεταβλητής θα πρέπει να γίνεται μέσα σε brackets (π.χ. [CURRENT])
| Παντός τύπου οθόνη | |
|---|---|
| [CURRENT] | |
| [PARENT] | |
| [USERID] | |
| [APPLICATIONID] | |
| [BRANCHGID] | |
| [CAMPAIGNGID] | |
| [FITEMGID] | |
| [FCATALOGUEITEMGID] | |
| [TASKBEGINDATE] | |
| [TASKENDDATE] | |
| Οθόνη τύπου Λίστα εισαγωγής γραμμών (π.χ. AddLineForm) | |
| [FADDRESSGID] | |
| [DOCTYPE] | |
| [FCAMPAIGNGID] | |
| [PRODUCTPROPOSALGID] | |
| [LEVEL] | |
| [MULTIPLIER] | |
| [FIELD] |
Η μεταβλητή τροφοδοτείται απευθείας με την τιμή πεδίου του σκέλους Επικεφαλίδα της DocForm οθόνης από την οποία γίνεται κλήση της λίστας εισαγωγής γραμμών, δηλαδή από πεδίο του πίνακα ESTMTask για την οντότητα Task ή του πίνακα ESFISalesDocument για την οντότητα Document. π.χ. [fTradeAccountGID] για τροφοδότηση από το πεδίο «Συναλλασσόμενος» της επικεφαλίδας εργασίας ή παραστατικού |
| Οθόνη τύπου Local report (DataGridReport) | |
| [PERIOD] | |
| [SALESPERSON] | |
| [UDFFIELD1] | |
| [UDFFIELD2] | |
| [UDFFIELD3] | |
| [UDFFIELD4] | |
| [UDFFIELD5] |
Παράμετροι κινητού
Η ρύθμιση των παραμέτρων κινητού γίνεται από τα κεντρικά. Παρέχεται η δυνατότητα διαφοροποίησης της τιμής των παραμέτρων τόσο σε επίπεδο ESMobile εφαρμογής όσο και σε επίπεδο συγκεκριμένου χρήστη της ESMobile εφαρμογής. Η μεταφορά των παραμέτρων στην τοπική βάση δεδομένων γίνεται μέσω της διαδικασίας αρχικοποίησης δεδομένων.
Στο παράρτημα αυτό γίνεται παράθεση των διαθέσιμων παραμέτρων κινητού έχοντας κάνει μια ομαδοποίησης τους βάσει της «περιοχής» της ESMobile εφαρμογής στην οποία προσδίδουν λειτουργικότητα. Σημειώνουμε εδώ ότι, οι περισσότερες παράμετροι αφορούν σε όλες τις ESMobile εφαρμογές. Οι παράμετροι που κατ’ εξαίρεση αφορούν σε συγκεκριμένη εφαρμογή επισημαίνονται ανάλογα.
| Γενικά | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Administrator_Email | |||||||||||
| Η ηλεκτρονική διεύθυνση για αποστολή μηνύματος αναφοράς σφάλματος της εφαρμογής. | π.χ. admin@wwf.gr | ||||||||||
| AllCustomers | |||||||||||
| Παρέχεται το δικαίωμα αποστολής, μέσω της διαδικασίας συγχρονισμού δεδομένων, της πλήρους λίστας πελατών. | 0-Όχι ή 1-Ναι | ||||||||||
| AllowReceive | |||||||||||
| Ρύθμιση του δικαιώματος κλήσης της διαδικασίας λήψης δεδομένων όταν η επικοινωνία γίνεται μέσω της υπηρεσίας «δεδομένα κινητής τηλεφωνίας». | 0-Όχι ή 1-Ναι | ||||||||||
| AllowSend | |||||||||||
| Ρύθμιση του δικαιώματος κλήσης της διαδικασίας αποστολής δεδομένων όταν η επικοινωνία γίνεται μέσω της υπηρεσίας «δεδομένα κινητής τηλεφωνίας». | 0-Όχι ή 1-Ναι | ||||||||||
| AllowSyncPushLargeFiles | |||||||||||
| Ρύθμιση του δικαιώματος κλήσης της διαδικασίας αποστολής συνημμένων αρχείων όταν η επικοινωνία γίνεται μέσω της υπηρεσίας «δεδομένα κινητής τηλεφωνίας». | 0-Όχι ή 1-Ναι | ||||||||||
| AttachedSitePhotoCategory | |||||||||||
| Ο κωδικός της κατηγορίας που χαρακτηρίζει τα αρχεία εικόνας (attachments) σημείου πώλησης. | π.χ. SITE_PHOTO | ||||||||||
| AttachmentPath | |||||||||||
| AutoCheckVersion | |||||||||||
| Ενεργοποίηση της λειτουργικότητας που αφορά στον αυτόματο, με την είσοδο του χρήστη στην εφαρμογή, έλεγχο συμβατότητας της έκδοσης που είναι εγκατεστημένη στη συσκευή με την έκδοση που είναι εγκατεστημένη στον IIS server. | 0-Όχι ή 1-Ναι | ||||||||||
| CallBefore | |||||||||||
| CradleCommand | |||||||||||
| Culture | |||||||||||
| Ρύθμιση της μορφής εμφάνισης των στοιχείων τοπικότητας (ημερομηνίες & αριθμοί). Αφορά μόνο σε iOS πλατφόρμα. | π.χ. el-GR | ||||||||||
| CurrencyNegativePattern | |||||||||||
| H μορφή εμφάνισης πεδίου τύπου «Αξία σε νόμισμα» με αρνητική αξία. | π.χ. 15 | ||||||||||
| 0 | ($n) | 4 | (n$) | 8 | -n $ | 12 | $ -n | ||||
| 1 | -$n | 5 | -n$ | 9 | -$ n | 13 | n- $ | ||||
| 2 | $-n | 6 | n-$ | 10 | n $- | 14 | ($ n) | ||||
| 3 | $n- | 7 | n$- | 11 | $ n- | 15 | (n $) | ||||
| CurrencyPositivePattern | |||||||||||
| H μορφή εμφάνισης πεδίου τύπου «Αξία σε νόμισμα» με θετική αξία. | π.χ. 3 | ||||||||||
| 0 | $n | 1 | n$ | 2 | $ n | 3 | n $ | ||||
| CurrencySymbol | |||||||||||
| Το σύμβολο του νομίσματος. Για μη εμφάνιση συμβόλου, δηλώνεται ο χαρακτήρας «κενό». | π.χ. € ή EUR | ||||||||||
| ES_TAXISNET_PUBLICAFM | |||||||||||
| Τα στοιχεία σύνδεσης στην υπηρεσία ελέγχου στοιχείων Α.Φ.Μ του taxis. | |||||||||||
| fDamagedGoodsWHGID | xVan | ||||||||||
| Ο ΑΧ που έχει χαρακτηριστεί ως αποθήκη κατεστραμμένων. | |||||||||||
| Googlekey | |||||||||||
| Το κλειδί για χρήση της χαρτογραφικής υπηρεσίας της Google. | |||||||||||
| GPS_State | |||||||||||
| Ρύθμιση της λειτουργικότητας που αφορά στην καταγραφή του στίγματος του χρήστη. Οι ενέργειες κατά τις οποίες γίνεται καταγραφή στίγματος είναι προκαθορισμένες από τον ESMobile εφαρμογή και αναφέρονται στον παρακάτω πίνακα. Σε περίπτωση που το GPS της συσκευής είναι απενεργοποιημένο, η ανίχνευση απενεργοποιημένου GPS καταγράφεται ως διακριτό γεγονός στο αρχείο συμβάντων της συσκευής. Η καταγραφή αυτή γίνεται μια φορά ανά ημέρα. | 0 & 1 Καταγραφή, 2-Καμία καταγραφή | ||||||||||
| Τύπος εγγραφής | Ενέργεια | ||||||||||
| 14 | Συνάντηση πωλήσεων-Έναρξη | ||||||||||
| 6 | Συνάντηση πωλήσεων-Ολοκλήρωση | ||||||||||
| 11 | Εργασία πωλήσεων-Ολοκλήρωση | ||||||||||
| 10 | Είσπραξη-Ολοκλήρωση | ||||||||||
| 19 | Εργασία άλλου τύπου-Ολοκλήρωση | ||||||||||
| 20 | Εργασία on site-Άφιξη | ||||||||||
| 21 | Εργασία on site-Έναρξη | ||||||||||
| 15 | Εργασία on site-Ολοκλήρωση | ||||||||||
| 16 | Αντικατάσταση on site-Ολοκλήρωση | ||||||||||
| 17 | Προληπτική συντήρηση-Ολοκλήρωση | ||||||||||
| 7 | Παραγγελία | ||||||||||
| 12 | Προσφορά | ||||||||||
| 22 | Δελτίο επιστροφής πωλήσεων | ||||||||||
| 23 | Παραστατικό πωλήσεων άλλου τύπου | ||||||||||
| 24 | Παραστατικό διακίνησης | ||||||||||
| 26 | Άνοιγμα συνημμένου αρχείου | ||||||||||
| GPS_TimeOut | |||||||||||
| Ο χρόνος αναμονής για τον εντοπισμό GPS στίγματος (δευτερόλεπτα). Αφορά μόνο σε UWP & Android πλατφόρμα. | π.χ. 5 | ||||||||||
| HybridOnlineReports_BridgeID | |||||||||||
| Το Bridge σύνδεσης με τη εφαρμογή ESAnalyzer. | |||||||||||
| HybridOnlineReports_Host | |||||||||||
| Ο εξυπηρετητής της εφαρμογής ESAnalyzer. | |||||||||||
| HybridOnlineReports_SubscriptionID | |||||||||||
| Ο κωδικός συνδρομής της εφαρμογής ESAnalyzer. | |||||||||||
| HybridOnlineReports_SubscriptionPassword | |||||||||||
| Ο κωδικός πρόσβασης στην εφαρμογή ESAnalyzer. | |||||||||||
| HybridOnlineReports_Version | |||||||||||
| Ο αριθμός έκδοσης της εφαρμογής ESAnalyzer. | |||||||||||
| KeyboardMainLanguage | |||||||||||
| Lists_RecordCount | |||||||||||
| Εμφάνιση της πληροφορίας «Πλήθος εγγραφών» στις λίστες δεδομένων. Αφορά μόνο σε UWP & Android πλατφόρμα. | 0-Όχι ή 1-Ναι | ||||||||||
| MailClient | |||||||||||
| Η εφαρμογή μέσω της οποίας γίνεται η αποστολή E-mail. Αφορά μόνο σε iOS πλατφόρμα. | 0-Native iOS ή 1-MS Outlook | ||||||||||
| MailMergeMode | |||||||||||
| Ρύθμιση της συμπεριφοράς της διαδικασίας αποστολής εργασίας-παραστατικού μέσω E-mail. | 0-HTML, 1-PDF, 2-PDF/Speech ή 3-Inactive | ||||||||||
| Map_NearestSiteRadius | |||||||||||
| Η προτεινόμενη τιμή για τη χιλιομετρική ακτίνα αναζήτησης της οθόνης «Κοντινοί πελάτης». | π.χ. 10 | ||||||||||
| Memo_Disable_FolderButton | |||||||||||
| Απενεργοποίηση της δυνατότητας επισύναψης αρχείου εικόνας μέσω επιλογής ήδη υπάρχουσας φωτογραφίας. Αφορά μόνο σε iOS πλατφόρμα. | 0-Όχι ή 1-Ναι | ||||||||||
| MessageOnLoginCommand | |||||||||||
| Η εντολή που καθορίζει τα δεδομένα της λίστας μηνυμάτων προς το χρήστη. | π.χ. UnreadUserMessageListForm | ||||||||||
| MobileDataBasedOn | |||||||||||
| Ενεργοποίηση της δυνατότητας ανάθεσης πελατολογίου βάσει επικράτειας. | 0-Όχι ή 1-Ναι | ||||||||||
| ModalNumericKeyboard | |||||||||||
| Ενεργοποίηση της δυνατότητας για κλείσιμο της οθόνης του αριθμητικού πληκτρολογίου μόνο μέσω χρήσης των πλήκτρων «ΟΚ» ή «Ακύρωση». Αφορά μόνο σε iOS πλατφόρμα. | 0-Όχι ή 1-Ναι | ||||||||||
| NumberDecimalSeparator | |||||||||||
| Ο χαρακτήρας που χρησιμοποιείται για το διαχωρισμό των δεκαδικών ψηφίων ενός αριθμού. Επισημαίνουμε εδώ ότι, η παράμετρος δηλώνει το χαρακτήρα με τον οποίο αποθηκεύονται τα αριθμητικά πεδία στη βάση δεδομένων. | |||||||||||
| NumberGroupSeparator | |||||||||||
| Ο χαρακτήρας που χρησιμοποιείται για το διαχωρισμό των χιλιάδων ενός αριθμού. Επισημαίνουμε εδώ ότι, η παράμετρος δηλώνει το χαρακτήρα με τον οποίο αποθηκεύονται τα αριθμητικά πεδία στη βάση δεδομένων. | |||||||||||
| NumericKeyboardSizeFactor | |||||||||||
| Το μέγεθος της οθόνης του αριθμητικού πληκτρολογίου. Προτεινόμενες τιμές από 1.1 έως 1.8. Αφορά μόνο σε iOS πλατφόρμα. | π.χ. 1.3 | ||||||||||
| OnlineServices | |||||||||||
| Ρύθμιση του δικαιώματος κλήσης online εκτύπωσης όταν η επικοινωνία γίνεται μέσω της υπηρεσίας «δεδομένα κινητής τηλεφωνίας». | 0-Όχι ή 1-Ναι | ||||||||||
| PanicSMSnumber | |||||||||||
| Photo_Url | |||||||||||
| Το URL περιοχής αποθήκευσης των αρχείων εικόνας που αφορούν στις φωτογραφήσεις. | π.χ.http://192.168.1.195/ESMobilePhotos/ | ||||||||||
| ReceiveNewVersion | |||||||||||
| Ρύθμιση του δικαιώματος κλήσης της διαδικασίας λήψης έκδοσης όταν η επικοινωνία γίνεται μέσω της υπηρεσίας «δεδομένα κινητής τηλεφωνίας». | 0-Όχι ή 1-Ναι | ||||||||||
| SFList_GroupFieldCustomer | |||||||||||
| Το κριτήριο που χρησιμοποιείται για την ομαδοποίηση των δεδομένων μιας λίστας που αναφέρεται στην οντότητα πελάτης. Αφορά μόνο σε UWP & Android πλατφόρμα. | |||||||||||
| SFList_GroupFieldItem | |||||||||||
| Το κριτήριο που χρησιμοποιείται για την ομαδοποίηση των δεδομένων μιας λίστας που αναφέρεται στην οντότητα είδος. Αφορά μόνο σε UWP & Android πλατφόρμα. | |||||||||||
| ShiftFunctionality | xVan | ||||||||||
| Η λειτουργικότητα που προσδίδεται στη βάρδια. Επιλέγοντας την τιμή 1 ή 2, κατά την είσοδο στην εφαρμογή και εφόσον δεν υπάρχει ενεργή βάρδια, ενεργοποιείται αυτόματα η διαδικασία έναρξης βάρδιας. Επιλέγοντας τη τιμή 2, ενεργοποιούνται ταυτόχρονα και έλεγχοι που σχετίζονται με την έκδοση παραστατικών και το συγχρονισμό δεδομένων. | 0-Τίποτα, 1-Εμφάνιση στο login ή 2-Ελεγκτικό εργαλείο | ||||||||||
| ShiftOnLoginCommand | xVan | ||||||||||
| Η εντολή που εκτελείται κατά την είσοδο στην εφαρμογή για την κλήση της διαδικασίας έναρξης βάρδιας. Λειτουργεί σε συνδυασμό με την παράμετρο ShiftFunctionality. | π.χ. ShiftOnLoginCommand | ||||||||||
| Sync_ReplaceInvalidContext | |||||||||||
| Καθορίζει το αν, σε περίπτωση ασυμφωνίας μεταξύ φόρμας-εντολής οθόνης τύπου EditForm, θα γίνει αντικατάσταση του περιεχομένου των μη συμβατών πεδίων με την τιμή null. | 0-Όχι ή 1-Ναι |

