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

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 17.10.2007, 09:40   #1  
A-Lis-A ist offline
A-Lis-A
Участник
 
5 / 10 (1) +
Registriert seit: 16.08.2007
Ориентация страницы при печати отчета
В отчете в зависимости от количества выводимых столбцов должна устанавливаться либо портретная (если столбцов мало), либо альбомная (если их много) ориентация.
И вот пытаюсь установить пейзажную ориентацию. Такой код
X++:
ReportDesign1.paperOrientation(PrinterOrientation::Landscape);
ориентацию страницы меняет лишь временно - она сбрасывается обратно на портретную (т.е. на ту, которая установлена в свойствах ReportDesign1), и отчет выводится в портретной ориентации...
X++:
this.PrintJobSettings().PaperOrientation(PrinterOrientation::Landscape);
даёт тот же результат.
Если в свойствах дизайна ставим ориентацию Auto, то работает точно так же, как при установке Portrait.
Что можно сделать, чтобы ориентация не сбрасывалась обратно? Или вообще надо как-то по-другому её задавать или в каком-то методе???? Подскажите, пожалуйста
Alt 17.10.2007, 12:16   #2  
A-Lis-A ist offline
A-Lis-A
Участник
 
5 / 10 (1) +
Registriert seit: 16.08.2007
Конечно, можно создать два одинаковых дизайна - один портретный, а другой пейзажный... В итоге, так и сделали. Работает... но это же коряво!!!!
Alt 15.03.2013, 13:40   #3  
smailik ist offline
smailik
Участник
Benutzerbild von smailik
 
250 / 70 (3) ++++
Registriert seit: 10.04.2012
Ort: Москва
Как переключаться между дизайнами. Я создал второй дизайн для ТОРГ-12. В классе SalesPurchReport_RU в методе makeReportRun хочу прописать в какой дизайн вываливать репорт.
X++:
report      = reportRun.report();
report.design('123');
не помогает. Отчет выводится в штатном дизайне. Дайте совет как быть.
Alt 15.03.2013, 13:57   #4  
S.Kuskov ist offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3.448 / 1792 (66) ++++++++
Registriert seit: 28.04.2007
Ort: Калуга
А если
X++:
reportRun.design('123');
?
Alt 15.03.2013, 13:59   #5  
Pustik ist offline
Pustik
Участник
 
807 / 372 (14) ++++++
Registriert seit: 04.06.2004
Zitat:
Zitat von smailik Beitrag anzeigen
Как переключаться между дизайнами. Я создал второй дизайн для ТОРГ-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
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Alt 15.03.2013, 15:11   #6  
smailik ist offline
smailik
Участник
Benutzerbild von smailik
 
250 / 70 (3) ++++
Registriert seit: 10.04.2012
Ort: Москва
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 вылазит

Geändert von smailik (15.03.2013 um 15:16 Uhr)
Alt 15.03.2013, 16:11   #7  
Pustik ist offline
Pustik
Участник
 
807 / 372 (14) ++++++
Registriert seit: 04.06.2004
Может быть порулить в методе initSection в репорте? Там что-то тоже с дизайном происходит, насколько я помню.К сожалению, нет возможности все это посмотреть сейчас. В fetche он там не перетирает выставленный вами в ините дизайн?
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Geändert von Pustik (15.03.2013 um 16:22 Uhr)
This post has been rated by: smailik (1).
Alt 15.03.2013, 16:30   #8  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
В отчете SalesPurchInvoice_RU дизайн устанавливается в методе initSections, который вызывается из fetch. Соответственно, любые Ваши установки, выполненные в init он перетирает.
This post has been rated by: smailik (1).
Alt 15.03.2013, 16:42   #9  
smailik ist offline
smailik
Участник
Benutzerbild von smailik
 
250 / 70 (3) ++++
Registriert seit: 10.04.2012
Ort: Москва
Посмотрел. Да в initSection есть указание на дизайн. Прописал там и это помогло. Только столкнулся с тем что в копированном дизайне поля по другому называться стали, на конце добавилось _1. Дайте совет если я на форме разноска/предварительный_просмотр выведу галку "печатать в портрет", то как обработать её в репорте? Если не ошибаюсь то из этой формы разноска/предварительный_просмотр данные сначала попадают в какую-то таблицу.
Alt 15.03.2013, 17:06   #10  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
Да, таблица называется TmpSalesPurchReportTable_RU. Ваш флаг нужно добавлять в эту таблицу и перед печатью заполнять. Естественно, заполнять нужно откуда-то, самое логичное из таблицы накладной, соответственно, нужно добавлять этот флаг и в таблицу накладной и заполнять его при разноске.
В самом репорте эту таблицу представляет переменная headerData. Только обратите внимание, что initSections вызывается перед выборкой накладных и если пользователь выберет несколько накладных для печати, то дизайн будет установлен по первой из них.
Так как подгонка некоторых параметров использует имена контролов, а теперь у Вас в разных дизайнах они разные, то придется менять все места использования контролов в коде. Например, в ClassDeclaration завести переменные:
Zitat:
ReportRealControl realControlVATValue;
ReportStringControl stringControlVATValueTxt;
ReportRealControl realControlVATAmount;
ReportRealControl realControlLineAmount;
ReportStringControl stringControlVATAmountTxt;
ReportStringControl stringControlLineAmountTxt;
ReportShapeControl shapeLNHorizontalAbove;
ReportShapeControl shapeLNHorizontalAboveItem;
и т.п. При установке дизайна заполнять их уже нужными именами и при вместо прямого использования имени использовать эти переменные.
Естественно, будет много изменений в репорте, поэтому рекомендую делать это не на стандартном репорте, а на его копии и после отладки найти при помощи перекрестных ссылок использование стандартного репорта и заменить его на свой.
 

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

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 21:55 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.