Text с опцией Resize. Очередные танцы с бубном.

Обсуждение извечных проблем кларионовских (и не только) отчетов

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Text с опцией Resize. Очередные танцы с бубном.

Сообщение kreator »

Старая проблема. Опять всплыла. Забывается, потом опять вылезает. На сей раз уже на C11. В detail есть поле TEXT с опцией Resize. Когда количество строк в текстовом поле больше 8, то размер этого поля растёт непропорционально количеству строк и соответственно сам detail увеличивает высоту. В результате получается пустое место ниже текстового поля. Есть какое-нибудь правильное решение этой проблемы? Опытным путём поставил вот такой костыль:

Код: Выделить всё

h# = Report$?DEF:SOD{prop:LineHeight} * (Report$?DEF:SOD{prop:LineCount} + 1 + int(Report$?DEF:SOD{prop:LineCount} / 8)) - 1
Report$?DEF:SOD{prop:at, 4} = h# - 1
Report$?DetailEndLine{prop:at, 2} = h#
Report$?DetailLine:0{prop:at, 4} = h#
Report$?DetailLine:2{prop:at, 4} = h#
Report$?DetailLine:8{prop:at, 4} = h#
Report$?DetailLine:9{prop:at, 4} = h#
Report$?LINE2{prop:at, 4} = h#
Report$?LINE3{prop:at, 4} = h#
Суть в том, что правильную высоту текстового поля надо считать с учётом поправки на каждые 8 строк и принудительно выставлять высоту этого текстового поля. Но это "ужас-ужас".
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Text с опцией Resize. Очередные танцы с бубном.

Сообщение Игорь Столяров »

Юзаем что-то аналогичное уже много лет, других идей нет ... :)

Код: Выделить всё

     Loc:LW = (Report$?Text{PROP:LineHeight} * Report$?Text{Prop:LineCount}) + 6 + |
                   Choose(Report$?Text{Prop:LineCount} < 3,10,Report$?Text{Prop:LineCount} * 6)
  
     Report$?DLine1{PROP:Height} = Loc:LW
     Report$?DLine2{PROP:Height} = Loc:LW
     ...
     Report$?HLine{PROP:YPos} = Loc:LW
За теми кто отстал - не возвращаться. (С) Кодекс
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Text с опцией Resize. Очередные танцы с бубном.

Сообщение Yufil »

А метрики полей в пикселах или пунктах, мож. огрехи округлений ?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Text с опцией Resize. Очередные танцы с бубном.

Сообщение Игорь Столяров »

Yufil писал(а): 10 Декабрь 2020, 16:33 мож. огрехи округлений
Да, проблема возникает из-за накопления погрешности, и приходится это накопление "сбрасывать".
Если бы был один стандарт принтера, например 1200 dpi, то наверно можно было создать для него идеальный отчёт.
А в реальности - каждый раз выполняется пересчёт по настройке драйвера и округление в целочисленные пиксели. :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Algirdas
Новичок
Сообщения: 12
Зарегистрирован: 22 Ноябрь 2005, 11:13
Откуда: Литва
Контактная информация:

Text с опцией Resize. Очередные танцы с бубном.

Сообщение Algirdas »

А установка высоты TEXT поля «Default» не помогает?
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Text с опцией Resize. Очередные танцы с бубном.

Сообщение kreator »

Algirdas писал(а): 11 Декабрь 2020, 9:55 А установка высоты TEXT поля «Default» не помогает?
Она естественно стоит. Без этого ресайз не работает.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Text с опцией Resize. Очередные танцы с бубном.

Сообщение kreator »

Игорь Столяров писал(а): 10 Декабрь 2020, 14:16 Юзаем что-то аналогичное уже много лет, других идей нет ...
Только у Вас нет обхода проблемы "больше восьми строк". Может она новая?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Text с опцией Resize. Очередные танцы с бубном.

Сообщение Игорь Столяров »

kreator писал(а): 11 Декабрь 2020, 10:29 у Вас нет обхода проблемы "больше восьми строк"
Абсолютно верно !
Потому, что мы более придирчивы и у нас это называется проблема "больше трёх строк". :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Text с опцией Resize. Очередные танцы с бубном.

Сообщение finsoftrz »

Игорь, охота Вам с клариным репортером до сих пор ковыряться. Он уже в конце 90-х устарел принципиально.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Text с опцией Resize. Очередные танцы с бубном.

