AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.03.2010, 12:36   #1  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
RunBaseBatch query изгаления
Есть некий класс, наследованный от RunBaseBatch, выполняющий несколько операций, с разными параметрами запросов к одной и той же таблице.

На данный момент он переделывается на поддержку query, а не обычного цикла селекта в коде. Но т.к. операций несколько, то хочется для каждой задавать свои параметры, а система при создании нескольких источников данных показывает на форме при запуске класса только один, да и контролировать его название не получается.

Вопросы:
- как в классе сделать отображение нескольких источников данных для задания параметров?
- как проще, удобнее и правильнее контролировать названия этих источников?
Старый 01.03.2010, 13:30   #2  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от uchenik Посмотреть сообщение
Но т.к. операций несколько, то хочется для каждой задавать свои параметры, а система при создании нескольких источников данных показывает на форме при запуске класса только один
Механизм с использованием наследования от класса RunBaseBatch работает на основе sql-запроса. Одного запроса.
Насчёт параметров. Это всё аксапта делает сама и программировать даже не нужно.
Цитата:
Сообщение от uchenik Посмотреть сообщение
да и контролировать его название не получается.
Всё правильно.
Если хотите можете сделать красивую форму всю в галочках и открывающихся списках. Сколько элементов не знаю там будет это ваша фантазия.
Вообщем создать свой создатель запросов.
Т.е. пользователь там будет видеть то что он от вас просит. А по какой-нибудь кнопке будете вызывать этот класс(наследник RunBaseBatch) подкидывать ему query который навоял пользователь.
Цитата:
Сообщение от uchenik Посмотреть сообщение
- как в классе сделать отображение нескольких источников данных для задания параметров?
Класс нужен запрос а не источники данных. Один запрос.
Цитата:
Сообщение от uchenik Посмотреть сообщение
- как проще, удобнее и правильнее контролировать названия этих источников?
Правильнее никак не контролировать. Допустим один пользователь вам сказал пусть вот эта таблица будет называтся так. Мне так удобнее и понятнее. А через какое то время туда зайдёт второй пользователь который знаком с названиями таблица родными но совершенно не знаком с вашими договорённостями с предыдущим пользователем.
Да и не забудьте что любым запрос не может быть. Потому что вам с него ещё данные нужно снимать. Т.е. каркас всё таки должен быть предопределён.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.

Последний раз редактировалось miklenew; 01.03.2010 в 13:33.
Старый 01.03.2010, 13:48   #3  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
Ну у запроса-то есть источники данных и там можно добавить несколько одинаковых.
На счет не контролировать - это робот (довольно древний) для обработки заказов, при разных задачах нужны разные фильтры, но разносить по разным классам уже не хотелось бы, да и порядок выполнения задач важен.

Пока сделал через "костыли", но только для одной задачи.
Старый 01.03.2010, 14:03   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от uchenik Посмотреть сообщение
- как в классе сделать отображение нескольких источников данных для задания параметров?
Во-первых, метод QueryRun() должен возвращать экземпляр класса QueryRun, содержащий Query со всеми присоединенными источниками данных.
Во-вторых, в диалоге отображаются те источники данных и поля, для которых добавлены условия (т.е. сделано addRange(fieldNum(..) на соответствующем источнике). Не обязательно заполнять Value() - это можно сделать в запросе на форме.
В третьих, для этих условий не должен стоять статус Hidden

Если это сделано, то условия и источники будут отражаться в диалоге (правда, не все - есть ограничение на кол-во выводимых полей
__________________
Axapta v.3.0 sp5 kr2
Старый 01.03.2010, 15:47   #5  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
1 - возвращает.
2 - не правда, но даже если самому их добавить. все равно не отображается.
3 - не стоит.

При добавлении двух одинаковых источников показывается один, в настройке запроса видно два, при указании параметров для обоих с основной формы поля источников пропадают.
Старый 01.03.2010, 15:50   #6  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
Ммм...
2 - частично не правда, для первого же можно ренджи не задавать, а так оказалось. что и статус Locked тоже так же себя ведет.

Спасибо.
Старый 01.03.2010, 16:13   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Не правда что?

Я указал, что требуется, для того что-бы нужные вам поля выводились в диалоге.
__________________
Axapta v.3.0 sp5 kr2
Старый 01.03.2010, 16:30   #8  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
Не правда в том, что если добавить один источник, он появляется в форме, если добавить точно так же другой (оба не создавая дополнительных ренджей), второго в форме не будет.
Старый 01.03.2010, 16:46   #9  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
На второй таблице у вас нет индексных полей. Вот они и не появились.
Если явно не добавлены ренджы. То по умолчанию появляются именно индексные поля.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 01.03.2010, 19:16   #10  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
Как это?
Я добавляю две одинаковые таблицы.
Старый 01.03.2010, 21:56   #11  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Скриншотов парочку сделайте.
Вид самого диалога. И вид того что открывается по кнопке выбор.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 02.03.2010, 00:17   #12  
JeS is offline
JeS
Участник
 
61 / 22 (1) +++
Регистрация: 30.10.2007
Адрес: СПб
uchenik, гляньте в класс RunBaseDialogModify, например, в метод updateQuery, а потом в RunBaseDialogModifyDs_RU. Обратите внимание на map tableFormGroupControlMap и то, что является его ключом. Вобщем, найдите разницу и многое может проясниться, недавно там копался.
А по поводу названия DS гляньте в вышеупомянутый RunBaseDialogModifyDs_RU в метод getDataSourceCaption - может быть это, то что Вам нужно, если я правильно Вас понял.

P.S.: Вы не упомянули про версию Аксы, я об AX 4.0 SP2 FP1
Теги
query, queryrun, runbase, runbasebatch

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
jinx: Dynamics AX – Query-Ranges und Filtereinstellungen des Benutzers Blog bot DAX auf Deutsch 0 04.02.2010 00:05
Dynamics AX Geek: Using query() Blog bot DAX Blogs 0 04.05.2009 14:05
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 04.04.2009 22:05
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 31.03.2009 06:06
Dynamics AX Geek: Using query() Blog bot DAX Blogs 0 28.10.2006 16:40

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:57.