MOBILE - Cross vs iOS
Η έκδοση 3.12 είναι η πρώτη έκδοση της εφαρμογής Entersoft Mobile SFA/Merchandizing σε Android και Universal Windows πλατφόρμα (Cross πλατφόρμα). Όσον αφορά στη λειτουργικότητα αλλά και στα εργαλεία ανάπτυξης-παραμετροποίησης της εφαρμογής, για την Cross πλατφόρμα ισχύουν σε γενικές γραμμές αυτά που είναι ήδη γνωστά από την iOS πλατφόρμα. Το κείμενο αυτό αναφέρεται σε κάποια βασικά σημεία διαφοροποίησης μεταξύ της Cross και της iOS πλατφόρμας.
Η έκδοση 3.12 του Entersoft Mobile Suite μπορεί να εγκατασταθεί μόνο σε κινητές συσκευές που επικοινωνούν με το Entersoft Business Suite έκδοσης 4.10.12.0 ή μεταγενέστερης.
Περιεχόμενα
Οθόνη τύπου CollectionView ↔ SFList
Η οθόνη τύπου CollectionView (π.χ. Φωτο-κατάλογος ειδών) είναι διαθέσιμη μόνο στην iOS πλατφόρμα. Η υλοποίηση σε Cross πλατφόρμα οθόνης με την αντίστοιχη λειτουργικότητα γίνεται μέσω οθόνης τύπου SFList.
Για την υλοποίηση μιας οθόνης τύπου SFList απαιτείται ο ορισμός μιας εντολής τύπου SFListCreatorCommand και μιας φόρμας τύπου AdvancedList. Όσον αφορά στις απαιτούμενες ρυθμίσεις εντολής & φόρμας της SFList οθόνης, ισχύουν σε γενικές γραμμές αυτά που γνωρίζουμε από την iOS πλατφόρμα. Στο σημείο αυτό θα αναφερθούμε μόνο στα ιδιαίτερα χαρακτηριστικά της SFList οθόνης.
Θέση εμφάνισης στήλης
Ο ορισμός των στοιχείων που αφορούν στη θέση εμφάνισης των στηλών γίνεται μέσω συγκεκριμένων ιδιοτήτων του AdvancedList αρχείου.
Αρχικά καθορίζονται τα στοιχεία του «πλέγματος» μέσα στο οποίο θα γίνει η τοποθέτηση των επιμέρους στηλών (ιδιότητες: ItemSpam, Rows, Columns, Margin) καθώς και κάποια γενικά στοιχεία της φόρμας (ιδιότητες: Size, Orientation). Σημειώνουμε εδώ ότι, στην τρέχουσα φάση η ιδιότητα Version θα πρέπει να έχει την τιμή 1.
<AdvancedList>
<Property Name="version" Value="1" />
<Property Name="ItemSpan" Value="5" />
<Property Name="Rows" Value="21" />
<Property Name="Columns" Value="20" />
<Property Name="Margin" Value="1" />
<Property Name="Size" Value="270" />
<Property Name="Orientation" Value="vertical" />
<RowTemplate Comment="Normal">...</RowTemplate>
<RowTemplate Comment="Selected">...</RowTemplate>
</AdvancedList>
Στη συνέχεια καθορίζονται τα θέση-ύψος-πλάτος (ιδιότητες: Row, Column, RowSpan, ColumnSpan) της κάθε μιας από τις επιμέρους στήλες της φόρμας δίνοντας ιδιαίτερη προσοχή ώστε τα στοιχεία που δηλώνονται να είναι μέσα στα όρια του «πλέγματος».
<AdvancedList>
…
<RowTemplate comment="Normal">
<Property Name="Name" Value="RowTemplate" />
<Cell Type="Resco.Controls.AdvancedList.ImageCell" Row="0" Column="0" RowSpan="16" ColumnSpan="20">
<Property Name="CellSource" Value="Code" />
<Property Name="Name" Value="" />
<Property Name="DesignName" Value="" />
<Property Name="Visible" Value="true" />
<Property Name="Selectable" Value="" />
</Cell>
…
</ RowTemplate >
<RowTemplate Comment="Selected">...</RowTemplate>
</AdvancedList>
Δυνατότητα Binding
Όπως είναι γνωστό από την iOS πλατφόρμα, μέσω του «binding» δίνεται η δυνατότητα διαφοροποίησης βάσει συνθήκης των στοιχείων μορφοποίησης μιας οθόνης. Η δυνατότητα αυτή παρέχεται και στην Cross πλατφόρμα αλλά οι ρυθμίσεις που απαιτούνται για την ενεργοποίηση της διαφοροποιούνται σημαντικά.
| Έστω για παράδειγμα ότι θέλουμε, στην οθόνη Φωτο-κατάλογος, εμφάνιση της στήλης % έκπτωσης μόνο στα είδη με έκπτωση μεγαλύτερη του μηδέν. |
- Ορισμός της binding συνθήκης ως διακριτής στήλης στο query της εντολής.
Select
i.GID GID, i.Code Code, i.Description Description,
case when i.Discount = 0 then 0 else 1 end HasDiscount,
…
From ESFIItem i
Ενεργοποίηση της binding συνθήκης στο AdvancedList αρχείο της φόρμας.
<Cell Type="Resco.Controls.AdvancedList.TextCell" Row="1" Column="2" RowSpan="2" ColumnSpan="4">
<Property Name="CellSource" Value="Discount" />
<Property Name="Name" Value="Discount" />
<Property Name="DesignName" Value="" />
<Property Name="Alignment" Value="MiddleCenter" />
<Property Name="LineBreakMode" Value="2" />
<Property Name="FormatString" Value="{0:0.##\%}" />
<Property Name="FontSize" Value="12" />
<Property Name="FontStyle" Value="bold" />
<Property Name="ForeColor" Value="white" />
<Property Name="BackColor" Value="FAA460" />
<Property Name="Border" Value="" />
<Property Name="BorderColor" Value="" />
<Property Name="Visible" Value="{Binding HasDiscount}" />
<Property Name="Selectable" Value="" />
</Cell>
Οθόνη τύπου ItemInvForm ↔ InvSFList
Η αυτόματη επαύξηση μιας οθόνης με τη λειτουργικότητα της ItemInvForm είναι διαθέσιμη μόνο στην iOS πλατφόρμα. Η υλοποίηση σε Cross πλατφόρμα φόρμας με την αντίστοιχη λειτουργικότητα γίνεται μέσω χρήσης οθόνης τύπου InvSFList.
Για την υλοποίηση μιας οθόνης τύπου InvSFList απαιτείται ο ορισμός μιας εντολής τύπου SFInvFormCreatorCommand και μιας φόρμας τύπου AdvancedList. Όσον αφορά στις απαιτούμενες ρυθμίσεις εντολής & φόρμας της InvSFList οθόνης, ισχύουν αυτά που περιγράφονται παραπάνω για την υλοποίηση οθόνης τύπου SFList.
Οθόνη τύπου DocForm
Αρχικά θα πρέπει να αναφέρουμε ότι έχει γίνει ενοποίηση των τύπων οθονών Named εργασία (EditForm) & Generic εργασία (EditForm) με τον τύπο οθόνης Generic εργασία (DocForm). Με την αλλαγή αυτή διευκολύνεται η ύπαρξη κοινών «κανόνων» customization ανεξαρτήτως τύπου εργασίας ενώ ταυτόχρονα δίνεται και η δυνατότητα χρήσης της λειτουργικότητας του αρχείου Actions.xml και σε εργασίες χωρίς γραμμές. Σημειώνουμε εδώ ότι, στην Cross πλατφόρμα η ρύθμιση του αν η εργασία έχει γραμμές ή όχι δεν γίνεται σε επίπεδο εντολής (ιδιότητα: NoDetail) αλλά σε επίπεδο φόρμας (ιδιότητα: ShowContents του αρχείου Actions.xml). Αν στο φάκελο ενός τύπου εργασίας δεν υπάρχει το αρχείο Actions.xml, αυτό ισοδυναμεί με το ότι ο τύπος εργασίας είναι χωρίς γραμμές.
Μια οθόνη τύπου DocForm που έχει υλοποιηθεί στην iOS πλατφόρμα, είτε αφορά σε εργασία είτε αφορά σε παραστατικό, είναι σε γενικές γραμμές συμβατή και με την Cross πλατφόρμα. Στη συνέχεια της ενότητας αυτής θα αναφερθούμε μόνο στα σημεία διαφοροποίησης της Cross πλατφόρμας.
Γραμμές
Ειδικά για την AdvancedList των γραμμών, θα πρέπει να γνωρίζουμε ότι στην Cross πλατφόρμα η ιδιότητα Bounds αγνοείται πλήρως και οι στήλες διανέμονται στο διαθέσιμο χώρο «αναλογικά». Στην περίπτωση που δεν μας ικανοποιεί η μορφή εμφάνισης της περιοχής των γραμμών και προκειμένου να ορίσουμε την επιθυμητή της μορφή, θα πρέπει να «επεκτείνουμε» την AdvancedList και με τις ιδιότητες εκείνες που χαρακτηρίζουν μια SFList.
Σημειώνουμε εδώ ότι, η δυνατότητα μετάβασης στην οθόνη με τα πλήρη στοιχεία της γραμμής δεν είναι διαθέσιμη στην Cross πλατφόρμα.
Σύνολα ομάδας
Στην τρέχουσα φάση η δυνατότητα εμφάνισης γραμμής ομάδας δεν είναι διαθέσιμη στην Cross πλατφόρμα.
Γενικά σύνολα
Σε Cross πλατφόρμα στην τρέχουσα φάση, διαθέσιμα προς εμφάνιση στη περιοχή «Γενικά σύνολα» είναι είτε κάποιο από τα προκαθορισμένα πεδία (π.χ. πλήθος γραμμών) είτε κάποιο από τα αριθμητικά πεδία της επικεφαλίδας. Και στις δυο περιπτώσεις, η αναφορά σε πεδίο γίνεται δηλώνοντας, στην ιδιότητα CellSource, το κατάλληλο λεκτικό. Σημειώνουμε εδώ ότι όσον αφορά στο παραστατικό, αντί για τα λεκτικά NetTotal, VatTotal, DiscTotal & Total θα πρέπει να γίνει χρήση των λεκτικών NetValue, VatValue, DiscValue & TotalValue.
Επιπλέον σελίδες
Ειδικά για τις ενέργειες που έχουν δηλωθεί στο section Tabs του αρχείου Actions.xml, θα πρέπει να γνωρίζουμε ότι στην Cross πλατφόρμα απαιτείται και ο ορισμός της ή των παραμέτρων εκτέλεσης της εκάστοτε εντολής.
π.χ. για εμφάνιση σελίδας με την καρτέλα πελάτη στην οθόνη μέτρησης ή παραγγελίας
<Tabs>
<DocTab Caption="Καρτέλα" Command="CustomerLedgerIOSListForm" ESCaptionID="">
<ParamList>
<Param Name="Current" DataSource = "fTradeAccountGID"/>
</ParamList>
</DocTab>
</Tabs>
Οθόνη τύπου ListForm
Μια οθόνη τύπου ListForm (π.χ. λίστα Πελατών) που έχει υλοποιηθεί στην iOS πλατφόρμα μπορεί να χρησιμοποιηθεί ως έχει και σε Cross πλατφόρμα. Ειδικά για την dashboard οθόνη της λίστας δίνονται και οι παρακάτω επιπλέον δυνατότητες:
Ορισμός σελίδων & τμημάτων
Για τον ορισμό των σελίδων & τμημάτων μιας dashboard οθόνης ισχύουν αυτά που γνωρίζουμε από την iOS πλατφόρμα. Στην Cross πλατφόρμα όμως δίνεται και η δυνατότητα ορισμού του επιθυμητού, ανά σελίδα του Dashboard, πλήθους τμημάτων. Στην περίπτωση που επιθυμούμε την αξιοποίηση της δυνατότητας αυτής, απαιτείται ο ορισμός των σελίδων & τμημάτων στο section ESTabs του αρχείου ExtraLayoutParams.
| Έστω για παράδειγμα ότι θέλουμε να διαφοροποιήσουμε την dashboard οθόνη του Πελάτη έτσι ώστε η σελίδα «Γενικά» να πάρει τη μορφή που δείχνει η εικόνα. |
<ESTabs comment="CROSS Platform">
<ESTab Title="Γενικά" IsMain="true">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ESTabItem Command="" Row="0" Column="0" RowSpan="1" ColumnSpan="1" IsMain="true"/>
<ESTabItem Command="Edit#PersonSiteListForm" Row="1" Column="0" RowSpan="1" ColumnSpan="1"/>
<ESTabItem Command="Edit#PersonContactListForm" Row="2" Column="0" RowSpan="1" ColumnSpan="1"/>
<ESTabItem Command="Edit#PersonRangeReport" Row="0" Column="1" RowSpan="3" ColumnSpan="2"/>
</ESTab>
<ESTab Title="Εκκρεμότητες" IsMain="false">...</ESTab>
<ESTab Title="Ιστορικό" IsMain="false">...</ESTab>
<ESTab Title="Πορεία στόχων" IsMain="false">...</ESTab>
<ESTab Title="Σύγκριση 2ετίας" IsMain="false">...</ESTab>
</ESTabs>
Σημειώνουμε εδώ ότι, όταν στο αρχείο ExtraLayoutParams έχει γίνει ορισμός του section ESΤabs, ο ορισμός αυτός θα «υπερισχύσει» των ορισμών που έχουν γίνει στο section Segments.
Γραφήματα
Δίνεται η δυνατότητα εμφάνισης των δεδομένων μιας λίστας και υπό μορφή γραφήματος. Οι διαθέσιμοι τύποι γραφήματος είναι: Column, Bar, Pie, HalfPie & Doughnut. Για την ενεργοποίηση της δυνατότητας αυτής αρκεί η προσθήκη αρχείου τύπου ChartParams στο φάκελο της ListForm οθόνης. Ο ορισμός της επιθυμητής μορφής εμφάνισης γίνεται μέσω της κατάλληλης ρύθμισης των ιδιοτήτων του γραφήματος .
| Έστω για παράδειγμα ότι θέλουμε να επεκτείνουμε την dashboard οθόνη του Πελάτη έτσι ώστε να εμφανίσουμε στη σελίδα «Γενικά» ένα γράφημα-πίτα με το πλήθος συναντήσεων ανά σημείο πώλησης. |
<chartparameters>
<type>Pie</type>
<hidelist>true</hidelist>
<height>100</height>
<legend>true</legend>
<explode>false</explode>
<datamarker>false</datamarker>
<namefield>ABCClass</namefield>
<namefieldalias></namefieldalias>
<valuefield>coverage</valuefield>
<valuefieldalias></valuefieldalias>
<maxvalue>100</maxvalue>
</chartparameters>
Online reports
Ένα online report που έχει υλοποιηθεί στην iOS πλατφόρμα (π.χ. η όψη Καρτέλα πελάτη ή το dashboard Ανάλυση τζίρου πελάτη) μπορεί να χρησιμοποιηθεί ως έχει και σε Cross πλατφόρμα αρκεί να πληρούνται οι παρακάτω προϋποθέσεις:
- Να έχουν γίνει οι απαραίτητες ρυθμίσεις έτσι ώστε να υπάρχει η δυνατότητα εκτέλεσης της εφαρμογής Entersoft Online reports for Mobile Applications.
- Να υπάρχει στην περιοχή HybridWebReports της συσκευής folder με τα αρχεία της τρέχουσας έκδοσης. Στη φάση αυτή η τρέχουσα έκδοση είναι η 2.7.5. Το folder της συγκεκριμένης έκδοσης είναι διαθέσιμο στον mPortal.
- Να υπάρχει στην περιοχή CSPublicQueries του εξυπηρετητή της εφαρμογής το ανάλογο public query.
- Να έχει γίνει η ανάλογη συμπλήρωση των παρακάτω παραμέτρων κινητού.
| HybridOnlineReports_BridgeID | … |
|---|---|
| HybridOnlineReports_Host | api.entersoft.gr |
| HybridOnlineReports_SubscriptionID | … |
| HybridOnlineReports_SubscriptionPassword | … |
| HybridOnlineReports_Version | 2.7.5 |