Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Лицензия FastReport за багрепорты и багофиксы

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Открыть новую тему     Написать ответ в эту тему

My_Way



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Объявлена раздача лицензий за найденные баги и багофиксы по продукту от разработчиков
 
Постите здесь свои багрепорты и багофиксы по ФастРепорту,и получайте лицензии на ФастРепорт.
 
Расценки на версии FastReport 4:
 
FR Basic - 1 багрепорт
FR Standard - 3 багрепорта или  1 багофикс
FR Professional - 6 багрепортов или  2 багофикса
FR Enterprise - 9 багрепортов или 3 багофикса
FR Studio Single - 9 багрепортов или 3 багофикса
FR Server - 9 багрепортов или 3 багофикса
 
 
Полезная информация:

 
Найденные баги и багофиксы, использованные для получения лицензии младшего уровня учитываются при получении лицензии следующего уровня. Например,набрав один багрепорт, получаешь FR Basic, а набрав еще 2  - получаешь лицензию на FR Standard, и т.д.  
 
Один багофикс= 3 багрепорта.
Например,если вы нашли баг, и его пофиксили, то у вас в сумме 1 багрепорт+1 багофикс = 4 багрепорта.
 
За лицензиями при накоплении необходимого количества бонусов обращаться в ПМ к My_Way (В письме указывать Имя и емайл, на какой выслать регистрационную инфу)
 
Информация для новичков
Для вновь прибывших, внимательно читать вот ЭТО, чтобы не повторять уже исправленные баги

А еще и это ЭТУ ИНФУ  
 
P.S. Некоторые баги согласно My_Way являются фичами (Правда не знаю в документации это описано, так как баг считается фичей если он задокументирован, иначе это баг).
 
Результаты по подсчетам My Way:

Ник участника Багрепорты Багофиксы Итого: Лицензия Остатки      
gpi Четырнадцать Десять Двадцать семь+ FR Ent+FR Studio+FR Server Больше не на что    
GloThin Двадцать четыре Пять Двадцать семь+ FR Ent+FR Studio+FR Server Больше не на что    
DroN_S Одинадцать Семь Двадцать семь+ FR Ent+FR Studio+FR Server Больше не на что    
SerVal777 Двадцать семь Три Двадцать семь+ FR Ent+FR Studio+FR Server Больше не на что    
Nicka_Grey Двадцать четыре Четыре Двадцать семь+ FR Ent+FR Studio+FR Server Больше не на что    
LadyOfWood Двадцать девять Три Двадцать семь+ FR Ent+FR Studio+FR Server Больше не на что    
QuickeneR Шестнадцать Четыре Двадцать семь+ FR Ent+FR Studio+FR Server Больше не на что    
Garrett Двадцать семь Ноль Двадцать семь FR Ent+FR Studio+FR Server Больше не на что    
RUSer Двадцать восемь Ноль Двадцать семь+ FR Ent+FR Studio+FR Server Больше не на что    
mLex Двадцать пять Один Двадцать семь+ FR Ent+FR Studio+FR Server Больше не на что    
mrrex Тридцать один Ноль Двадцать семь+ FR Ent+FR Studio+FR Server Больше не на что    
Jedinichka Двадцать пять Ноль Двадцать пять FR Ent+FR Studio Семь    
aralekin Девятнадцать Два Двадцать пять FR Ent+FR Studio Семь    
vadson6666 Двадцать пять Ноль Двадцать пять FR Ent+FR Studio Семь    
DmLam Двадцать Ноль Двадцать FR Ent+FR Studio Два    
jonikDk Десять Три Девятнадцать FR Ent+FR Studio Один    
Alex_Yagolnik Девятнадцать Ноль Девятнадцать FR Ent+FR Studio Один    
karioth Восемьнадцать Ноль Восемьнадцать FR Ent+FR Studio Ноль    
denger2k Пятнадцать Один Восемьнадцать FR Ent+FR Studio Ноль    
martyanov Одинадцать Два Семьнадцать FR Ent Восемь    
EmeJIbka Десять Два Шестнадцать FR Ent Семь    
motrik Шестнадцать Ноль Шестнадцать FR Ent Семь    
exteris Шестнадцать Ноль Шестнадцать FR Ent Семь    
JustAMaaan Шестнадцать Ноль Шестнадцать FR Ent Семь    
Delphis11 Шестнадцать Ноль Шестнадцать FR Ent Семь    
mity Пятнадцать Ноль Пятнадцать FR Ent Шесть    
benchik Пятнадцать Ноль Пятнадцать FR Ent Шесть    
Darken Пятнадцать Ноль Пятнадцать FR Ent Шесть    
tomegadeth Пятнадцать Ноль Пятнадцать FR Ent Шесть    
MageSlayerDen Пятнадцать Ноль Пятнадцать FR Ent Шесть    
stalker780 Восемь Один Одинадцать FR Ent Три    
Vic26 Восемь Один Одинадцать FR Ent Два    
Wise Десять Ноль Десять FR Ent Один    
ultima Девять Ноль Девять FR Ent Ноль    
jzk Восемь Ноль Восемь FR Pro Восемь    
wbsg Восемь Ноль Восемь FR Pro Восемь    
royt Восемь Ноль Восемь FR Pro Восемь    
vshersh Восемь Ноль Восемь FR Pro Восемь    
vidic777 Восемь Ноль Восемь FR Pro Восемь    
Erazer Восемь Ноль Восемь FR Pro Восемь            


 
 
