Данная статья описывает общие шаги по добавлению финансовой аналитики (сегментированного поля) на табличную сетку (Grid) в D365FO.
Для дальнейшего объяснения давайте представим, что мы добавляем новые таблицу и форму
Новая таблица содержит два поля – Тип счета (AccountType) и Счет (LedgerDimension), по которому осуществляется связь с таблицей DimensionAttributeValueCombination
Форма выглядит вот так
В дизайнере формы настройте свойства для элемента формы представляющего собой сегментированное поле ввода
– Auto declaration = Yes
– Account type field = AccountType
– Controller class = DimensionDynamicAccountController
– Filter expression = %1
- Перекройте метод modified на поле LedgerDimension источника данных формы (form datasource)
- Перекройте методы lookup и checkUserCustomLookup на элементе сегментированного поля
Datasource | D365O_FinancialDimension | LedgerDimension | modified
[DataSource]
class D365O_FinancialDimension
{
[DataField]
class LedgerDimension
{
void modified()
{
super();
D365O_FinancialDimension_ds.refresh();
}
}
}
Desgin | D365O_FinancialDimension_LedgerDimension | lookup
public void lookup()
{
switch (D365O_FinancialDimension.AccountType)
{
case LedgerJournalACType::Bank:
BankAccountTable::lookupBankAccount(this);
break;
case LedgerJournalACType::Cust:
CustTable::lookupCustomer(this);
break;
case LedgerJournalACType::FixedAssets:
AssetTable::lookupAccountNum(this);
break;
case LedgerJournalACType::Project:
ProjTable::lookupProjId(this, D365O_FinancialDimension);
break;
case LedgerJournalACType::Vend:
VendTable::lookupVendor(this);
break;
default:
super();
break;
}
}
Desgin | D365O_FinancialDimension_LedgerDimension | checkUserCustomLookup
public boolean checkUseCustomLookup(int _accountTypeEnumValue, int _secondaryAccountTypeEnumValue)
{
boolean returnValue;
LedgerJournalACType accountType = any2Enum(_accountTypeEnumValue);
switch (accountType)
{
case LedgerJournalACType::Bank:
case LedgerJournalACType::Cust:
case LedgerJournalACType::FixedAssets:
case LedgerJournalACType::Project:
case LedgerJournalACType::Vend:
returnValue = true;
break;
default:
returnValue = false;
break;
}
return returnValue;
}
Настройте форму D365O_FinancialDimensions как объект запуска и запустите.
Если вы хотите чтобы в сегментированном поле можно было видеть и вводить только счет ГК (MainAccount), настройте на элементе сегментированного поля ввода свойство Is default account = True
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.