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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.10.2007, 09:40   #1  
A-Lis-A is offline
A-Lis-A
Участник
 
5 / 10 (1) +
Регистрация: 16.08.2007
Ориентация страницы при печати отчета
В отчете в зависимости от количества выводимых столбцов должна устанавливаться либо портретная (если столбцов мало), либо альбомная (если их много) ориентация.
И вот пытаюсь установить пейзажную ориентацию. Такой код
X++:
ReportDesign1.paperOrientation(PrinterOrientation::Landscape);
ориентацию страницы меняет лишь временно - она сбрасывается обратно на портретную (т.е. на ту, которая установлена в свойствах ReportDesign1), и отчет выводится в портретной ориентации...
X++:
this.PrintJobSettings().PaperOrientation(PrinterOrientation::Landscape);
даёт тот же результат.
Если в свойствах дизайна ставим ориентацию Auto, то работает точно так же, как при установке Portrait.
Что можно сделать, чтобы ориентация не сбрасывалась обратно? Или вообще надо как-то по-другому её задавать или в каком-то методе???? Подскажите, пожалуйста
Старый 17.10.2007, 12:16   #2  
A-Lis-A is offline
A-Lis-A
Участник
 
5 / 10 (1) +
Регистрация: 16.08.2007
Конечно, можно создать два одинаковых дизайна - один портретный, а другой пейзажный... В итоге, так и сделали. Работает... но это же коряво!!!!
Старый 15.03.2013, 13:40   #3  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Как переключаться между дизайнами. Я создал второй дизайн для ТОРГ-12. В классе SalesPurchReport_RU в методе makeReportRun хочу прописать в какой дизайн вываливать репорт.
X++:
report      = reportRun.report();
report.design('123');
не помогает. Отчет выводится в штатном дизайне. Дайте совет как быть.
Старый 15.03.2013, 13:57   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А если
X++:
reportRun.design('123');
?
Старый 15.03.2013, 13:59   #5  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от smailik Посмотреть сообщение
Как переключаться между дизайнами. Я создал второй дизайн для ТОРГ-12. В классе SalesPurchReport_RU в методе makeReportRun хочу прописать в какой дизайн вываливать репорт.
X++:
report      = reportRun.report();
report.design('123');
не помогает. Отчет выводится в штатном дизайне. Дайте совет как быть.
Обычно дизайн отчета меняют в самом отчете в методе init после super(). Вот пример отчета BankStatement11 :
X++:
public void init()
{
    ;
    super();

    switch(substr(infolog.language(), 1, 2))
    {
        case 'fr'   :
            element.design('DesignFR');
            break;
        default     :
            element.design('DesignNL');
            break;
    }

    companyInfo      = CompanyInfo::find();
    bankParameters   = BankParameters::find();

}
а в классе тогда через ReportRun
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 15.03.2013, 15:11   #6  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
X++:
reportRun.design('123');
report      = reportRun.report();
не помогло. В самом отчете в метод inti тоже пробовал через elemen.design('123') где только не вставлял, тоже не помогло
X++:
void init()
{
    if (! element.args())
        throw error("@GEE28896");

    if (classidget(element.args().caller()) == classnum(SalesReport_Invoice_RU)     ||
        classidget(element.args().caller()) == classnum(PurchReport_Invoice_RU))
    {
        salesPurchReport = element.args().caller();
    }
    if (! salesPurchReport)
    {
        salesPurchReport = SalesPurchReport_Invoice_RU::constructFromArgs(element.args());
        salesPurchReport.prompt();
        salesPurchReport.reportRun(this);
        element.args().caller(salesPurchReport);
        salesPurchReport.preRun();
    }

    super();
    element.design('123');
}
все равно в RusFormat вылазит

Последний раз редактировалось smailik; 15.03.2013 в 15:16.
Старый 15.03.2013, 16:11   #7  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Может быть порулить в методе initSection в репорте? Там что-то тоже с дизайном происходит, насколько я помню.К сожалению, нет возможности все это посмотреть сейчас. В fetche он там не перетирает выставленный вами в ините дизайн?
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 15.03.2013 в 16:22.
За это сообщение автора поблагодарили: smailik (1).
Старый 15.03.2013, 16:30   #8  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
В отчете SalesPurchInvoice_RU дизайн устанавливается в методе initSections, который вызывается из fetch. Соответственно, любые Ваши установки, выполненные в init он перетирает.
За это сообщение автора поблагодарили: smailik (1).
Старый 15.03.2013, 16:42   #9  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Посмотрел. Да в initSection есть указание на дизайн. Прописал там и это помогло. Только столкнулся с тем что в копированном дизайне поля по другому называться стали, на конце добавилось _1. Дайте совет если я на форме разноска/предварительный_просмотр выведу галку "печатать в портрет", то как обработать её в репорте? Если не ошибаюсь то из этой формы разноска/предварительный_просмотр данные сначала попадают в какую-то таблицу.
Старый 15.03.2013, 17:06   #10  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Да, таблица называется TmpSalesPurchReportTable_RU. Ваш флаг нужно добавлять в эту таблицу и перед печатью заполнять. Естественно, заполнять нужно откуда-то, самое логичное из таблицы накладной, соответственно, нужно добавлять этот флаг и в таблицу накладной и заполнять его при разноске.
В самом репорте эту таблицу представляет переменная headerData. Только обратите внимание, что initSections вызывается перед выборкой накладных и если пользователь выберет несколько накладных для печати, то дизайн будет установлен по первой из них.
Так как подгонка некоторых параметров использует имена контролов, а теперь у Вас в разных дизайнах они разные, то придется менять все места использования контролов в коде. Например, в ClassDeclaration завести переменные:
Цитата:
ReportRealControl realControlVATValue;
ReportStringControl stringControlVATValueTxt;
ReportRealControl realControlVATAmount;
ReportRealControl realControlLineAmount;
ReportStringControl stringControlVATAmountTxt;
ReportStringControl stringControlLineAmountTxt;
ReportShapeControl shapeLNHorizontalAbove;
ReportShapeControl shapeLNHorizontalAboveItem;
и т.п. При установке дизайна заполнять их уже нужными именами и при вместо прямого использования имени использовать эти переменные.
Естественно, будет много изменений в репорте, поэтому рекомендую делать это не на стандартном репорте, а на его копии и после отладки найти при помощи перекрестных ссылок использование стандартного репорта и заменить его на свой.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ориентация листа при печати отчета doo DAX: Функционал 2 17.01.2007 15:57
Ориентация листа при печати отчета Roman A. DAX: Программирование 3 27.11.2003 16:11
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Формирование отчета с динамически изменяемым числом столбцов. rumpleteazer DAX: Программирование 1 06.09.2002 11:25

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

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

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