01.03.2010, 12:36 | #1 |
Участник
|
RunBaseBatch query изгаления
Есть некий класс, наследованный от RunBaseBatch, выполняющий несколько операций, с разными параметрами запросов к одной и той же таблице.
На данный момент он переделывается на поддержку query, а не обычного цикла селекта в коде. Но т.к. операций несколько, то хочется для каждой задавать свои параметры, а система при создании нескольких источников данных показывает на форме при запуске класса только один, да и контролировать его название не получается. Вопросы: - как в классе сделать отображение нескольких источников данных для задания параметров? - как проще, удобнее и правильнее контролировать названия этих источников? |
|
01.03.2010, 13:30 | #2 |
Участник
|
Цитата:
Насчёт параметров. Это всё аксапта делает сама и программировать даже не нужно. Всё правильно. Если хотите можете сделать красивую форму всю в галочках и открывающихся списках. Сколько элементов не знаю там будет это ваша фантазия. Вообщем создать свой создатель запросов. Т.е. пользователь там будет видеть то что он от вас просит. А по какой-нибудь кнопке будете вызывать этот класс(наследник RunBaseBatch) подкидывать ему query который навоял пользователь. Цитата:
Цитата:
Да и не забудьте что любым запрос не может быть. Потому что вам с него ещё данные нужно снимать. Т.е. каркас всё таки должен быть предопределён.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. Последний раз редактировалось miklenew; 01.03.2010 в 13:33. |
|
01.03.2010, 13:48 | #3 |
Участник
|
Ну у запроса-то есть источники данных и там можно добавить несколько одинаковых.
На счет не контролировать - это робот (довольно древний) для обработки заказов, при разных задачах нужны разные фильтры, но разносить по разным классам уже не хотелось бы, да и порядок выполнения задач важен. Пока сделал через "костыли", но только для одной задачи. |
|
01.03.2010, 14:03 | #4 |
Участник
|
Цитата:
Во-вторых, в диалоге отображаются те источники данных и поля, для которых добавлены условия (т.е. сделано addRange(fieldNum(..) на соответствующем источнике). Не обязательно заполнять Value() - это можно сделать в запросе на форме. В третьих, для этих условий не должен стоять статус Hidden Если это сделано, то условия и источники будут отражаться в диалоге (правда, не все - есть ограничение на кол-во выводимых полей
__________________
Axapta v.3.0 sp5 kr2 |
|
01.03.2010, 15:47 | #5 |
Участник
|
1 - возвращает.
2 - не правда, но даже если самому их добавить. все равно не отображается. 3 - не стоит. При добавлении двух одинаковых источников показывается один, в настройке запроса видно два, при указании параметров для обоих с основной формы поля источников пропадают. |
|
01.03.2010, 15:50 | #6 |
Участник
|
Ммм...
2 - частично не правда, для первого же можно ренджи не задавать, а так оказалось. что и статус Locked тоже так же себя ведет. Спасибо. |
|
01.03.2010, 16:13 | #7 |
Участник
|
Не правда что?
Я указал, что требуется, для того что-бы нужные вам поля выводились в диалоге.
__________________
Axapta v.3.0 sp5 kr2 |
|
01.03.2010, 16:30 | #8 |
Участник
|
Не правда в том, что если добавить один источник, он появляется в форме, если добавить точно так же другой (оба не создавая дополнительных ренджей), второго в форме не будет.
|
|
01.03.2010, 16:46 | #9 |
Участник
|
На второй таблице у вас нет индексных полей. Вот они и не появились.
Если явно не добавлены ренджы. То по умолчанию появляются именно индексные поля.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
01.03.2010, 19:16 | #10 |
Участник
|
Как это?
Я добавляю две одинаковые таблицы. |
|
01.03.2010, 21:56 | #11 |
Участник
|
Скриншотов парочку сделайте.
Вид самого диалога. И вид того что открывается по кнопке выбор.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
02.03.2010, 00:17 | #12 |
Участник
|
uchenik, гляньте в класс RunBaseDialogModify, например, в метод updateQuery, а потом в RunBaseDialogModifyDs_RU. Обратите внимание на map tableFormGroupControlMap и то, что является его ключом. Вобщем, найдите разницу и многое может проясниться, недавно там копался.
А по поводу названия DS гляньте в вышеупомянутый RunBaseDialogModifyDs_RU в метод getDataSourceCaption - может быть это, то что Вам нужно, если я правильно Вас понял. P.S.: Вы не упомянули про версию Аксы, я об AX 4.0 SP2 FP1 |
|