01.11.2008, 13:05 | #1 |
Участник
|
Заполнение wmsLocationId на основе LocationId
Здравствуйте, я создала таблицу, в которой есть поля LocationId, wmsLocationId и ToLocationId, TowmsLocationId, тогда при выборе LocationId, выпадающий список wmsLocationId заполняется автоматически. Но при выборе ToLocationId, хочу, чтобы и TowmsLocationId заполнилось исходя из ToLocationId, но он заполняется на основе LocationId. Как можно сделать так, чтобы он был привязан к ToLocationId? Или лучше вообще ссылки на InventDim сделать, содержащие пару LocationId, wmsLocationId и ToLocationId, TowmsLocationId соответственно?
|
|
02.11.2008, 19:53 | #2 |
MCITP
|
Можно попробовать добавить две двойные связи на нужные вам пары полей на таблице (связь с таблицей ячеек, понятно), но не факт что они подхватятся, смотря какая версия Аксапты.
Скорее всего вам нужно использользовать метод performFormLookup (например на поле датасорса формы) и там задать нужные условия. (В АОТ море примеров такого подхода)
__________________
Zhirenkov Vitaly |
|
03.11.2008, 18:44 | #3 |
MCITP
|
Дорвался до Аксапты, решил проверить...
Оказывается, был не прав - в этом случае причина совсем другая и указанными мною выше методами её не решить. Тут вся проблема в том, что ячейка выбирается при помощи формы WMSLocationIdLookup (как указано в EDT). И, соответсвенно, и в связи, и в performFormLookup можно пихать, что угодно, всё равно WMSLocationIdLookup всё "испортит". Так что нужно либо как-то подравнивать эту форму под ваши нужды, либо просто переписать лукап метод на этом поле в датасорсе, например так навскидку (перекрыт метод lookup() поля ToWMSLocationId датасорса на форме): X++: public void lookup(FormControl _formControl, str _filterStr) { SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(wmsLocation), _formControl); Query query = new Query(); QueryBuildDataSource queryBuildDataSource = query.addDataSource(tableNum(wmsLocation)); ; queryBuildDataSource.addRange(fieldNum(wmsLocation,InventLocationId)).value(QueryValue(ZVVTest2.ToInventLocationId)); sysTableLookup.addLookupfield(fieldNum(wmsLocation, inventLocationId), true); sysTableLookup.addLookupfield(fieldNum(wmsLocation, wmsLocationId), true); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); }
__________________
Zhirenkov Vitaly |
|
|
За это сообщение автора поблагодарили: evv (1). |
05.11.2008, 15:11 | #4 |
Участник
|
Спасибо большое за помощь! Я только недавно стала работать с аксаптой, потихоньку надеюсь и разберусь во всем! Еще раз спасибо
|
|
|
За это сообщение автора поблагодарили: aidsua (1). |