كيف أنسخ فقط السطور المؤشر عليها (details.b1) من مستند مصدر إلى أمر الشراء؟

Viewed 30

عندي مستند بعمله قبل أمر الشراء، وفي السطور (details) عندي خانة boolean اسمها b1 بستخدمها كعلامة لاختيار السطور اللي عايز أنقلها لأمر الشراء.

المطلوب: لما أعمل أمر شراء من المستند ده، عايز ينسخ فقط السطور اللي details.b1 فيها مؤشر عليها (true)، ويتجاهل باقي السطور.

اللي جربته: حاولت أعمل copy للـ boolean في السطور وبعدين أمسح السطور غير المؤشر عليها بعد الـ save، لكن النظام مش بينسخ الـ boolean لوحده بشكل مباشر.

إيه الطريقة الصحيحة لعمل ده؟

1 Answers

عندك ثلاث طرق متاحة تقدر تختار أي واحدة منهم حسب الأنسب:

الطريقة الأولى: نسخ الـ boolean ثم حذف السطور غير المؤشر عليها

تستخدم خانة Extra From Doc Fields Copier عشان تنسخ قيمة details.b1 من المستند المصدر إلى أمر الشراء:

details.b1=details.b1

وبعدها تستخدم EADetailsRemover لحذف السطور اللي قيمة details.b1 فيها = false.

الطريقة الثانية: استخدام deleteOnSave مع SQL

دي أبسط طريقة - بتعلم السطور بأنها "تتمسح عند الحفظ" لو الـ boolean = false:

details.deleteOnSave=sql(select case when {details.b1} = 1 then 0 else 1 end)

النظام هيمسح السطور دي تلقائياً وقت الـ save بدون أي خطوات إضافية.

الطريقة الثالثة: استخدام criteriaDefinitions لفلترة السطور

تقدر تضيف صف في جريد Criteria Definitions اللي في التوجيه بمعيار زي ده:

details.b1,Equal,true,AND;

ده هيفلتر السطور قبل ما تتنسخ، فالسطور اللي قيمة b1 فيها مش true مش هتيجي أصلاً في أمر الشراء.

أيهم تختار؟

  • لو عايز أبسط حل وأقل إعدادات → الطريقة الثالثة (criteriaDefinitions)
  • لو محتاج تحتفظ بقيمة b1 على السطور المنسوخة لاستخدام لاحق → الطريقة الأولى
  • لو عايز السطور تظهر مبدئياً وتتمسح وقت الـ save (مفيد للمراجعة) → الطريقة الثانية

الله ينور هاتريك حلول