Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Печать МЕМО поля  [new]
Макс_П
Member

Откуда:
Сообщений: 110
Всем привет! Необходимо распечатать МЕМО поле в несколько строк.
Ставлю галочку "Stretch with overflow" и если количество символов меньше 254 символов, то всё получается. А вот если превышает этот размер, то не печатает вообще.
Кто-нибудь сталкивался с такой проблемой?
8 окт 09, 10:49    [7757212]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
tanglir
Member

Откуда:
Сообщений: 28966
Что у Вас в отчёте помимо этого поля? Может, оно чем-то заслоняется?
8 окт 09, 20:21    [7761281]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Макс_П
Всем привет! Необходимо распечатать МЕМО поле в несколько строк.
Ставлю галочку "Stretch with overflow" и если количество символов меньше 254 символов, то всё получается. А вот если превышает этот размер, то не печатает вообще.
Кто-нибудь сталкивался с такой проблемой?

Да. есть такое ограничение.. Мне пришлось в свое время делать разбитие MEMO поля по строкам и выводить строки, а не одно MEMO поля в Field отчета. Посколько у меня в MEMO содержалась информацию с разделением с помощью символа запятой, то все получилось досаточно просто:
*-- m.lcInMemoField - содержимое мемо поля с разделителем в виде запятой (кроме конца)
LOCAL ARRAY laCur[1,1], laStr[1]

m.lcInMemoField = ALLTRIM(m.lcInMemoField) + ','
CREATE CURSOR tempcur (LineMarka V(50))
DIMENSION laCur[OCCURS(',', m.lcInMemoField),1]
ALINES(laStr, m.lcInMemoField, ',')
ACOPY(laStr, laCur)
INSERT INTO tempcur FROM ARRAY laCur
SELECT tempcur
GOTO TOP
*-- Печать отчета из курсора tempcur
REPORT FORM....
Вывожу в строках отчета поле tempcur.LineMarka

С уважением, Алексей.
9 окт 09, 09:02    [7762329]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
Melnik_A
Member

Откуда:
Сообщений: 30
Всех приветствую !
2 Макс_П
Да не должно быть никаких ограничений .
Не поленился , вспомнил(нашёл) у себя репорт , где один из объектов как раз отображает мемо_поле .
Печатается полностью , количество символов там у меня ща получилось - 8886 !
Т.е. 256-ью здесь и не пахнет :)

Так что быстрее всего стоит посмотреть внимательней на возможные преобразования этого поля до печати,
или настройки самого отчёта(элементов отчёта) :
Stretch with overflow - к примеру .
9 окт 09, 09:48    [7762498]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Melnik_A
Всех приветствую !
2 Макс_П
Да не должно быть никаких ограничений .
Не поленился , вспомнил(нашёл) у себя репорт , где один из объектов как раз отображает мемо_поле .
Печатается полностью , количество символов там у меня ща получилось - 8886 !
Т.е. 256-ью здесь и не пахнет :)

Так что быстрее всего стоит посмотреть внимательней на возможные преобразования этого поля до печати,
или настройки самого отчёта(элементов отчёта) :
Stretch with overflow - к примеру .

Ограничение есть, но оно не отражено в документации.
Опытном путем нашел, что больше 65535 символов в Filed вывести не получится - будет пусто.

С уважением, Алексей
9 окт 09, 12:52    [7764077]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
Макс_П
Member

Откуда:
Сообщений: 110
Создал переменную длиной более 500 символов, отправляю её в отчёт. Если отчёт выводится на принтер, то тот молчит, а если на предварительный просмотр, то высвечивается ошибка про нехватку памяти. А памяти-то 1 гиг. Та же операция с 200 символами проходит на ура...
9 окт 09, 14:10    [7764918]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Макс_П
Создал переменную длиной более 500 символов, отправляю её в отчёт. Если отчёт выводится на принтер, то тот молчит, а если на предварительный просмотр, то высвечивается ошибка про нехватку памяти. А памяти-то 1 гиг. Та же операция с 200 символами проходит на ура...

А причем тут переменная! Вы же задавали вопрос про MEMO поле!
Можете проверить:
CREATE CURSOR T1 (F1 M)
APPEND BLANK
REPLACE f1 WITH REPLICATE("A",65535)
Создайте отчет и в Detail поместите Filed с Expression = T1.F1
Запустите отчет на просмотр
Теперь:
GOTO TOP
REPLACE f1 WITH REPLICATE("A",65536)
И снова сделайте Preview отчета
С уважением, Алексей
9 окт 09, 14:18    [7765021]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
Макс_П
Member

Откуда:
Сообщений: 110
Сори за неточный вопрос. В таблице есть мемо поле. Перед распечаткой переменная забирает его, вносит изменения и затем выводится на печать. Эта процедура должна выполняться для того, чтобы изменения не касались мемо-поля.
9 окт 09, 15:12    [7765532]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Макс_П
Сори за неточный вопрос. В таблице есть мемо поле. Перед распечаткой переменная забирает его, вносит изменения и затем выводится на печать. Эта процедура должна выполняться для того, чтобы изменения не касались мемо-поля.

Ну тогда скопируйте данный во временный курсор и его выводите в отчет
С уважением, Алексей
9 окт 09, 15:31    [7765702]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Макс_П
Создал переменную длиной более 500 символов, отправляю её в отчёт. Если отчёт выводится на принтер, то тот молчит, а если на предварительный просмотр, то высвечивается ошибка про нехватку памяти. А памяти-то 1 гиг. Та же операция с 200 символами проходит на ура...

Покажите код создания переменной. И, кстати, как именно отправляете ее в отчет?

Как правило, ограничение в 254 символа возникает тогда, когда путают понятия символьной контстанты и символьной переменной. Ограничение для символьной константы как раз и составляет 254 символа. А для символьной переменно - 16МБ.

Символьные поля, переменные памяти и константы

Сообщение о нехватке памяти - это уже следствие. Вторичная ошибка. Как правило, следствие не корректного синтаксиса команды присвоения.
9 окт 09, 15:47    [7765847]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
Макс_П
Member

Откуда:
Сообщений: 110
Код программы:
z = m.SutPorush && где m.SutPorush - это ControlSource в EditBox формы
REPORT FORM...
По-моему, с переменной всё в порядке. Хотелось бы обойтись без курсора.
9 окт 09, 18:18    [7766798]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Отчет - это сканирование записей таблицы. Или курсора, как временной таблицы. Нет курсора или нет записей в курсоре - нет отчета.

Это значит, что хотя бы временную таблицу с одной записью НЕОБХОДИМО создать. Иначе отчет просто не будет работать

CREATE CURSOR test (f1 i)
APPEND BLANK
z = m.SutPorush && где m.SutPorush - это ControlSource в EditBox формы
REPORT FORM... 
USE IN select("test")

Теперь работает?
9 окт 09, 19:35    [7767108]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
igorbik
Member

Откуда: Мск
Сообщений: 578
Макс_П,

Чтобы без курсора:
в методе INIT формы напишите
*==========
PUBLICK Z
*==========

и еще посмотрите, стоит ли галка на растяжку поля Z при переполнении в репорте, а также проверьте, нет ли других ошибок, например, в формате вывода (это все в свойствах поля Z в репорте)
11 окт 09, 16:46    [7770312]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
Макс_П
Member

Откуда:
Сообщений: 110
С курсором ПОЛУЧИЛОСЬ! Всем огромное спасибо.
И в продолжение к теме: - Как можно программно передать в отчёт размер и тип шрифта этой переменной?
12 окт 09, 10:37    [7771685]     Ответить | Цитировать Сообщить модератору
 Re: Печать МЕМО поля  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Макс_П
...И в продолжение к теме: - Как можно программно передать в отчёт размер и тип шрифта этой переменной?

Можно через событие EvaluateContents класса ReportListener. Вы динамически можете менять и fontname и fontstyle и fontsize и цвет и даже саму информацию, выводимую в Filed
В Solution есть хороший пример: Dynamic formatting using ReportListeners
С уважением, Алексей
13 окт 09, 08:30    [7776183]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить