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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.07.2002, 13:42   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Отчет, основанный на временной таблице
Добрый день.

Пытаюсь создать отчет, построенный на таблице, которая является временной.

Перекрыл метод run() -

PHP код:
public void run()
{
    
Query q;
    
QueryRun qr;
    
VendTable vendTable;
    
dem_VendTurnover d;
    ; 
dem_VendTurnover - это и есть временная таблица

PHP код:
    q this.query();
    
qr = new QueryRun(q);

    while (
qr.next())
    {
        
vendTable qr.get(tablename2id("VendTable"));
        
d.AccountNum vendTable.AccountNum;
        
d.insert();

    } 
Это я ее заполнил.

PHP код:
    qr = new QueryRun(this.query());
    
qr.setCursor(d);
    
this.queryRun(qr);

    
super();

Вот собственно и все. В DataSource находятся 2 таблицы VendTable и dem_VendTurnover.

При запуске отчета, после заполнения временной таблицы появляется сообщение о том, что отчет не содержит данных.

В чем здесь дело ?
Старый 24.07.2002, 16:22   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Не вникал в задачу, но по коду понял, что ты пытаешься вставить записи во временную таблицу, используя переменную типа этой временной таблицы. Но при таком подходе DataSource не будет содержать этих данных. Если в форме есть и используется DataSource с именем Dem__VendTurnover, то вставлять записи нужно именно в него: Dem_VendTurnover.insert(). Или после заполнения переменной сделать Dem_VendTurnover.setTmpData(d).
__________________
Андрей.
Старый 25.07.2002, 10:40   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Пробовал так:

PHP код:
public void run()
{
    
Query q;
    
QueryRun qr;
    
VendTable vendTable;
    
dem_VendTurnover d;
    ;

    
this.query();
    
qr = new QueryRun(q);

    while (
qr.next())
    {
        
vendTable qr.get(tablename2id("VendTable"));
        
dem_vt.AccountNum vendTable.AccountNum;
        
dem_vt.insert();
    }

    
qr = new QueryRun(this.query());
    
qr.setCursor(dem_vt);
    
this.queryRun(qr);

    
super();

- dem_vt - это Name моей таблицы в DataSource.

Пробовал и так:

PHP код:
public void run()
{
    
Query q;
    
QueryRun qr;
    
VendTable vendTable;
    
dem_VendTurnover d;
    ;

    
this.query();
    
qr = new QueryRun(q);

    while (
qr.next())
    {
        
vendTable qr.get(tablename2id("VendTable"));
        
d.AccountNum vendTable.AccountNum;
        
d.insert();
        
dem_vt.setTmpData(d);
    }

    
qr = new QueryRun(this.query());
    
qr.setCursor(dem_vt);
    
this.queryRun(qr);

    
super();

Результат один и тот же - отчет не содержит данных.
Старый 25.07.2002, 10:53   #4  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Я не большой знаток написания аксаптовских отчетов (точнее, ни разу их сам не писал ), может быть поэтому я че-то не совсем понял, что это за манипуляции в примере со всякими queryRun? И что делает команда setCursor()? Может, сначала добиться, чтобы результат корректно выводился в грид на форме? Там, вроде бы, всего этого (подобных манипуляций) не нужно
__________________
Андрей.
Старый 25.07.2002, 12:47   #5  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Помнится был пример с временной таблой
http://www.axforum.info/forums/showt...=&threadid=828

А вот относительно приведенного примера... может setCursor переместить
PHP код:
this.queryRun(qr);
this.queryRun().setCursor(d); 
Старый 20.02.2007, 09:14   #6  
Antant is offline
Antant
Участник
 
82 / 17 (1) ++
Регистрация: 03.12.2005
Подскажите как все-таки быть-то. Что-то никак не получается... заполняю временную таблицу (единственная таблица в отчете) и пытаюсь ее вывести, говорит нет данных.
__________________
И почему никто меня не любит?
Да, я надоедливый
Старый 20.02.2007, 09:29   #7  
Himan is offline
Himan
Участник
Аватар для Himan
 
312 / 12 (1) ++
Регистрация: 07.11.2006
Адрес: Tumen
X++:
dem_vt.setTmpData(d);
нельзя в цикл ложить так как туда ппопадает только последняя запись ито может затереться, тебе надо выбрать все интересующие записи и потом скопом их с помощью dem_vt.setTmpData(d) в датосорс.
Просто попробуй вынести ее за цикл......
__________________
Рабочий день сокращает жизнь на 8 часов

Последний раз редактировалось Himan; 20.02.2007 в 09:32.
Старый 20.02.2007, 11:54   #8  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
To Himan:
Вы на дату сообщения, которое комментируете, посмотрите...
__________________
Андрей.
Старый 21.02.2007, 13:28   #9  
Himan is offline
Himan
Участник
Аватар для Himan
 
312 / 12 (1) ++
Регистрация: 07.11.2006
Адрес: Tumen
Цитата:
Сообщение от Antant Посмотреть сообщение
Подскажите как все-таки быть-то. Что-то никак не получается... заполняю временную таблицу (единственная таблица в отчете) и пытаюсь ее вывести, говорит нет данных.
А чем ты ее заполняеш???
__________________
Рабочий день сокращает жизнь на 8 часов
Старый 21.02.2007, 13:46   #10  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Antant, выкладывайте код.

Для начала также посмотрите про то, как пытались данные в форму затолкать недавно, и что из этого вышло.

tmpTable и Grid
__________________
С уважением,
glibs®
Старый 21.02.2007, 13:47   #11  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
вот, так делал однажды отчет, и тоже единственная табл., все работает
Цитата:
Ситуация следующая:
Пытаюсь создать отчет с использованием времменой таблицы. Для этого создаю класс, наследник RunBaseReport, прорисовываю в нем диалог, получаю критерии отчета и на основе их в методе run() заполняю временную таблицу.
В методе lastValueElementName() возвращаю указатель на свой отчет.
В datasource() отчета указываю временную таблицу. Далее, по рекомндациям, полученным на этом форуме пишу:
В методах отчета
init()
{
super();
tmpTable.setTmpData(element.args().caller().getTmpTable();
// где tmpTable - имя DataSource отчета, а getTmpTable - возвращает таблицу из класса, в котором эта таблица заполняется
}
prompt()
{
boolean ret;
ret = super(_enableCopy, _enablePages и т.д.);
this.queryRun().setCursor(tmpTable);
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отчет по временной таблице petr DAX: Программирование 3 30.11.2006 14:55
Отчет по временной таблице Perc DAX: Программирование 3 25.10.2005 10:47
Отчет по временной таблице DreamCreator DAX: Программирование 1 26.11.2004 10:03
Группировка во временной таблице LCh DAX: Программирование 5 10.06.2004 14:07
отчёт по пустой таблице Atani DAX: Программирование 2 03.11.2003 17:10

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:55.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.