Установка активности кнопок на форме SalesTable при определенных условиях.
Запись от AnGor размещена 24.06.2015 в 15:41
Задача - на форме SalesTable, кнопку Packing slip в группе Posting делать активной, при условии, что есть Direct debit mandate, c Mandate status равный Active. На форме есть кнопка Packing slip, которая не состоит ни в какой группе - добавлена для быстрого доступа. Активность этой кнопки должна быть такойже.
1. Надо добраться до метода canPackingslipBeUpdated класса SalesTableType
В конце метода, переред return дописать новую проверку условия
Собственно сам метод проверки:
Теперь нужно продублировать активность на кнопку Packing slip, которая сама по себе, не в группе.
Решено было устанавливать активность в следующем месте: \Forms\SalesTable\Data Sources\SalesTable\Methods\active
В начале метода следующий код:
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; }
Решено было устанавливать активность в следующем месте: \Forms\SalesTable\Data Sources\SalesTable\Methods\active
В начале метода следующий код:
X++:
int active()
{
.....
buttonUpdatePickingList.enabled(SalesTable.type().canPackingslipBeUpdated());
......
}
Всего комментариев 0