11.10.2005, 23:47 | #1 |
Участник
|
Изменение свойств DataSource в RunTime
Привет всем.
Задача: Есть форма. Два датасорса. Допустим, CustTable и CustTrans. У CustTrans сответственно указаны след. свойства: JoinSource - CustTable, linkType - InnerJoin На форме кнопка. По этой кнопке хочу менять свойства - у CustTrans убирать joinSource, а у CustTable ставить его = CustTrans c linkType = OuterJoin , к примеру. Как то это можно сделать?? Пробовал менять через Form.save() и через TreeNode (тоже - AOTSave()) Но в обоих случаях пишет, что нельзя сохранить форму, которая исполняется. Какие-то идеи?? И еще, как BaseEnum называется для элементов linkType? Спасибо всем заранее |
|
12.10.2005, 01:31 | #2 |
Member
|
Взгляните, на всякий случай, на форму SalesLineBackOrder.
__________________
С уважением, glibs® |
|
12.10.2005, 08:19 | #3 |
Участник
|
Re: Изменение свойств DataSource в RunTime
Цитата:
Изначально опубликовано kashperuk
Пробовал менять через Form.save() и через TreeNode (тоже - AOTSave()) Но в обоих случаях пишет, что нельзя сохранить форму, которая исполняется. Цитата:
И еще, как BaseEnum называется для элементов linkType?
__________________
Axapta v.3.0 sp5 kr2 |
|
12.10.2005, 11:14 | #4 |
Участник
|
2glibs:
Спасибо, посмотрю. 2AndyD: Нужно менять только запрос Цитата:
FormLinkType
|
|
12.10.2005, 11:31 | #5 |
Участник
|
Да, прятать и показывать два таба, и дублировать датасорсы думал, просто как-то не очень это красиво. Может все таки можно изменять динамически?
|
|
12.10.2005, 12:54 | #6 |
Участник
|
Можно попробовать так
__________________
Axapta v.3.0 sp5 kr2 |
|
12.10.2005, 13:10 | #7 |
Moderator
|
а clearLinks а потом заново joinMode(...) ?
|
|
12.10.2005, 13:22 | #8 |
Участник
|
Цитата:
а clearLinks а потом заново joinMode(...) ?
__________________
Axapta v.3.0 sp5 kr2 |
|
12.10.2005, 16:10 | #9 |
Участник
|
2AndyD:
Попробую так. Только мне нужно во втором тоже inner Join . Но вроде решается, если помимо этого указать fetchMode(QueryFetchMode::One2One); Спасибо |
|
12.10.2005, 16:43 | #10 |
Участник
|
Цитата:
Изначально опубликовано kashperuk
Только мне нужно во втором тоже inner Join .
__________________
Axapta v.3.0 sp5 kr2 |
|
12.10.2005, 16:53 | #11 |
Участник
|
Ну, суть задачи с следующем. Может заодно подскажете путь решения получше.
Пытаюсь поменять порядок группировки. То есть допустим была по CustTable.CustGroup, а потом по CustTrans.TransDate А я хочу наоборот. сначала по TransDate, a потом по CustGroup Группировку одну для двух таблиц нельзя написать как на SQL - но посылает он, объеденив group by уже. А я вот пытаюсь порядок таблиц поменять, но так, чтобы запрос остался таким же. только группировка чтобы была в другом порядке. Может чего и не так делаю. Поправьте |
|
12.10.2005, 18:14 | #12 |
Участник
|
По-моему я совсем потерялся. На всякий случай приведу код, может поможет
PHP код:
__________________
Axapta v.3.0 sp5 kr2 |
|
12.10.2005, 18:28 | #13 |
Участник
|
Нет. Все правильно понимаете. Я же написал выше, что подходит мне такой вариант решения проблемы
Спасибо еще раз. Просто еще не пробовал на своей задаче, а только на тестовом примере с Form6 - там вроде все красиво |
|
13.10.2005, 11:23 | #14 |
Участник
|
В продолжение рассмотренного примера.
А возможно ли сделать следующий порядок группировки? group by B.TransDate, A.CustGroup, B.Invoice |
|
13.10.2005, 11:31 | #15 |
Участник
|
Т.е. чтобы в первом случае было группировка только по CustGroup и TransDate?
__________________
Axapta v.3.0 sp5 kr2 |
|
13.10.2005, 11:36 | #16 |
Участник
|
Нет, именно, чтобы на сервер пошел такой порядок группировки.
Там же он выстраиватся в зависимости от порядка таблиц. то есть, мы родителем поставим CustTrans, там поставим группировку по TransDate, потом заjoinим CustTable, в котором group by CustGroup. А потом получается нужно опять добавлять CustTrans с группировкой по Invoice. Ну, я в принципе сам вот только что ответил. Просто это нужно динамически добавлять датасорсы к последнему из добавленных. Очень криво. |
|