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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
PowerChute



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vadson6666
А где ты раздобыл 3.21?

----------
Хочешь всего и сразу, а получаешь ничего и постепенно.

Всего записей: 520 | Зарегистр. 13-10-2004 | Отправлено: 12:13 24-03-2006
mrrex



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Смотри официальный сайт.
 

Всего записей: 110 | Зарегистр. 11-12-2005 | Отправлено: 18:31 24-03-2006
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mrrex
не флуди, тема создана не для этого, а для того чтобы ваявлять баги фаста и писать на них фиксы, раз разработчикам некогда

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 23:47 24-03-2006
RUSer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Заметил следующее поведение версии 3.15 ent: при использовании принтера hp с дровами PCL5, PCL5e, PCL6 - на печать всё отсылается нормально, но на принтер ничего не приходит и ошибки не возникает. При использовании дров для PS (postscript) - всё работает нормально. Проверялось как на локальном принтере так и на сетевом (с двух компов - с 2к и хр).
 
З. Ы. Может это конечно был глюк заправленного картриджа, но имело место следующее - первая страница, содержащая таблицу, нарисованную линиями 1px, выводится нормально (линии равномерные, нормальной толщины - где-то 0,3мм ), а последующие очень бледно, местами пропадая (линии тонкие, на глазок меньше 0,1мм).  
Для сравнения печатал на Самсунге SCX-416F (это комбайн такой офисный) - он воспринимал всё нормально (толщина линий минимальна, но одинакова на всех страницах - печатал больше 70шт за раз).
 
Заметил ещё странность: При постановке в очередь печати, задание передаётся под владельцем Никто - независимо от имени пользователя запущенной программы. Может конечно это я не указал (просто не знаю как), но на работе у нас доменная сетка и когда админу в голову пиво стукнет только ему известно - могут ещё одно ограничение забабахать.

Всего записей: 390 | Зарегистр. 24-08-2004 | Отправлено: 20:22 27-03-2006
mrrex



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
млин.... Че за борода?
Куда потерялся frxTee10.bdsproj в 3.21? Из старой версии не фурычит....

Всего записей: 110 | Зарегистр. 11-12-2005 | Отправлено: 15:40 28-03-2006
Darken



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Уж и незнаю баг это или фича, но меня она реаально достала
 
Передаю в фастреп финансовые значения и делаю тип поля денежный, т.е.  с использованием разделителя тысяч ака пробел, т.е. вида 10 025 023,23р.
Так вот при экспорте таких полей в excel эти числа мало того, что копируются текстом, так еще и пробелы остаются. Не ну я поминаю что можно сделать замену по всему документу и конвертнуть строки в числа, но не каждый же раз.

Всего записей: 65 | Зарегистр. 22-09-2004 | Отправлено: 11:33 29-03-2006
DeepTown

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Версия FastReport 3.21.00
При присваении значения в Report.PrintOptions.Copies=n в коде программы:
frxReport->LoadFromFile("...");
frxReport->PrintOptions->Copies=n;
frxReport->ShowReport();
при нажатии кнопки печать - все ОК! выставлено нужное кол-во копий.
 
