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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.03.2004, 13:53   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Автоматическая подстановка Range в Query
Динамически создаю Query

PHP код:
    Query    querySales;
    
QueryBuildDataSource    dsSalesTable;
    ;
    
querySales  = new Query();
    
dsSalesTable querySales.addDataSource(tablenum(SalesTable)); 
При использовании такого Query в форме для задания условий (extends RunBaseBatch) автоматически появляется список полей для задания Range. Этот список полей берется из списка полей того индекса указанной таблицы, который имеет минимальный системный Id.

Какой настройкой можно подавить эту автоматическую подстановку Range? Ну, кроме указания собственных Range.

Axapta 2.5 SP3
Старый 30.03.2004, 14:32   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
а вы перестаньте создавать query динамически
тогда вы увидите, что у него есть свойство interactive
Старый 30.03.2004, 14:48   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Какое отношение свойство Interactive имеет к данному вопросу?

Если имелось в виду запретить пользователю динамически менять значение Range, то для этого надо в методе showQueryValues из формы на базе RunBaseBatch вернуть false.

Я же о другом спрашивал. Как запретить автоматический выбор списка полей для возможного указания Range? Мне необходимо, чтобы пользоватиель мог указать нужные значения Range, но чтобы они не предлагались автоматически!

Цитата:
а вы перестаньте создавать query динамически
Вопрос филосовский. Лично я предпочитаю, если это возможно, создавать их именно динамически. И так уже АОТ напоминает большую помойку. Я стараюсь по возможности хотя бы не добавлять мусора от себя.
Старый 30.03.2004, 15:08   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: Автоматическая подстановка Range в Query
Цитата:
Изначально опубликовано Владимир Максимов
Какой настройкой можно подавить эту автоматическую подстановку Range? Ну, кроме указания собственных Range.
Тогда я неправильно понял.
Извините.
Старый 30.03.2004, 15:08   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Владимир Максимов
И так уже АОТ напоминает большую помойку. Я стараюсь по возможности хотя бы не добавлять мусора от себя.
Используйте проекты.
Старый 30.03.2004, 15:21   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Используйте проекты
В Axapta есть способ определить в каком именно проекте используется тот или иной объект? Я не нашел.

А это значит, что разгрести "помойку" не получится. Ну, я то может и вспомню, в каком именно проекте я использовал тот или иной объект. Это если проектов немного или память очень хорошая.

А если речь идет о чужом объекте? Например, нравится мне вот этот Query, но чуть-чуть надо подкорректировать. Я не могу этого сделать поскольку не знаю, кто еще и с какой целью его использовал. Т.е. надо создавать свой собственный, а не модифицировать существующий. Более того, невозможно использовать "чужой" объект "как есть". Вдруг его автор решит внести какие-то коррективы? Вот так "помойка" и получается.
Старый 30.03.2004, 15:44   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Бардак какой-то

Цитата:
Изначально опубликовано Владимир Максимов
В Axapta есть способ определить в каком именно проекте используется тот или иной объект? Я не нашел.
Таблица SysUtilElements

Цитата:
Изначально опубликовано Владимир Максимов
А это значит, что разгрести "помойку" не получится. Ну, я то может и вспомню, в каком именно проекте я использовал тот или иной объект. Это если проектов немного или память очень хорошая.
Для того, чтобы понять зачем нужен объект, нужно пользоватся перекрестными ссылками, а не проектами

Цитата:
Изначально опубликовано Владимир Максимов
А если речь идет о чужом объекте? Например, нравится мне вот этот Query, но чуть-чуть надо подкорректировать. Я не могу этого сделать поскольку не знаю, кто еще и с какой целью его использовал.
Посмотрите в перекрестные ссылки.

Цитата:
Изначально опубликовано Владимир Максимов
Т.е. надо создавать свой собственный, а не модифицировать существующий. Более того, невозможно использовать "чужой" объект "как есть". Вдруг его автор решит внести какие-то коррективы? Вот так "помойка" и получается.
А чужую таблицу в запросе вы таки используете?
Вдруг автор таблицы изменит индексы... вам все равно придется код править.
Это не довод.

Но как хотите.
Старый 30.03.2004, 16:25   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Таблица SysUtilElements
О какой версии идет речь. В Axapta 2.5 SP3 я такой таблицы не нашел

Цитата:
Для того, чтобы понять зачем нужен объект, нужно пользоватся перекрестными ссылками, а не проектами
Ну, обычно я ими и пользуюсь, но обычно необходимо постоянно скакать между 3...4 разными объектами (класс, отчет, query, ...) чтобы понять назначение одного объекта. Было бы удобнее, если бы они были собраны в каком-то проекте. Но я не могу узнать наверняка, есть такой проект или нет. Свой создавать?

Кроме того, перекрестные ссылки не захватывают пункты меню (или это можно определить?). Поэтому нет возможности определить, используется ли данный объект в реальной работе или это элемент отладки.

Цитата:
Вдруг автор таблицы изменит индексы... вам все равно придется код править.
Это не довод.
Есть объекты, вероятность изменения которых невелика (таблицы, индексы) и объекты, которые скорее всего будут изменяться относительно часто (формы, отчеты, Query)

Опираясь в своей форме на чужой Query сильно рискуешь, что это Query будет изменен его автором. Ведь, как правило, Query создают под конкретную форму или отчет. Значит, надо создавать свой собственный Query.

Во время отладки можно создать 3...4 варианта одного и того же Query. Спустя какое-то время AOT будет представлять из себя большую "свалку" объектов, которые создавались исключительно для отладки, но остались в AOT, поскольку никто кроме автора не знает для чего они собственно нужны.

В коде хотя бы комментарии можно написать (хотя, я крайне редко их встречаю) чтобы дать знать последующим поколениям программистов что и для чего тут было сделано.

А на сегодня, я вижу огромное количество различных объектов в АОТ, о назначении которых никто не имеет ни малейшего понятия. Перекрестные ссылки ничего не дают, поскольку в них не попадают пункты меню (или это тоже можно определить?). Значит нельзя сказать наверняка, используется ли реально этот класс (отчет, форма) или это следы чьей-то отладки.
Старый 30.03.2004, 16:39   #9  
Fedr Kuzmich is offline
Fedr Kuzmich
Участник
 
19 / 10 (1) +
Регистрация: 29.02.2004
Адрес: Москва
Позвольте вмешаться в Вашу дискуссию
Если я правильно понял Ваш вопрос, то просто перекройте метод showIndexFields, верните false для той таблицы, у которой хотите "подавить" вывод полей из индекса в диалоговое окно.
Старый 30.03.2004, 16:48   #10  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Fedr Kuzmich
Спасибо, то что надо.

PS: Теперь в этой дискуссии не будем отвлекаться на всякую ерунду
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как подставить вычисляемое значение в Range у query Poleax DAX: Программирование 16 17.06.2008 18:52
axaptafreak: Label for query range cannot be modified in AX 5.0 Blog bot DAX Blogs 0 30.08.2007 16:50
axaptafreak: Label for Query Range cannot be modified (still) Blog bot DAX Blogs 2 25.07.2007 10:09
Fred Shen: Date data type in Query Range Value Expression Blog bot DAX Blogs 0 28.10.2006 16:40
Как вытащить информацию о Range из Query raz DAX: База знаний и проекты 1 26.03.2004 11:10

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

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

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