Примечание от My Way:
1. Передавать только остатки другим участникам нельзя...
2. Если хотите поделиться своими изысканиями с кем-нибудь из участников, до опубликования в ветке можно передать свои результаты через ПМ...
3. Остатки после лицензии на FR Studio Single, можно использовать, для получения лицензии на FR Server (цена такая же. как на FR Enterprise и FR Studio Single = 9 багрепортов )
4. Багофиксы к багофиксам (багофиксаторы, по термину GloThin), пока засчитываются, как отдельные, но возможно, в будущем будут делиться между решившими указанную проблему...  
 
Также мы премируем за написание статей на тему FastReport, как FastReport 3, так и FastReport Studio, стати начиная от технических, и заканчивая очень прикладными, например, первые
шаги в матричных отчетах, или анализатор логов в FastReport Studio, все
авторские права сохраняются, плюс мы содействуем в размещении этих статей
в изданиях. Есть что публиковать - пишите в ПМ

Всего записей: 80 | Зарегистр. 16-09-2004 | Отправлено: 14:16 23-08-2005 | Исправлено: My_Way, 16:15 30-03-2007
mrrex



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Предложения
 
1. Можно дублировть функции меню Вид на панели инструментов? Удобно будет!
2. Реализовать функции выравнивания обьектов группы по ширини, высоте и т.п.
 
 
Баги
 
1. Группируем объекты Мемо. Возможности отредактировать текст одного из объектов в группе
   пропадает. Тем не менее контекстное меню на группе показывает пунтк "Редактировать"  
   как доступный, но при вызове - нифига не происходит и ошибки не выдается
 
2. Удаляем в тексте кода несколько символов. Вызываем предпросмотр. Возвращаемся в редактор
   кода и пытаемся восстановить удаленное нажимая на кнопку Undo в панели инструментов.
   после второго нажатия возникает ошибка List index out of bounds (-1)
 
3. При запуске кода отчета под отладкой, когда точка отладки становится на строку с переменной,
   переданной в отчет из вызвавшей отчет программы, следующий шаг переносит маркер отладки в
   самое начало кода, а потом, при следующем шаге снова на положенное ему место.
   
4. TfrxChart ведет себя неправлильно.
   на одном рисунке должно быть два графика (на рисунке, первый условно прямая линия, второй - 0)
       
   0------0-------0-------0-------0--------0
   
   первый (линия) рисуется правильно. Второй - нет. Смысл ошибки:
   
   есть 7 точек по оси X у первого (линии) заданы все координаты и значения.
   у второго - только 5, причем 1,2,3,6,7, тоесть график должен быть таким:
   
   0-----0-----0-----------------0-----0
   
   на самом деле:
   
   0-----0-----0-----0-----0------------
   
   Тоесть вне зависимости от того, что я задал для второго графика он автоматически берет для  
   значений по X координаты первого, причем, если значений меньше, то "сжимается" второй график
   (значения по Y беруться правильно)
   
 