При попытке выставить это же свойство в коде отчета (пробовал во всех доступных событиях отчета/страницы):
{
Report.PrintOptions.Copies=n;
ShowMessage(Report.PrintOptions.Copies);
}
выходит следующее:
1. при печати из режима просмотра/отладки в дизайнере (frxReport->DesignReport()) все ОК!,
2. при печати в реальном вызове (frxReport->ShowReport()) в диалоге печать отображается кол-во которое было прописано в свойствах отчета по умолчанию ;( хотя если вывести:
ShowMessage(Report.PrintOptions.Copies);
покажет правильно!

Всего записей: 78 | Зарегистр. 30-05-2002 | Отправлено: 04:12 06-04-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DeepTown
Это такая фича фаста. Вот что говорил про это Александр Цыганенко

Цитата:
Есть одна проблема - после
построения отчет восстанавливается из временного потока, куда был записан
перед построением. Поэтому такие изменения затираются. Обойти можно,
присвоив TfrxReport.EngineOptions.DestroyForms := False (тогда отчет не
будет сохраняться-восстанавливаться при запуске).

т.е. так должно работать
Код:
 
frxReport->LoadFromFile("...");  
frxReport->EngineOptions->DestroyForms=False;  
frxReport->ShowReport();

My_Way
А акция по выдаче лицензий за багрепорты на FRServer не планируется?

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 14:08 06-04-2006 | Исправлено: gpi, 14:18 06-04-2006
DroN_S

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

Цитата:
А акция по выдаче лицензий за багрепорты на FRServer не планируется?

присоединяюсь к предложению
а где же интересно разработчики запропостились???
что то они здесь вобще не пявляются...

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 12:20 08-04-2006
GloThin



Тобольский шашлычник
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
2 ALL
По информации от разработчиков продукта:  
 
   Акция по раздаче ФастРепорт Сервер за багрепорты и багофиксы готова к внедрению в массы. В ближайшее время, насколько ближайшее я не знаю, будет проведен подсчет всех заработанных бонусов в этом топике и выданы заработанные призы. Просьба не тревожиться сильно по поводу очень не частого появления разработчиков в топике, без заслуженных призов здесь никто не останется.
Расценки будут добавлены в шапку. Ну и результаты со временем тоже.
 
P.S. Также будут пересчитаны баллы всем особо отличившимся на ниве составления багрепортов и багофиксов. И многие из них обнаружат в приватной панели заслуженные бонусы...

----------
Все принципиальное-просто,а все простое-принципиально!
На каждого мудреца достаточно простоты!
Не изменишь существующее,не изменив себя!!

Всего записей: 709 | Зарегистр. 28-04-2004 | Отправлено: 22:34 18-04-2006 | Исправлено: GloThin, 23:07 18-04-2006
GloThin



Тобольский шашлычник
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Расценки будут добавлены в шапку.  

Уже в шапке! ждем-с честно заработанного !

----------
Все принципиальное-просто,а все простое-принципиально!
На каждого мудреца достаточно простоты!
Не изменишь существующее,не изменив себя!!

Всего записей: 709 | Зарегистр. 28-04-2004 | Отправлено: 21:39 20-04-2006
My_Way



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сорри за задержку, продолжим:  
 
начислены очки:  
mLex 10:0 + 1:1 = 11:1 всего 14
benchik 1 баг
mrrex 2 бага
vadson6666 8:0 + 1 баг = всего 9  
RUSer 11:0 + 1 баг = всего 12
Darken 1 баг
 
  В качестве процентов за длительный перерыв в раздаче всем участвовавшим в акции после 11.01 начислен дополнительный бонус в размере 7 баллов. Это уже становится доброй традицией!
 
Итого:
 
mLex 18:1 всего 21 (FR Studio)
benchik всего 8 (FR Pro)
mrrex всего 9 (FR Ent)  
vadson6666 всего 16 (FR Ent)  
RUSer всего 19 (FR Studio)
Darken всего 8 (FR Pro)
 
P.S.

Цитата:
ждем-с честно заработанного !

Вот и дождались!
Смотрим свои панельки!
Новым призерам нужно отправить данные для регистрации в ПМ(смотреть шапку).

Всего записей: 80 | Зарегистр. 16-09-2004 | Отправлено: 17:16 21-04-2006 | Исправлено: My_Way, 08:18 22-04-2006
DmLam

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А можно учесть описанные на оф. форуме?
здесь
 
Если да, то могу сразу еще один неприятный баг реализации многопоточности описать вместе с фиксом. результатом бага является то, что в серверных отчетах, хранимых в БД нельзя использовать frxRichView и еще некоторые компоненты...

Всего записей: 34 | Зарегистр. 13-01-2003 | Отправлено: 15:38 24-04-2006
DroN_S

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

Цитата:
А можно учесть описанные на оф. форуме?

нет, это очень мало вероятно...
считаются балы и ответы, которые размещены здесь, а не где либо...

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 16:38 24-04-2006
My_Way



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

Цитата:
А можно учесть описанные на оф. форуме?  

Нельзя
Написано же в шапке:

Цитата:
Постите здесь свои багрепорты и багофиксы по ФастРепорту,и получайте лицензии на ФастРепорт.


Всего записей: 80 | Зарегистр. 16-09-2004 | Отправлено: 04:42 27-04-2006
DmLam

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну, раз ссылки на оф.сайт не засчитываются, то рассказываю какие баги нашлись при запуске FR Enterprise, точнее при попытке его реально использовать в качестве сервера отчетов.
 
Для начала повторю то, что писал здесь
 
Ситуация: на предприятии существует некоторое количество приложений разного рода, работающих с БД (Oracle). Отчеты всех приложений лежат в одной БД, в специально под них отведенной таблице в BLOB-поле.
Берем стандартный пример сервера из поставки FRE 3.20.25, пишем обработчик OnGetReport в котором загружаем отчет из BLOB-а. Все хорошо, кроме того, что отчеты в которых присутствует форма запроса не работают - сервер выдает exception - System Error, Code 5 - "Отказано в доступе".
Расследование показывает, что проблема возникает в frxEngine в TfrxEngine.RunDialogs на  

Код:
 
        { refresh the border style - it was bsSizeable in the designer }
        p.DialogForm.BorderStyle := p.BorderStyle;
 

 
Дальнейшее расследование показывает, что собственно проблема заключается в том, что при изменении BorderStyle формы происходит RecreateWnd - т.е. сначала окно разрушается, а потом... потом не возникает, потому что система ругается на попытку разрушить окно, созданое другим потоком. Едем дальше и обнаруживаем, что отчет загружается сервером в TfrxReportSession.Execute следующим образом:
 

Код:
 
      if Assigned(TfrxReportServer(FParentReportServer).OnGetReport) then
        Synchronize(DoOnGetReport)    // Lam
      else FReport.LoadFromFile(FName);
 

 
Тут становится понятно, где порылась собака - если отчет загружать из файла, то он грузится в том же потоке, где потом будет строиться, а если его загружать по событию OnGetReport, то он почему-то грузится в основном потоке.
BugFix: убрать Synhronize, обнаружить, что формы запроса условий отчета стали работать и обрадоваться наступившему счастью.
 
Порадовавшись, заполним форму, нажмем кнопку OK и, застыв в предвкушении премии за запуск корпоративной информационной системы, получим ошибку сервера 403 - нет доступа. Упс.
Разбирательства приводят к следующему куску кода в модуле frxServer в TfrxServerSession.ParseHTTPHeader:
 

Код:
 
          RepName := ParseParam('report');
          if (Length(RepName) > 0) then
          begin
            ...
          end else
            if i > 0 then
              FErrorCode := 403;
 

 
i здесь при построении отчета всегда >0, поэтому проблема в отсутствии (точнее, пустоте) параметра report в строке запроса, генерируемой формой запроса.
Едем дальше и выясняем, что этот параметр задается как одно из hidden полей в форме, генерируемой в модуле frxServerReports методом TfrxReportSession.DoSaveForm:
 

Код:
 
    WebForm := TfrxWebForm.Create(CurPage, FSessionId);
    try
      WebForm.ReportName := ExtractReportName(FReport.FileName);  // заветная строка !
      WebForm.Prepare;
      ...
 

 
Отсюда вывод - у отчета c формой запроса должен быть прописан FileName.
BugFix: варианта два - еще чуть-чуть подправить TfrxReportSession.Execute в части вызова события для загрузки отчета, примерно так:
 

Код:
 
      if Assigned(TfrxReportServer(FParentReportServer).OnGetReport) then
      begin                             // Lam
//        Synchronize(DoOnGetReport)    // Lam
        DoOnGetReport;                  // Lam
        if FReport.FileName='' then     // Lam
          FReport.FileName := FName;    // Lam
      end                               // Lam
      else FReport.LoadFromFile(FName);
 

 
хотя это, возможно, и не очень правильно, видимо с идеологической точки зрения
Вариант второй - прописать в обработчике этого события загруки отчета Report.FileName например так:
 

Код:
 
          Report.FileName := ReportName;
 

 
Ура, теперь у нас все работает. Простые отчеты строятся, бежим к начальству показывать только что сделанный отчет с красивым RichEdit, в котором много текста разными шрифтами и цветами... и обламываемся. Блин, что ж мы все по-хорошему-то не проверили, прежде чем бигбоссу показывать... Но ведь работал же, работал! как же так... Возвращаемся разбираться.  
 
Посидев минут пять понимаем, что отчет с frxRichView строится один раз и все, больше никак. Если убрать RichView из отчета - все работает без проблем. Хм... хм... Начинаем отладку. Выясняем, что сервер при повторном построении отчета с RichView вылетает с ошибкой 1400 - неверный дескриптор окна. Фигассе!..
Копаемся в коде, мучаем отладчик, ругаемся на всех и вся, но в конце-концов понимаем, что проблема возникает при создании TfrxRichView, причем возникает именно во второй раз, а конкретно в TfrxRichView.Create в строке
 

Код:
 
  SetWindowLong(FRichEdit.Handle, GWL_EXSTYLE,
    GetWindowLong(FRichEdit.Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT);
 

 
а конкретно проблема возникает при получении FRichEdit.Handle, когда создается собственно окно FRichEdit. Единственным окном (хэндлом окна, точнее), которое передается в CreateWindow является родительское. Вспомнив о самой первой описаной в данном опусе проблеме с разрушением окна, созданного не своим потоком, логично предполагаем, что проблема примерно такая же - пытаемся создать окно, у которого родитель не создан нашим потоком. (Забегаяя вперед скажу, что предположение оказалось верным, хотя в MSDN от октября 2005 об этом ничего не сказано
Посмотрев, откуда берется родительское окно, обращаем внимание на строку FRichEdit.Parent := frxParentForm; все в том же конструкторе frxRichView и начинаем разбираться что такое frxParentForm и как нам с ней жить.
Недолгие разбирательства в коде функции frxParentForm (модуль frxClass) еще раз убеждают нас в верности нашего предположения - она просто создает пустую форму для использования в качестве родительской во внутренних компонентах у TfrxRichView, TfrxOLEView и т.д. А если таковая форма была уже создана ранее, то она и возвращается. И тут приходит озарение! Так вот почему отчет работал один раз, а следующий уже не работал! Родительская форма для frxRichView создавалась при первом его вызове, а при втором возвращалась она же. Это бы работало (почему, собственно "бы"? - это работает!), если бы это был обычный локальный отчет, каждый раз строящийся в одном и том же потоке. Но у нас (будем справедливы! - у Fast Reports Inc. ) каждый отчет строится в своем потоке (конечно! это же сервер!) а родительское окно каждый поток получает одно и то же. Чуть чуть подумав, переписываем frxParentForm так, чтобы она каждому потоку выдавала свою родительскую форму и убивала родительские формы завершившихся потоков, для этого правим модуль frxClass следующим образом:
 
изменяем frxParentForm следующим образом (обратите внимание - нам понадобятся два списка для потоков и созданных ими форм:
 

Код:
 
var                                                                          // Lam
  ThreadsList, ParentFormsList: TList;   // lists for saving IDs of thread   // Lam
                                         // that created parent window       // Lam
function frxParentForm: TForm;
var                                                                          // Lam
  Index: integer;                                                            // Lam
begin                                                                        // Lam
  Index := ThreadsList.IndexOf(pointer(GetCurrentThreadID));                 // Lam
  if Index=-1 then                                                           // Lam
  begin                                                                      // Lam
    ThreadsList.Add(pointer(GetCurrentThreadID));                            // Lam
    Index := ParentFormsList.Add(TForm.Create(nil));                         // Lam
  end;                                                                       // Lam
  Result := TForm(ParentFormsList[Index]);                                   // Lam
end;
 

 
В initialization модуля добавляем
 

Код:
 
  ThreadsList := TList.Create;                 // Lam
  ParentFormsList := TList.Create;             // Lam
 

 
и, соответственно в finalization
 

Код:
 
  if ParentFormsList.Count>0 then              // Lam
    EmptyParentForm;                           // Lam
  ThreadsList.Free;                            // Lam
  ParentFormsList.Free;                        // Lam
 

 
Исправляем процедуру frxEmptyParentForm как показано ниже
 

Код:
 
procedure EmptyParentForm;
var                                                            // Lam
  i: integer;                                                  // Lam
begin
  for i:=0 to ParentFormsList.Count-1 do                       // Lam
    while TForm(ParentFormsList[i]).ControlCount>0 do             // Lam
      TForm(ParentFormsList[i]).Controls[0].Parent := nil;     // Lam
end;
 

 
после чего, в принципе, все упоминания переменной FParentForm из модуля можно спокойно убрать.
Далее, в интерфейс frxClass там, где описана frxParentForm добавляем еще одну функцию
 

Код:
 
procedure frxDestroyParentForm(ThreadID: integer = 0);                    // Lam
 

 
(честно говоря, параметр ей в общем-то не нужен, но пусть он будет... на будущее
 
и в implementation  
 

Код:
 
procedure frxDestroyParentForm(ThreadID: integer = 0);             // Lam
var                                                                // Lam
  Index: integer;                                                  // Lam
begin                                                              // Lam
  if ThreadID=0 then                                               // Lam
    ThreadID := GetCurrentThreadID;                                // Lam
                                                                   // Lam
  Index := ThreadsList.IndexOf(pointer(ThreadID));                 // Lam
  if Index<>-1 then                                                // Lam
  begin                                                            // Lam
    TForm(ParentFormsList[Index]).Free;                            // Lam
    ThreadsList.Delete(Index);                                     // Lam
    ParentFormsList.Delete(Index);                                 // Lam
  end;                                                             // Lam
end;                                                               // Lam
 

 
Ну и надо кого-то заставить вызвать эту функцию по окончании работы потока, строящего отчет. Сделаем это в TfrxReportSession.Destroy (модуль frxServerReports):
 

Код:
 
  if Assigned(FReport) then
  try
    FReport.Free;
    frxDestroyParentForm;                                             // Lam
  except
    ...
 

 
Все. Сага о багах закончена. Компилируем, запускаем, бежим к начальнику показывать как работают отчеты на корпоративном сайте и в очередной раз уговаривать официально купить FastReport Enterprise Edition
 
Надеюсь, ничего не забыл.

Всего записей: 34 | Зарегистр. 13-01-2003 | Отправлено: 09:41 27-04-2006 | Исправлено: DmLam, 12:35 22-05-2006
RUSer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При установке версии 3.21Е для делфи 7 стандартным инсталлятором (делфя ни разу не запускалась) оказались удалены все стандартные компоненты и в IDE осталась возможность создавать только консольные приложения и другие не-гуи модули.
 
Аналогичная проблема и при использовании нескольких пользователей:  
 
Делфи 7 настроена для нескольких пользователей и под обоими логинами работает нормально.
Ставится инсталлятором репорт для одного из них. Для этого пользователя всё работает нормально.
Грузимся под вторым логином. В делфях репорта нема. Ставим инсталлом. Ситуация описана выше - нифига нет.
Грузим другой логин - аналогично.
 
В итоге обошёл проблему ручной установкой репорта для второго пользователя.

Всего записей: 390 | Зарегистр. 24-08-2004 | Отправлено: 15:42 27-04-2006
mrrex



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FR 3.21
 
Дизайнер. Редактор кода отчета.  
Редактируем код. Курсор стоит в произвольном месте текста. Надо перенести переменную из списка в текст кода скрипта. Хватаем мышью, (в этот момент курсор в редакторе исчезает ) переносим куда надо, дропим... Угадываем с двух раз, куда вставиться текст? Правильно. В место расположения курсора, а не в место Drag&Drop.  
 
Явный баг. Интересно, редактор когда-нибудь доделают? Кто-то из разработчиков, кажеться сам Александр Цыганенко говорил, что редактор с синтаксической подсветкой был внесен в довесок и дальнейшего развития не получил. Зачем использовать недоделанный компонент? Ну возьмите к примеру SynEdit. А если уж душа прикипела к тому, что сделоно своими руками (что вполне естественно), то неплохо бы довести его до ума.
 
Кстати, вот еще полубаг: позиция ошибки скрипта при компиляции вычисляется правильно только в отношении строки. Столбец может показывать что угодно, только не то что нужно.

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



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
3.21 в связке с IBX
 
мелочь:
 
Здесь описаны те мелочи, которые в принципе не очень мешают работать, но создают
отчетливое впечатление перманентной BETA отладки.
 
1. При редактировании кода отчета нажимаем кнопку "Компоненты IBX"
   Кнопка остается в нажатом состоянии, но меню с компонентами не появляется.
   По идее должно, поскольку они не визуальные. И, кстати, панелька с этими компонентами
   должна быть доступна всегла, а не только когда юзер переключился
   на визуальное редактирование отчета.
   
2. Если пользователь не выбрал компонент из выпадающего меню "Компоненты IBX" а посто кликнул
   на отчете, то меню исчезает а кнопка все равно остается нажатой. Это касается всех менюшек
   на левом тулбаре.
   
3. Выпадающее меню с бэндами на своей кнопке не содержит стрелки.
 
4. Управление доступностью (Enabled/Disabled) левого тулбара, при переключении код/визуальный
   редактор недоделано. Не все необходимые кнопки меняют свое состояние
 
 
Посерьезнее:
 
1. Поле состоящее из 1 -го символа (Пол человека М/Ж ). Поле выровнено к левой стороне. выравнивание
   текста внутри поля стандартное - все нормально. Как только ставим VAlign = vaCenter тут же пропадает
   текст при выводе отчета. Само поле достаточного размера. Пробовал уменьшать шрифт, не помогает.
   с многобуквенным текстом такого нет.
   
   кусок текста SQL, возвращающего букву пола
   RTRIM(p.sex) - не работает
   
   RTRIM(p.sex)||'sdsdsds' работает (много букв)
   
   С однобуквенным полем, содержащим обычный текст (не ссылку на поле данных) все нормально
   
2. Как понимать свойство HideZero обьекта Memo? Если поле числовое, то он прячет и значение <NULL> и значение 0! Что в принципе совершенно разные вещи! Не так ли ?

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



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
3.21 в связке с IBX
 
 1. Баг обработки запроса:
 
 код скрипта:
 
 q1.SQL.Clear();
 q1.SQL.Add('select ID_SUBGROUP FROM PROJECT_SUBGROUP WHERE ID_PROJECT='+<PRJID>+' AND ID_SUBGROUP between 1 AND 3');
 q1.Open;
 if q1.RecordCount>0 Then
 Begin
 //-- формирование первой группы
  memo11.visible:=true;
 end;
 ==================!!!!!!!!!!!!!!!
 q1.SQL.Clear();
 q1.SQL.Add('select ID_SUBGROUP FROM PROJECT_SUBGROUP WHERE ID_PROJECT='+<PRJID>+' AND ID_SUBGROUP between 5 AND 6');
 q1.Open;
 if q1.RecordCount>0 Then
 Begin
 //-- формирование второй группы
  memo12.visible:=true;
 end;
 
 не вызывает ошибки, хотя должен. Между двумя группами операторов (=====!!!!)должен стоять q1.Close,
 что бы все работало правильно.
 Объект TfrxQuery не сообщает об ошибке при повторном открытии (и, кстати не открывает его!). В отличие от стандартного
 TIBXQuery, сообщающего о невозможности открыть открытый запрос.

Всего записей: 110 | Зарегистр. 11-12-2005 | Отправлено: 20:05 04-05-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