Источник:
http://axforum.info/forums/blog.php?b=8182
==============
Задача - на форме SalesTable, кнопку
Packing slip в группе Posting делать активной, при условии, что есть Direct debit mandate, c Mandate status равный Active. На форме есть кнопка Packing slip, которая не состоит ни в какой группе - добавлена для быстрого доступа. Активность этой кнопки должна быть такойже.
1. Надо добраться до метода canPackingslipBeUpdated класса SalesTableType
В конце метода, переред return дописать новую проверку условия
X++:
boolean canPackingslipBeUpdated(DocumentStatus _documentStatus = DocumentStatus::PackingSlip){ boolean ok =
true; ;.......
if (ok) { ok = this.checkCustDirectDebitMandate(); }......
return ok;}
Собственно сам метод проверки:
X++:
boolean checkCustDirectDebitMandate(){ CustDirectDebitMandate custDirectDebitMandate; boolean ok =
false; ;
while select custDirectDebitMandate
where custDirectDebitMandate.CustAccount == salesTable.CustAccount && custDirectDebitMandate.MandateScheme == CustMandateScheme::CORE {
if (custDirectDebitMandate.getStatus() == CustMandateStatus::Active) { ok =
true; } }
return ok;}
Теперь нужно продублировать активность на кнопку Packing slip, которая сама по себе, не в группе.
Решено было устанавливать активность в следующем месте: \Forms\SalesTable\Data Sources\SalesTable\Methods\active
В начале метода следующий код:
X++:
int active(){.....buttonUpdatePickingList.enabled(SalesTable.type().canPackingslipBeUpdated());......}
Миниатюры
Изображения
Источник:
http://axforum.info/forums/blog.php?b=8182