
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
26.08.2008, 10:54
|
|||
|---|---|---|---|
Печать DW с шапкой |
|||
|
#18+
Печатаю шапку документа и потом сразу DW. Использую для DW PrintDataWindow в процессе PrintOpen. Чтобы DW было сразу после шапки изменяю Margin.Top на расчетную величину. И всё бы ОК, но на следующей странице DW печатаеться с таким же отступом. 1. Можно ли как-то отловить на какой строке закончилась печать 1-й страницы, изменить Margin.Top и начать печать 2-й страницы со следующей строки? 2. Как после PrintDataWindow отловить координаты курсора печати? PrintX и PrintY до PrintDataWindow работают, а после нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.08.2008, 11:07
|
|||
|---|---|---|---|
|
|||
Печать DW с шапкой |
|||
|
#18+
AISПечатаю шапку документа и потом сразу DW. Использую для DW PrintDataWindow в процессе PrintOpen. Чтобы DW было сразу после шапки изменяю Margin.Top на расчетную величину. И всё бы ОК, но на следующей странице DW печатаеться с таким же отступом. 1. Можно ли как-то отловить на какой строке закончилась печать 1-й страницы, изменить Margin.Top и начать печать 2-й страницы со следующей строки? 2. Как после PrintDataWindow отловить координаты курсора печати? PrintX и PrintY до PrintDataWindow работают, а после нет. По поводу 1 вопроса. Есть функции FirstRowOnPage/LastRowOnPage - создаете computed field' в detail'е с последней и смотрите для первой строки значение. Или просто печатать композит - таким образом решая проблему заголовка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.08.2008, 11:27
|
|||
|---|---|---|---|
Печать DW с шапкой |
|||
|
#18+
Локшин Марк По поводу 1 вопроса. Есть функции FirstRowOnPage/LastRowOnPage - создаете computed field' в detail'е с последней и смотрите для первой строки значение. Или просто печатать композит - таким образом решая проблему заголовка. Есть такие функции, но они по-моему относятся к видимым в DW строкам,а не к строкам на печатном листе. А как начать печать с определенной строки? При изменении Margin строки двигаються из одной страницы в другую. Композит - читал, но требует как минимум создания их под каждый DW. Мой же вариант более на мой взгляд универсален и не требует создавать кучу "композитов". Создаю шаблон "шапки", динамически его заполняю данными о DW и далее его же DW и печатаю. Просто и красиво, а главно не так трудоемко как с композитами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.08.2008, 11:41
|
|||
|---|---|---|---|
|
|||
Печать DW с шапкой |
|||
|
#18+
AIS Локшин Марк По поводу 1 вопроса. Есть функции FirstRowOnPage/LastRowOnPage - создаете computed field' в detail'е с последней и смотрите для первой строки значение. Или просто печатать композит - таким образом решая проблему заголовка. Есть такие функции, но они по-моему относятся к видимым в DW строкам,а не к строкам на печатном листе. А как начать печать с определенной строки? При изменении Margin строки двигаються из одной страницы в другую. Если включить режим Print.Preview, то они возвращают информацию в соответствии со своим названием. Если этот режим выключен, то страница просто считается равна размеру экрана. И так понимаю, просто начать нужно будет печатать с сооответствующей страницы. А ненужные первые строки, если уж есть такая необходимость, можно отфильтровать. AIS Композит - читал, но требует как минимум создания их под каждый DW. Мой же вариант более на мой взгляд универсален и не требует создавать кучу "композитов". Создаю шаблон "шапки", динамически его заполняю данными о DW и далее его же DW и печатаю. Просто и красиво, а главно не так трудоемко как с композитами. На форуме было обсуждение о возможности динамического создания composite datawindow, но предложенные решения на мой взгляд - так себе, хотя их можно и использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.08.2008, 11:55
|
|||
|---|---|---|---|
Печать DW с шапкой |
|||
|
#18+
Локшин МаркЕсли включить режим Print.Preview, то они возвращают информацию в соответствии со своим названием. Если этот режим выключен, то страница просто считается равна размеру экрана. И так понимаю, просто начать нужно будет печатать с сооответствующей страницы. А ненужные первые строки, если уж есть такая необходимость, можно отфильтровать. Понял, буду пробывать. Конечно, плохо, что нужные данные функций надо брать только через Print.Preview, ведь печать может начаться и без предварительного просмотра. На счет фильтра - наверное это самый простой и надежный вариант, т.е. отфильтруем все напечатанные строки, изменяем Margin, и просто запускаем печать DW с 1-й страницы с нового листа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.08.2008, 12:07
|
|||
|---|---|---|---|
|
|||
Печать DW с шапкой |
|||
|
#18+
AISПонял, буду пробывать. Конечно, плохо, что нужные данные функций надо брать только через Print.Preview, ведь печать может начаться и без предварительного просмотра. Ну так никто Вам не мешает перед началом печати из скрипта включить режим Print.Preview, напечатать, а потом выключить. AISНа счет фильтра - наверное это самый простой и надежный вариант, т.е. отфильтруем все напечатанные строки, изменяем Margin, и просто запускаем печать DW с 1-й страницы с нового листа. Я думаю, что нужно пропустить печать первой страницы при помощи соответствующего кода возврата на событии PrintPage. А первую страницу подогнать при помощи увеличения размера detail первой строки до такого размера, чтобы на первой странице умещалоь столько же строк, сколько и с учетом дополнительной шапки. Иначе всякие выражения типа PageCount() будут не то выдавать внутри DataWindow. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.08.2008, 14:47
|
|||
|---|---|---|---|
Печать DW с шапкой |
|||
|
#18+
Локшин Марк Я думаю, что нужно пропустить печать первой страницы при помощи соответствующего кода возврата на событии PrintPage. А первую страницу подогнать при помощи увеличения размера detail первой строки до такого размера, чтобы на первой странице умещалоь столько же строк, сколько и с учетом дополнительной шапки. Иначе всякие выражения типа PageCount() будут не то выдавать внутри DataWindow. Вариант интересный, можно поэксперементировать. Но у меня есть в header заголовки столбцов и ещё куча разных элементов, поэтому мне это врядли поможет. Я то внешнюю шапку леплю чисто из-за наличия в header элементов, которые уже хорохо увязаны между собой, да и видов DW много, т.е. усложнять эти взаимосвязи координат очень трудоёмко и сам потом, врядли вспомню, почему сделал так, а не иначе. Идея хороша, но думаю, что надо увеличить и подгонять detail последней строки первого листа, а не первой. Возможно, что это даст возможность не применять фильтры и усложнять код, и упростит печать следующих страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2008, 00:15
|
|||
|---|---|---|---|
Печать DW с шапкой |
|||
|
#18+
Локшин Марк На форуме было обсуждение о возможности динамического создания composite datawindow, но предложенные решения на мой взгляд - так себе, хотя их можно и использовать. Я бы попросил. Если это нормально сделано, то работает как часы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2008, 09:09
|
|||
|---|---|---|---|
|
|||
Печать DW с шапкой |
|||
|
#18+
Филипп Локшин Марк На форуме было обсуждение о возможности динамического создания composite datawindow, но предложенные решения на мой взгляд - так себе, хотя их можно и использовать. Я бы попросил. Если это нормально сделано, то работает как часы... Это про вариант с импортом *.srd внутрь библиотеки? Там вполне всебе вырисовываются проблемы при аварийном завершении приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2008, 18:23
|
|||
|---|---|---|---|
Печать DW с шапкой |
|||
|
#18+
Локшин Марк Филипп Локшин Марк На форуме было обсуждение о возможности динамического создания composite datawindow, но предложенные решения на мой взгляд - так себе, хотя их можно и использовать. Я бы попросил. Если это нормально сделано, то работает как часы... Это про вариант с импортом *.srd внутрь библиотеки? Там вполне всебе вырисовываются проблемы при аварийном завершении приложения. Нет, это БЕЗ всякого импорта, но при абсолютной динамичности dataobjects... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2008, 09:44
|
|||
|---|---|---|---|
|
|||
Печать DW с шапкой |
|||
|
#18+
ФилиппНет, это БЕЗ всякого импорта, но при абсолютной динамичности dataobjects... Через Modify("create report...") что ли? По-моему это тут не обсуждалось, а что обсуждалось было не то... Тынц . Тынц . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.08.2008, 23:21
|
|||
|---|---|---|---|
Печать DW с шапкой |
|||
|
#18+
Локшин Марк и Филипп Позвольте Вас вернуть к вопросу топика. :) Вариант, который Вы обсуждаете уже был и кто не знает может с ним ознакомится. Я же предложил обсудить вариант создания шапки другим методом и думаю, что он более интересен. Что такое "шапка"? Это кратное содержание того, что будет далее. Поэтому это всего лишь пара строк которые надо вставить перед DW. Это гораздо легче, чем то очем Вы говорите. Это не так громоздко, не так проблемно и тем более не так ресурсоёмко. Это всего лишь десяток строк кода. И даже если Вы в них сделаете ошибку (естественно что не критическую), то печать всё равно состоится. В худшем случае чуть не в том виде как Вы планировали. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.08.2008, 01:44
|
|||
|---|---|---|---|
Печать DW с шапкой |
|||
|
#18+
2 AIS не шуми на старейшин :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.08.2008, 11:26
|
|||
|---|---|---|---|
|
|||
Печать DW с шапкой |
|||
|
#18+
Локшин Марк ФилиппНет, это БЕЗ всякого импорта, но при абсолютной динамичности dataobjects... По-моему это тут не обсуждалось Я помню как Филипп рассказывал про принцип. Так что обсуждалось. Если кратко то суть такая: - в PBL имеется DWO - заготовка для вложенных отчетов (просто пустое) - в рантайм создается синтаксис композитного DW а в качестве имен вложенных DW указывается имя заготовки - создается синтаксис вложенных DW и приводится к виду применимому для передачи в Modify() - для каждого вложенного DW через GetChild получаем DWC и применяем Modify() Трансляция из синтаксиса Create в синтаксис Modify заключается в следующем. Секция table() остается неизменной. Секция DataWindow(attr=value) и ряд других необъектов приводится к виду DataWindow.attr=value ... К текстам объектов column, text и т.д. прибавляется префикс create . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.09.2008, 09:31
|
|||
|---|---|---|---|
|
|||
Печать DW с шапкой |
|||
|
#18+
Я тут немного всех запутал, а все дружно повелись :) . Вообще-то то обсужнедие, про которое я вспоминал к этому случаю не так чтобы и нужно. Там и composite DataWindow и сами DataWindow из которых они состоят строились динамически. А здесь же достаточно просто динамически разместить объекты типа report на каком-нибудь composite'е пустышке. Не так много кода... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=15&mobile=1&tid=1336548]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 161ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...