Τύποι δεδομένων

Σημείωμα

Το Microsoft Power Fx είναι το νέο όνομα για τη γλώσσα τύπου των εφαρμογών καμβά. Αυτά τα άρθρα είναι σε εξέλιξη καθώς εξάγουμε τη γλώσσα από εφαρμογές καμβά, την ενοποιουμε με άλλα προϊόντα Microsoft Power Platform και την κάνουμε διαθέσιμη ως ανοιχτό κώδικα. Ξεκινήστε με την Επισκόπηση του Microsoft Power Fx για μια εισαγωγή στη γλώσσα.

Οι πληροφορίες ρέουν μέσω μιας εφαρμογής σε μικρές, διακριτές τιμές, όπως και στα κελιά ενός υπολογιστικού φύλλου. Για παράδειγμα, τα δεδομένα σε ένα πεδίο Γενέθλια και Επέτειος θα ρέουν και τα δύο ως τιμή Ημερομηνία που περιλαμβάνει το έτος, τον μήνα και την ημέρα. Η εφαρμογή ξέρει πώς να μορφοποιήσει αυτές τις τιμές, να περιορίσει τα δεδομένα εισόδου σε αυτά που είναι κατάλληλα για την καθεμία και να κάνει κοινόχρηστες τις τιμές με μια βάση δεδομένων. Τα γενέθλια διαφέρουν από τις επετείους σε άτομα, αλλά το σύστημα τα χειρίζεται ακριβώς με τον ίδιο τρόπο. Σε αυτήν την περίπτωση, η Ημερομηνία είναι ένα παράδειγμα τύπου δεδομένων.

Σε αυτό το άρθρο παρέχονται λεπτομέρειες για τους τύπους δεδομένων που υποστηρίζουν οι εφαρμογές καμβά. Όταν μια εφαρμογή συνδέεται με μια εξωτερική προέλευση δεδομένων, κάθε τύπος δεδομένων σε αυτήν την προέλευση αντιστοιχίζεται σε έναν τύπο δεδομένων για εφαρμογές καμβά.

Τύπος δεδομένων Περιγραφή Παραδείγματα
Δυαδική τιμή Μια τιμή αληθής ή ψευδής. Μπορεί να χρησιμοποιηθεί απευθείας στις συναρτήσεις If, Filter και σε άλλες συναρτήσεις χωρίς σύγκριση. αληθές
Χρώμα Μια προδιαγραφή χρωμάτων, συμπεριλαμβανομένου ενός καναλιού άλφα. Color.Red
ColorValue( "#102030" )
RGBA( 255, 128, 0, 0.5 )
Νομισματική μονάδα Μια τιμή νομισματικής μονάδας που είναι αποθηκευμένη σε αριθμό κινητής υποδιαστολής. Οι τιμές νομισματικής μονάδας είναι ίδιες με τις τιμές των αριθμών με τις επιλογές μορφοποίησης νομισματικής μονάδας. 123
4,56
Ημερομηνία Μια ημερομηνία χωρίς ώρα, στη ζώνη ώρας του χρήστη της εφαρμογής. Date( 2019, 5, 16 )
ΗμερομηνίαΏρα Μια ημερομηνία με ώρα, στη ζώνη ώρας του χρήστη της εφαρμογής. DateTimeValue( "May 16, 2019 1:23:09 PM" )
Δεκαδικός Ένας αριθμός με υψηλή ακρίβεια, βασικές λειτουργίες 10 και περιορισμένο εύρος. 123
Δεκαδικός ( "1,2345" )
GUID Ένα Καθολικά μοναδικό αναγνωριστικό. GUID()
GUID( "123e4567-e89b-12d3-a456-426655440000" )
Υπερ-σύνδεση Μια συμβολοσειρά κειμένου που περιέχει μια υπερ-σύνδεση. "https://powerapps.microsoft.com"
Image Μια συμβολοσειρά κειμένου Αναγνωριστικού καθολικού πόρου (URI) σε μια εικόνα σε μορφή .jpeg, .png, .svg, .gif, ή άλλη συνήθη μορφή διαδικτυακής εικόνας. MyImage προστίθεται ως πόρος εφαρμογής
"https://northwindtraders.com/logo.jpg"
"appres://blobmanager/7b12ffa2..."
Πολυμέσα Μια συμβολοσειρά κειμένου URI σε μια εγγραφή βίντεο ή ήχου. MyVideo προστίθεται ως πόρος εφαρμογής
"https://northwindtraders.com/intro.mp4"
"appres://blobmanager/3ba411c..."
Αριθμός ή Τύπος κινητής υποδιαστολής Ένας αριθμός με τυπική ακρίβεια, βασικές λειτουργίες 2 και μεγάλο εύρος. 123
8.903e121
1,234e200
Επιλογή Μια επιλογή από ένα σύνολο επιλογών, που υποστηρίζεται από έναν αριθμό. Αυτός ο τύπος δεδομένων συνδυάζει μια ετικέτα κειμένου δυνάμενη να μεταφραστεί με μια αριθμητική τιμή. Η ετικέτα εμφανίζεται στην εφαρμογή και η αριθμητική τιμή αποθηκεύεται και χρησιμοποιείται για συγκρίσεις. ThisItem.OrderStatus
Καρτέλα Μια καρτέλα τιμών δεδομένων. Αυτός ο τύπος σύνθετων δεδομένων περιέχει παρουσίες άλλων τύπων δεδομένων που παρατίθενται σε αυτήν τη θέμα. Περισσότερες πληροφορίες: Εργασία με πίνακες. { Εταιρεία: "Northwind Traders",
Προσωπικό: 35,
Μη κερδοσκοπικός οργανισμός: ψευδές }
Αναφορά καρτέλας Μια αναφορά σε μια καρτέλα ενός πίνακα. Αυτές οι αναφορές χρησιμοποιούνται συχνά με πολυμορφικές αναζητήσεις. Περισσότερες πληροφορίες: Εργασία με αναφορές. First(Accounts).Owner
Table Ένας πίνακας καρτελών. Όλες οι καρτέλες πρέπει να έχουν τα ίδια ονόματα για τα πεδία με τους ίδιους τύπους δεδομένων και τα πεδία που παραλείπονται αντιμετωπίζονται ως κενά. Αυτός ο τύπος σύνθετων δεδομένων περιέχει παρουσίες άλλων τύπων δεδομένων που παρατίθενται σε αυτήν τη θέμα. Περισσότερες πληροφορίες: Εργασία με πίνακες. Table( { FirstName: "Sidney",
LastName: "Higa" },
{ FirstName: "Nancy",
LastName: "Anderson" } )
Text Μια συμβολοσειρά κειμένου Unicode. "Hello, World"
Time Μια ώρα χωρίς ημερομηνία, στη ζώνη ώρας του χρήστη της εφαρμογής. Time( 11, 23, 45 )
Δύο επιλογές Μια επιλογή από ένα σύνολο δύο επιλογών, που υποστηρίζεται από μια δυαδική τιμή. Αυτός ο τύπος δεδομένων συνδυάζει μια ετικέτα κειμένου δυνάμενη να μεταφραστεί με μια δυαδική τιμή. Η ετικέτα εμφανίζεται στην εφαρμογή και η δυαδική τιμή αποθηκεύεται και χρησιμοποιείται για συγκρίσεις. ThisItem.Taxable
Μη πληκτρολογημένο αντικείμενο Ένα αντικείμενο μη δηλωμένου τύπου. Το υποκείμενο αντικείμενο θα μπορούσε να είναι οποιοσδήποτε υπάρχων τύπος και μπορεί να μετατραπεί σε συμβατούς τύπους χρησιμοποιώντας συναρτήσεις όπως Boolean(), Value(), Table() κλπ. Για περισσότερες πληροφορίες, ανατρέξτε στο Μη πληκτρολογημένο αντικείμενο και Εργασία με JSON. ParseJSON("{ ""Field"" : 1234 }").Field

