|
|
|
вызов конструктора отчета из программы
|
|||
|---|---|---|---|
|
#18+
Есть фоксовский готовый отчет. Подскажите, пожалуйста, можно ли из программы (EXE) вызвать конструктор этого фоксовского отчета для редактирования например ширины, высоты полей. Плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 12:17:04 |
|
||
|
вызов конструктора отчета из программы
|
|||
|---|---|---|---|
|
#18+
можно, но можно и программно в репорте поменять это все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 12:19:16 |
|
||
|
вызов конструктора отчета из программы
|
|||
|---|---|---|---|
|
#18+
Как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 12:22:14 |
|
||
|
вызов конструктора отчета из программы
|
|||
|---|---|---|---|
|
#18+
2 Ирыч нужно прописывать для нужно-изменяемого объекта его свойства. В хелпе они есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 12:32:08 |
|
||
|
вызов конструктора отчета из программы
|
|||
|---|---|---|---|
|
#18+
ИрычЕсть фоксовский готовый отчет. Подскажите, пожалуйста, можно ли из программы (EXE) вызвать конструктор этого фоксовского отчета для редактирования например ширины, высоты полей. Файл, включенный внутрь EXE невозможно модифицировать, поскольку его изменение означет изменение самого файла EXE, а это недопустимо. Поэтому, чтобы внести изменение в отчет его надо либо НЕ включать внутрь EXE (поставлять клиенту как отдельные файлы), либо непосредственно перед печатью копировать его во-вне EXE (но тут возникают дополнительные организационные , т.е. НЕ программные сложности). Собственно команда модификации это Код: plaintext Поддерживается и в процессе исполнения. Т.е. в готовом EXE. Физически, файл отчета - это обычный файл DBF с измененным расширением. Т.е. его можно открыть как обычную таблицу Код: plaintext 1. Далее, зная структуру хранения данных в таком файле можно вносить соответствующие коррективы напрямую. Не вызывая сам отчет на модификацию. ======================== По поводу полей отчета По умолчанию, в качестве области печати на бумаге выбирается не весь лист, а некоторая его часть с небольшими отступами (полями) по краям. Проблема заключается в том, что размер этих полей зависит от текущего драйвера принтера. Например, при печати на лазерный принтер у вас весь отчет помещается на одной странице, а при печати на матричный уже на 2. И все из-за того, что для матричного принтера устновлены увеличенные поля сверху или снизу. Если вы печатаете обычный список, то это не имеет принципиального значения. Однако если печать идет на стандартный бланк, то становится принципиально важно иметь фиксированные размеры полей вне зависимости от текущего драйвера принтера. Самое правильное решение проблемы заключается в подготовке отчетов в том же драйвере принтера, которые установлен у клиента. Но это возможно в исключительно редких случаях. Как правило, заранее определить на каком принтере будет печать - невозможно. Другое решение - это отказ от автоматического определния полей через драйвер принтера и установка всех отступов вручную. С этой целью откройте на модификацию свой отчет и выберите пункт системного меню File->Page Setup и в переключателе "Print Area" установите значение "Whole Page". Кроме того, следует установить значение Left Margin=0.000000 В результате этой настроки под область печати будет отведено все существующее пространство на бумаге. Если при такой настройке поместить объект к самому краю листа, то часть его окажется вне физической области печати, следовательно необходимо самому оставлять пустое пространство по краям отчета, которое и будет являтся фиксированными полями. Для большинства драйверов принтеров следует оставлять отступы в 3/8 дюйма (10мм), а для матричных принтеров отступ сверху должен составлять 3/4 дюйма (20мм). Соответсвенно при ориентации бумаги "Ландшафт" ("Альбомная") это увеличенное поле должно быть не сверху, а справа. Поле справа лучше делать чуть больше указанного значения, примерно миллиметров 12...13. Правое и левое поля должны оставлятся на каждой полосе отчета. Верхнее поле откладывается в полосе Page Header, а нижнее в полосе Page Footer. Однако если вы используете полосу Title, то верхнее поле следует предусмотреть также и в полосе Title. Если полоса Title печатается на отдельной странице, то следует предусмотреть в ней и нижнее поле. Аналогичная ситуация для полосы Summary. В принципе, в ней следовало бы предусмотреть нижнее поле, но в этом возникает необходимость только если окончание Summary перешло на новую страницу (или собственно Summary печатается на отдельной странице) и его нижняя часть попадает в самый низ страницы. Т.е. размер Summary оказывается равным или большем чем размер страницы бумаги. Это достаточно редкий случай. Поэтому нижнее поле в полосе Summary можно и не предусматривать. С верхним полем для полосы Summary несколько сложнее. Если полоса Summary печатается на отдельной странице, то в ней обязательно следует предусмотреть верхнее поле. Вопрос в том, что заранее определить - окажется ли полоса Summary на отдельной странице или нет заранее невозможно (исключением является явное указание печатать Summary с отдельной страницы). Поэтому, при ручном задании полей лучше избегать использование полосы Summary. А вместо нее делать внешнюю группировку по признаку EOF() или просто по константе. Во полосах деталировки и группировок предусматривать верхние и нижние поля не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 12:35:15 |
|
||
|
вызов конструктора отчета из программы
|
|||
|---|---|---|---|
|
#18+
Недоходящий2 Ирыч нужно прописывать для нужно-изменяемого объекта его свойства. В хелпе они есть. Скажи пожалуйста, а если необходимо изменить место положения поля или поменять некоторые поля местами, или удалить поле, т.е. предоставить полную возможность редактирования отчета пользователю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 12:37:17 |
|
||
|
вызов конструктора отчета из программы
|
|||
|---|---|---|---|
|
#18+
Глянь тут - http://www.caws.atnet.ru/vfox/report.html Может что и пригодится. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 12:51:22 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33337138&tid=1593221]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
443ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 781ms |

| 0 / 0 |
