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


Αντικείμενο App στο Power Apps

Ισχύει για: Εφαρμογές καμβά

Λάβετε πληροφορίες σχετικά με την εφαρμογή που εκτελείται τη συγκεκριμένη στιγμή και ελέγξτε τη συμπεριφορά της εφαρμογής.

Περιγραφή

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

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

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

Ιδιότητα ActiveScreen

Η ιδιότητα ActiveScreen αναγνωρίζει την οθόνη που εμφανίζεται τη συγκεκριμένη στιγμή.

Αυτή η ιδιότητα επιστρέφει ένα αντικείμενο οθόνης. Χρησιμοποιήστε το για να αναφέρετε ιδιότητες της τρέχουσας οθόνης, όπως το όνομα με τον τύπο App.ActiveScreen.Name. Μπορείτε επίσης να συγκρίνετε αυτή την ιδιότητα με ένα άλλο αντικείμενο οθόνης, όπως με τον τύπο σύγκρισης App.ActiveScreen = Screen2 για να ελέγξετε εάν η Screen2 είναι η τρέχουσα οθόνη.

Χρησιμοποιήστε τη συνάρτηση Back ή Navigate για να αλλάξετε την οθόνη που εμφανίζεται.

Ιδιότητα BackEnabled

Η ιδιότητα BackEnabled αλλάζει τον τρόπο με τον οποίο η εφαρμογή ανταποκρίνεται στην κίνηση στην πλάτη της συσκευής (σαρώστε ή χρησιμοποιήστε το κουμπί επιστροφής υλικού σε συσκευές Android ή σαρώστε από τα αριστερά σε συσκευές iOS) όταν εκτελείται στο Power Apps mobile. Όταν ενεργοποιηθεί, η κίνηση της συσκευής πίσω επιστρέφει στην οθόνη που εμφανιζόταν πιο πρόσφατα, η οποία είναι παρόμοια με τον τύπο Πίσω . Όταν είναι απενεργοποιημένη, η χειρονομία συσκευής επαναφέρει τον χρήστη στη λίστα εφαρμογών.

Ιδιότητες ConfirmExit

Κανείς δεν θέλει να χάσει τις αλλαγές που δεν έχουν αποθηκευτεί. Χρησιμοποιήστε τις ιδιότητες ConfirmExit και ConfirmExitMessage για να ειδοποιήσετε τον χρήστη πριν κλείσει την εφαρμογή σας.

Σημείωμα

  • Επιβεβαιώστε ότι τοExit δεν λειτουργεί σε εφαρμογές που είναι ενσωματωμένες, για παράδειγμα, στο Power BI και το SharePoint.
  • Επιβεβαιώστε ότι η δυνατότηταExit δεν υποστηρίζεται σε προσαρμοσμένες σελίδες.
  • Τώρα, αυτές οι ιδιότητες μπορούν να αναφέρουν στοιχεία ελέγχου μόνο στην πρώτη οθόνη εάν είναι ενεργοποιημένη η δυνατότητα προεπισκόπησης Καθυστερημένη φόρτωση (η οποία είναι από προεπιλογή για τις νέες εφαρμογές). Εάν αναφέρετε άλλες οθόνες, το Power Apps Studio δεν εμφανίζει σφάλμα, αλλά η δημοσιευμένη εφαρμογή δεν ανοίγει στο Power Apps Mobile ή σε ένα πρόγραμμα περιήγησης. Εργαζόμαστε για να καταργήσουμε αυτόν τον περιορισμό. Εν τω μεταξύ, απενεργοποιήστε την επιλογή Καθυστερημένη φόρτωση στις Ρυθμίσεις Επερχόμενες δυνατότητες> (στην περιοχή Προεπισκόπηση).

ConfirmExit

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

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

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

  • Εκτελέστε τη συνάρτηση Exit .
  • Εάν η εφαρμογή εκτελείται σε ένα πρόγραμμα περιήγησης:
    • Κλείστε το πρόγραμμα περιήγησης ή την καρτέλα του προγράμματος περιήγησης όπου εκτελείται η εφαρμογή.
    • Επιλέξτε το κουμπί "Πίσω" του προγράμματος περιήγησης.
    • Εκτελέστε τη συνάρτηση Launch με ένα LaunchTarget of Self.
  • Εάν η εφαρμογή εκτελείται στο Power Apps Mobile (iOS ή Android):
    • Κάντε σάρωση για μετάβαση σε διαφορετική εφαρμογή στο Power Apps Mobile.
    • Επιλέξτε το κουμπί "Πίσω" σε μια συσκευή Android.
    • Εκτελέστε τη συνάρτηση Launch για να εκκινήσετε μια άλλη εφαρμογή καμβά.

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

