![]() |
#6 |
Участник
|
Мне нужно:
1. Выполнять различный лукап в зависимости от значения друго поля. Срослось. 2. Разрешать выбор нескольких значений. Посмотел, как делается на SysQueryForm, сделал, не работает. Заменяет другое значение при повторном выборе: X++: protected void dialogAccountRelation_lookup() { SysLookup sysLookup; Query query=new Query(); QueryBuildDataSource queryBuildDataSource; FormControl _formcontrol=dialog.curFormControl_RU(); TmpSysQuery TmpSysQuery; boolean rn=false; ; oldvalue=_formcontrol.valueStr(); dialog.dialogOnClient_RU().updateServer(); if(this.priceModule(dialogRelation.value())==ModuleInventCustVend::Vend){ switch(dialogAccountCode.value()){ case TableGroupAll::All:break; case TableGroupAll::GroupId: queryBuildDataSource=query.addDataSource(tablenum(VendGroup)); TmpSysQuery.initValue(); TmpSysQuery.Table_Id=tablenum(VendGroup); TmpSysQuery.Field_Id=fieldnum(VendGroup,VendGroup); TmpSysQuery.insert(); rn=true; break; case TableGroupAll::Table: queryBuildDataSource=query.addDataSource(tablenum(VendTable)); TmpSysQuery.initValue(); TmpSysQuery.Table_Id=tablenum(VendTable); TmpSysQuery.Field_Id=fieldnum(VendTable,AccountNum); TmpSysQuery.insert(); rn=true; break; } if(rn){ syslookup::lookupRange(_formcontrol,TmpSysQuery,query); dialog.updateClient(dialog.dialogOnClient_RU()); } } else info("Поддерживается только для модуля поставщиков"); X++: protected void dialogAccountRelation_modified(){ ; dialog.dialogOnClient_RU().updateServer(); if(OldValue) dialogAccountRelation.value(OldValue+dialogAccountRelation.value()); dialog.updateClient(dialog.dialogOnClient_RU()); } Не подскажете, где косяк? |
|
Теги |
ax2009, dialog, законченный пример, полезное |
|
|