|
![]() |
#1 |
Участник
|
![]()
Перекрыл в своей форме метод executeQuery() следующим образом. У меня на форме два переключателя Приход/Расход (это первый)
и какие виды расходов и приходов бывают Виды Расходов (это второй радио баттон), и в таблице myTable я сделал два поля по которым я хочу сортировать и выводить данные на форму, Direction (для первого) и Opeartion (для второго радио баттона), в зависимоcти от положения этих двух радио баттанов. void executeQuery() { super(); qbDS_gl.clearRange(fieldnum(myTable, Direction)); qbDS_gl.clearRange(fieldnum(myTable, Operation)); switch (ctrlDirection.selection()) //радио батон { case H_Direction::Issue: //Операция Расход if (ctrlTabSales.isActivePage()) //закладка на кот. радио баттон { switch (rbSales.selection()) { case H_OperationType::Sales: //вид расхода qbr = qbDS_gl.addRange(fieldnum(myTable, Direction)); qbr.value(enum2str(H_Direction::Issue)); qbr = qbDS_gl.addRange(fieldnum(myTable, Operation)); qbr.value(enum2str(H_OperationType::sales_Sales)); break; case O5_InventOperationSalesType::None: ***** ***** break; } } break } break } Но теперь я не могу редактировать форму. Т.е. ни новую строку не добавить, ни изменить старую. Можно ли редактировать форму, если на нее наложен addRange? |
|
![]() |
#2 |
NavAx
|
Добрый день.
Для начала, super() следует вынести в конец метода executeQuery()
__________________
Чудес не бывает (c), истина где-то рядом (c)... |
|
![]() |
#3 |
Участник
|
![]() Цитата:
Сообщение от Ser
Добрый день.
Для начала, super() следует вынести в конец метода executeQuery() ![]() |
|
![]() |
#4 |
Участник
|
Конечно можно.
Откройте хотя-бы складские журналы - комбобокс "Просмотр" изменяет значение Range'а на датасоурсе
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#5 |
Участник
|
сначала выясните, что именно этот код приводит к нередактированию. закомментируйте его и попробуйте запустить
|
|
![]() |
#6 |
Участник
|
все спасибо, разобрался, в методе write MyTable_DS вернул первоначальный вид. Но все равно обращался не зря, помогли, так как я не знал, что super() надо ставить внизу. Спасибо!
|
|
![]() |
#7 |
Участник
|
Цитата:
Сообщение от Hans
<skip> я не знал, что super() надо ставить внизу.
Opening a form: sequence of events |
|
![]() |
#8 |
Участник
|
А можно ли к этой форме (MyTable) еще сделать связь с InventDim? Поле у MyTable типа InventDimID есть. Собственно вопрос такой, можно ли так вообще делать? Grid на форме MyTable заполняется динамически при переключении радио батона.
У меня теперь, в моей форме после того как я выставляю свойство LinkType = InnerJoin и JoinType = MyTable (второго DS, InventDim_DS типа InventDim), в моем динамическом гриде форме вообще ничего нет. |
|
![]() |
#9 |
Участник
|
Опять отсылаю к складским журналам
![]() Например, в форме InventJournalTransfer (перенос) соединяется две штуки InventDim с InventJournalTrans
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#10 |
Участник
|
вопрос
Цитата:
Сообщение от AndyD
Опять отсылаю к складским журналам
![]() Например, в форме InventJournalTransfer (перенос) соединяется две штуки InventDim с InventJournalTrans void init() { #DEFINE.DataSourceReceipt(3) QueryBuildDatasource qb; super(); qb = this.query().datasourceNo(#DataSourceReceipt); qb.clearLinks(); qb.addLink(fieldNum(InventJournalTrans,toInventDimid),fieldNum(Inventdim,inventDimId)); } Спасибо! Так работает. |
|
![]() |
#11 |
Участник
|
Ну это необходимо, если у вас несколько полей в таблице имеют тип InventDimId
__________________
Axapta v.3.0 sp5 kr2 |
|