Το παράθυρο διαλόγου επιβεβαίωσης δεν εμφανίζεται στο Power Apps Studio.

ConfirmExitMessage

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

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

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

Σημείωμα

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

Παράδειγμα

  1. Ορίστε την ιδιότητα του αντικειμένου εφαρμογήςConfirmExit σε αυτήν την παράσταση:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

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

    [!div clas1. Ορίστε την ιδιότητα του αντικειμένου εφαρμογήςConfirmExitMessage σε αυτόν τον τύπο:

    If( AccountsForm.Unsaved,
        "Accounts form has unsaved changes.",
        "Contacts form has unsaved changes."
    )
    

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

    Παράθυρο διαλόγου επιβεβαίωσης συγκεκριμένης φόρμας.

Ρύθμιση συμβολοσειράς σύνδεσης για το Application Insights

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

  1. Ανοίξτε την εφαρμογή σας για επεξεργασία στο Power Apps Studio.
  2. Επιλέξτε Εφαρμογή από την προβολή δέντρου στην αριστερή περιήγηση.
  3. Εισαγάγετε τη συμβολοσειρά Σύνδεση στο τμήμα παραθύρου ιδιοτήτων.

Εάν δεν σταλούν δεδομένα στο Application Insights, επικοινωνήστε με τον διαχειριστή του Power Platform και ελέγξτε αν το App Insights είναι απενεργοποιημένο σε επίπεδο μισθωτή.

Ιδιότητα Τύποι

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

Στο Power Apps, οι τύποι καθορίζουν την τιμή των ιδιοτήτων του στοιχείου ελέγχου. Για παράδειγμα, για να ορίσετε το χρώμα φόντου με συνέπεια σε μια εφαρμογή, μπορείτε να ορίσετε την ιδιότητα Συμπλήρωση για κάθε έναν κοινό τύπο:

Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )

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

App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

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

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

App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Τα πλεονεκτήματα της χρήσης τύπων με όνομα περιλαμβάνουν τα εξής:

  • Η τιμή του τύπου είναι πάντα διαθέσιμη. Δεν υπάρχει εξάρτηση χρόνου, κανένα OnStart που πρέπει να εκτελείται πρώτα για να οριστεί η τιμή, ούτε ώρα κατά την οποία η τιμή του τύπου είναι εσφαλμένη. Οι τύποι με όνομα μπορούν να αναφέρονται ο ένας στον άλλο με οποιαδήποτε σειρά, εφόσον δεν δημιουργούν κυκλική αναφορά. Μπορούν να υπολογιστούν παράλληλα.
  • Η τιμή του τύπου είναι πάντα ενημερωμένη. Ο τύπος μπορεί να εκτελέσει έναν υπολογισμό που εξαρτάται από τις ιδιότητες του στοιχείου ελέγχου ή από τις καρτέλες της βάσης δεδομένων και καθώς αλλάζουν, η τιμή του τύπου ενημερώνεται αυτόματα. Δεν χρειάζεται να ενημερώσετε με μη αυτόματο τρόπο την τιμή όπως με μια μεταβλητή. Επίσης, οι τύποι μπορούν να υπολογιστούν εκ νέου μόνο όταν είναι απαραίτητο.
  • Ο ορισμός του τύπου δεν μπορεί να είναι αμετάβλητος. Ο ορισμός στο στοιχείο Τύπος είναι μια μοναδική πηγή αλήθειας και η τιμή δεν μπορεί να αλλάξει εύκολα στην εφαρμογή. Με τις μεταβλητές, είναι πιθανό κάποιος κώδικας να αλλάξει απροσδόκητα μια τιμή, αλλά αυτή η δυσκολία στον εντοπισμό σφαλμάτων δεν είναι δυνατή με τύπους με όνομα.
  • Ο υπολογισμός του τύπου μπορεί να αναβληθεί. Επειδή η τιμή της είναι αμετάβλητη, μπορεί πάντα να υπολογιστεί όταν χρειάζεται, πράγμα που σημαίνει ότι δεν χρειάζεται να υπολογιστεί μέχρι να χρειαστεί. Οι τιμές τύπου που δεν χρησιμοποιούνται μέχρι να εμφανιστεί το screen2 μιας εφαρμογής δεν πρέπει να υπολογιστούν μέχρι να είναι ορατό το screen2. Η αναβολή αυτής της εργασίας μπορεί να βελτιώσει το χρόνο φόρτωσης της εφαρμογής. Οι τύποι με όνομα είναι δηλωτικοί και παρέχουν ευκαιρίες στο σύστημα για βελτιστοποίηση του πώς και του πότε υπολογίζονται.
  • Οι τύποι με όνομα είναι μια έννοια του Excel. Το Power Fx χρησιμοποιεί έννοιες Excel όπου είναι δυνατό, καθώς τόσοι πολλοί χρήστες γνωρίζουν καλά το Excel. Οι τύποι με όνομα είναι το ισοδύναμο κελιών με όνομα και των τύπων με όνομα στο Excel, η διαχείρισή τους γίνεται με τη Διαχείριση ονομάτων. Υπολογίζουν εκ νέου αυτόματα, όπως τα κελιά ενός υπολογιστικού φύλλου και οι ιδιότητες ελέγχου.

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

