Miklix

Δημιουργία πεδίου αναζήτησης για μια οικονομική διάσταση στο Dynamics 365

Δημοσιεύθηκε: 16 Φεβρουαρίου 2025 στις 11:32:44 π.μ. UTC

Αυτό το άρθρο εξηγεί πώς να δημιουργήσετε ένα πεδίο αναζήτησης για μια οικονομική ιδιότητα στο Dynamics 365 for Operations, συμπεριλαμβανομένου ενός παραδείγματος κώδικα X++.


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

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Οι πληροφορίες σε αυτήν την ανάρτηση βασίζονται στο Dynamics 365 for Operations, αλλά οι περισσότερες από αυτές θα λειτουργούν και για το Dynamics AX 2012 (δείτε παρακάτω).

Πρόσφατα μου ανατέθηκε η δημιουργία ενός νέου πεδίου στο οποίο θα ήταν δυνατός ο καθορισμός μιας ενιαίας οικονομικής διάστασης, σε αυτήν την περίπτωση Προϊόντος. Φυσικά, το νέο πεδίο θα πρέπει επίσης να μπορεί να αναζητήσει τις έγκυρες τιμές αυτής της διάστασης.

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

Ευτυχώς, η τυπική εφαρμογή παρέχει μια βολική φόρμα αναζήτησης (DimensionLookup) που μπορεί να χρησιμοποιηθεί για το σκοπό αυτό, αν απλώς της πείτε ποιο χαρακτηριστικό διάστασης να αναζητήσει.

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

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

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

Ο χειριστής συμβάντων πρέπει να μοιάζει κάπως έτσι (αντικαταστήστε το όνομα της φόρμας και το όνομα του πεδίου όπως απαιτείται):

[
    FormControlEventHandler(formControlStr( MyForm,
                                            MyProductDimField),
                            FormControlEventType::Lookup)
]
public static void MyProductDimField_OnLookup(  FormControl _sender,
                                                FormControlEventArgs _e)
{
    FormStringControl   control;
    Args                args;
    FormRun             formRun;
    DimensionAttribute  dimAttribute;
    ;

    dimAttribute    =   DimensionAttribute::findByName('Product');
    args            =   new Args();
    args.record(dimAttribute);
    args.caller(_sender);
    args.name(formStr(DimensionLookup));
    formRun         =   classFactory.formRunClass(args);formRun.init();
    control         =   _sender as FormStringControl;
    control.performFormLookup(formRun);
}
Μοιραστείτε το στο BlueskyΚοινή χρήση στο FacebookΚοινοποίηση στο LinkedInΜοιραστείτε το στο TumblrΚοινοποίηση στο XΚοινοποίηση στο LinkedInΚαρφιτσώστε στο Pinterest

Μίκελ Μπανγκ Κρίστενσεν

Σχετικά με τον συγγραφέα

Μίκελ Μπανγκ Κρίστενσεν
Ο Μιχαήλ είναι ο δημιουργός και ιδιοκτήτης του miklix.com. Έχει πάνω από 20 χρόνια εμπειρίας ως επαγγελματίας προγραμματιστής υπολογιστών/προγραμματιστής λογισμικού και σήμερα εργάζεται με πλήρη απασχόληση σε μια μεγάλη ευρωπαϊκή εταιρεία πληροφορικής. Όταν δεν ασχολείται με το ιστολόγιο, αφιερώνει τον ελεύθερο χρόνο του σε ένα ευρύ φάσμα ενδιαφερόντων, χόμπι και δραστηριοτήτων, τα οποία μπορεί σε κάποιο βαθμό να αντικατοπτρίζονται στην ποικιλία των θεμάτων που καλύπτονται σε αυτόν τον ιστότοπο.