Πολλοί από αυτούς τους τύπους δεδομένων είναι παρόμοιοι και έχουν την ίδια υποκείμενη αναπαράσταση, όπως ένα πεδίο υπερσύνδεσης που αντιμετωπίζεται ως κείμενο. Οι πρόσθετοι τύποι δεδομένων παρέχουν καλύτερες προεπιλεγμένες εμπειρίες σε φόρμες και άλλα στοιχεία ελέγχου.

Blank

Όλοι οι τύποι δεδομένων μπορούν να έχουν μια τιμή κενού (με άλλα λόγια, χωρίς τιμή). Ο όρος "null" χρησιμοποιείται συχνά σε βάσεις δεδομένων για αυτήν την έννοια.

Χρησιμοποιήστε τη συνάρτηση Blank με τη συνάρτηση Set ή Patch για να ορίσετε μια μεταβλητή ή ένα πεδίο σε κενό. Για παράδειγμα, το ο Set( x, Blank() ) καταργεί οποιαδήποτε τιμή στην καθολική μεταβλητή x.

Δοκιμάστε για μια τιμή κενό χρησιμοποιώντας τη συνάρτηση IsBlank. Αντικαταστήστε πιθανές τιμές κενό με τιμές μη κανό χρησιμοποιώντας τη συνάρτηση Coalesce.

Επειδή όλοι οι τύποι δεδομένων υποστηρίζουν το κενό, οι τύποι δεδομένων δυαδικός και δύο επιλογές έχουν αποδοτικά τρεις πιθανές τιμές.

Και οι τέσσερις από αυτούς τους τύπους δεδομένων βασίζονται σε μια συμβολοσειρά κειμένου Unicode.

Ενσωματωμένο κείμενο

Οι ενσωματωμένες συμβολοσειρές κειμένου σε έναν τύπο περικλείονται σε διπλά εισαγωγικά. Χρησιμοποιήστε δύο διπλά εισαγωγικά για να απεικονίσετε ένα μονό διπλό απόσπασμα στη συμβολοσειρά κειμένου. Για παράδειγμα, χρησιμοποιώντας τον ακόλουθο τύπο στην ιδιότητα OnSelect του στοιχείου ελέγχου Button:

Notify( "Jane said ""Hello, World!""" )

τα αποτελέσματα σε ένα διαφημιστικό πλαίσιο όταν πατάτε το κουμπί, όπου παραλείπονται τα πρώτα και τελευταία διπλά εισαγωγικά (καθώς οριοθετούνται με τη συμβολοσειρά κειμένου) και τα επαναλαμβανόμενα διπλά εισαγωγικά γύρω από Γεια σου, κόσμε! αντικαθίστανται από ένα διπλό εισαγωγικό:

αναδυόμενη ειδοποίηση με το μήνυμα η Τζέιν είπε

Τα μονά εισαγωγικά χρησιμοποιούνται για ονόματα αναγνωριστικών που περιέχουν ειδικούς χαρακτήρες και δεν διαθέτουν ειδική σημασία μέσα σε μια συμβολοσειρά κειμένου.

Παρεμβολή συμβολοσειράς

Χρησιμοποιήστε την παρεμβολή συμβολοσειράς για να ενσωματώσετε τύπους μέσα σε μια συμβολοσειρά κειμένου. Συχνά είναι πιο εύκολο να εργαστείτε και να απεικονίσετε την έξοδο σε σχέση με τη χρήση της συνάρτησης Concatenate ή του τελεστή &.

Θέστε το πρόθεμα στη συμβολοσειρά κειμένου με ένα σύμβολο δολαρίου $ και περικλείστε τον τύπο που θα είναι ενσωματωμένος με αγκύλες {}. Για να συμπεριλάβετε μια αγκύλη στη συμβολοσειρά κειμένου, χρησιμοποιήστε επαναλαμβανόμενες αγκύλες: {{ ή }}. Η παρεμβολή συμβολοσειράς μπορεί να χρησιμοποιηθεί οπουδήποτε σε μια τυπική συμβολοσειρά κειμένου.

Για παράδειγμα, λάβετε υπόψη σας αυτόν τον τύπο, με τις καθολικές μεταβλητές Apples να έχουν οριστεί σε 3 και το Bananas να έχει οριστεί σε 4:

$"We have {Apples} apples, {Bananas} bananas, yielding {Apples+Bananas} fruit total."

Αυτός ο τύπος επιστρέφει τη συμβολοσειρά κειμένου Έχουμε 3 μήλα, 4 μπανάνες, που κάνουν συνολικά 7 φρούτα. Οι μεταβλητές Μήλα και Μπανάνες εισάγονται στο κείμενο αντικαθιστώντας τα άγκιστρα μαζί με το αποτέλεσμα του μαθηματικού τύπου Μήλα+Μπανάνες. Τα διαστήματα και άλλοι χαρακτήρες γύρω από τις αγκύλες διατηρούνται όπως είναι.