UserEmail = User().Email;
UserInfo = LookUp( Users, 'Primary Email' = User().Email );
UserTitle = UserInfo.Title;
UserPhone = Switch( UserInfo.'Preferred Phone', 
                    'Preferred Phone (Users)'.'Mobile Phone', UserInfo.'Mobile Phone',
                    UserInfo.'Main Phone' );

Εάν ο τύπος για το UserTitle πρέπει να ενημερωθεί, μπορεί να γίνει εύκολα σε αυτήν τη θέση. Αν το UserPhone δεν είναι απαραίτητο στην εφαρμογή, τότε αυτές οι κλήσεις στον πίνακα Χρήστες στο Dataverse δεν γίνονται. Δεν υπάρχει ποινή για τη συμπερίληψη ενός ορισμού τύπου που δεν χρησιμοποιείται.

Ορισμένοι περιορισμοί τύπων με όνομα:

  • Δεν μπορούν να χρησιμοποιήσουν συναρτήσεις συμπεριφοράς ή να προκαλέσουν με άλλο τρόπο ανεπιθύμητες ενέργειες εντός της εφαρμογής.
  • Δεν μπορούν να δημιουργήσουν κυκλική αναφορά. Δεν επιτρέπονται τα a = b; και b = a; στην ίδια εφαρμογή.

Συναρτήσεις που ορίζονται από το χρήστη

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

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

Library = [ { Title: "The Hobbit", Author: "J. R. R. Tolkien", Genre: "Fiction" },
            { Title: "Oxford English Dictionary", Author: "Oxford University", Genre: "Reference" } ];

LibraryFiction = Filter( Library, Genre = "Fiction" );

Χωρίς παραμέτρους, θα έπρεπε να ορίσουμε ξεχωριστές ονομασμένες φόρμουλες για κάθε είδος. Αλλά αντ 'αυτού, ας παραμετροποιήσουμε την ονομασμένη φόρμουλα μας:

LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );

LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );

Τώρα μπορούμε να καλέσουμε LibraryGenre( "Fiction" ), LibraryGenre( "Reference" ), ή να φιλτράρουμε άλλα είδη με μία μόνο συνάρτηση καθορισμένη από το χρήστη.

Η σύνταξη είναι η εξής:

FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) :Τύπος = ;

  • FunctionName – Απαιτείται. Το όνομα της συνάρτησης που καθορίζεται από τον χρήστη.
  • ParameterName(s) - Προαιρετικό. Το όνομα μιας παραμέτρου συνάρτησης.
  • ParameterType(s) – Προαιρετικό. Το όνομα ενός τύπου, είτε ένα όνομα ενσωματωμένου ονόματος τύπου δεδομένων, ένα όνομα προέλευσης δεδομένων ή έναν τύπο που ορίζεται από μια συνάρτηση Τύπος.
  • ReturnType – Απαιτείται. Ο τύπος της τιμής που επιστρέφεται από τη συνάρτηση.
  • Formula - Υποχρεωτικό. Ο τύπος που υπολογίζει την τιμή της συνάρτησης με βάση τις παραμέτρους.

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

Ορίσαμε LibraryType ως πληθυντικό πίνακα τύπου καρτελών. Εάν θέλουμε να μεταβιβάσουμε ένα μόνο βιβλίο σε μια συνάρτηση, μπορούμε να εξαγάγουμε τον τύπο της εγγραφής για αυτόν τον πίνακα με τη συνάρτηση RecordOf:

