Δημιουργία πεδίου αναζήτησης για μια οικονομική διάσταση στο Dynamics 365
Δημοσιεύθηκε: 16 Φεβρουαρίου 2025 στις 11:32:44 π.μ. UTC
Τελευταία ενημέρωση: 12 Ιανουαρίου 2026 στις 8:56:06 π.μ. 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);
}
Περαιτέρω ανάγνωση
Αν σας άρεσε αυτή η ανάρτηση, ίσως σας αρέσουν και αυτές οι προτάσεις:
- Βάλτε το Dynamics 365 FO Virtual Machine Dev ή Test σε λειτουργία Maintenance
- Ενημέρωση τιμής οικονομικής διάστασης από κώδικα X++ στο Dynamics 365
- Προσθήκη μεθόδου προβολής ή επεξεργασίας μέσω επέκτασης στο Dynamics 365