Οι ενσωματωμένοι τύποι μπορεί να περιλαμβάνουν συναρτήσεις ή τελεστές. Το μόνο που απαιτείται είναι το αποτέλεσμα του τύπου να μπορεί να είναι δυνατός να μετατραπεί αναγκαστικά σε μια συμβολοσειρά κειμένου. Για παράδειγμα, αυτός ο τύπος θα εισαγάγει το Παρατσούκλι εάν παρέχεται ή το Όνομα, αν όχι, σε έναν χαιρετισμό:

$"Welcome {Coalesce( NickName, FirstName )}, it's great to meet you!" )

Εάν το Παρατσούκλι έχει οριστεί σε "Joe", τότε αυτός ο τύπος παράγει τη συμβολοσειρά κειμένου Καλώς ήρθατε Joe, χαίρομαι για τη γνωριμία!. Όμως, εάν το Παρατσούκλι είναι κενό και το Όνομα είναι "Joseph", τότε αυτή η φόρμουλα παράγει αντίθετα το Αγαπητέ Joseph, χαίρομαι για τη γνωριμία!.

Η παρεμβολή συμβολοσειράς μπορεί να περιλαμβάνει τυπικές συμβολοσειρές κειμένου στον ενσωματωμένο τύπο. Για παράδειγμα, αν δεν παρέχεται ούτε Παρατσούκλι ούτε Όνομα, θα μπορούσαμε να παράσχουμε ως υποκατάστατο το Φίλος:

$"Welcome {Coalesce( NickName, FirstName, "Friend" )}!"

Οι παρεμβολές συμβολοσειράς μπορούν ακόμη και να είναι ένθετες. Εξετάστε αυτό το παράδειγμα όπου Όνομα, Μεσαίο όνομα και Επώνυμο συνδυάζονται σε έναν χαιρετισμό. Ακόμη και αν μία ή δύο από αυτές τις τιμές είναι κενές, ο σωστός αριθμός διαστημάτων θα είναι μεταξύ των τμημάτων ονόματος. Εάν δεν παρέχεται κανένα από τα μέρη, η εσωτερική παρεμβολή συμβολοσειράς θα συμπτυχθεί σε μια κενή συμβολοσειρά και θα αντικατασταθεί από τη συνάρτηση Coalesce από "Φίλος".

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
Όνομα Μεσαίο όνομα Επώνυμο Αποτέλεσμα
John Qunicy Doe Welcome John Quincy Doe!
John κενό Doe Welcome John Doe!
κενό κενό Doe Welcome Doe!
κενό κενό κενό Welcome Friend!

Νέες γραμμές

Οι συμβολοσειρές ενσωματωμένου κειμένου μπορεί να περιέχουν νέες γραμμές. Για παράδειγμα, εξετάστε το ενδεχόμενο να ορίσετε την ιδιότητα Text ενός στοιχείου ελέγχου Label ως εξής:

"Line 1
Line 2
Line 3"

Ο παραπάνω τύπος οδηγεί σε τρεις γραμμές που εμφανίζονται στο στοιχείο ελέγχου ετικέτας:

Στοιχείο ελέγχου συμβολοσειράς ενσωματωμένου κειμένου και ετικέτας που δείχνει τρεις γραμμές με τη Γραμμή 1, Γραμμή 2 και Γραμμή 3.

Οι νέες γραμμές υποστηρίζονται επίσης με παρεμβολή συμβολοσειράς, όπως φαίνεται παρακάτω:

$"Line {1}
Line {1+1}
Line {1+1+1}"

Ο παραπάνω τύπος έχει ως αποτέλεσμα την ίδια έξοδο:

Στοιχείο ελέγχου τύπου παρεμβολής συμβολοσειράς και ετικέτας που δείχνει τρεις γραμμές με τη Γραμμή 1, Γραμμή 2 και Γραμμή 3.

Πόροι εικόνας και πολυμέσων

Μέσω του μενού Αρχείο, μπορείτε να προσθέσετε αρχεία εικόνας, βίντεο και ήχου ως πόρους εφαρμογών. Το όνομα του αρχείου που έχει εισαχθεί μετατρέπεται στο όνομα του πόρου στην εφαρμογή. Σε αυτό το γραφικό, το λογότυπο Northwind Traders, το οποίο ονομάζεται nwindlogo, έχει προστεθεί σε μια εφαρμογή:

Πόρος Northwind.

Για να χρησιμοποιήσετε αυτόν τον πόρο σε μια εφαρμογή, καθορίστε τον στην ιδιότητα Image ενός στοιχείου ελέγχου Image:

Εικόνα Northwind.

URI για εικόνες και άλλα πολυμέσα

Μπορείτε να προχωρήσετε λίγο περισσότερο σε αυτό το τελευταίο παράδειγμα ορίζοντας την ιδιότητα Text ενός στοιχείου ελέγχου Label σε nwindlogo. Η ετικέτα εμφανίζει μια συμβολοσειρά κειμένου:

Κείμενο Northwind.

Οι εφαρμογές καμβά παραπέμπουν σε κάθε εικόνα ή σε ένα άλλο αρχείο πολυμέσων, είτε βρίσκονται στο cloud είτε προστίθενται ως πόρος εφαρμογής, με μια συμβολοσειρά κειμένου URI.

Για παράδειγμα, η ιδιότητα Image ενός στοιχείου ελέγχου εικόνας δέχεται όχι μόνο πόρους εφαρμογών αλλά επίσης συνδέσεις σε εικόνες στο Web, όπως "https://northwindtraders.com/logo.jpg"". Η ιδιότητα δέχεται επίσης ενσωματωμένες εικόνες που χρησιμοποιούν τον συνδυασμό URI δεδομένων, όπως σε αυτό το παράδειγμα:

"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFAQMAAACtnVQoAAAABlBMVEUAAAB0J3UMNU6VAAAAAXRSTlMAQObYZgAAABRJREFUCNdjUGJgCGVg6GgAkkA2AA8/AffqCEBsAAAAAElFTkSuQmCC"

Αυτό το URI εμφανίζει μια κλιμακωτή έκδοση δύο μωβ διαμαντιών:

Διπλά διαμάντια.

Μπορείτε να παρουσιάσετε την πιο πρόσφατη εικόνα που καταγράφηκε σε ένα στοιχείο ελέγχου Camera, εάν ορίσετε την ιδιότητα Image ενός στοιχείου ελέγχου εικόνας στην ιδιότητα Photo του στοιχείου ελέγχου Camera. Η εφαρμογή διατηρεί την εικόνα στη μνήμη και η ιδιότητα Photo του στοιχείου ελέγχου Camera επιστρέφει μια αναφορά URI στην εικόνα. Για παράδειγμα, μπορεί να τραβήξετε μια φωτογραφία και η ιδιότητα Photo της κάμερας θα μπορούσε να επιστρέψει "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1".

