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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.10.2004, 09:39   #1  
har is offline
har
Участник
 
8 / 10 (1) +
Регистрация: 29.10.2004
Адрес: Москва
Значения параметров из SysQueryForm.
Как получить значения параметров из SysQueryForm?

Из формы пользователь вызывает форму фильтра (SysQueryForm) и накладывает свои критерии выбора. Как получить значение выбранных критериев наложенного фильтра? В форму, SysQueryForm возвращает только одно значение, а необходимы все значения выбранных пользователем критериев.
Конкретно форма “приемка” (Управление запасами/периодические операции/Приемка ->кнопка “выбор”), нужно получить значение выбранной пользователем даты. Заранее признателен за помощь.
Старый 29.10.2004, 10:03   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Не нашел такого пункта меню.
SysQueryForm вызывается из QueryRun.prompt() все ограничения, сортировки и пр. попадает в QueryRun.query(). Остается только найти тот самый QueryRun
Старый 29.10.2004, 10:10   #3  
har is offline
har
Участник
 
8 / 10 (1) +
Регистрация: 29.10.2004
Адрес: Москва
Уточнение расположение формы "приемка"

Управление запасами/периодические операции/Спецификации/Приемка ->кнопка “выбор”).
Старый 29.10.2004, 10:10   #4  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Не нашел такого пункта меню.
Может он про Периодические оперции/Спецификации/Приемка ?
Старый 29.10.2004, 10:24   #5  
har is offline
har
Участник
 
8 / 10 (1) +
Регистрация: 29.10.2004
Адрес: Москва
Да Андрей ты прав, меню находится:


Управление запасами/Периодические операции/Спецификации/Приемка ->кнопка “выбор”).
Старый 29.10.2004, 10:36   #6  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
А где ты хочешь получить эти значения ? В какой именно точке кода ?
А вообще, общий подход Wamr сказал.
Старый 29.10.2004, 10:54   #7  
har is offline
har
Участник
 
8 / 10 (1) +
Регистрация: 29.10.2004
Адрес: Москва
Значения параметров мне необходимо получить в перекрытом методе clicked() добавленной кнопки. Значения параметров в дальнейшем необходимо использовать для выборки данных из таблиц сводного планирования. Конечной целью является перенос спланированных количеств спецификаций из сводного плана в форму приемка.
Старый 29.10.2004, 11:02   #8  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Насколько я могу судить, это несколько неверный подход...
Посмотри tutorial_RunbaseForm. Я бы перекрыл метод хм.. ну, допустим chechCloseDialog и проверял бы там. заодно можно и не дать закрыть окно, если паметрв введены неверно.

