Dynamics AX 4.0، نموذج الافتتاح دون تطبيق عامل التصفية على السجل الحالي
-
19-09-2019 - |
سؤال
لدي شكل مع شبكة Vendtable على سبيل المثال، والتي لديها حقل custaccount.
أريد زر زر، انقر فوق الذي سيفتح نموذج Custtable حيث يكون جميع العملاء مرئيين.
إذا قمت فقط بوضع Menuitem CusteTable، فستفتح نموذج Custetable، ولكن في هذا النموذج يتم عرض سجل واحد فقط - واحد يحتوي على نفس المحاسبة كما هو الحال في Vendtable.custaccount.
كيف تفتح كوستابل كامل؟ هل هناك حل أفضل من إنشاء زر، ثم استخدم ClassFactory :: FormRunonclient لعرض النموذج؟
ملاحظة. أحتاج إلى زر، لذلك RMB -> "انتقل إلى نموذج الجدول الرئيسي" لا يعول.
المحلول
المشكلة هي أن VendTable
يتم تطبيق سجل كوسيطة ل CustTable
شكل، مما يخلق بعد ذلك dynalink. الحل هو تجنب الحجة.
تجاوز clicked
طريقة في CustTable
عرض عنصر القائمة مثل هذا:
void clicked()
{
this.menufunction().run(new Args(element));
}
هذا يستدعي CustTable
نموذج مع كائن المتصل فقط وبدون وسيطة السجل.
نصائح أخرى
أعلم أن هذا سؤال قديم إلى حد ما ولكن إذا جاء شخص ما هنا يبحث عن الإجابة، ما عليك سوى طريقة الاتصال clearDynalinks()
على كائن querybuilddatasource.
على سبيل المثال، قمت بإنشاء نموذج ويتم تصفية بيانات مصدر بياناتك تلقائيا بسبب Dynalinks التي تنشئ الديناميات تلقائيا، تحلها عن طريق وضع التعليمات البرمجية التالية داخل init()
الطريقة، على DataSource النموذج الخاص بك:
QueryBuildDatasource qbds;
;
qbds = this.query().dataSourceTable(tablenum(MyTableName));
qbds.clearDynalinks();
// Next line is optional, it clears initial ranges
qbds.clearRanges();
// if you need to add any ranges you can do it right after you clear the initial dynalinks / ranges
آمل أن يساعد ...
لديك خياران، يمكنك إما إنشاء زر وتجاوز أسلوبها النقر فوق () أو استخدام menuitembutton وتعيين menuitem to إجراء إليها.
استخدام Menuitems هو أفضل الممارسات، لأنه يسمح لك باستخدام إطار أمان الفأس والتكوين. يمكنك ربط فئة إلى menuitem وفي طريقة الطبقة الرئيسية () يمكنك تشغيل الأشياء FormrunonClient () حسب الحاجة.