Χρησιμοποιείτε ένα URI για να κάνετε αναφορά σε μια εικόνα ή σε ένα άλλο αρχείο πολυμέσων που είναι αποθηκευμένο σε μια βάση δεδομένων. Με αυτόν τον τρόπο, η εφαρμογή δεν ανακτά τα πραγματικά δεδομένα, μέχρι να είναι πραγματικά απαραίτητα. Για παράδειγμα, ένα συνημμένο σε πίνακα Microsoft Dataverse μπορεί να επιστρέψει "appres://datasources/Contacts/table/..." Όπως στο παράδειγμα με την κάμερα, μπορείτε να εμφανίσετε αυτή την εικόνα ρυθμίζοντας την ιδιότητα Image ενός στοιχείου ελέγχου εικόνας σε αυτή την αναφορά, η οποία ανακτά τα δυαδικά δεδομένα.

Όταν αποθηκεύετε έναν τύπο δεδομένων πολυμέσων, όπως μια εικόνα, σε μια βάση δεδομένων, η εφαρμογή αποστέλλει την πραγματική εικόνα ή τα δεδομένα πολυμέσων και όχι την αναφορά URI.

Όρια μεγέθους

Ως συμβολοσειρές κειμένου και URI, αυτοί οι τύποι δεδομένων δεν έχουν προκαθορισμένο όριο στο μήκος τους.

Τα δυαδικά δεδομένα στα οποία αναφέρονται επίσης αυτοί οι τύποι δεδομένων δεν έχουν προκαθορισμένο όριο στο μέγεθος. Για παράδειγμα, μια εικόνα που καταγράφεται μέσω του στοιχείου ελέγχου Camera που τώρα αναφέρεται ως "appres://..." μπορεί να είναι τόσο μεγάλη και υψηλής ανάλυσης όσο μπορεί να επιστρατεύσει η κάμερα της συσκευής. Η ανάλυση, ο ρυθμός καρέ και άλλα χαρακτηριστικά των αρχείων πολυμέσων δεν περιορίζονται από τον τύπο δεδομένων, αλλά συγκεκριμένα στοιχεία ελέγχου για την αναπαραγωγή και την αποτύπωση μέσων μπορεί να έχουν τους δικούς τους περιορισμούς.

Ωστόσο, όλα τα μεγέθη δεδομένων υπόκεινται στην ποσότητα της διαθέσιμης μνήμης στην εφαρμογή. Τα προγράμματα περιήγησης που εκτελούνται σε έναν επιτραπέζιο υπολογιστή συνήθως υποστηρίζουν περισσότερα από 100 MB δεδομένων. Ωστόσο, η ποσότητα της διαθέσιμης μνήμης σε μια συσκευή όπως ένα τηλέφωνο μπορεί να είναι πολύ χαμηλότερη, συνήθως στην περιοχή των 30-70 megabyte. Για να εξακριβώσετε αν η εφαρμογή σας θα εκτελεστεί εντός αυτών των ορίων, δοκιμάστε συνηθισμένα σενάρια σε όλες τις συσκευές στις οποίες θα πρέπει να εκτελεστεί.

Η βέλτιστη πρακτική είναι να διατηρείτε τα δεδομένα στη μνήμη μόνο εφόσον είναι απαραίτητο. Ανεβάστε τις εικόνες σε μια βάση δεδομένων το συντομότερο δυνατό. Κατεβάστε τις εικόνες μόνο όταν το απαιτεί ο χρήστης της εφαρμογής.

Αριθμοί

Σημείωμα

Το Power Apps υποστηρίζει μόνο τύπο κινητής υποδιαστολής σήμερα και είναι ο τύπος όλων των αριθμών. Η υποστήριξη δεκαδικών θα προστεθεί σύντομα.

Το Power Fx υποστηρίζει δύο είδη αριθμών: Δεκαδικός και Τύπος κινητής υποδιαστολής (με τα συνώνυμα Αριθμός και Νόμισμα).

Ο Δεκαδικός είναι η καλύτερη επιλογή για τους περισσότερους επιχειρηματικούς υπολογισμούς. Μπορεί να αντιπροσωπεύει με ακρίβεια τους αριθμούς στη βάση 10 που σημαίνει ότι 0.1 αναπαριστώνται και δεν προκύπτουν σφάλματα στη στρογγυλοποίηση κατά τους υπολογισμούς. Έχει ένα αρκετά μεγάλο εύρος για οποιαδήποτε επιχειρηματική ανάγκη, έως 1028 με έως 28 ψηφία ακρίβειας. Ο Δεκαδικός είναι ο προεπιλεγμένος τύπος αριθμητικών δεδομένων για τους κεντρικούς υπολογιστές Power Fx και χρησιμοποιείται γράφοντας απλά 2*2.

Ο Τύπος κινητής υποδιαστολής είναι η καλύτερη επιλογή για επιστημονικούς υπολογισμούς. Μπορεί να αντιπροσωπεύει αριθμούς σε πολύ μεγαλύτερο εύρος, έως και 10308. Η ακρίβεια περιορίζεται σε 15 δεκαδικά ψηφία και το πεδίο βασίζεται στη βάση 2, επομένως δεν μπορεί να αντιπροσωπεύει με ακρίβεια ορισμένες κοινές δεκαδικές τιμές. Ο Τύπος κινητής υποδιαστολής έχει επίσης υψηλότερη απόδοση και είναι καλό εάν αυτός ο παράγοντας και η ακρίβεια δεν είναι σημαντικές.

Δεκαδικοί αριθμοί

Ο τύπος δεδομένων Δεκαδικός χρησιμοποιεί συχνότερα τον τύπο δεδομένων δεκαδικού αριθμού .NET. Ορισμένοι κεντρικοί υπολογιστές, όπως στήλες τύπου Dataverse που εκτελούνται σε SQL Serer, χρησιμοποιούν τον τύπο δεδομένων δεκαδικών του SQL Server.

Ο Δεκαδικός ταιριάζει με τον τρόπο που μάθαμε στο σχολείο, χρησιμοποιώντας 10 ψηφία βάσης. Αυτό είναι πολύ σημαντικό για να αποφευχθούν τα σφάλματα στρογγυλοποίησης από πολύ μικρές διαφορές που μπορούν να συσσωρευτούν κατά τη χρήση της βάσης 2 (όπως χρησιμοποιείται από το Τύπος κινητής υποδιαστολής).