5. При выходе из режима превью в дизайнере, этот режим иногда самопроизвольно запускается опять.
   К сожалению, я не смог отловить точные условия возникновения ошибки.
 
6. Редактор диаграмм. устанавливаем указатель на одну из серий, в которой установлен источник
   данных. Затем устанавливаем указатель на корень дерева графиков. Поля справа становятся недоступными,
   тем не менее в поле Набор данных - имя источника из предыдущего графика.
 
7. Если запрос (TfrxIBXQuery) не содержит параметров, а мы их устанавливаем, то возникает ошибка Access Violation.

Всего записей: 110 | Зарегистр. 11-12-2005 | Отправлено: 16:48 06-05-2006
mrrex



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я наверное уже надоел....
Вот тут сижу и строгаю отчеты, а баги прямо ломятся в открытую дверь.
 
3.21  
 
TfrxChart
 
из серии "УДОБСТВО РАБОТЫ"
 
1. В мастере редактирования чарта есть дерево серий. Так вот в этом дереве отсутствует полоса  
   вертикального скроллинга.
   
2. Размер окошка с деревом серий не увеличить никак. Зря.
 
3. Это - вообще абзац. Никаким образом невозможно переместить графики друг относительно друга  
   так чтобы изменить порядок их рисования! Я тут влип с 10 графиками (уже после того как их
   полностью настроил) и долго долго ..............!!!!????
 
Баги
( это тоже про Chart и frxChartSeries)
1. Если по этому дереву перемещаемся стрелками курсора, то не смотря на то, что указатель
   становится на новую серию, свойства в окне инспектора остаются для старой серии. Для правильного выбора серии
   ОБЯЗАТЕЛЬНО надо кликануть мышой!
   
2. числовое (да и наверно любое другое) свойство в инспекторе свойств для того что бы установить
   необходимо не просто набрать, но еще и обязательно нажать ентер! Если просто сразу нажать мышкой ОК
   новое значение не запоминается.
   
3. Открываем наполовину сделанный отчет для дизайна. FR говорит, что файл БД по такому то пути не найден.
   Логично, ведь мы перешли с одного компьютера на другой. Открываем свойство DatabaseName обьекта
   frxIBXDatabase, указываем новый путь до файла. делаем отчет. сохраняем. выходим из дизайнера.  
   запускаем программу. Все, что сделано - ничего нет. Вопрос: почему? Ответ: потому что дизайнер
   сохранил отредактированный отчет не там откуда взял на старте, а там, где мы указывали путь
   до БД на нашем компьютере. Сохранялось через кнопку с дискетой на тулбаре а не Файл/Сохранить как...
   Нервов надо море...
 

Всего записей: 110 | Зарегистр. 11-12-2005 | Отправлено: 18:29 12-05-2006 | Исправлено: mrrex, 18:32 12-05-2006
vadson6666



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот по поводу экспорта замечания:
1. Очень интересно ведет себя свойство ShowDialog, мне нужно передать имя файла и директорию экспорта, так вот, когда это свойство Труе-проблем нет, все работает, а вот если его в Фалсе сделать начинаются чудеса: Экспорт в эксель фалит файл в Мои документы с названием типа КнигаХХ, а ПДФ экспорт вообще непонятно как отрабатывает, может я не совсем понимаю смысл этого свойства, но все таки...
2. Если в Отчете есть колонки цветом cl3dLight, то в ПДФ экспортируется нормально, а в Ворд или Эксель черной колонкой, что не есть гуд по-моему. clSkyBlue нормально экспортится.
 
Версия ФР 3.22.1

Всего записей: 267 | Зарегистр. 08-07-2004 | Отправлено: 08:15 09-06-2006 | Исправлено: vadson6666, 10:05 09-06-2006
vadson6666



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, а разработчики здесь не очень часто появляются...

Всего записей: 267 | Зарегистр. 08-07-2004 | Отправлено: 11:45 14-06-2006
Wise



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашел баги, возможно конечно, что они уже исправлены, т.к. FR старой версии (Версия 3.18):
 
1. Заходим в режим редактирования, далее нажимаем Просмотр и далее вводим вместо 100% 1-00% и получаем: '1-00' is not a valid floating point value.
 
2. Создаем пустой проект, кидаем на форму frxReport1 и на обработчик пишем: frxReport1.ShowPreparedReport
Далее запускаем проект, и нажимаем кнопку Редактировать страницу. Получаем: Access violation at address 004F58D0 in module 'Project1.exe'. Read of address 00000000.
 
3. Создаем пустой проект, кидаем на форму frxReport1 и на обработчик пишем: frxReport1.ShowPreparedReport
Далее запускаем проект, и нажимаем кнопку Свойства страницы. Получаем: Access violation at address 004D1F88 in module 'Project1.exe'. Read of address 0000016C.
 
P.S. Delphi 2006+SP2

Всего записей: 15 | Зарегистр. 03-10-2004 | Отправлено: 15:00 16-06-2006
jzk



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FastReport studoi 3.23.6+MSVS2005
 
 
При експорте в Excel(OLE)  - invalid variant operation
На странице текстовые данные.
 
 

Всего записей: 2 | Зарегистр. 15-08-2006 | Отправлено: 16:08 17-08-2006
wbsg

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FastReport Ent. 3.23
Ошибка в сервере, модуль frxServerReports
 
Проявление ошибки:
В обработчике OnGetVariables инициализируем некоторые переменные отчета. Например:

Код:
 
  Variables['xxx'] := '''' + 'some text' + '''';
 

 
Все работает хорошо до той поры пока не написать что-то типа:

Код:
 
  Variables['Переменная'] := '''' + 'значение переменной' + '''';
 

 
При выводе отчета IE начинает материться на содержание файла index.nav.html (неверный символ в строке nn и т.д.)
 
Расследование показало, что в frxServerReports в TfrxReportSession.Execute допущена ошибка при инициализации HTMLExport. Передаваемые переменные не преобразуются к стандартному виду URL.
 
Исправление ошибки
Замените строки  

Код:
 
                  UnQuoteStr(FVariables.Items[i].Name) + '=' +
                  UnQuoteStr(FVariables.Items[i].Value);
 

на

Код:
 
                  UnQuoteStr(Str2HTML(FVariables.Items[i].Name)) + '=' +
                  UnQuoteStr(Str2HTML(FVariables.Items[i].Value));
 

 
и  

Код:
 
                  UnQuoteStr(FVariables.Items[i].Name) + '=' +
                  UnQuoteStr(FVariables.Items[i].Value);
 

на

Код:
 
                  UnQuoteStr(Str2HTML(FVariables.Items[i].Name)) + '=' +
                  UnQuoteStr(Str2HTML(FVariables.Items[i].Value));
 

 
Кстати, еще одна маленькая ошибочка В документации на сервер в разделе 'Передача параметров в отчет' написано

Цитата:
 
- все текстовые строки содержащие служебные символы или символы национальных алфавитов должны быть преобразованы в Unicode формат UTF-8 и приведены к стандарту запросов HTTP, для этого можно использовать стандартную функцию Untf8Encode и функцию HTMLCodeStr, описание которой содержится в файле frxServerUtils.pas;  
 

 
Нет таких функций в frxServerUtils. Но зато есть Str2HTML. Мелочь, конечно...

Всего записей: 65 | Зарегистр. 08-06-2005 | Отправлено: 15:27 13-09-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Баги в FR4 (обновлённое демо):
 
1) Если открыть отчёт Endless page height и выбрать масштаб Whole page, то при нажатии кнопок Prior Page или Next Page на превью появляется контур страницы формата А4
 
2) Если в отчёте Side-by-side the cross-tab добавить третий кросс-таб, скопировав его из Cross2, в свойстве Cross2.NextCross указать новый кросс-таб, который расположить правее Cross2, то на превью кросс-табы накладываются друг на друга
 