Сообщение Игорь Столяров »

finsoftrz писал(а): 11 Декабрь 2020, 13:41 Он уже в конце 90-х устарел принципиально.
Нормальный Report. Отчёты создаются, по объёму - лёгкие, печатаются быстро.
Совместимость с устройствами печати - шикарная. Экспортируются в PDF / DOC / ODT / XPS.
Дано на шару. Наработок - тысячи. Чего же от такого счастья-то отказываться ?! :shock:
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Text с опцией Resize. Очередные танцы с бубном.

Сообщение finsoftrz »

Ну, смотрите сами. Report пришел еще со времен кобола, когда было дорогое машинное время и все отчеты печатались на бумаге. Так давно уже никто не работает. Предлагать разглядывать печатные формы с экрана выглядит совсем не камильфо.
1. Разрабатывать формы долго и неудобно.
2. Нельзя изменить форму на стороне пользователя.
3. Нельзя редактировать результат перед печатью.
4. Если используется для отчетов, то не получится нормально работать - вызывать детализирующую информацию, переключаться на связанную информацию, настраивать внешний вид, как в оконных диалогах.
5. По мелочам. Отдельная форма на портрет и на ландшафт. Кросс-таблицы жуть жуткая.

Каким путем идут? Если не хочется использовать сторонние репортные системы тип LL (что можно понять), никто не мешает взять движек report и сделать адекватную надстройку. Одним из первых в этом плане был FRB. Сейчас есть еще right reports от capesoft. Аллергия на кларионовские 3d party? Я сам такой, у меня frb в виде исключения, слезть непросто. Кто действительно хотел, сделали свои надстройки. У меня есть своя, у конторы Рафаэля своя, у ребят из Энигмы своя. Видел и другие.
Но это речь только про печатные формы. Если же отчеты, с которыми пользователям надо работать, то лучше вообще отказаться от report. Либо делать в виде экранных диалогов с возможностью автоматической печати при необходимости, либо интегрироваться с офисными пакетами.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Text с опцией Resize. Очередные танцы с бубном.

Сообщение Игорь Столяров »

finsoftrz писал(а): 11 Декабрь 2020, 15:13 Одним из первых в этом плане был FRB
Немного не понял ...
В чём смысл замены Report на FRB, который по сути является надстройкой по европейским ценам
(но не качества, судя по стонам пользователей) и не только тянет за собой все известные глюки REPORT,
но и добавляет к ним свои ? ;) Что бы гадать "гавкнется - не гавкнется" весь софт после каждого обновления Clarion ?

LL - да, это продукт, это действительно качественно другие технологии. Но тяжёлый и дорогой. :(
Самое забавное, что главная игрушка дельфистов - FastReport (Сделано в Ростове-на-Дону !) тоже делал версию
совместимую с Clarion, я даже с ними общался на эту тему. Но потом они это направление забросили - нет продаж. :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Text с опцией Resize. Очередные танцы с бубном.

Сообщение finsoftrz »

Сделайте свой дизайнер. Почти все умеете, немного мысли в порядок привести. Будет более занятное времяпровождение, чем по несколько вариантов одного и того-же бланка рисовать в report, excel, calc, word и т.д. :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Text с опцией Resize. Очередные танцы с бубном.

Сообщение finsoftrz »

Насчет FRB не совсем правы. Конечно, все пошло куда-то не туда, куда хотелось бы, со временем. Но по сравнению с клариным report он позволяет создавать формы на стороне пользователя, а также редактировать перед печатью при необходимости. И удобнее/быстрее, чем в report. Это очень не мало так. Цена, по моему, была на 2 года для русскоязычных, а не на 1 год, как для других.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Text с опцией Resize. Очередные танцы с бубном.

Сообщение Игорь Столяров »

finsoftrz писал(а): 11 Декабрь 2020, 15:51 Будет более занятное времяпровождение
Есть серьёзные опасения, что я умом не вышел делать такие продукты нестыдного качества. :(
А пилить очередную лабуду-надстройку нет ни времени, ни желания, ни смысла, ни потребности.
Отчёт делается в Report, далее прекрасно экспортируется в PDF / XPS / Microsoft Word / Apache Writer.
Табличный в XLSX, который прекрасно открывается в Microsoft Word / Apache Calc.
Что ещё нужно человеку, что бы достойно встретить старость ? ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить