فهم "حفظ تلقَائي"
فِي ظِلّ ظُروفٍ مُحدَّدةٍ، سَيُؤدّي تَحديد أمرِ شَريطِ الأوامرِ قَبل تَشغيل مَنطِقِ الإجرَاءِ الخَاصِّة إلى حِفظِ بَيَانَاتِ النَّموذَجِ تِلقَائِيًّا. يَنطَبِق سُلوك "حِفظ تِلقَائِي" هَذا فَقَط عِندَمَا تَقُوم بِتَكوينِ أمرِ استِخدَام Power Fx. إذا كُنتَ تَستَخدِم JavaScript لمَنطِقِ الأوامر، فَلن يَحدُث أي حِفظ تِلقَائِي.
يتم تكوين الأوامر التي تستخدم Power Fx بشكل افترَاضي لحفظ بيَانَات النموذج تلقَائيًا قبل تنفيذ التعبير. يَنطَبِق الحِفظ التِلقَائِي فَقَط عَلى أشرِطَةِ أوامِرِ النَموذَج الرَّئِيسِي ويُمكِن أن يَحدُث لكُلّ مِن صُفوفِ البَيَانَاتِ الجَديدَةِ والمَوجودَةِ.
ُسُلوك الحِفظ التلقَائِي للصُفُوف الجَدِيدة
عِندَمَا يُحدِّد المُستخدمُ الأمرَ أثنَاءَ إنشَاءِ صَفّ جَديد، يُحَاوِل التَّطبيقُ حِفظَ الصَّفّ بِالبَيَانَاتِ المُدخَلة. بَعد حِفظ الصَف بنجَاحٍ، يتم تَشغيل مَنطق الأمر، ويتم تعيين Self.Selected.Item إلى الصف الذي تم إنشَاؤه حديثًا. يعمل منطق Power Fx الخَاص بك عَلى النحو المتوقع.
إذا لم يكمِل المُستَخدم جَمِيع الأعمِدة المَطلوبة، يفشل إجرَاء الحِفظ. ومع هَذا، سيستمر تشغيل منطق الأمر الخَاص بك. بمَا أنَّ الصَفَ الجَديد لم يتِم إنشَاؤه، سيكون Self.Selected.Item فارغ. المنطقُ الذي يعتمدُ عَلى هَذه الخَاصية - مثل تحديثِ الأعمِدة أو إنشَاء صفوفٍ ذات صلةٍ - لن يعمل بشكلٍ صحيحٍ.
لمَنعِ حُدوث ارتباكٍ للمُستَخدم، ضع فِي اعتبَارك إخفَاء زر الأمرِ عِندمَا يكون هُنَاك صفٌ جديدٌ قيد التقدم. استَخدِم هَذه المُعَادلة لخَاصية Visibility:
If (Self.Selected.State = 1, false, true)
يُسَاعِد هَذا النَّهج فِي تَجنُّب تَشغيل مَنطِقِ الأعْمَال قَبل الأوان – عَلى سَبيِل المِثَال، عِندَمَا يَملأ المُستخدمُ 5 فَقَط مِن 20 حَقْلاً، ويَتمُّ تَشغيل التَّشغيل التِلقَائِي قَبل إدخَال جَميعِ البَيَانَاتِ.
فِي بَعضِ الحَالات، يمكنُ أن يكونَ هَذا السلوك مقصودًا ومفيدًا. عَلى سَبيل المِثَال، قد يقومُ الأمر حفظ وشحن بإنشَاء الأمر وعمل قَائمة انتظَار للشحن عَلى الفور. يدعم هَذا تجربةً مبسطةً حيث لا يحتَاج المُستخدم إلى تَحديدِ حفظ بشكلٍ منفصلٍ.
سُلوك الحِفظ التلقَائِي للصُفُوف الموجودة
عندمَا يحدد المستخدم الأمر فِي أثنَاء تحرير صفٍ موجودٍ، يحَاول النموذجُ حِفظ التغييرَات قبل تشغيل الأمر. فِي حَالة نجَاح الحِفظ، يتم تشغيل منطق الأمر Self.Selected.Item ويعكسُ الصَف المُحدث.
إذا قمت بتعطيل AutoSave، فلن يحفظَ النَموذج التغييرَات قَبل تَنفِيذ الأمر. فِي هَذه الحَالة، Self.Selected.Item يحتفظُ بالحَالة السَابقة للصَف. يمكن أن يؤثرَ هَذا عَلى أي عمليَاتِ تَنفِيذ تِلقَائيٍ نهَائيةٍ يتمُ تشغيلهَا بواسطةِ تَحديثَات البيَانَات.
طَريقَة تعطيل الحفظ التلقَائي
بشكلٍ افتِرَاضي، يتمّ تمكينُ الحِفظ التِلقَائي للأوامر التي تستخدِم Power Fx فِي مَكتبة المُكونَات. لتَعطيله، أضِف JavaScript إلى حَدث OnSave الخَاص بالنموذج. لمَزيدٍ من المعلومَات، رَاجع تعطِيل الحِفظ التلقَائي لنَمُوذج.