BookType := Type( RecordOf( LibraryType ) );

IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);

Η αντιστοίχιση εγγραφών για παραμέτρους συνάρτησης είναι αυστηρότερη από ό, τι σε άλλα μέρη του Power Fx. Τα πεδία μιας τιμής καρτέλας πρέπει να αποτελούν κατάλληλο υποσύνολο του ορισμού τύπου και δεν μπορούν να περιλαμβάνουν πρόσθετα πεδία. Για παράδειγμα, το IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" ) θα οδηγήσει σε σφάλμα.

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

Συμπεριφορά συναρτήσεων καθορισμένων από το χρήστη

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

Spend( Amount: Number ) : Void = {
    If( Amount > Savings, 
        Error( $"{Amount} is more than available savings" ),
        Set( Savings, Savings - Amount );
        Set( Spent, Spent + Amount) 
    );
}

Τώρα μπορούμε να καλέσουμε Spend( 12 ) για να ελέγξουμε αν έχουμε 12 στις αποταμιεύσεις μας και, αν ναι, να το χρεώσουμε με 12 και να προσθέσουμε 12 στη μεταβλητή Δαπάνη. Ο τύπος επιστροφής αυτής της συνάρτησης είναι Άκυρο καθώς δεν επιστρέφει τιμή.

Η σύνταξη μιας συνάρτησης που ορίζεται από τη συμπεριφορά του χρήστη είναι:

FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) : ReturnType = { Formula1 [ ; Τύπος2 ... ] };

  • FunctionName – Απαιτείται. Το όνομα της συνάρτησης που καθορίζεται από τον χρήστη.
  • ParameterName(s) - Προαιρετικό. Το όνομα μιας παραμέτρου συνάρτησης.
  • ParameterType(s) – Προαιρετικό. Το όνομα ενός τύπου, είτε ένα όνομα ενσωματωμένου ονόματος τύπου δεδομένων, ένα όνομα προέλευσης δεδομένων ή έναν τύπο που ορίζεται από μια συνάρτηση Τύπος.
  • ReturnType – Απαιτείται. Ο τύπος της τιμής που επιστρέφεται από τη συνάρτηση. Χρησιμοποιήστε Άκυρο εάν η συνάρτηση δεν επιστρέφει τιμή.
  • Τύποι - Υποχρεωτικό. Ο τύπος που υπολογίζει την τιμή της συνάρτησης με βάση τις παραμέτρους.

Όπως συμβαίνει με όλες τις Power Fx φόρμουλες, η εκτέλεση δεν τελειώνει όταν παρουσιαστεί σφάλμα. Μετά την κλήση της συνάρτησης Σφάλμα, η συνάρτηση Αν αποτρέπει τις αλλαγές στις Αποταμιεύσεις και τις Δαπάνες. Η συνάρτηση IfError μπορεί επίσης να χρησιμοποιηθεί για την αποτροπή περαιτέρω εκτέλεσης μετά από σφάλμα. Παρόλο που επιστρέφει Άκυρο, η φόρμουλα μπορεί να επιστρέψει σφάλμα εάν υπάρχει πρόβλημα.

Τύποι καθορισμένοι από τον χρήστη

Σημαντικό

Οι ονομασμένες φόρμουλες μπορούν να χρησιμοποιηθούν με τη συνάρτηση Τύπος για τη δημιουργία τύπων καθορισμένων από τον χρήστη. Χρησιμοποιήστε := αντί = για να ορίσετε έναν τύπο καθορισμένο από το χρήστη, για παράδειγμα Book := Type( { Title: Text, Author: Text } ). Ανατρέξτε στη συνάρτηση Τύπος για περισσότερες πληροφορίες και παραδείγματα.

Ιδιότητα OnError

Χρησιμοποιήστε OnError για να αναλάβετε δράση όταν ένα σφάλμα συμβαίνει οπουδήποτε στην εφαρμογή. Παρέχει μια καθολική ευκαιρία για να εντοπίσετε ένα διαφημιστικό πλαίσιο σφάλματος πριν να εμφανίζεται στον τελικό χρήστη. Μπορεί επίσης να χρησιμοποιηθεί για την καταγραφή ενός σφάλματος με τη συνάρτηση Trace ή για εγγραφή σε βάση δεδομένων ή υπηρεσία Web.

Σε εφαρμογές καμβά, το αποτέλεσμα κάθε αξιολόγησης τύπου ελέγχεται για κάποιο σφάλμα. Εάν πρόκειται για σφάλμα, το OnError θα αξιολογηθεί με τις ίδιες μεταβλητές πεδίου FirstError και AllErrors που θα είχαν εμφανιστεί εάν ολόκληρος ο τύπος είχε χρησιμοποιηθεί σε μια συνάρτηση IfError.

Εάν η ιδιότητα OnError είναι κενή, ένα προεπιλεγμένο πλαίσιο σφάλματος εμφανίζει το FirstError.Message του σφάλματος. Ο ορισμός ενός τύπου OnError παρακάμπτει αυτή τη συμπεριφορά, ώστε ο δημιουργός να μπορεί να χειριστεί την αναφορά σφαλμάτων, ανάλογα με τις ανάγκες. Μπορείτε να ζητήσετε την προεπιλεγμένη συμπεριφορά στο OnError, ανασχεδιάζοντας την εμφάνιση του σφάλματος με τη συνάρτηση Error. Χρησιμοποιήστε την προσέγγιση εκ νέου παρουσίασης εάν θέλετε να φιλτράρετε ή να χειριστείτε διαφορετικά ορισμένα σφάλματα, αλλά αφήσετε άλλα να μεταβούν.

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

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

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

Παράδειγμα

Λάβετε υπόψη σας ένα στοιχείο ελέγχου Label και ένα στοιχείο ελέγχου Slider που είναι συνδεδεμένα μεταξύ τους μέσω του τύπου:

Label1.Text = 1/Slider1.Value

Το στοιχείο ελέγχου Label και slider δεσμεύονται μέσω του τύπου Label1.Text = 1/Slider1.Value.

Το slider έχει ως προεπιλογή τον αριθμό 50. Εάν το slider μετακινηθεί στο 0, το Label1 δεν θα εμφανίζει καμία τιμή και θα εμφανίζεται ένα διαφημιστικό πλαίσιο σφάλματος:

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

Δείτε αναλυτικά τι συνέβη:

  1. Ο χρήστης μετακίνησε τη διαφάνεια προς τα αριστερά και η ιδιότητα Slide1.Value άλλαξε σε 0.
  2. Το Label1.Text επαναξιολογήθηκε αυτόματα. Σημειώθηκε διαίρεση με το μηδέν, δημιουργώντας ένα σφάλμα.
  3. Δεν υπάρχει IfError σε αυτόν τον τύπο. Το σφάλμα διαίρεσης με το μηδέν επιστρέφεται από την αξιολόγηση τύπου.
  4. Το Label1.Text δεν εμφανίζει κανένα μήνυμα για αυτό το σφάλμα, επομένως, εμφανίζει μια κενή κατάσταση.
  5. Το OnError καλείται. Εφόσον δεν υπάρχει δείκτης χειρισμού, εμφανίζεται το διαφημιστικό πλαίσιο τυπικού σφάλματος με τις πληροφορίες σφάλματος.

Εάν είναι απαραίτητο, μπορείτε επίσης να αλλάξετε τον τύπο σε Label1.Text = IfError( 1/Slider1.Value, 0 ). Η χρήση της συνάρτησης IfError σημαίνει ότι δεν υπάρχει πλαίσιο σφάλματος ή σφάλματος. Δεν μπορείτε να αλλάξετε την τιμή ενός σφάλματος από την ιδιότητα OnError καθώς το σφάλμα έχει ήδη παρουσιαστεί— Η ιδιότητα OnError ελέγχει μόνο τον τρόπο αναφοράς.

Εάν προσθέσετε έναν χειρισμό OnError , αυτό δεν επηρεάζει τα βήματα πριν από το βήμα 5, αλλά αλλάζει τον τρόπο αναφοράς του σφάλματος:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" )

Ο τύπος App.OnError έχει οριστεί για τη δημιουργία Trace.

Με αυτόν τον χειρισμό OnError , ο χρήστης της εφαρμογής δεν βλέπει κανένα σφάλμα. Ωστόσο, το σφάλμα προστίθεται στην ανίχνευση της Οθόνης, συμπεριλαμβανομένης της προέλευσης των πληροφοριών σφάλματος από την FirstError:

Το στοιχείο ελέγχου Slider μετακινήθηκε στο 0, με αποτέλεσμα ένα σφάλμα διαίρεσης με το μηδέν, αλλά χωρίς banner σφάλματος.

Εάν θέλετε επίσης να εμφανίσετε το προεπιλεγμένο πλαίσιο σφάλματος μαζί με την ανίχνευση, εμφανίστε ξανά το σφάλμα με τη συνάρτηση Error μετά την κλήση Trace , σαν να μην υπήρχε η ανίχνευση :

Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )

Ιδιότητα OnStart

Σημείωμα

Η χρήση της ιδιότητας OnStart μπορεί να προκαλέσει προβλήματα επιδόσεων κατά τη φόρτωση μιας εφαρμογής. Δημιουργούμε εναλλακτικές λύσεις για τους δύο κορυφαίους λόγους χρήσης αυτής της ιδιότητας: προσωρινή αποθήκευση δεδομένων και ρύθμιση καθολικών μεταβλητών. Υπάρχει ήδη μια εναλλακτική λύση για τον ορισμό της πρώτης οθόνης για εμφάνιση με τη συνάρτηση Navigate. Ανάλογα με το περιβάλλον σας, αυτή η ιδιότητα μπορεί να απενεργοποιηθεί από προεπιλογή. Εάν δεν τη βλέπετε και θέλετε να τη χρησιμοποιήσετε, ελέγξτε τις Ρυθμίσεις για προχωρημένους της εφαρμογής για να κάνετε έναν διακόπτη για να την ενεργοποιήσετε. Μπορείτε επίσης να χρησιμοποιήσετε την ιδιότητα OnVisible μιας οθόνης. Από προεπιλογή, όταν είναι ενεργοποιημένος ο κανόνας OnStart χωρίς αποκλεισμό, επιτρέπει την εκτέλεση της συνάρτησης OnStart ταυτόχρονα με άλλους κανόνες εφαρμογής. Επομένως, εάν οι μεταβλητές που αναφέρονται σε άλλους κανόνες εφαρμογής αρχικοποιηθούν εντός της συνάρτησης OnStart , ενδέχεται να μην έχουν αρχικοποιηθεί πλήρως ακόμα. Επίσης, μια οθόνη μπορεί να αποδοθεί και να γίνει αλληλεπιδραστική προτού ολοκληρωθούν οι συναρτήσεις Screen.OnVisible ή App.OnStart , ειδικά εάν απαιτείται πολύς χρόνος για την ολοκλήρωση.

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

  • Ανακτήστε και αποθηκεύστε στο cache δεδομένα σε συλλογές χρησιμοποιώντας τη συνάρτηση Collect .
  • Ρύθμιση καθολικών μεταβλητών χρησιμοποιώντας τη συνάρτηση Set.

Αυτός ο τύπος εκτελείται πριν εμφανιστεί η πρώτη οθόνη. Δεν έχει φορτωθεί καμία οθόνη, επομένως δεν μπορείτε να ορίσετε μεταβλητές περιβάλλοντος με τη συνάρτηση UpdateContext. Ωστόσο, μπορείτε να διαβιβάσετε μεταβλητές περιβάλλοντος με τη συνάρτηση Navigate .

Αφού αλλάξετε την ιδιότητα OnStart , δοκιμάστε την τοποθετώντας τον δείκτη επάνω στο αντικείμενο Εφαρμογή στο τμήμα παραθύρου Προβολή δέντρου , επιλέγοντας τα αποσιωπητικά (...) και, στη συνέχεια, επιλέγοντας Εκτέλεση onStart. Σε αντίθεση με τη φόρτωση της εφαρμογής για πρώτη φορά, οι υπάρχουσες συλλογές και μεταβλητές έχουν ήδη οριστεί. Για να ξεκινήσετε με κενές συλλογές, χρησιμοποιήστε συνάρτηση ClearCollect αντί για τη συνάρτηση Collect.

Μενού συντόμευσης στοιχείου εφαρμογής για την Εκτέλεση OnStart

