Κοινοποίηση μέσω


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

Ισχύει για: Εφαρμογές καμβά Το Copilot Studio Desktop ροών στηλών τύπου Dataverse Εφαρμογές βάσει μοντέλου Συναρτήσεις του power Platform CLI Dataverse στο Power Pages

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

Περιγραφή

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

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

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

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

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

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

Σύνταξη

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

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

Switch( Τύπος, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

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

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

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

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

Τύπος Περιγραφή 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".

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

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

Η οθόνης επιστρέφει στην οθόνη που εμφανιζόταν προηγουμένως.
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. πιστός

Η οθόνη αλλάζει σε 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.