Модифицированный метод - PullRequest
1 голос
/ 11 апреля 2019

Мне нужно написать метод модификации.

Есть поле: LineViewHeader_AccountType ; строка; с возможными значениями: Внутренний, Клиент, Арендатор

В зависимости от того, какое значение выбрано, необходимо перечислить значения в поле: LineViewHeader_AccountNum

В настоящее время в нем перечислены все значения в AccountNum, независимо от того, что выбрано в AccountType.

[Control("ComboBox")]
class LineViewHeader_AccountType
{
    /// <summary>
    ///
    /// </summary>
    /// <returns></returns>
    public boolean modified()
    {
        boolean ret;

        ret = super();

        return ret;
    }
}

Ответы [ 2 ]

4 голосов
/ 11 апреля 2019

Необходимо установить значение элемента управления LineViewHeader_AccountType в качестве диапазона:

[FormControlEventHandler(formControlStr(PMCContractDetails, 
LineViewHeader_AccountNum), FormControlEventType::Lookup)]
public static void LineViewHeader_AccountNum_OnLookup(FormControl sender, 
FormControlEventArgs e)
{
    Query                   query = new Query();
    QueryBuildDataSource    queryBuildDataSource;
    SysTableLookup          sysTableLookup;
    FormRun                 formRun;
    FormControl             formCtrl;


    formRun = sender.formRun();
    formCtrl = formRun.design().controlName(formControlStr(PMCContractDetails, LineViewHeader_AccountType));

    sysTableLookup = SysTableLookup::newParameters(tableNum(PMCContract), sender);
    queryBuildDataSource = query.addDataSource(tableNum(PMCContract));
    queryBuildDataSource.addRange(fieldNum(PMCContract, AccountType)).value(queryValue(formCtrl.valueStr()));

    sysTableLookup.addLookupField(fieldNum(PMCContract, AccountType), true);
    sysTableLookup.addLookupMethod(tableMethodStr(PMCContract, AccountNum));

    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();       
}
0 голосов
/ 11 апреля 2019
[FormControlEventHandler(formControlStr(PMCContractDetails, LineViewHeader_AccountNum), FormControlEventType::Lookup)]
public static void LineViewHeader_AccountNum_OnLookup(FormControl sender, FormControlEventArgs e)
{
    Query                   query = new Query();
    QueryBuildDataSource    queryBuildDataSource;
    SysTableLookup          sysTableLookup;

    sysTableLookup = SysTableLookup::newParameters(tableNum(PMCContract), sender);
    queryBuildDataSource = query.addDataSource(tableNum(PMCContract));

    sysTableLookup.addLookupField(fieldNum(PMCContract, AccountType), true);
    sysTableLookup.addLookupMethod(tableMethodStr(PMCContract, AccountNum));

    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();       
}
...