Το εύρος είναι από θετικό 79,228,162,514,264,337,593,543,950,335 έως αρνητικό 79,228,162,514,264,337,593,543,950,335. Το διαχωριστικό δεκαδικών ψηφίων μπορεί να τοποθετηθεί οπουδήποτε εντός αυτών των αριθμών, παρέχοντας έως και 28 ψηφία ακρίβειας και με ακρίβεια. Για παράδειγμα, η τιμή 79,228,162,514,264.337593543950335 μπορεί να αντιπροσωπεύεται ακριβώς, όπως και η τιμή 7.9228162514264337593543950335.

Αριθμοί κινητής υποδιαστολής

Οι τύποι δεδομένων Τύπος κινητής υποδιαστολής γνωστός ως Αριθμός ή Νόμισμα χρησιμοποιεί το πρότυπο κινητής υποδιαστολής διπλής ακρίβειας IEEE 754. Αυτό το πρότυπο παρέχει ένα πολύ μεγάλο εύρος αριθμών για εργασία, από – 1,79769 x 10308 έως 1,79769 x 10308. Η μικρότερη τιμή που μπορεί να αντιπροσωπεύεται είναι 5 x 10– 324.

Το Τύπος κινητής υποδιαστολής μπορεί να αντιπροσωπεύει ακριβώς ακέραιους αριθμούς (ή ακέραιους) μεταξύ –9,007,199,254,740,991 (–(253 – 1)) and 9,007,199,254,740,991 (253 – 1). Αυτό το εύρος είναι μεγαλύτερο από τους ακέραιους τύπους δεδομένων 32-bit (ή 4-byte) που χρησιμοποιούν συνήθως οι βάσεις δεδομένων. Ωστόσο, οι εφαρμογές καμβά δεν είναι δυνατό να αντιπροσωπεύουν ακέραιους τύπους δεδομένων 64-bit (ή 8-byte). Μπορεί να θέλετε να αποθηκεύσετε τον αριθμό σε ένα πεδίο κειμένου ή να χρησιμοποιήσετε μια υπολογισμένη στήλη για να δημιουργήσετε ένα αντίγραφο του αριθμού σε ένα πεδίο κειμένου, έτσι ώστε να έχει αντιστοιχιστεί σε έναν τύπο δεδομένων Κείμενο στην εφαρμογή καμβά. Με αυτόν τον τρόπο, μπορείτε να κρατήσετε, να εμφανίσετε και να καταχωρίσετε αυτές τις τιμές, καθώς και να τις συγκρίνετε, για να διαπιστώσετε εάν είναι ισότιμες. Ωστόσο, δεν μπορείτε να εκτελέσετε αριθμητικούς υπολογισμούς σε αυτήν τη φόρμα.

Η αριθμητική κινητής υποδιαστολής είναι κατά προσέγγιση, επομένως μπορεί μερικές φορές να δώσει μη αναμενόμενα αποτελέσματα με πολλά τεκμηριωμένα παραδείγματα. Μπορείτε να αναμένετε τον τύπο 55 / 100 * 100 να επιστρέψει ακριβώς 55 και (55 / 100 * 100)-55 για να επιστρέψει ακριβώς μηδέν. Ωστόσο, ο τελευταίος τύπος αποδίδει 7,1054 x 10– 15, το οποίο είναι πολύ μικρό, αλλά όχι μηδενικό. Αυτή η απειροελάχιστη διαφορά συνήθως δεν προκαλεί κάποιο πρόβλημα και η εφαρμογή τη στρογγυλοποιεί κατά την εμφάνιση του αποτελέσματος. Ωστόσο, οι μικρές διαφορές μπορεί να είναι σύνθετες σε επόμενους υπολογισμούς και φαίνεται ότι δίνουν λανθασμένη απάντηση.

Τα συστήματα βάσεων δεδομένων συχνά αποθηκεύουν νομίσματα και εκτελούν υπολογισμούς με τη χρήση μαθηματικών δεκαδικών ψηφίων, το οποίο προσφέρει ένα μικρότερο εύρος, αλλά μεγαλύτερο έλεγχο της ακρίβειας. Από προεπιλογή, οι εφαρμογές καμβά αντιστοιχίζουν νομισματικές μονάδες εντός και εκτός τιμών κινητής υποδιαστολής. Επομένως, το αποτέλεσμα μπορεί να διαφέρει από τους υπολογισμούς που πραγματοποιούνται με έναν εγγενές δεκαδικό τύπο δεδομένων. Εάν αυτός ο τύπος ασυμφωνίας προκαλέσει προβλήματα, μπορεί να θέλετε να εργαστείτε με αυτές τις τιμές ως Κείμενο, όπως ακριβώς θα κάνατε με μεγάλους ακέραιους που περιγράφονται παραπάνω σε αυτήν την ενότητα.

Προεπιλογές και μετατροπές

Σημείωμα

Το Power Apps υποστηρίζει μόνο τύπο κινητής υποδιαστολής σήμερα και είναι ο τύπος όλων των αριθμών. Η υποστήριξη δεκαδικών θα προστεθεί σύντομα.

Οι περισσότεροι κεντρικοί υπολογιστές Power Fx χρησιμοποιούν την επιλογή Δεκαδικός από προεπιλογή. Αυτό έχει αντίκτυπο:

  • Αριθμούς λεκτικής σταθεράς σε τύπους. Ο αριθμός 1.234 θα ερμηνεύεται ως δεκαδική τιμή. Για παράδειγμα, ο τύπος 1.234 * 2 θα ερμηνεύσει το 1.234 και το 2 ως Δεκαδικό και θα επιστρέψει ένα δεκαδικό αποτέλεσμα.
  • Συνάρτηση Value. Το Value( "1.234" ) θα επιστρέψει μια δεκαδική τιμή. Για παράδειγμα, στον τύπο Value( "1.234" ) * 2 η συνάρτηση Value θα ερμηνεύσει τα περιεχόμενα της συμβολοσειράς κειμένου "1.234" ως Δεκαδικό.

Για εργασία με τις τιμές τύπου κινητής υποδιαστολής, χρησιμοποιείται η συνάρτηση Float. Επεκτείνοντας το παραπάνω παράδειγμα, το Float( 1.234 ) θα μετατρέψει τον δεκαδικό1.234 σε τύπο κινητής υποδιαστολής. Ο Τύπος κινητής υποδιαστολής μπορεί επίσης να χρησιμοποιηθεί ως υποκατάστατο για την Τιμή για τη μετατροπή μιας συμβολοσειράς που περιέχει έναν αριθμό κινητής υποδιαστολής, όπως Float( "1.234" ) σε μια τιμή τύπος κινητής υποδιαστολής η οποία είναι απαραίτητη εάν ο αριθμός δεν μπορεί να αντιπροσωπεύεται ως δεκαδικός.

