AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
CRM
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 24.07.2002, 13:42   #1  
Андре ist offline
Андре
Moderator
Сотрудники компании GMCS
 
2.375 / 464 (20) +++++++
Registriert seit: 03.12.2001
Отчет, основанный на временной таблице
Добрый день.

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

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

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

PHP-Code:
    q this.query();
    
qr = new QueryRun(q);

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

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

PHP-Code:
    qr = new QueryRun(this.query());
    
qr.setCursor(d);
    
this.queryRun(qr);

    
super();

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

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

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

PHP-Code:
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-Code:
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();

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

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

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

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

tmpTable и Grid
__________________
С уважением,
glibs®
Alt 21.02.2007, 13:47   #11  
Eldar9x ist offline
Eldar9x
MCTS
Benutzerbild von Eldar9x
Oracle
MCBMSS
 
1.064 / 166 (8) ++++++
Registriert seit: 29.09.2006
Ort: Казань
вот, так делал однажды отчет, и тоже единственная табл., все работает
Zitat:
Ситуация следующая:
Пытаюсь создать отчет с использованием времменой таблицы. Для этого создаю класс, наследник 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);
}
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Отчет по временной таблице 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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 13:26 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.