powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Report -> Label
9 сообщений из 9, страница 1 из 1
Report -> Label
    #33020206
Lena_yan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Мне надо создать файл отчета. Страница печатного текста, в которую кое-где вставляются данные из таблицы. Если я ставлю Label и набираю текст, то дальше 4 строк курсор не идет. Придется наверно каждую строчку делать отдельным label, но это нудно и долго.
1.Может подскажите как быстренько создать такой отчет?
2.И как сделать если текст на 10 стр.?
...
Рейтинг: 0 / 0
Report -> Label
    #33020256
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lena_yanЗдравствуйте!
Мне надо создать файл отчета. Страница печатного текста, в которую кое-где вставляются данные из таблицы. Если я ставлю Label и набираю текст, то дальше 4 строк курсор не идет. Придется наверно каждую строчку делать отдельным label, но это нудно и долго.
1.Может подскажите как быстренько создать такой отчет?
2.И как сделать если текст на 10 стр.?
Быстро сделать, я думаю, не получится...
Но, если тебе не нравится стандартный построитель отчетов, то... можно написать свой.
Идея такая же, как в языках разметки (XML,HTML и т.д.): использовать теги, то есть некоторые указатели, говорящие программе какую операцию над данными необходимо сделать. То есть, набирается обычный текст и в него вставляется необходимая информация для получения данных из БД.
Например:
-------------------------------------------------------------------------------
{Use FIO}
{Use RekvOrg}
{iif(FIO.POLMG='M',"Уважаемый","Уважаемая")}___{FIO.Name+" "+FIO.Otch}
Просим Вас подойти {DTOC(Date()+5)} для сверки Ваших паспортных данных

Управление ПФ РФ по {RecvOrg.Recv} {RecvOrg.FIO_Ruk}
--------------------------------------------------------------------------------
Здесь фигурные скобки используются для отделения выполнимого кода от "чистого" текста.
На вход программы формирования отчета подается подготовленный таким образом текст и она начинает его разбор:
1. Если встретилась "{", то ищем "}" и выполняем команду-инструкцию между ними.
2. Все, что до "{" и после "}" печатается без искажений.
3. Если при запуске программы был задан параметр печати по всем записям, то печатаем для следующего абонента, иначе - заканчиваем печать...
Нечто подобное я писал в свое время на Клиппере, правда несколько в другом виде: я все строки помещал в таблицу в порядке их следования на странице...
А в остальном прицип тот же, что я описал выше...
Если есть вопросы по деталям реализации - пишите в приват на Stanislav1971@mail.ru...
...
Рейтинг: 0 / 0
Report -> Label
    #33020296
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Может подскажите как быстренько создать такой отчет?
Tools->Wizard->Report Если не понравится дальше обработать руками

>И как сделать если текст на 10 стр.?
Попробуй вместо Label создавать Report
...
Рейтинг: 0 / 0
Report -> Label
    #33020505
Lena_yan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Burn:
Я и создаю Report и в нем надписи label содержат большой фрагмент текста.
Как этот фрагмент текста лучше сделать - каждую строчку отдельным label или как?
Вообще нужно получить печатную страницу, которая состоит из текста, в который вставляются данные из таблицы. 4 отчета по 1 стр, а 1 на 10 стр.
...
Рейтинг: 0 / 0
Report -> Label
    #33020537
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Длина Lable ограничена 255 символами. Если текст имеет бОльшую длину, то следует использовать переменную памяти и стандартный объект ввода поля.

Т.е. до вызова отчета создается переменная памяти с областью видимости PRIVATE, например:

Код: plaintext
1.
2.
3.
4.
5.
6.
PRIVATE LongString
LongString = "Начало строки "+CHR( 13 )+CHR( 10 )+;
" продолжение строки "+CHR( 13 )+CHR( 10 )+;
"окончание строки"

REPORT FORM MyReport.frx

А в самом отчете создается один объект Field где в качестве источника указывается имя этой переменной m.LongString.

Также можно создать временную таблицу для печати с memo-полем и загнать этот длинный текст в это memo-поле. Результат будет такой же.

Т.е. если речь идет о "гладком" тексте без выделений шрифтом, то можно весь текст загнать в одну переменную памяти (или в memo-поле), а потом ее и распечатать как один Field высотой в одну строку, но со свойством "Stretch with overflow"
...
Рейтинг: 0 / 0
Report -> Label
    #33020960
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Я и создаю Report и в нем надписи label содержат большой фрагмент текста
Сорри, не понял. Но, думаю, Владимир уже все объяснил;)
...
Рейтинг: 0 / 0
Report -> Label
    #33022199
Lena_yan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну хорошо, с одной страницей я справлюсь, с вашей помощью :)
А как быть с 10-тью станицами в одном отчете, т.е. 10 стр. текста в который в разных местах вставляются данные? Мне надо создавать 10 отчетов по 1 странице каждый?
Может быть как-нибудь с Word можно связать, т.е. текст набить в Word и как-нибудь вставить туда нужные данные. Только вот как?
...
Рейтинг: 0 / 0
Report -> Label
    #33022477
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одно memo-поле (или содержимое переменной памяти) может занимать много страниц

В отчете можно создавать фиктивные группы по константам. Т.е. в качестве признака группировки указывать константу, например, просто числа: 1,2,3,... У каждой группы можно поставить признак "Start each group on new page" (каждую группу печатать с новой страницы)
...
Рейтинг: 0 / 0
Report -> Label
    #33022552
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Report -> Label
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]