Συνοπτικά:

Χρήση Δεκαδικός Τύπος κινητής υποδιαστολής
Αριθμοί λεκτικής σταθεράς σε τύπους 1.234 Float( 1.234 )
Float( "1.234" )
Μετατροπή από συμβολοσειρά κειμένου Value( "1.234" )
Decimal( "1.234" )
Float( "1.234" )
Μετατροπή μεταξύ αριθμητικών τύπων Decimal( float ) Float( decimal )
Μετατροπή σε συμβολοσειρά κειμένου Text( decimal ) Text( float )

Συνδυασμός αριθμητικών τύπων

Οι τιμές Τύπος κινητής υποδιαστολής και Δεκαδικός συνδυάζονται ελεύθερα. Όταν συνδυάζονται, οι δεκαδικές τιμές μετατρέπονται σε τιμές τύπου κινητής υποδιαστολής λόγω του μεγαλύτερου εύρους τιμών. Καθώς αυτό μπορεί να οδηγήσει σε απώλεια ακρίβειας, είναι σημαντικό να μην κάνετε συνδυασμούς άσκοπα. Καθώς ο Δεκαδικός είναι ο προεπιλεγμένος τύπος δεδομένων λεκτικής σταθεράς και οι περισσότερες αριθμητικές συναρτήσεις θα διατηρούν τον τύπο, είναι σχετικά εύκολο να αποφύγετε την μετακίνηση σε Τύπος κινητής υποδιαστολής χωρίς να το επιθυμείτε.

Για παράδειγμα, δείτε τον παρακάτω υπολογισμό χρησιμοποιώντας pac power-fx repl μετά την εγκατάσταση του Power Platform CLI. Καθώς και οι δύο αριθμοί είναι δεκαδικοί, ο υπολογισμός γίνεται σε δεκαδικό και το αποτέλεσμα διατηρεί την πλήρη ακρίβεια:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

Εάν αντ' αυτού, ο δεύτερος τελεστέος αλλάζει σε τύπος κινητής υποδιαστολής τότε ολόκληρος ο υπολογισμός θα γίνει σε τύπος κινητής υποδιαστολής και το κλασματικό τμήμα της υποδιαστολής θα χάνεται:

>> 1.0000000000000000000000000001 * Float(2)
2

Ημερομηνία, Ώρα και DateTime

Ζώνες ώρας

Οι τιμές "ημερομηνία/ώρα" εμπίπτουν σε αυτές τις κατηγορίες:

  • Τοπικός χρήστης: αυτές οι τιμές αποθηκεύονται σε UTC (συντονισμένη παγκόσμια ώρα), αλλά η ζώνη ώρας του χρήστη της εφαρμογής επηρεάζει τον τρόπο με τον οποίο η εφαρμογή εμφανίζει αυτές τις τιμές και τον τρόπο με τον οποίο ο χρήστης της εφαρμογής τα προσδιορίζει. Για παράδειγμα, η ίδια στιγμή εμφανίζεται διαφορετικά σε έναν χρήστη στον Καναδά από ό,τι σε έναν χρήστη στην Ιαπωνία.
  • Ανεξαρτήτως ζώνης ώρας: η εφαρμογή εμφανίζει αυτές τις τιμές με τον ίδιο τρόπο και ο χρήστης της εφαρμογής τις προσδιορίζει με τον ίδιο τρόπο, ανεξάρτητα από τη ζώνη ώρας. Η ίδια στιγμή εμφανίζεται με τον ίδιο τρόπο σε έναν χρήστη στον Καναδά όπως σε έναν χρήστη στην Ιαπωνία. Οι δημιουργοί εφαρμογών που δεν αναμένουν οι εφαρμογές τους να λειτουργήσουν σε διαφορετικές ζώνες ώρας χρησιμοποιούν αυτές τις τιμές επειδή είναι απλούστερες συνολικά.

Αυτός ο πίνακας παρουσιάζει ορισμένα παραδείγματα:

Τύπος ημερομηνίας/ώρας Τιμή που είναι αποθηκευμένη στη βάση δεδομένων Τιμή που εμφανίζεται και καταχωρείται 7 ώρες δυτικά της UTC Τιμή που εμφανίζεται και καταχωρείται 4 ώρες ανατολικά της UTC
Τοπική ώρα χρήστη Κυριακή,19Μαΐου2019
4:00 π.μ.
Σάββατο,18Μαΐου2019
9:00 μ.μ.
Κυριακή,19Μαΐου2019
8:00 π.μ.
Ανεξαρτήτως ζώνης ώρας Κυριακή,19Μαΐου2019
4:00 π.μ.
Κυριακή,19Μαΐου2019
4:00 π.μ.
Κυριακή,19Μαΐου2019
4:00 π.μ.

Για την ημερομηνία/ώρα Τοπική ώρα χρήστη, οι εφαρμογές καμβά χρησιμοποιούν τη ζώνη ώρας του προγράμματος περιήγησης ή της συσκευής, αλλά οι εφαρμογές που βασίζονται σε μοντέλα χρησιμοποιούν τη ρύθμιση του χρήστη στο Dataverse. Αυτές οι ρυθμίσεις συνήθως είναι ίδιες, αλλά τα αποτελέσματα θα διαφέρουν εάν αυτές οι ρυθμίσεις διαφέρουν.

Χρησιμοποιήστε τις συναρτήσεις DateAdd και TimeZoneInformation για τη μετατροπή της τοπικής ώρας σε UTC και επιστροφή ξανά. Ανατρέξτε στα παραδείγματα που βρίσκονται στο τέλος της τεκμηρίωσης για αυτές τις συναρτήσεις.

Αριθμητικά ισοδύναμα

Οι εφαρμογές καμβά κατέχουν και υπολογίζουν όλες τις τιμές ημερομηνίας/ώρας, είτε Τοπική ώρα χρήστη είτε Ανεξαρτήτως ζώνης ώρας σε UTC. Η εφαρμογή μεταφράζει τις τιμές με βάση τη ζώνη ώρας του χρήστη της εφαρμογής κατά την εμφάνιση τους και όταν ο χρήστης της εφαρμογής τα προσδιορίζει.

Όταν μια εφαρμογή καμβά διαβάζει μια τιμή Ανεξαρτήτως ζώνης ώρας από μια προέλευση δεδομένων ή καταγράφει μια τέτοια τιμή σε μια προέλευση δεδομένων, η εφαρμογή προσαρμόζει αυτόματα την τιμή για να αντισταθμίσει τη ζώνη ώρας του χρήστη της εφαρμογής. Στη συνέχεια, η εφαρμογή μεταχειρίζεται την τιμή ως τιμή UTC, σύμφωνα με όλες τις άλλες τιμές ημερομηνίας/ώρας στην εφαρμογή. Λόγω αυτής της αντιστάθμισης, η αρχική τιμή Ανεξαρτήτως ζώνης ώρας εμφανίζεται όταν η εφαρμογή προσαρμόζει την τιμή UTC για τη ζώνη ώρας του χρήστη της εφαρμογής.

Μπορείτε να παρακολουθήσετε αυτήν τη συμπεριφορά πιο προσεκτικά χρησιμοποιώντας τη συνάρτηση Value για να αποκτήσετε πρόσβαση στην υποκείμενη αριθμητική τιμή για μια τιμή ημερομηνίας/ώρας. Αυτή η συνάρτηση επιστρέφει την τιμή "ημερομηνία/ώρα" ως τον αριθμό χιλιοστών του δευτερολέπτου από την 1η Ιανουαρίου 1970 00:00:00.000 UTC.

Επειδή κάθε τιμή ημερομηνίας/ώρας διατηρείται σε UTC, ο τύπος Value( Date( 1970, 1, 1 ) ) δεν θα επιστρέψει μηδέν στις περισσότερες περιοχές του κόσμου επειδή η συνάρτηση Date επιστρέφει μια ημερομηνία σε UTC. Για παράδειγμα, ο τύπος θα επιστρέψει 28.800.000 σε μια ζώνη ώρας η οποία θα αντισταθμίζεται από την ώρα UTC κατά οχτώ ώρες. Αυτός ο αριθμός αντικατοπτρίζει τον αριθμό χιλιοστών του δευτερολέπτου σε οκτώ ώρες.

Επιστροφή στο παράδειγμά μας από τα ανωτέρω:

Τύπος ημερομηνίας/ώρας Τιμή που είναι αποθηκευμένη στη βάση δεδομένων Τιμή που εμφανίζεται και καταχωρείται 7 ώρες δυτικά της UTC Η συνάρτηση Value επιστρέφει
Τοπική ώρα χρήστη Κυριακή,19Μαΐου2019
4:00 π.μ.
Σάββατο,18Μαΐου2019
9:00 μ.μ.
1,558,238,400,000
(Κυριακή,19Μαΐου2019
4:00 π.μ. UTC)
Ανεξαρτήτως ζώνης ώρας Κυριακή,19Μαΐου2019
4:00 π.μ.
Κυριακή,19Μαΐου2019
4:00 π.μ.
1,558,263,600,000
(Κυριακή,19Μαΐου2019
11:00 π.μ. UTC)

Μετατροπή ωρών Unix

Οι ώρες Unix αντικατοπτρίζουν τον αριθμό των δευτερολέπτων από την 1η Ιανουαρίου 1970 00:00:00 UTC. Επειδή οι εφαρμογές καμβά χρησιμοποιούν χιλιοστά του δευτερολέπτου αντί για δευτερόλεπτα, μπορείτε να μετατρέψετε τα δύο αυτά με πολλαπλασιασμό ή διαίρεση με το 1.000.

Για παράδειγμα, η ώρα Unix εμφανίζει τις 9 Σεπτεμβρίου 2001, στις 01:46:40 UTC ως 1.000.000.000. Για να εμφανίσετε αυτήν την τιμή ημερομηνίας/ώρας σε μια εφαρμογή καμβά, πολλαπλασιάστε αυτόν τον αριθμό με το 1.000 για να τον μετατρέψετε σε χιλιοστά του δευτερολέπτου και, στη συνέχεια, χρησιμοποιήστε τον σε μια συνάρτηση Text. Ο τύπος Text( 1000000000 * 1000, DateTimeFormat.UTC ) επιστρέφει τη συμβολοσειρά 2001-09-09T01:46:40.000Z.

Ωστόσο, αυτή η συνάρτηση επιστρέφει το Σάββατο, 8 Σεπτεμβρίου 2001 18:46:40 εάν χρησιμοποιείτε τη μορφή DateTimeFormat.LongDateTime24 σε μια ζώνη ώρας που έχει -7 ώρες απόκλιση από τη UTC (7 ώρες δυτικά της UTC). Αυτό το αποτέλεσμα εμφανίζει την τιμή DateTime σωστά με βάση την τοπική ζώνη ώρας.

Για να μετατρέψετε μια ώρα Unix, διαιρέστε το αποτέλεσμα από την Value με το 1.000:
RoundDown( Value( UnixTime ) / 1000, 0 )

Εάν χρειάζεστε την ώρα Unix σε μια τιμή Ημερομηνία για περαιτέρω υπολογισμούς ή εμφάνιση εντός Power Apps, χρησιμοποιήστε αυτόν τον τύπο:
DateAdd( Date( 1970,1,1 ), UnixTime, Seconds )

SQL Server

Ο SQL Server έχει Datetime, Datetime2 και άλλους τύπους δεδομένων ημερομηνίας/ώρας που δεν περιλαμβάνουν απόκλιση ζώνης-ώρας και δεν υποδεικνύουν τη ζώνη ώρας στην οποία βρίσκονται. Οι εφαρμογές καμβά θεωρούν ότι αυτές οι τιμές αποθηκεύονται σε UTC και τις αντιμετωπίζουν ως Τοπική ώρα χρήστη. Εάν οι τιμές προορίζονται να είναι ανεξάρτητες από ζώνη ώρας, διορθώστε τες για τις μεταφράσεις UTC χρησιμοποιώντας τη συνάρτηση TimeZoneOffset.

Οι εφαρμογές καμβά χρησιμοποιούν τις συμπεριλαμβανόμενες πληροφορίες ζώνης ώρας στα πεδία Datetimeoffset κατά τη μετατροπή μιας τιμής στην εσωτερική αναπαράσταση UTC της εφαρμογής. Οι εφαρμογές χρησιμοποιούν πάντα την ώρα UTC ως τη ζώνη ώρας (μηδέν απόκλιση ζώνης ώρας) όταν συντάσσουν δεδομένα.

Οι εφαρμογές καμβά διαβάζουν και καταγράφουν τις τιμές του τύπου δεδομένων Ώρα στον SQL Server ως συμβολοσειρές κειμένου με τη μορφή διάρκειας ISO 8601. Για παράδειγμα, πρέπει να αναλύσετε αυτήν τη μορφή συμβολοσειράς και να χρησιμοποιήσετε τη συνάρτηση Time για να μετατρέψετε τη συμβολοσειρά κειμένου "PT2H1M39S" σε μια τιμή Ώρα:

With(
    Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
    Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
// Result: 2:01 AM (as shown in a label control, use the Text function to see the seconds)

Ανάμειξη πληροφοριών ημερομηνίας και ώρας

Η Ημερομηνία, Ώρα και DateTime έχουν διαφορετικά ονόματα, αλλά όλα διαθέτουν τις ίδιες πληροφορίες σχετικά με τις ημερομηνίες και ώρες.

Μια τιμή Ημερομηνία μπορεί να περιλαμβάνει πληροφορίες ώρας με αυτήν, η οποία συνήθως είναι τα μεσάνυχτα. Μια τιμή Ώρα μπορεί να φέρει πληροφορίες ημερομηνίας, η οποία συνήθως είναι 1 Ιανουαρίου 1970. Το Dataverse αποθηκεύει, επίσης, πληροφορίες ώρας με ένα πεδίο Μόνο ημερομηνία αλλά εμφανίζει μόνο τις πληροφορίες ημερομηνίας από προεπιλογή. Ομοίως, οι εφαρμογές καμβά μερικές φορές κάνουν διάκριση μεταξύ αυτών των τύπων δεδομένων για τον προσδιορισμό προεπιλεγμένων μορφών και στοιχείων ελέγχου.

Η προσθήκη και η αφαίρεση τιμών ημερομηνίας και ώρας απευθείας δεν συνιστάται επειδή η χρονική ζώνη και άλλες μετατροπές μπορεί να προκαλέσουν συγκεχυμένα αποτελέσματα. Χρησιμοποιήστε τη συνάρτηση Value για να μετατρέψετε τιμές "ημερομηνία/ώρα" σε χιλιοστά του δευτερολέπτου πρώτα και λάβετε υπόψη σας τη ζώνη ώρας του χρήστη της εφαρμογής ή χρησιμοποιήστε τις συναρτήσεις DateAdd και DateDiff για να προσθέσετε ή να αφαιρέσετε μία από αυτές τις τιμές.

Επιλογές και Ναι/Όχι

Οι επιλογές και οι τύποι δεδομένων δύο επιλογών παρέχουν δύο ή περισσότερες επιλογές για να επιλέξει ένας χρήστης εφαρμογής. Για παράδειγμα, μια επιλογή Κατάσταση παραγγελίας μπορεί να προσφέρει τις επιλογές Νέο, Εστάλη, Τιμολογήθηκε και Έκλεισε. Ο τύπος δεδομένων δύο επιλογών προσφέρει μόνο δύο επιλογές.

Και οι δύο αυτοί τύποι δεδομένων εμφανίζουν τις ετικέτες τους σε ένα περιβάλλον συμβολοσειράς κειμένου. Για παράδειγμα, ένα Στοιχείο ελέγχου Label εμφανίζει μία από τις επιλογές κατάστασης παραγγελίας εάν η ιδιότητα Text του στοιχείου ελέγχου έχει οριστεί σε έναν τύπο που αναφέρει αυτήν την επιλογή. Οι ετικέτες επιλογών μπορεί να είναι εντοπισμένες για χρήστες εφαρμογών σε διαφορετικές θέσεις.

Όταν ένας χρήστης εφαρμογής επιλέγει μια επιλογή και αποθηκεύει την εν λόγω αλλαγή, η εφαρμογή μεταφέρει τα δεδομένα στη βάση δεδομένων, η οποία αποθηκεύει αυτά τα δεδομένα σε μια αναπαράσταση που είναι ανεξάρτητη από τη γλώσσα. Μια επιλογή σε μια επιλογή μεταδίδεται και αποθηκεύεται ως αριθμός και μια επιλογή σε έναν τύπο δεδομένων δύο επιλογών μεταδίδονται και αποθηκεύονται ως δυαδική τιμή.

Οι ετικέτες προορίζονται μόνο για λόγους εμφάνισης. Δεν μπορείτε να εκτελέσετε άμεσες συγκρίσεις με τις ετικέτες, επειδή είναι συγκεκριμένες για μια γλώσσα. Αντ' αυτού, κάθε επιλογή έχει μια απαρίθμηση που λειτουργεί με τον υποκείμενο αριθμό ή τη δυαδική τιμή. Για παράδειγμα, δεν μπορείτε να χρησιμοποιήσετε αυτόν τον τύπο:

If( ThisItem.OrderStatus = "Active", ...

Ωστόσο, μπορείτε να χρησιμοποιήσετε αυτόν τον τύπο:

If( ThisItem.OrderStatus = OrderStatus.Active, ...

Για καθολικές επιλογές (που μοιράζονται οι πίνακες), το όνομα της απαρίθμησης του συνόλου επιλογών ταιριάζει με το όνομα της καθολικής επιλογής. Για τοπικές επιλογές (οι οποίες έχουν πεδίο εφαρμογής σε έναν πίνακα), το όνομα μπορεί να περιέχει το όνομα του πίνακα. Αυτή η συμπεριφορά αποτρέπει τις διενέξεις εάν πολλαπλοί πίνακες έχουν επιλογές με το ίδιο όνομα. Για παράδειγμα, ο πίνακας Λογαριασμοί μπορεί να έχει μια επιλογή OrderStatus και το όνομά του μπορεί να είναι OrderStatus (Λογαριασμοί). Αυτό το όνομα περιέχει ένα ή περισσότερα διαστήματα και παρενθέσεις, επομένως θα πρέπει να το περιβάλλετε σε μονά εισαγωγικά, εάν κάνετε αναφορά σε αυτόν σε έναν τύπο.

Επιπλέον, οι τιμές δύο επιλογών μπορούν επίσης να συμπεριφέρονται ως δυαδικές τιμές. Για παράδειγμα, μια τιμή δύο επιλογών με όνομα TaxStatus μπορεί να έχει τις ετικέτες Φορολογητέος και Μη φορολογητέος, οι οποίες αντιστοιχούν σε αληθής και ψευδής αντίστοιχα. Για να καταδείξετε, μπορείτε να χρησιμοποιήσετε αυτόν τον τύπο:

If( ThisItem.Taxable = TaxStatus.Taxable, ...

Μπορείτε, επίσης, να χρησιμοποιήσετε αυτόν τον ισοδύναμο τύπο:

If( ThisItem.Taxable, ...