С Уважением,
Георгий
Старый 29.10.2004, 11:03   #9  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Признаться, мне сложно понять, всю красоту Вашего замысла, но думаю, результаты работы SysQueryForm Вы сможете найти в multiReportFinish.queryRun().query().
Старый 29.10.2004, 11:09   #10  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
PHP код:
void clicked()
{
    
QueryBuildDataSource qbds;
    
int n;
 ;
    
super();
    
qbds multiReportFinish.query().dataSourceNo(1);
     
// ......

Попробуй что-нибудь вроде этого. В дальнейшем можно будет перебрать Ranges и их значения.

Цитата:
но думаю, результаты работы SysQueryForm Вы сможете найти в multiReportFinish.queryRun().query().
Честно говоря, сейчас не могу проверить, но насколько я помню, QueryRun() там не инициализован. Но это надо проверять.

Исправление: Хотя нет, в Query() значений Ranges вы тоже не найдете.
Старый 29.10.2004, 11:23   #11  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Вот, вроде бы работающий вариант:

PHP код:
void clicked()
{
    
BomParmReportFinish p;
 ;
    
super();
  
    
select p where p.ParmId == multiReportFinish.parmId();

А уже в BomparmReportFinish лежат ваши параметры.
Старый 29.10.2004, 12:17   #12  
har is offline
har
Участник
 
8 / 10 (1) +
Регистрация: 29.10.2004
Адрес: Москва
Андрей спасибо за желание помочь.

Вы абсолютно правы в таблице BomParmReportFinish хранятся строки отфильтрованные в соответствии с параметрами заданными пользователем в форме SysQueryForm. Но трудность заключается в том, что в таблице BomParmReportFinish нет значения нужного мне критерия, а именно Даты выбранной пользователем в SysQueryForm, а эта дата необходима для дальнейших выборок.
Старый 29.10.2004, 12:24   #13  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Но трудность заключается в том, что в таблице BomParmReportFinish нет значения нужного мне критерия, а именно Даты выбранной пользователем в SysQueryForm
А я, честно говоря, вообще не вижу поля Дата в таблице Картотека номенклатуры.
Что это за поле ? Оно именно так и называется "Дата" ? Это стандартное поле или добавленное вами ?
Старый 29.10.2004, 12:34   #14  
har is offline
har
Участник
 
8 / 10 (1) +
Регистрация: 29.10.2004
Адрес: Москва
Все правильно. Это я не точно пояснил. По умолчанию в SysQueryForm выбрана “Картотека номенклатуры”. Затем пользователь добавляет в SysQueryForm таблицу “Спланированный заказ”, а в ней выбирает поле “Дата заказа”. Именно значение критерия “Дата заказа” необходимо для получения необходимой выборки.
Старый 29.10.2004, 12:42   #15  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Ну тогда у вас два варианта:

1. Разобраться почему у multiReportFinish не инициализирован QueryRun.
2. В код, заполняющий BomParmReportFinish добавить возможность сохранения даты.

Первый способ универсальнее и идеологически более правильный.

p.s. А он кстати по дате фильрует ?
Старый 29.10.2004, 12:49   #16  
har is offline
har
Участник
 
8 / 10 (1) +
Регистрация: 29.10.2004
Адрес: Москва
Фильтрует по дате при условии выбора в таблице “Спланированный заказ” критерия для поля “план”.
Старый 29.10.2004, 13:31   #17  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Посмотрел немного код..
п.1 не поможет
надо сразу смотреть п.2, точнее где-то тут RunBaseMultiParm.choose()
Старый 29.10.2004, 14:03   #18  
vpa is offline
vpa
Участник
 
10 / 10 (1) +
Регистрация: 05.10.2004
Адрес: Москва
Re: Значения параметров из SysQueryForm.
Цитата:
Изначально опубликовано har
Как получить значения параметров из SysQueryForm?

Из формы пользователь вызывает форму фильтра (SysQueryForm) и накладывает свои критерии выбора. Как получить значение выбранных критериев наложенного фильтра? В форму, SysQueryForm возвращает только одно значение, а необходимы все значения выбранных пользователем критериев.
В clicked() кнопки на форме можно попробовать вот что:

Посчитать количество наложенных фильтров:
{

Table1_ds.queryRun().query().dataSourceNo(1).rangeCount()

}

Найти какой-нибудь интересующий нас фильтр:

{

if(Table1_ds.queryRun().query().dataSourceNo(1).findRange(fieldNum(Table1, Field1)))
info(queryvalue(range.value()));

}

Или имелось в виду что-нибудь другое?
Старый 29.10.2004, 14:18   #19  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
В данном случае данный прием работать не будет.
Старый 29.10.2004, 15:25   #20  
har is offline
har
Участник
 
8 / 10 (1) +
Регистрация: 29.10.2004
Адрес: Москва
С позволения Андрея позволю себе добавить.
В форме BOMReportFinish КОНЕЧНЫЙ фильтр накладывается по полю ParmId таблицы BOMReportFinish (это значение получить не проблема). Значения ParmId в таблице BOMReportFinish меняются в соответствии с критериями наложенными пользователями в SysQueryForm во время закрытия формы SysQueryForm. То есть всем записям, удовлетворяющим критериям фильтра, присваиваются одинаковые значения ParmId. Значение ParmId возвращается в форму, и по этому значению накладывается фильтр. Но дело в том, что для решения поставленной задачи необходимы именно критерии пользователей, сделанные в SysQueryForm и которые не возвращаются в форму BOMReportFinish.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
где хранятся значения полей удаленных строк? chanchala DAX: Программирование 16 04.09.2008 10:45
Пользовательский генератор строк-перечислений...- 2: Доп.вкладка для SysQueryForm Gustav DAX: База знаний и проекты 1 04.05.2007 18:04
Как получить значения полей (modifiedDate, modifiedTime, modifiedBy и др.) при работе с объектами AOT типа Map? LRA DAX: База знаний и проекты 15 02.04.2007 13:37
Где Аксапта хранит значения Параметров!? 3oppo DAX: Программирование 1 30.08.2006 07:48
Значения по умолчанию в SysQueryForm dmit1606 DAX: Программирование 2 18.02.2004 11:43

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

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

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