Σημείωμα

  • Η χρήση της συνάρτησης Navigate στην ιδιότητα OnStart έχει αποσυρθεί. Οι υπάρχουσες εφαρμογές εξακολουθούν να λειτουργούν. Για περιορισμένο χρονικό διάστημα, μπορείτε να το ενεργοποιήσετε στις ρυθμίσεις εφαρμογής (στην περιοχή Συνταξιούχος). Ωστόσο, η χρήση της συνάρτησης Navigate με αυτόν τον τρόπο μπορεί να προκαλέσει καθυστερήσεις φόρτωσης της εφαρμογής καθώς επιβάλλει στο σύστημα να ολοκληρώσει την εκτέλεση του OnStart πριν από την εμφάνιση της πρώτης οθόνης. Χρησιμοποιήστε την ιδιότητα StartScreen για να ορίσετε την πρώτη οθόνη που εμφανίζεται.
  • Ο διακόπτης που αποσύρθηκε είναι απενεργοποιημένος για εφαρμογές που δημιουργήθηκαν πριν από τον Μάρτιο του 2021, όπου προσθέσατε την επιλογή Navigate σε OnStart μεταξύ Μαρτίου 2021 και τώρα. Όταν επεξεργαστείτε αυτές τις εφαρμογές στο Power Apps Studio, μπορεί να δείτε ένα σφάλμα. Ενεργοποιήστε την εναλλαγή που έχει αποσυρθεί για να καταργήσετε αυτό το σφάλμα.

Ιδιότητα StartScreen

Η ιδιότητα StartScreen ορίζει ποια οθόνη εμφανίζεται πρώτη. Αξιολογείται μία φορά όταν η εφαρμογή φορτώνει και επιστρέφει το αντικείμενο οθόνης προς εμφάνιση. Από προεπιλογή, αυτή η ιδιότητα είναι κενή και η πρώτη οθόνη στην προβολή Δέντρο στούντιο εμφανίζεται πρώτη.

Το StartScreen είναι μια ιδιότητα ροής δεδομένων που δεν μπορεί να περιέχει λειτουργίες συμπεριφοράς. Όλες οι συναρτήσεις ροής δεδομένων είναι διαθέσιμες. Χρησιμοποιήστε αυτές τις συναρτήσεις και σήματα για να αποφασίσετε ποια οθόνη θα εμφανίζεται πρώτη:

  • Συνάρτηση Param για την ανάγνωση παραμέτρων που χρησιμοποιούνται για την έναρξη της εφαρμογής.
  • Συνάρτηση User για την ανάγνωση πληροφοριών σχετικά με τον τρέχοντα χρήστη.
  • LookUp, Filter, CountRows, Max, και άλλες συναρτήσεις που κάνουν ανάγνωση από μια προέλευση δεδομένων.
  • Το API πραγματοποιεί κλήσεις μέσω σύνδεσης. Βεβαιωθείτε ότι η κλήση επιστρέφει γρήγορα.
  • Σήματα, όπως Σύνδεση, Compass και Εφαρμογή.

Σημείωμα

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

Εάν η StartScreen επιστρέψει ένα σφάλμα, η πρώτη οθόνη στην προβολή Δέντρο στούντιο εμφανίζεται σαν να μην έχει οριστεί η οθόνη StartScreen . Χρησιμοποιήστε τη συνάρτηση IfError για να παρακολουθήσετε τυχόν σφάλματα και να ανακατευθύνετε σε μια οθόνη σφάλματος.

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

Μετάβαση στο StartScreen

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

Screen9

Screen9 εμφανίζεται πρώτη κάθε φορά που ξεκινά η εφαρμογή.

If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )

Ελέγχει αν έχει οριστεί η "λειτουργία διαχείρισης" Param και τη χρησιμοποιεί για να αποφασίσει αν θα εμφανίζεται πρώτα η αρχική οθόνη ή η οθόνη adminScreen.

If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )

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

IfError( If( CustomConnector.APICall() = "Forest", 
             ForestScreen, 
             OceanScreen 
         ), 
         ErrorScreen 
)

Κατευθύνει την εφαρμογή με βάση μια κλήση μέσω API είτε στο ForestScreen είτε στο OceanScreen. Εάν το API αποτύχει, η εφαρμογή χρησιμοποιεί ErrorScreen τη συνάρτηση αντί για αυτό.

Ιδιότητα StudioVersion

Χρησιμοποιήστε την ιδιότητα StudioVersion για να εμφανίσετε ή να καταγράψετε την έκδοση του Power Apps Studio που χρησιμοποιείται για τη δημοσίευση μιας εφαρμογής. Αυτή η ιδιότητα σας βοηθά όταν κάνετε εντοπισμό σφαλμάτων και ελέγχετε ότι η εφαρμογή σας αναδημοσιεύεται με μια πρόσφατη έκδοση του Power Apps Studio.

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