3) Если открыть отчёт, переместить какой либо объект, сохранить отчёт, то кнопка Undo не становится неактивной. Если на неё нажать один раз, то ничего не происходит, но становися активной кнопка Redo, а после второго нажатия объект возвращается на своё прежнее место, но кнопка Save не становится активной
 
4) Сплиттер между нижней частью Code window и верхней частью окна Watch можно беспрепятственно утащить вверх на панель инструментов. При этом полностью скрываются панели Code window и окна Watch и восстановить их можно только чисткой реестра
 
5) На странице Data с помощью Copy-Paste можно расположить любой объект, даже бэнд (правда, без последствий)  
 
P.S. п.2 снимается. Кроссы не накладываются. Как выяснилось, у меня третий кросс был расположен не на MasterData

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 22:46 02-10-2006 | Исправлено: gpi, 14:07 03-10-2006
LadyOfWood

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FR4
1. TfrxComboBox - не поддерживает XP themes.
2. Dockable panels ведут себя очень не понятно.
    а) в floating состоянии фон иконки становится серым (очень некрасиво)
    б) если панель оцепить то потом не так легко прицепить (сильно мигают, но прицепляться не всегда желают, иногда при  
 
прицеплении пропадают)
    в) ниспадающее меню выбора цвета сильно мигает если поверх него водить мышкой.
3. Не исправлен один из старых глюков. Берем одну из переменных и перетаскиваем на отчет, не отпуская мышь уводим ее  
 
прочь с отчета и отпускаем вне на испекторе объектов, служ. деревьях и т.п. Ведем мышь к отчету, при нажатии на кпонку  
 
мыши вставляется пустая мемка.
4. Что-то странное с иконками. Некоторые из них выглядят как-то замыленными, еще при наведенеии фокуса в меню, из под  
 
некоторых иконкок лезет что-то белое.

Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 17:30 03-10-2006
Nicka_Grey

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FR4
1.Для кроса вроде как можно выбирать каждую ячейку. Так вот, глюк выбора ячейки, в случае когда крос лежит на странице Page. (на странице. т.к. пока есть глюк описанный выше, что можно положить крос-объект и на страницу Data). Хотя когда ложим крос на страницу Data, то там с выбором все ок. Сие дело просьба протестить и других...
2.В продолжении копирования объектов в буфер...
Скопируем какой нить объект в буфер и попробуем вставить на странице Code. Хорошо, что объект при копировании можно получить и в текстовом виде его описание, но...
Как оказалось, объект TfrxSyntaxMemo строка вставляется максимальной длины в 1024 символа и при этом остальная часть строки не переводится на новую. Хотя вводить символы и дальше можно, но их не видно.
3.Не знаю глюк ли, но какое то странное построение страницы отчета, когда на странице лежит Cross, и свойство Endless = True

Всего записей: 1282 | Зарегистр. 04-01-2003 | Отправлено: 19:06 03-10-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FR4
 
Если Outline/Thumbnails растянуть по ширине на 3/4 экрана, то некорректно устанавливается масштаб Страница целиком (масштаб всегда определяется исходя из высоты окна)
 
Nicka_Grey

Цитата:
3.Не знаю глюк ли, но какое то странное построение страницы отчета, когда на странице лежит Cross, и свойство Endless = True

Да, на фичу как-то не похоже
По поводу п.1 - в чём именно заключается глюк? У меня выбираются CellMemo0, CellMemo1

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 21:09 03-10-2006 | Исправлено: gpi, 21:15 03-10-2006
Nicka_Grey

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
gpi

Цитата:
Да, на фичу как-то не похоже   По поводу п.1 - в чём именно заключается глюк? У меня выбираются CellMemo0, CellMemo1

В некоторых случаях (пока до конца не выяснил при каких именно) получается так что ячейки то выбрать можно но кликая не на самой ячейке а немного ниже и правее нее.

Всего записей: 1282 | Зарегистр. 04-01-2003 | Отправлено: 11:29 04-10-2006
MageSlayerDen

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 Пытаюсь имитировать "типа навороченный" cross-отчет. Создаю четыре бэнда 2 горизонтальных и 2 вертикальных (заголовок и master). Для вертикального master задаю источник UserDataset. Тестирую (preview).  
  Пока количество столбцов такое, что они вмещаются на странице, все ок. Как только столбцы не помещаются по горизонтали на листе, впадает в бесконечный цикл и начинает жрать память. При попытке отменить (кнопкой Cancel), вываливается exception с текстом "index of out bound". Дождаться окончания формирования preview не удалось (20 страничный отчет продолжает формироваться до 700 стр. и конца не видно).
 
  2 My_Way
  Что скажешь?
 
P.S. Забыл добавить. Delphi 6,7 Ent+все паки; Win2000, Xp; FR 3.18

Всего записей: 72 | Зарегистр. 26-05-2005 | Отправлено: 11:50 05-10-2006 | Исправлено: MageSlayerDen, 11:53 05-10-2006
jonikDk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Заработать лицензию на FR4 можно ??

Всего записей: 1622 | Зарегистр. 01-03-2004 | Отправлено: 18:47 02-11-2006
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Заработать лицензию на FR4 можно ??

ради бога
скачивай демку, смотри что там к чему, выявляй баги, пости здесь, а My_Way потом посчитает твои очки... только вот я почему то думаю, чтобы тебе получить четвёрку, придётся набрать балы сначала до FR Studio и FR Server а потом уже и на четвёрку перетягиваться... я думаю для четвёрки нужно будет столько же багорепортов и багофиксов что и для тройки...
УДАЧИ!!!!

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 19:07 04-11-2006
progrkw

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bug в trial-версии Fast Report Studio v3.24.7
Попытались использовать UserDataSet, обнаружили значительную утечку
памяти. После этого нами был взят проект UserDataSet из числа поставляемых
вместе с продуктом примеров для Visual C++
Мы изменили этот пример, чтобы отчет вызывался циклически - также
наблюдается утечка памяти. Одну ошибку в примере исправили - не
вызывался Unadvice у интерфейса точки подключения. Но, похоже, имеется
проблема в самом Fast Report.
 
Исходники тестового проекта могу переслать. Как присоединить файл к сообщению на форуме, не знаю. Похоже, это не возможно.

Всего записей: 1 | Зарегистр. 10-11-2006 | Отправлено: 18:06 10-11-2006
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FR 4.0.13
редктор скрипта в отчёте:
как бы на первый взгляд всё нормально, но если вставить текст из буфера, то происходит искажение всего вставленного текста... странно очень, у меня  в 3.19 такого не наблюдалось....

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 12:29 13-11-2006
lionsoft



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Неверно расчитывается высота TfrxMemoView   FR - 4.0.11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
На бенде находятся два MemoView: первый имеет выравнивание baWidth и растягиваемый, второй - baRight
 
В первом компоненте текст не помещается в одну строку, если второй компонент видим, но помещается, если второй компонент невидим.
 
Ошибка заключается в том, что если второму компоненту установить свойство  
Visible=False (в дизайнтайме, или в рантайме) - то первый компонент выводится в одну строку, но высота его расчитывается, как будто он должен был вывестись в две строки.
 
 

Всего записей: 1 | Зарегистр. 28-07-2006 | Отправлено: 16:31 14-11-2006
Jedinichka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
баг № раз (не страшненький):
отчет с одной колонкой, одним Masterband-ом и двумя GroupHeader-ами. У gh включены KeepTogether и ReprintOnNewPage. При этом первый gh (более объемлющий) то отрисовывается, то нет.
 
Лечится добавлением  

Код:
 
    end else if FHeaderList[i].IsInKeepList then begin
      FHeaderList[i].IsInKeepList := False;
 

в TfrxEngine.AddPage.
 
Его полный код после этого такой

Код:
 
procedure TfrxEngine.AddPage;
var
  i: Integer;
  SaveCurX: Extended;
  SaveCurLine, SaveCurLineThrough: Integer;
  Band: TfrxBand;
