Συναρτήσεις If και Switch

Ισχύει σε: Εφαρμογές καμβά Στήλες τύπων Dataverse Ροές επιφάνειας εργασίας Εφαρμογές βάσει μοντέλου Power Platform CLI

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

Περιγραφή

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

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

Οι συναρτήσεις If και Switch είναι παρόμοιες, αλλά θα πρέπει να χρησιμοποιείτε τη συνάρτηση που είναι καλύτερη για την περίπτωσή σας:

  • Χρησιμοποιήστε τη συνάρτηση If για την αξιολόγηση μίας συνθήκης. Η πιο συνηθισμένη σύνταξη για αυτή τη συνάρτηση είναι If( Condition, ThenResult, DefaultResult ), η οποία παρέχει το σύνηθες μοτίβο "if ... τότε... else …" που υπάρχει σε άλλα εργαλεία προγραμματισμού.
  • Χρησιμοποιήστε τη συνάρτηση If για την αξιολόγηση πολλών μη σχετιζόμενων συνθηκών. Στο Power Apps (σε αντίθεση με το Microsoft Excel), μπορείτε να καθορίσετε πολλές συνθήκες χωρίς να χρειάζεται να κάνετε ένθεση τύπων If.
  • Χρησιμοποιήστε τη συνάρτηση Switch για την αξιολόγηση μίας συνθήκης σε σχέση με πολλές πιθανές αντιστοιχίες. Μπορείτε επίσης να χρησιμοποιήσετε τη συνάρτηση If σε αυτή την περίπτωση, αλλά θα πρέπει να επαναλάβετε τον τύπο για κάθε πιθανή συμφωνία.

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

Επιστρέφεται Blank εάν καμία συνθήκη δεν είναι true, δεν βρεθούν συμφωνίες και δεν μπορείτε να καθορίσετε ένα προεπιλεγμένο αποτέλεσμα.

Σύνταξη

If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Condition(s) - Υποχρεωτικό. Οι τύποι που θα ελεγχθούν εάν είναι true. Αυτοί οι τύποι περιέχουν συνήθως τελεστές σύγκρισης (όπως <, > και =) και συναρτήσεις ελέγχου όπως η IsBlank και η IsEmpty.
  • ThenResult(s) - Υποχρεωτικό. Η αντίστοιχη τιμή που επιστρέφεται για μια συνθήκη που αξιολογείται ως true.
  • DefaultResult - Προαιρετικό. Η τιμή που επιστρέφεται εάν καμία συνθήκη δεν αξιολογείται ως true. Εάν δεν καθορίσετε αυτό το όρισμα, επιστρέφεται κενό.

Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Formula - Υποχρεωτικό. Τύπος αξιολόγησης για αντιστοιχίσεις. Αυτός ο τύπος αξιολογείται μόνο μία φορά.
  • Match(s) - Υποχρεωτικό. Τιμές για σύγκριση με το αποτέλεσμα από το όρισμα Formula. Εάν βρεθεί ακριβής αντιστοίχιση, επιστρέφεται το αντίστοιχο Result.
  • Result(s) - Υποχρεωτικό. Η αντίστοιχη τιμή που επιστρέφεται όταν εντοπίζεται μια ακριβής αντιστοίχιση.
  • DefaultResult - Προαιρετικό. Εάν δεν βρεθεί ακριβής αντιστοίχιση, επιστρέφεται η τιμή αυτή. Εάν δεν καθορίσετε αυτό το όρισμα, επιστρέφεται κενό.

Παραδείγματα

Τιμές σε τύπους

Στα παρακάτω παραδείγματα, ένα στοιχείο ελέγχου Slider (με το όνομα Slider1) έχει τιμή 25.

Τύπος Description Result
If( Slider1.Value = 25, "Result1" ) Η συνθήκη είναι true και επιστρέφει το αντίστοιχο αποτέλεσμα. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) Η συνθήκη είναι true και επιστρέφει το αντίστοιχο αποτέλεσμα. "Result1"
If( Slider1.Value>1000, "Result1" ) Η συνθήκη είναι false και δεν έχει δοθεί DefaultResult. κενό
If( Slider1.Value>1000, "Result1", "Result2" ) Η συνθήκη είναι false, έχει δοθεί DefaultResult και επιστρέφεται. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Η πρώτη συνθήκη είναι true και επιστρέφει το αντίστοιχο αποτέλεσμα. Η δεύτερη συνθήκη είναι επίσης true, αλλά δεν αξιολογείται καθώς εμφανίζεται αργότερα στη λίστα ορισμάτων από μια συνθήκη που αξιολογείται ως true. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Η πρώτη συνθήκη είναι false επειδή το ρυθμιστικό δεν είναι κενό. Η δεύτερη συνθήκη είναι true επειδή η τιμή του ρυθμιστικού είναι αριθμός και επιστρέφεται το αντίστοιχο αποτέλεσμα. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") Τόσο η πρώτη όσο και η δεύτερη συνθήκη είναι false, έχει δοθεί DefaultResult και επιστρέφεται. "Result3"
Switch( Slider1.Value, 25, "Result1" ) Η τιμή του ρυθμιστικού συμφωνεί με την πρώτη τιμή που θα ελεγχθεί και επιστρέφει το αντίστοιχο αποτέλεσμα. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Η τιμή του ρυθμιστικού συμφωνεί με τη δεύτερη τιμή που θα ελεγχθεί και επιστρέφει το αντίστοιχο αποτέλεσμα. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Η τιμή του ρυθμιστικού τιμή δεν συμφωνεί με καμία τιμή που θα ελεγχθεί. Έχει δοθεί DefaultResult, οπότε επιστρέφεται. "DefaultResult"

Διακλάδωση σε τύπους συμπεριφοράς

Σε αυτά τα παραδείγματα, σε ένα στοιχείο ελέγχου Text input που ονομάζεται FirstName έχει πληκτρολογηθεί η τιμή "John".

Τύπος Περιγραφή Αποτέλεσμα
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Η συνθήκη είναι true, οπότε η συνάρτηση Navigate εκτελείται. Μπορείτε να χρησιμοποιήσετε τη συνάρτηση IsBlank για να ελέγξετε εάν έχει συμπληρωθεί ένα απαιτούμενο πεδίο φόρμας. Εάν το πεδίο FirstName ήταν blank, αυτός ο τύπος δεν θα έχει κανένα αποτέλεσμα. true

Η οθόνη αλλάζει σε Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Χωρίς τον τελεστή !, η συνθήκη είναι false, οπότε η συνάρτηση Navigate δεν εκτελείται. Είχε δοθεί η συνάρτηση Back ως DefaultResult, οπότε εκτελείται. true

Η οθόνης επιστρέφει στην οθόνη που εμφανιζόταν προηγουμένως.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) Η τιμή FirstName.Text συγκρίνεται με τα ονόματα "Carlos", "Kirstin" και "John" με αυτήν τη σειρά. Βρέθηκε αντιστοίχιση με το όνομα "John", οπότε η εφαρμογή μεταβαίνει στην Screen3. true

Η οθόνη αλλάζει σε Screen3.

Βήμα προς βήμα

  1. Προσθέστε ένα στοιχείο ελέγχου Text input και ονομάστε το Text1, εάν δεν έχει το ίδιο όνομα από προεπιλογή.

  2. Στο στοιχείο ελέγχου Text1, πληκτρολογήστε 30.

  3. Προσθέστε ένα στοιχείο ελέγχου Label και ορίστε την ιδιότητά του Text σε αυτόν τον τύπο:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Το στοιχείο ελέγχου Label εμφανίζει την ένδειξη Παραγγείλτε περισσότερο! επειδή η τιμή του Text1 είναι μεγαλύτερη από 20 αλλά μικρότερη από 40.

  4. Στο στοιχείο ελέγχου Text1, πληκτρολογήστε 15.

    Το στοιχείο ελέγχου Label εμφανίζει την ένδειξη Παραγγείλτε ΠΟΛΛΑ περισσότερο! επειδή η τιμή του Text1 είναι μικρότερη από 20.

  5. Στο στοιχείο ελέγχου Text1, πληκτρολογήστε 50.

    Το στοιχείο ελέγχου Label εμφανίζει την τιμή που πληκτρολογήσατε, επειδή είναι μεγαλύτερη από 40.