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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.03.2003, 16:33   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
display метод с параметром
Возможно ли такое ?

В общем ситуация такая: есть отчет, в него в качестве параметра я передал здоровенный контейнер.
Отчет не табличного вида, а такой где куча контролов беспорядочно разбросано на дизайне.
Теперь в каждый котрол необходимо вывести свой элемент из этого контейнера.

Как это сделать ?

1. Распаковать контейнер в кучу переменных, для каждой переменной написать свой дисплей метод и привязать этот метод к контролу.

Больно много делать. Лень

2. Можно в executeQuery каждой секции в нужные контролы выводить определенные данные из контейнера.

Дело в том, что дизайн отчета уже есть, причем там разбросаны контролы, которые должны быть завязаны на данные. То есть, я так понимаю этот метод здесь не пойдет.

А хотелось бы сделать один метод вида:

display str Method(int _n)
{
if(_n == 1) return элемент 1 из контейнера
if(_n == 2) return элемент 2 из контейнера
................
}

А в контролах указать DataMethod = Metnod(k), где k для каждого контрола свой.

Можно ли реализовать что-то похожее.

Может посоветуете какое нибудь решение, а то что-то мне ничего в голову уже не лезет.

Благодарю.
Старый 19.03.2003, 17:23   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Создать свой EDT-Array (как Dimension). Воткнуть display-метод
PHP код:
display MyDimension myDim()
{
    return  
runBuf(con2ArraySource(typeId(MyDimension)),con);

И в контролах указать этот метод и ArrayIndex.

Но будет ли это легче...
Старый 20.03.2003, 09:57   #3  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Еще вариант
Не передавать параметр в display-метод, а вести глобальный счетчик, который в executeSection обнулялся а при каждом вызове метода увеличивался..
Останется мааааленькая деталь - сопоставить номер вызова метода и контрол, для которого он вызвался.
Старый 25.03.2003, 17:40   #4  
LTA is offline
LTA
Участник
 
94 / 10 (1) +
Регистрация: 27.01.2003
Судя по справке только display form data source method может принимать параметр все остальные Display методы не принимают.
Старый 17.04.2003, 13:19   #5  
Yury is offline
Yury
Участник
 
27 / 16 (1) ++
Регистрация: 25.09.2002
А по-моему, проще контролы сделать текстовыми и заполнять их в exicuteSection'е
(по имени или по id) - что-то вроде:

ReportTextControl RTC;
int i = 1;
RTC = this.controlNo(i)
while (RTC)
{
RTC.text(getText(i));
RTC = this.controlNo(i);
i++;
}
Старый 11.01.2006, 19:04   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,953 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
И в контролах указать этот метод и ArrayIndex.
Не получается.
Задаю параметр ArrayIndex - выводит пусто.
Не подскажете с чем может быть связано ?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Grid и display-метод Russland DAX: Программирование 20 09.04.2007 09:25
OFF display метод в grid.... velk DAX: Программирование 5 14.11.2006 15:28
display-метод Pavel Pustovalov DAX: Программирование 9 21.03.2006 10:03
Можно ли в display методе узнать для какого FormControl'а этот метод вызван? Dudnik Anton DAX: Программирование 3 01.02.2006 12:22
Display-метод формы Paul_ST DAX: Программирование 6 11.02.2004 12:14

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

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

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