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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2006, 09:14   #1  
Прокопьева is offline
Прокопьева
Участник
 
40 / 10 (1) +
Регистрация: 02.03.2006
Временные таблицы в отчете
Привет всем!!!
Есть такая проблема: для построения отчета использую временную таблицу
(если использовать обычную таблицу - то никакой проблемы).
В отчете группируются данные по подразделениям. При использовании временной таблицы "съедается" последняя строчка таблицы и соответственно отчет по ней не строиться, причем если делать выборку по значениям именно последней строки - отчет пишет что нет данных.
У кого-нибудь есть идеи как это исправить или с чем это может быть связано?
За ранее большое спасибо за любой ответ!
Старый 08.08.2006, 09:26   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Проблема, скорее всего, в заполнении этой временой таблицы. Попробуйте запустить джоб или обозревателем (подпиленным) посмотреть на данные этой таблицы.

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

С Уважением,
Георгий
Старый 08.08.2006, 09:27   #3  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Интересно было бы взглянуть на метод fetch.
Старый 08.08.2006, 09:45   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Я думаю, что он там не перекрыт
Старый 08.08.2006, 10:06   #5  
Прокопьева is offline
Прокопьева
Участник
 
40 / 10 (1) +
Регистрация: 02.03.2006
Цитата:
Сообщение от DreamCreator
Интересно было бы взглянуть на метод fetch.
Он действительно не перекрыт. А надо?

Цитата:
Сообщение от George Nordic
Проблема, скорее всего, в заполнении этой временой таблицы. Попробуйте запустить джоб или обозревателем (подпиленным) посмотреть на данные этой таблицы.

И еще: пожалуйста, не используйте временные таблицы для построения отчетов.
Джоб выводит все значения таблицы, т.е. та пропадающая не месте, но она не обрабатывается почему-то... А какие могут быть проблемы с ее заполнением?
Интересно то, что если на этой таблице поставить свойство temporary = No, то выводятся все значения, а если = Yes, то последнего нетю... .

А почему не стоит использовать временные таблицы?
Старый 08.08.2006, 10:10   #6  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Цитата:
Сообщение от Прокопьева
А почему не стоит использовать временные таблицы?
Вы что, это же темповые данные, а не настоящие! - первый шаг к безалкогольному пиву и проч..
За это сообщение автора поблагодарили: axaLearner (1), DreamCreator (1).
Старый 08.08.2006, 10:16   #7  
Прокопьева is offline
Прокопьева
Участник
 
40 / 10 (1) +
Регистрация: 02.03.2006
Цитата:
Сообщение от MironovI
Вы что, это же темповые данные, а не настоящие! - первый шаг к безалкогольному пиву и проч..
Мне это уже не страшно... Я не пью вообще

Мне не нужно хранить эти данные как настоящие... Делается куча выборок, условий, отбираются данные, которые еще потом обрабатываются... В нормальную таблицу незя их запихивать, если учесть, что этот отчет могут запустить на исполнением многие пользователи...
Старый 08.08.2006, 10:17   #8  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
А вот примерно такие конструкции тоже вызовут сбой?

PHP код:
public void init()
{
    if(
element.args() && classIdGet(element.args().caller())== classNum(RKDefectList))
        
rkDefectList element.args().caller();
    else
        throw 
error("Неправильный вызов отчета");

    
tmpRKDefectList_1.setTmpData(rkDefectList.parmTmpRKDefectList());

    
super();
}
public 
boolean fetch()
{
    
boolean ret;
    ;

    while 
select tmpRKDefectList_1
        this
.send(tmpRKDefectList_1);

    
ret super();

    return 
ret;

Цитата:
Сообщение от MironovI
Вы что, это же темповые данные, а не настоящие! - первый шаг к безалкогольному пиву и проч..
Старый 08.08.2006, 10:22   #9  
Прокопьева is offline
Прокопьева
Участник
 
40 / 10 (1) +
Регистрация: 02.03.2006
В одном из дата методе отчета используется конструкция типа

tmpTable.setTmpData(tmpTable_DS);
где tmpTable - экземпляр временной таблицы,
tmpTable_DS - датасорс (аналогичная таблица).

может быть где-то здесь намудрила?
Старый 08.08.2006, 10:35   #10  
Прокопьева is offline
Прокопьева
Участник
 
40 / 10 (1) +
Регистрация: 02.03.2006
Цитата:
Сообщение от Прокопьева
В одном из дата методе отчета используется конструкция типа

tmpTable.setTmpData(tmpTable_DS);
где tmpTable - экземпляр временной таблицы,
tmpTable_DS - датасорс (аналогичная таблица).

может быть где-то здесь намудрила?
Хотя нет... без этого метода аналогично работает....
Старый 08.08.2006, 10:56   #11  
Jabberwocky is offline
Jabberwocky
Microsoft Dynamics
Аватар для Jabberwocky
Сотрудники Microsoft Dynamics
 
274 / 307 (11) ++++++
Регистрация: 02.09.2005
Адрес: Москва
Цитата:
Сообщение от Прокопьева
В одном из дата методе отчета используется конструкция типа

tmpTable.setTmpData(tmpTable_DS);
Некорректная конструкция, setTmpData принимает параметр типа Common, а Вы передаете QueryBuildDataSource.... И вообще, советую не использовать временные таблицы в Query отчета, особенно если есть с ними join.... Если уж очень хочется использовать временную таблицу, перегружайте fetch.
__________________
You should use Bing before asking dumb questions.
Старый 08.08.2006, 11:14   #12  
Прокопьева is offline
Прокопьева
Участник
 
40 / 10 (1) +
Регистрация: 02.03.2006
Цитата:
Сообщение от Jabberwocky
Некорректная конструкция, setTmpData принимает параметр типа Common, а Вы передаете QueryBuildDataSource.... И вообще, советую не использовать временные таблицы в Query отчета, особенно если есть с ними join.... Если уж очень хочется использовать временную таблицу, перегружайте fetch.
А как это сделать? Пример можете привести?
Старый 08.08.2006, 11:21   #13  
Прокопьева is offline
Прокопьева
Участник
 
40 / 10 (1) +
Регистрация: 02.03.2006
Знатоки, поясните плиз свою точку зрения почему советуете не использовать временные таблицы.
Старый 08.08.2006, 11:22   #14  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Выше же был приведен пример:
Временные таблицы в отчете
Старый 08.08.2006, 11:22   #15  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
http://www.steenandreasen.com/download.asp
Там как раз глава про отчеты выложена. Советую прочитать. Там полно всевозможных примеров на все случаи жизни.
Старый 08.08.2006, 11:30   #16  
Jabberwocky is offline
Jabberwocky
Microsoft Dynamics
Аватар для Jabberwocky
Сотрудники Microsoft Dynamics
 
274 / 307 (11) ++++++
Регистрация: 02.09.2005
Адрес: Москва
Пример из Developer's Guide:

Modifying the Fetch method on a report
The Fetch method is the main loop of a report. The programmer may override the fetch method if there are very special constraints on which records to show. The Fetch method can be modeled in X++ as

//Create a new query to fetch the records
QueryRun qr = new QueryRun(element.query());

//Open the prompt dialog
if(qr.prompt())

{ //The user didn't press cancel
while(qr.next())
{
file = qr.get(file); //For all data sources
send(file);
}
}

If you want to print only records that satisfy some special constraint that is difficult to express as a range in the query, write the code above, and only allow Send to be called if the constraint (expressed as a function by the same name in the example below) is satisfied:

while (qr.next())
{
file = qr.get(file); //For all data sources
if(constraint())
send(file);
}
__________________
You should use Bing before asking dumb questions.
Старый 08.08.2006, 11:45   #17  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от oip
Там как раз глава про отчеты выложена.
Это там, где chinese edition?

Кстати, 2 George Nordic : почему же все-таки вы не рекомендуете строить отчеты на временных таблицах? RecId экономим?

Последний раз редактировалось RVS; 08.08.2006 в 11:49.
Старый 08.08.2006, 11:47   #18  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
А чем Вас "English edition" не устраивает?
Старый 08.08.2006, 12:03   #19  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от RVS
Это там, где chinese edition?

Кстати, 2 George Nordic : почему же все-таки вы не рекомендуете строить отчеты на временных таблицах? RecId экономим?
Кстати, русская версия этой главы тоже должна скоро там появиться
Видимо просто автор в отпуске, поэтому работа стоит
Старый 08.08.2006, 12:05   #20  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Ч-ччерт, не туда посмотрел.

Виноват
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не страшно ли временные таблицы временно сделать постоянными? Gustav DAX: Программирование 11 09.02.2006 11:04
Временные таблицы должны быть вложенными (inner)... Deep Dreamer DAX: Программирование 14 08.09.2005 16:23
Временные таблицы в отчетах konfet DAX: Программирование 5 19.01.2005 11:32
Временные таблицы vasiliy DAX: Программирование 6 09.11.2004 11:04
Временные таблицы Diamond DAX: Программирование 3 30.12.2003 09:33

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

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

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