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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.10.2003, 19:18   #1  
parovoz is offline
parovoz
Участник
 
18 / 12 (1) ++
Регистрация: 28.08.2003
? Как работает AutoHeader и AutoSum в отчетах?
Есть отчет, с автодизайном. У него есть забавная вещь - AutoHeader и AutoSum. Достраиваю их вручную (например, если секция срабатывает (группируется) по ItemID, добавляю в нее поле типа string на ItemName, (оба поля из одной таблицы!)).
Вопреки всем моим ожиданиям, эта конструкция не работает...

Перекрываю методы Header() и Footer() в отчете, пишу в них send(InventTable). Немногим позже понимаю, что этот путь тупиковый, надо делать как то по другому. С заголовком проходит все хорошо, а вот в боттоме печатается код номенклатуры правильный (из текущей группы, которая была в предыдущем хедере) а название уже из следующего хедера.

Вопрос как раз в том, откуда боттом берет правильный ItemID??? Он же указывает на поле той же таблицы, которую я отправил с помощью send().

Подскажите, каким все же образом автосекции можно подсунуть правильные данные?

Конечно-же можно его обмануть, и в боттоме подсовывать не текущую запись, а предыдущую (предварительно бережно сохраненную в специально предусмотренной переменной), но это как то не эстетично...
Старый 29.10.2003, 11:42   #2  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Во-первых, вы, вообще, о чем? AutoSum и AutoHeader у отчетов, кажется, нет (по крайней мере, я не нашел ). Такие свойства есть у полей в Query отчетов, по которым указана сортировка.

У AutoDesignSpecs есть GrandTotal и GrandHeader.

Если вы все же про AutoSum и AutoHeader, то вот:

Из AXDG:
Цитата:
AutoSum - determine if a group total is printed when the value in this field changes.
AutoHeader - determine whether a sub-heading should be printed whenever a value in the sort field changes.
К сожалению, ничего не понял из вашего описания проблемы. Чего ж вы добиться хотите? Может переформулируете?
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 29.10.2003, 12:24   #3  
parovoz is offline
parovoz
Участник
 
18 / 12 (1) ++
Регистрация: 28.08.2003
Верно. Это свойства полей query. По этим свойствам отчет с автодизайном строит секции (автоматически) Header и Bottom, и в боттоме выводит подитоги.
Достраиваю их вручную (метод вызывается из init'a отчета):
PHP код:
void upgradeAutoSections()
{
    
int i;
    
ReportSection repSection;
    
ReportStringControl ctrl;
    ;


    for (
1<= this.design().sectionCount(); i++)
    {
        
repSection this.design().sectionNumber(i);
        if (
repSection.sectionType() == ReportBlockType::Footer ||
            
repSection.sectionType() == ReportBlockType::Header)
        {
            
repSection.bold(7);
            
ctrl repSection.controlNo(1);
            if (
ctrl.controlType() != ReportFieldType::String)
                continue;

            if (
repSection.sectionType() == ReportBlockType::Footer)
                
ctrl.label("Итого по " FieldId2Pname(tablenum(tmpProdCounting), ctrl.dataField()));

            switch(
ctrl.dataField())
            {
                case(
fieldnum(tmpProdCountingItemID)):
                    
ctrl repSection.addStringControl(tablenum(tmpProdCounting), fieldnum(tmpProdCountingItemName));
                break;

                case(
fieldnum(tmpProdCountingConfigID)):
                    
ctrl repSection.addStringControl(tablenum(ConfigTable), fieldnum(ConfigTableName));
                break;

                case(
fieldnum(tmpProdCountingLocationID)):
                    
ctrl repSection.addStringControl(tablenum(InventLocation), fieldnum(InventLocationName));
                break;

            }
            
ctrl.width100mm(10000);
            
ctrl.left100mm(8300);
        }
    }

Комментарии:
Данные свойства полей пользователь может менять вручную, в окне параметров query (параметры отчета, кнопка "выбор") на закладке "сортировка" у отчетов без GeneratedDesign'a появляются галочки "подзаголовки" и "итоги группы".

Пример такого отчета см. расчеты с поставщиками/отчеты/проводки/закупка/закупка.

А задача такая. В подзаголовки и подитоги выводить не только код (например номенклатуры), но и название.
Старый 27.03.2008, 16:50   #4  
Volodymyr is offline
Volodymyr
Участник
 
36 / 21 (1) +++
Регистрация: 03.11.2006
Адрес: Киев
Посмотрите на Query sort field autoSum, может найдете ответы
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Количество знаков отображения после запятой в формах и отчетах AX3.0 SP3 ksenia DAX: Функционал 4 07.04.2008 17:27
JOIN программно на форме не работает rohlenko DAX: Программирование 2 31.03.2005 15:41
Временные таблицы в отчетах konfet DAX: Программирование 5 19.01.2005 11:32
CRM ABC, SWOT анализ Как это работает и работает ли вообще. ShadowFromXZone DAX: Функционал 16 02.03.2004 18:09
Не работает selectForUpdate() Andronov DAX: Программирование 6 18.08.2003 17:24
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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