22.12.2004, 14:13 | #1 |
Участник
|
SysQueryForm - Dimension
Здравствуйте!
Подскажите, пожалуйста, у кого есть идея на счет того, чтобы в SysQueryForm работая с таблицей LedgerTrans, её поля Dimension лукапились в зависимости от выбранного значения поля "Бухг. счет". Надо как - то капитально переделывать, а как, не знаю даже с какого места подойти. |
|
22.12.2004, 14:50 | #2 |
Участник
|
Попробуй посмотреть метод lookupRange класса SysLookup - это то, что вызывается, когда ты хочешь выбрать значение для поля из выпадающего списка. Так вот, там пол TableId и FieldId можно проверить, то ли это поле и таблица.
|
|
22.12.2004, 15:09 | #3 |
NavAx
|
2Natasha: просто напишите свою lookup - форму и повесьте ее на dataType. Не надо ломать SysQueryForm и SysLookup!
__________________
Isn't it nice when things just work? |
|
23.12.2004, 07:57 | #4 |
Участник
|
а на чей dataType?
на LedgerTrans.Dimensions? |
|
23.12.2004, 11:11 | #5 |
Участник
|
2Natasha: Нет, он видимо имеет в виду -- создать форму в которой проверять в методе init условие твое, и в зависимости от этого выводить нужные данные. А имя этой формы прописать в свойство FormHelp EDT Dimension
|
|
23.12.2004, 11:34 | #6 |
NavAx
|
2Natasha: Да, именно это он и имеет в виду Если наша форма сильно отличается от исходной, рисуем новую (Axapta Application Development Best Practices) и цепляем ее к типу SysDim через свойство FormHelp. А если нет, то крыжим форму DimensionsLookup.
__________________
Isn't it nice when things just work? |
|
23.12.2004, 11:39 | #7 |
Участник
|
Да, спасибо, это я все понимаю,
я про возможность "то крыжим форму DimensionsLookup", либо свою. Как это делать динамически, чтоб не обижать LadgerTrans |
|
23.12.2004, 13:18 | #8 |
Участник
|
Я, сделала лукаповскую свою форму, она работает на LadgerTable.Dimensions, но не хочет в LedgerTrans.Dimensions на SysQueryForm
|
|
23.12.2004, 14:53 | #9 |
NavAx
|
А, понял, в SysQueryForm выбираете один range и в зависимости от него должен лукапиться другой? Ну тогда в init lookup- формы, нужно вынимать datasource вызывающей SysQueryForm, брать из него TmpSysQuery, через cursor(), и проверять значение нужного range.
__________________
Isn't it nice when things just work? |
|
24.12.2004, 08:08 | #10 |
Участник
|
спасибо за совет, попробую
|
|
23.07.2013, 14:01 | #11 |
Участник
|
Цитата:
через курсор не получилось.. мне нужно было сделать подобное в axapta 3.0, для полей ToDimNum и FromDimNum таблицы LedgerRRGDimensionInterval_RU. Для этого в методе useSelectableLookup лукап-формы DimensionsLookup. добавил код: X++: switch(tmpSysQuery.Table_Id) { case tablenum(LedgerRRGDimensionInterval_RU): tmp.setTmpData(tmpSysQuery); while select tmp { if(fieldExt2Id(tmp.Field_Id) == fieldNum(LedgerRRGDimensionInterval_RU, DimensionCode)) { sysDimension = new DictEnum(enumNum(SysDimension)).name2Value(strrem(tmp.RangeValue, "\"")); } } return false; } |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|