begin
  PreviewPages.AddPage(FPage);
  CurY := 0;
 
  Band := FindBand(TfrxOverlay);
  if (Band <> nil) and not TfrxOverlay(Band).PrintOnTop then
    ShowBand(Band);
 
  CurY := 0;
  SaveCurX := CurX;
  HeaderHeight := 0;
 
  for i := 0 to FHeaderList.Count - 1 do
  begin
   { use own CurX - we may be inside subreports now }
    CurX := FHeaderList[i].Left;
    Band := FHeaderList[i].Band;
    if Band = FStartNewPageBand then
      continue;
 
    if FIsFirstPage and (Band is TfrxPageHeader) and
      not TfrxPageHeader(Band).PrintOnFirstPage then
      continue;
 
    if Band <> nil then
    if not FKeeping or not FHeaderList[i].IsInKeepList then
    begin
      if (Band is TfrxHeader) and FDontShowHeaders then continue;
      Band.Overflow := True;
      SaveCurLine := CurLine;
      SaveCurLineThrough := CurLineThrough;
      CurLine := Band.FLineN;
      CurLineThrough := Band.FLineThrough;
      FCallFromAddPage := True;
 
      { fix the stack overflow error if call NewPage from ReportTitle }
      if Band is TfrxReportTitle then
        FHeaderList[i].Band := nil;
      if Band is TfrxPageHeader then
        HeaderHeight := Band.Height;
 
      ShowBand(Band);
 
      FCallFromAddPage := False;
      Band.Overflow := False;
      CurLine := SaveCurLine;
      CurLineThrough := SaveCurLineThrough;
      {!!!!!!!!!!!!!!!!!}
    end else if FHeaderList[i].IsInKeepList then begin
      FHeaderList[i].IsInKeepList := False;
    end;
  end;
 
  CurX := SaveCurX;
end;
 

 
Добавлено:
баг № два (страшненький)
 
Отчет многоколоночный, masterband-ы стрейченные и идет двойная группировка с KeepTogether и ReprintOnNewPage. Отчет начинает не по детски расплющивать. band-ы улетают неведомо куда.
 
Лечится так:
1. в frxClass.pas прицепляется TfrxCustomPreviewPages абстрактная функцию GetMaxY

Код:
 
    ...
    function GetAnchorCurPosition: Integer; virtual; abstract;
    function GetLastY: Extended; virtual; abstract;
    function GetMaxY: Extended; virtual; abstract;
    function GetLogicalPageNo: Integer; virtual; abstract;
    ...
 

 
2. в frxPreviewPages цепляется она же, но уже к TfrxPreviewPages

Код:
 
    ...
    function GetAnchorCurPosition: Integer; override;
    function GetCurPosition: Integer; override;
    function GetLastY: Extended; override;
    function GetMaxY: Extended; override;
    ...
 

, реализация GetLastY становится реализацией GetMaxY, а GetLastY получает новую
 

Код:
 
function TfrxPreviewPages.GetLastY: Extended;
var
  i: Integer;
  c: TfrxComponent;
  s: String;
begin
  Result := 0;
  for i := CurXMLPage.Count - 1 downto 0 do begin
    c := GetObject(CurXMLPage[i].Name);
    if c is TfrxBand then
    if not (c is TfrxPageFooter) and not (c is TfrxOverlay) then begin
      s := CurXMLPage[i].Prop['t'];
      if s <> '' then Result := frxStrToFloat(s)  
      else Result := c.Top;
       
      s := CurXMLPage[i].Prop['h'];
      if s <> '' then Result := Result + frxStrToFloat(s)  
      else Result := Result + c.Height;
 
      Exit;      
    end;
  end;
end;
 
function TfrxPreviewPages.GetMaxY: Extended;
var
  i: Integer;
  c: TfrxComponent;
  s: String;
  y: Extended;
begin
  Result := 0;
  for i := 0 to CurXMLPage.Count - 1 do
  begin
    c := GetObject(CurXMLPage[i].Name);
    if c is TfrxBand then
      if not (c is TfrxPageFooter) and not (c is TfrxOverlay) then
      begin
        s := CurXMLPage[i].Prop['t'];
        if s <> '' then
          y := frxStrToFloat(s) else
          y := c.Top;
        s := CurXMLPage[i].Prop['h'];
        if s <> '' then
          y := y + frxStrToFloat(s) else
          y := y + c.Height;
        if y > Result then
          Result := y;
      end;
  end;
end;
 

 
3. Подправляется TfrxEngine.AddColumn ...
 

Код:
 
procedure TfrxEngine.AddColumn;
var
  i: Integer;
  AddX: Extended;
  Band: TfrxBand;  
 
  procedure DoShow(Band: TfrxBand);
  begin ... end;
 
  procedure ShowBand(Band: TfrxBand);
  begin ... end;
 
begin
  CurColumn := CurColumn + 1;
  AddX := frxStrToFloat(FPage.ColumnPositions[CurColumn - 1]) * fr01cm;
  CurY := HeaderHeight;
 
 
  CurX := FPageCurX + AddX;
  for i := 0 to FHeaderList.Count - 1 do
  begin
    Band := FHeaderList[i].Band;
 
    if (Band is TfrxPageHeader) then continue;
 
    if Band <> nil then
    if not FKeeping or not FHeaderList[i].IsInKeepList then begin
      ShowBand(Band);
    end else if FHeaderList[i].IsInKeepList then begin
      FHeaderList[i].IsInKeepList := False;
    end;
  end;
end;
 

 
4. ... и TfrxEngine.NewColumn
 
[code]
procedure TfrxEngine.NewColumn;
begin
  if CurColumn >= FPage.Columns then NewPage
  else begin
    if FKeeping then
    begin
      if FKeepFooter then
        FAggregates.DeleteValue(FKeepBand);
      PreviewPages.CutObjects(FKeepPosition);
    end;
    EndColumn;
    AddColumn;
    if FKeeping then begin
      FAggregates.EndKeep;
      PreviewPages.PasteObjects(CurX, CurY);
      PreviewPages.Outline.ShiftItems(FKeepOutline, Round(CurY));
      PreviewPages.ShiftAnchors(FKeepAnchor, Round(CurY));
      CurY := PreviewPages.GetLastY;
      if FKeepFooter then FAggregates.AddValue(FKeepBand);
    end;
    FKeeping := False;
  end;
end;
[code]
 
 
Добавлено:
У меня есть подозреньице, что такие фиксы могут выйти боком для агрегатных функций и для band-ов со вложенными отчетами (хотя бог его знает, где они еще могут выйти боком)
 
Очень бы хотелось, чтоб хто-нибудь с разработчиков бы на эту проблемку глянул.

Всего записей: 15 | Зарегистр. 21-11-2006 | Отправлено: 14:48 21-11-2006
Jedinichka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ugkyu
 
Добавлено:
прошу прощения, уродливый wand в опере
 
продолжаю начатое вчера багофиксенье
баг №3
по видимому, разработчики предполагали выводить ColumnFooter после последней влезшей в колонку записи (PageFooter - наоборот, внизу страницы). Однако при двойной группировке с KeepTogether (одинарную не проверял) ColumnFooter выводится с достаточно хаотичным разбросом по Y на свободном пространстве внизу колонки.
 
Фиксится заменой строчек

Код:
 
  if FKeeping then
  begin
    if FKeepFooter then
      FAggregates.DeleteValue(FKeepBand);
    PreviewPages.CutObjects(FKeepPosition);
  end;
 

 
на  

Код:
 
  if FKeeping then
  begin
    if FKeepFooter then
      FAggregates.DeleteValue(FKeepBand);
    PreviewPages.CutObjects(FKeepPosition);
    CurY := PreviewPages.GetLastY;
  end;
 

в процедурах TfrxEngine.NewPage и NewColumn
 
P.S.
Существенно, чтоб процедура GetLastY была изменена по вчерашнему багофиксу. Кроме того, изменяемый код NewColumn-а также взялся из вчерашних изысканий.

Всего записей: 15 | Зарегистр. 21-11-2006 | Отправлено: 16:38 22-11-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Лицензия FastReport за багрепорты и багофиксы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru