22.08.2011, 11:29 | #1 |
Участник
|
AllowCrossCompany в запросе формы
Доброго времени суток, коллеги
Я передаю запрос по всем филиалам через метод executeQuery() дата сорса через функцию this.query(query). При загрузке формы все нормально, выдаются все нужные записи, однако при любом действии мышкой или клавиатуры на форме, неоднократно возникает следующий инфолог: Ошибка времени выполнения: должен вызывать метод "" в удаленном режиме. При выставлении брейкпоинта на метод Info/Add, в стеке вызовов оказывается только этот метод и никаких его вызывающих. Отладка тоже ничего не показала: такое ощущение, что ошибка возникает спонтанно, совершенно случайным образом. Буду рад услышать хоть что-нибудь по подобной проблеме. |
|
22.08.2011, 13:38 | #2 |
Участник
|
Такая ошибка иногда выскакивает, когда в индексном файле проблема (во всяком случае у меня такое было). Попробуйте перестроить индекс.
А какое отношение имеет CrossCompany к вашей проблеме? Если у вас на датасорсе стоит параметр AllowCrossCompany "Yes", то наверное и в передаваемом query надо вызывать: X++: query.allowCrossCompany(true);
__________________
http://www.axdevposts.blogspot.com Пришел, уведел.... отойди, дай другому увидеть! |
|
23.08.2011, 10:26 | #3 |
Участник
|
Датасорс моей формы не использует индексов. Проблема возникает лишь в том случае, когда я передаю в этот датасорс запрос с параметром AllowCrossCompany(true), если же запрос, передаваемый через функцию this.query(query) без этого параметра, то ошибка не возникает.
На датасорсе же нет параметра AllowCrossCompany, есть только CrossCompanyAutoQuery, изменение которого на возникновение ошибки никак не влияет. |
|
23.08.2011, 14:28 | #4 |
Участник
|
Я имел в виду AOI, обычно когда выбрасывается стек-трейс без имени метода, надо обновить индекс приложения.
Цитата:
Может ошибка возникает при выполнении какого-то дисплей метода? Приведите код пожалуйста. Согласен, не вник особо
__________________
http://www.axdevposts.blogspot.com Пришел, уведел.... отойди, дай другому увидеть! |
|
23.08.2011, 16:04 | #5 |
Участник
|
попробуйте еще проверить параметр SetCompany на дизайне формы. Значение должно быть "No"
__________________
http://www.axdevposts.blogspot.com Пришел, уведел.... отойди, дай другому увидеть! |
|
|
За это сообщение автора поблагодарили: A_BAS (1). |
24.08.2011, 10:59 | #6 |
Участник
|
Спасибо, но к сожалению ничего из предложенного не помогло.
|
|
25.08.2011, 03:47 | #7 |
Участник
|
Привожу код. Метод executeQuery()
Query подтягивается из мапа, который создается в классе дриллдауна. public void executeQuery() { Query query; ; query = drillDownEngine.getQuery(this.table()); if (query) { TabPageLedgerTrans.visible(true); this.query(query); super(); } else { TabPageLedgerTrans.visible(false); } } Да, задача показать записи из разных компаний. Нет, дисплей методов на форме не существует. |
|
25.08.2011, 09:54 | #8 |
Участник
|
А этот источник данных является единственным на форме? Если нет, то является ли он подчинённым либо главным по отношению к другим датасурсам? Таблица временная или постоянная?
У меня как-то была вот такая проблема Display метод временной таблицы выполняется в компании DAT Я понимаю, что это не ваш случай, но вдруг наведёт ещё на какие-нибудь мысли |
|
25.08.2011, 13:01 | #9 |
Участник
|
На форме пять датасорсов и они используются в зависимости от запросов в мапе. Ни на одном датасорсе не заполнен параметр JoinSource. Таблица - LedgerTrans.
|
|
25.08.2011, 13:13 | #10 |
Участник
|
|
|
26.08.2011, 12:28 | #11 |
Участник
|
Если я вас правильно понял, когда онид DS активен, остальные не видны.
Может попробовать тогда "поотключать" все неактивные датасорсы, например, закоментировав super() в executeQuery. Еще конечно, чтоб решить проблему быстро и не разбираться долго, предлагаю вам заполнять временную таблицу данными из разных компаний.
__________________
http://www.axdevposts.blogspot.com Пришел, уведел.... отойди, дай другому увидеть! |
|