11.05.2007, 15:20 | #1 |
Постигающий
|
Вычисление размеров секций в отчете
Здравствуйте.
Возникла задача - формировать шапку таблицы на каждой странице (шапка в программируемой секции лежит). После каждого Send'а я ищу конец следующим методом: X++: boolean IsPageEnd() { real usedHeight; int pageHeight = any2int(element.design().printerPageHeight() / 100 - element.design().bottomMarginValue() - element.design().topMarginValue()); usedHeight =body.HeightValue() + ... + ... ; //и тд.. ВОТ ТУТ ЗАКОВЫРКА! return (usedHeight > pageHeight); } Последний раз редактировалось Андрей К.; 11.05.2007 в 16:53. |
|
11.05.2007, 16:49 | #2 |
Постигающий
|
все молчат (
|
|
11.05.2007, 18:40 | #3 |
Участник
|
Молчат, потому что извратно это
На всякий случай, посмотрите как определяется высота в отчетах по документам закупок/заказов AxPath://AOT/Reports/SalesPurchInvoi...BeforeLastLine А ProgrammableSections - просто считайте их когда вызываете (в их executeSection) к примеру. И высоту одной умножайте на количество |
|
11.05.2007, 23:24 | #4 |
Постигающий
|
2 Kashperuk
Спасибо...Я совсем забыл про ExecuteSection самих секций.Там то и буду считать. но что извратного в моей постановке?Объясните постигающему. |
|
11.05.2007, 23:42 | #5 |
Участник
|
Ничего.
Извратны сами Аксаптовские отчеты, имхо. точнее, если это автоотчет, или очень простенький отчет, как большинство стандартных, то они вполне нормальны,. но когда начинаются такие мансы, как у вас - перенос страниц, рассчет высоты, табличное представление с рамкой, т.д. - мне кажется, что это изврат. Но это лишь мнение одного отдельностоящего человека. |
|
12.05.2007, 09:26 | #6 |
Постигающий
|
Мда..Создавая эти отчеты чувствуешь себя начинающим FastReport'oм..
|
|
13.05.2007, 11:18 | #7 |
Administrator
|
А чем не устроил обычный PageHeader?
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
13.05.2007, 20:02 | #8 |
Постигающий
|
Максим,дело в том,что в зависимости от галочки на диалоге шапка ставится другая...Ваш вариант был бы очень хороший.Но как я могу управлять видами шапок которые будут печататься в PageHeader?Подскажите плиз.
|
|
13.05.2007, 21:44 | #9 |
Axapta
|
Ну как вариант сделать несколько программируемых секций с шапками разными и вызывать одну из них из executeSection PageHeader'a в зависимости от галки. Не получится разве?
|
|
|
За это сообщение автора поблагодарили: Андрей К. (1). |
13.05.2007, 22:39 | #10 |
Постигающий
|
Попробую!Кажется это то , что надо! Спасибо за совет.
|
|
14.05.2007, 11:47 | #11 |
Постигающий
|
Да,действительно-это то,что доктор прописал! oip, +1
|
|
14.05.2007, 12:09 | #12 |
Axapta
|
Ну вот. Надо было всего-лишь немного подумать, а не городить то, что описано в первом посте.
Наверное сразу же стоило описать цель, а не способ решения. Тогда и ответ был бы получен быстрее. Цитата:
Если вы пытаетесь разобраться, как что-либо сделать (а не сообщаете об ошибке), начинайте с описания цели. И только потом описывайте конкретный шаг на пути к ней, который вы оне смогли выполнить.
Зачастую люди, которым необходима техническая помощь, имеют на уме высокоуровневую цель и привязываются к одному из возможных, по их мнению, путей ее достижения. Они просят помочь выполнить один шаг, не отдавая себе отчета в том, что выбрали неверный путь. Чтобы разобраться в этом, может потребоваться много усилий. Глупо: Как заставить диалог выбора цвета в программе FooDraw воспринимать шестнадцатеричное RGB-значение? Разумно: Я пытаюсь заменить таблицу цветов в изображении нужными мне значениями. Сейчас я вижу только один способ сделать это - редактируя каждый слот таблицы, но я не могу задать шестнадцатеричное RGB-значение в диалоге выбора цвета программы FooDraw. Вторая версия вопроса - разумна. Она позволяет получить ответ, в котором будет предложено средство, более подходящее для решения задачи. |
|