17.12.2007, 15:29 | #1 |
MCTS
|
Lookup в другую компанию
Привет.
При попытке сделать лукап на справочник в другую компанию с помощью связей на таблице столкнулся с забавным поведением Аксы. Если поле не заполнено, лукап прекрасно отрабатывает по связям. Но если в поле уже есть значение, открывается лукап, в котором присутствуют значения из текущей компании и значения из другой компании. Кто-нить может что-нить сказать по этому поводу? PS AX3SP6 Последний раз редактировалось CDR; 17.12.2007 в 15:37. |
|
17.12.2007, 16:18 | #2 |
Злыдни
|
|
|
17.12.2007, 16:29 | #3 |
MCTS
|
Ну, например, так:
|
|
17.12.2007, 17:11 | #4 |
Участник
|
А может можно сделать saveDataPerCompany = No для этой таблицы?
|
|
17.12.2007, 17:37 | #5 |
MCTS
|
Вообщем-то, ни для новой таблички, ни для EmplTable этого сделать нельзя. Потому как данные как-раз таки должны хранится отдельно по компаниям.
Чудеса какие-то... Не иначе, как понедельник виноват. Видимо придется завтра с утра на свежую голову разбирацо |
|
17.12.2007, 18:07 | #6 |
Участник
|
Я делал такой лукап - все нормально работало - вне зависимости от того, есть значение в поле или нет. На более раннем СП
Поэтому ищите ошибку у себя. Вы перекрываете лукап? или как? |
|
17.12.2007, 18:08 | #7 |
Участник
|
2 CDR:
Перечитал только что ваши сообщения - я по-другому делал: Перекрывал лукап, и делал changeCompany('ljl') { super() } |
|
17.12.2007, 19:11 | #8 |
Member
|
kashperuk-у лишь бы покодить...
Вообще стандартные связи работают. Можно посмотреть в журнале ГК пример. Есть гипотеза, что у вас поле в таблице, с которым вы мучаетесь, на базе расширенного типа создано, для которого прописаны связи. Обычно в таких случаях бывают проблемы. Проверьте. Для чистоты связей нужно использовать в поле таблицы расширенный тип без связей, а связь настраивать на таблице. Посмотрите в тех же журналах ГК. Там компания на базе расширенного типа (связь работает всегда даже при незаполненных других полях), а сам счет, договора и проч. ерунда — на базе расширенного типа без связей и связь прописана на таблице (в результате поля работают только в связке с другими). Это не спроста так сделано.
__________________
С уважением, glibs® |
|
17.12.2007, 20:23 | #9 |
Участник
|
|
|
17.12.2007, 20:55 | #10 |
Member
|
.
(I regret)
__________________
С уважением, glibs® |
|
18.12.2007, 05:04 | #11 |
Участник
|
Я тоже использовала changeCompany() все работает!
|
|
18.12.2007, 11:23 | #12 |
Злыдни
|
Я дико извиняюсь за свою серость, но хотел бы уточнить 2 момента:
1. В качестве примера, насколько я понял, приведен лукап счета в строках журнала ГК. Однако на первый взгляд все лукап-методы на форме строк журнала ГК реализованы программно на соответствующих таблицах. И в этих методах недвусмысленно присутствует конструкция setDefaultCompany() Я чего-то не вижу? 2. До настоящего момента я был твердо уверен, что отображение информации и доступ к ней в Аксапте возможен только в рамках текущей компании. Способов изменить это поведение я знаю 3: saveDataPerCompany на таблице, setDefaultCompany() и changeCompany() в коде. Во всех мануалах по Х++ и Аксе (в частности, Inside Dynamics AX 4.0) это декларируется. Я сейчас, конечно, поэкспериментирую, но Ваше заявление, glibs, как обухом по голове, честное слово :-) Вековые устои руаштся..... |
|
18.12.2007, 12:23 | #13 |
Злыдни
|
Работает.... Обалдеть можно...
|
|
18.12.2007, 12:43 | #14 |
Member
|
Ну вы, пиплы, даете.
Слов нету. Осталось еще только на стандартные лукапы забить и писать везде свои. Обратите внимание, что Кашперукский метод работает только в форме, а стандартные relations работают даже в обозревателе таблицы.
__________________
С уважением, glibs® |
|
|
За это сообщение автора поблагодарили: Yprit (1). |
18.12.2007, 12:55 | #15 |
Злыдни
|
|
|
18.12.2007, 17:58 | #16 |
Member
|
Цитата:
Сообщение от Yprit
...
Способов изменить это поведение я знаю 3: saveDataPerCompany на таблице ...
__________________
С уважением, glibs® |
|
19.12.2007, 09:05 | #17 |
Злыдни
|
|
|
19.12.2007, 10:54 | #18 |
MCTS
|
Странно... С помощью связей на таблице так и не удалось добиться стабильной работы лукапа в другую компанию.
Если в поле пусто - лукап отрабатывает на ура. Если в поле уже указано значение, почему-то открывается лукап в текущую компанию + одно значение из нужной компании, которое уже указано в поле. Пришлось сделать в лукапе changeCompany() перед super(). |
|
19.12.2007, 10:57 | #19 |
Злыдни
|
|
|
19.12.2007, 11:01 | #20 |
MCTS
|
|
|
Теги |
lookup, relation, компания |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|