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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это вероятно является фичей, однако очень неприятно: если поместить значение в текст у мемки, к примеру 'abc', то при вытаскивании получишь 'abs#$A#$D'.  
 
Чтобы результат был равен исходному 'abc', можно переписать в ftxUnicodeStrings этот метод:
 

Код:
 
function TWideStrings.GetTextStr: WideString;
var
  I, L, Size, Count: Integer;
  P: PWideChar;
  S, LB: WideString;
begin
  Count := FWideStringList.Count;
  Size := 0;
  LB := sLineBreak;
  for I := 0 to Count - 1 do Inc(Size, Length(Get(I)) + Length(LB));
  if size >0 then dec (size, length (lb)); {line added}
  SetString(Result, nil, Size);
  P := Pointer(Result);
  for I := 0 to Count - 1 do
  begin
    S := Get(I);
    L := Length(S);
    if L <> 0 then
    begin
      System.Move(Pointer(S)^, P^, L * SizeOf(WideChar));
      Inc(P, L);
    end;
    if i <> count -1 then begin  {line added}
      L := Length(LB);
      if L <> 0 then
      begin
        System.Move(Pointer(LB)^, P^, L * SizeOf(WideChar));
        Inc(P, L);
      end;
    end;                                 {line added}
  end;
end;
 


Всего записей: 15 | Зарегистр. 21-11-2006 | Отправлено: 19:31 29-04-2007
yurkinsys

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FastReport 4.2
 
У "TfrxReportPage"  свойства  "PaperHeight" и "PaperWidth" имеют тип "extended" и значения могут быть -/+ (отрицат./полож.). Так вот когда PaperHeighт или PaperWidth =-Х(значение) страница исчезает из дизайнера а в превью её показывает очень агромной и пустой. Думаю что эти свойства не должны допустить отрицательные значения! Я сделал так:
 
в файле: "frxClass.pas"
 
function Round8(e: Extended): Extended;
begin
  Result := Round(e * 100000000) / 100000000;
end;
//---------------------------------------------------------
 
добавил abs() вот так:
 
function Round8(e: Extended): Extended;
begin
  Result := Round(abs(e) * 100000000) / 100000000;
end;
 

Всего записей: 2 | Зарегистр. 03-05-2007 | Отправлено: 23:52 03-05-2007 | Исправлено: yurkinsys, 11:38 05-05-2007
vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Баг проявляется и на 3 и на 4-й версии.
1. Создаем отчет (TfrxReport) на основе внешнего набора данных (НД) с использованием TfrxDBDataset (через TfrxDBDataset подключаем TDataSource который в свою очередь подключен к TDataset).
   При этом UserName для  TfrxDBDataset ставим, например, "Customer".
2. Создаем еще один отчет (TfrxReport) на основе другого внешнего НД с использованием TfrxDBDataset с таким же именем ("Customer")
3. При выполнении любого из отчетов - в качестве данных отображается тот TfrxDBDataset, который создан первым, даже если явно прописывается 2-й TfrxDBDataset.
Пример тестового приложения здесь (рапида) и здесь (депозитфайл)
В папку с программой необходимо скопировать demo.mdb из стандартного демо FR
 
В обработчике procedure TForm1.FormCreate(Sender: TObject) динамически создаются 2 инстанса TfrxDBDataset:

Код:
  frxDBDataset1 := TfrxDBDataset.Create(Self);
  frxDBDataset2 := TfrxDBDataset.Create(Self);

 
Первый "привязывается" на НД с названием страны (select name from country), второй на НД с названием компании (select company as name from customer).  
В отчете (test.xml) - всего одно поле "name". Не зависимо от того, какой отчет я выполняю - в отчете видны те данные, инстанс TfrxDBDataset для которых создан первым


Для исправления бага необходимо переписать функцию frxFindDataSet из юнита frxClass.  
Эта функция в настоящий момент ищет первый попавшийся НД с подходящим именем (+ доп проверки на владельца).  
Для случая, когда НД живет прямо в отчете (например как построены все демо примеры) этого достаточно, но в общем случае неправильно.
Лично я - вобще избавился от этой функции в таком виде. Вместо нее написал бы аналогичную функцию в классе TfrxReport.  
Такой подход будет более thread-safe - что особенно актуально для FR-Server.

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 12:31 11-05-2007 | Исправлено: vshersh, 12:32 11-05-2007
jonikDk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
версия 4.2
Баг это или фича  
Если использовать режим MDIChild у FrxReport почему автоматически свойство Modal не переводится в False ??
Поставил MDI в True а отчет все  равно выходит модальным. Еще и с ошибкой.  
Если это баг то лечение не сложное:
 
в классе TfrxPreviewOptions свойства MDIChild и Modal сделать зависимыми, чтобы при изменении одного свойства второе менялось автоматически...

Всего записей: 1605 | Зарегистр. 01-03-2004 | Отправлено: 17:15 31-05-2007
A_V

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FR4.2
при установленном св-ве OldStyleProgress невозможно отлаживать отчет (наблюдал такое на двухпроходном):
падает на брейкпойнтах в TfrxDesignerForm.OnRunLine на SetFocus c 'cant set focus on disabled or invisible window'
Решение: заменить EnableWindow(Handle, True) на Enabled := True

Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 14:59 06-06-2007 | Исправлено: A_V, 15:03 06-06-2007
vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не баг, но все же...
Очень многие (причем достаточно давно) жаждят поиметь прозрачный TfrxPictureView для этого достаточно добавить опубликованное свойство  

Код:
 
    property Transparent: Boolean read FTransparent write SetTransparent;
...
procedure TfrxPictureView.SetTransparent(const Value: Boolean);
begin
  if FTransparent <> Value then
  begin
    FTransparent := Value;
    Picture.Graphic.Transparent := Value;
  end;
end;
 

и  в процедуре PictureChanged прописать такой код

Код:
 
procedure TfrxPictureView.PictureChanged(Sender: TObject);
begin
  AutoSize := FAutoSize;
  FPictureChanged := True;
  Picture.Graphic.Transparent := Transparent;
end;
 

При желании можно навернуть  прочие свойства, типа TransparentColor и TransparentMode...
 
Удачи!

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 11:09 15-06-2007
LulumbaZ



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Версия 4.2.40
Если из окна "Предварительный просмотр" вызвать Designer по кнопке "Редактировать страницу", потом закрыть все окна и приложение, то FastMM4 показывает значительные утечки памяти.

Всего записей: 1051 | Зарегистр. 12-09-2003 | Отправлено: 00:51 21-06-2007
Falk0ner

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

 

Всего записей: 12 | Зарегистр. 01-01-2006 | Отправлено: 22:33 25-06-2007
Jedinichka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если странице поставить свойсво Landscape и при печати попробовать сделать Scale, страницу покурочит. Особенно хорошо это ощущается, когда скалишь с A4 на A4. Лечится изменением в frxPreviewPages функции TfrxPreviewPages.Print  
 
(строка 1978)

Код:
 
//  frxPrinters.Printer.SetViewParams(Report.PrintOptions.PrintOnSheet, 0, 0, poPortrait);
  frxPrinters.Printer.SetViewParams(
    Report.PrintOptions.PrintOnSheet, 0, 0, Page[0].Orientation);
 

 
Добавлено:
если у мэмы поставить нетривиальный браш, то вокруг него появляется неубиенная черная рамка в пиксел. Лечится изменением TfrxView.DrawBackground в frxClass
 

Код:
 
 
    if FBrushStyle <> bsSolid then
    begin
    // Brush.Style := xxx does not work for some printers
//      br := CreateHatchBrush(Integer(FBrushStyle) - 2, ColorToRGB(Frame.Color));
//      oldbr := SelectObject(Handle, br);
//      Rectangle(FX, FY, FX1 + 1, FY1 + 1);
//      SelectObject(Handle, oldbr);
//      DeleteObject(br);
 
      pn := createPen (PS_Null, 0, 0);
      br := CreateHatchBrush(
        Integer(FBrushStyle) - 2, ColorToRGB(Frame.Color));
      oldbr := SelectObject(handle, br);
      oldpn := SelectObject(handle, pn);
 
      rectangle (FX, FY, FX1 + 1, FY1 + 1);
 
      SelectObject(Handle, oldbr);
      DeleteObject(br);
      SelectObject(Handle, oldpn);
      DeleteObject(pn);
    end;
 
 

Всего записей: 15 | Зарегистр. 21-11-2006 | Отправлено: 17:42 12-07-2007
AntonVA1



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот у меня тут, в процессе чтения этой темы, созрело предложение к My_Way:
А не мог бы ты так же сообщать в этом топике о том, принят этот багофикс или нет. Нужно это по двум причинам:
1. Тогда мы мог ли бы починить свои Фасты на машинах, не дожидаясь выхода новой версии. (Правда, в этом случае нужно тем, кто сюда пишет, точно указывать версию).
2. Это могло бы стимулировать других к написанию сообщений в эту тему.
 
И сразу вопрос: А как будет учитываться, если я напишу новую фичу для Фастов?
Или толковые изменения? К примеру, модернизирую стандартную форму предпросмотра.

Всего записей: 474 | Зарегистр. 17-09-2003 | Отправлено: 00:37 28-08-2007
GrayElf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Багрепорт
Проблема была в 3-ей версии, в 4.1 она осталась.
Создаем новый отчет, помещаем на него бэнд с данными 1-го уровня. Ставим в середине бэнда memo1, с левого края memo2 (важен порядок создания). Устанавливаем memo2.
AutoWidth = True, memo1.Align = baLeft. Запускаем отчет и видим, что AutoWidth не сработало. Однако, при прокрутке за пределы экрана и обратно, AutoWidth срабатывает и memo1 прыгает к правому краю memo2.
Багофикс
Нужно разделить процедуры определения ширины текста и вывода memo на экран.
У TfrxCustomMemoView добавляем public метод: procedure SetAutoSize, в который перемещаем часть текста из SetDrawParams:

Код:
 
procedure TfrxCustomMemoView.SetAutoSize;
var
  SaveWidth: Extended;
  FDrawText: TfrxDrawText;
begin
  if Report <> nil then
    FDrawText := Report.FDrawText else
    FDrawText := frxDrawText;
 
  if FHighlight.Active then
  begin
    FDrawText.SetFont(FHighlight.Font);
    FColor := FHighlight.Color;
  end
  else
    FDrawText.SetFont(FFont);
  FDrawText.SetOptions(FWordWrap, FAllowHTMLTags, FRTLReading, FWordBreak,
    FClipped, FWysiwyg, FRotation);
  FDrawText.SetGaps(FParagraphGap, FCharSpacing, FLineSpacing);
  if not IsDesigning then
    if FAutoWidth then
    begin
      FDrawText.SetDimensions(1, 1, 1, Rect(0, 0, 10000, 10000), Rect(0, 0, 10000, 10000));
      FDrawText.SetText(FMemo);
      SaveWidth := Width;
      Width := FDrawText.CalcWidth + AdjustCalcWidth;
      if FHAlign = haRight then
        Left := Left + SaveWidth - Width
      else if FHAlign = haCenter then
        Left := Left + (SaveWidth - Width) / 2;
      if Parent <> nil then
        Parent.AlignChildren;
    end;
end;
 

 
В TfrxPreviewPages.DrawPage изменяем цикл вывода:

Код:
 
 
  for i := 0 to l.Count - 1 do
  begin
    c := l[i];
    if (c is TfrxView) and ViewVisible(c) then
      if not IsPrinting or TfrxView(c).Printable then
      begin
        c.IsPrinting := IsPrinting;
        { needed for TOTALPAGES macro }
        if c is TfrxCustomMemoView then
        begin
          THackMemoView(c).FTotalPages := Count;
          THackMemoView(c).FCopyNo := FCopyNo;
          THackMemoView(c).FPrintScale := FPrintScale;
/////////////////////by GrayElf//////////////////////////////
        //сначала только рассчитаем объект, если он TfrxCustomMemoView
          TfrxCustomMemoView(c).SetAutoSize;
        end;
        { draw the object - убираем}
//        TfrxView(c).Draw(Canvas, ScaleX, ScaleY, OffsetX, OffsetY);
/////////////////////by GrayElf end//////////////////////////
        c.IsPrinting := False;
      end;
  end;
/////////////////////by GrayElf//////////////////////////////
//и выводим объекты отдельным циклом
  for i := 0 to l.Count - 1 do//второй проход - вывод
  begin
    c := l[i];
    if (c is TfrxView) and ViewVisible(c) then
      if not IsPrinting or TfrxView(c).Printable then
      begin
        c.IsPrinting := IsPrinting;
        TfrxView(c).Draw(Canvas, ScaleX, ScaleY, OffsetX, OffsetY);
        c.IsPrinting := False;
      end;
  end;
/////////////////////by GrayElf end//////////////////////////
 
 

 

Всего записей: 34 | Зарегистр. 19-04-2005 | Отправлено: 05:02 30-08-2007
TJSergio



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Багрепорт и багофикc
FastReport 4.  
Проблема Unicode, charsets и настройка Windows "Чарсет для Non-Unicode программ".

 
Предисловие:
Как написанно на FastReportе, при использовании Unicode могут некоректно печатать принтера и данные из базы выводятся в том charset который установлен в Windows.
Значит надо использовать Russian_charset.  
 
Как получить баг?
Создаем отчет с Russian_charset в memo на Windows с локалью 1251. Все показывает и печатает. Переносим готовую программу на Windows  с локалью 1257, и вместо текста видим знаки вопросов "?". И сразу понимаем, что в НЕ-уникодовые проперти присваиваются уникодовские строки "влоб"!  
FastReport отличный компонент и я хочу, купить и использовать его. Но моя программа "работает" в прибалтийских странах и ближней европе. Значит локаль у них будет точно другой и у всех разной! а если я предложу им её сменить - просто не купят программу!  
Ещё проблема: А если в одном отчете нужны Memo с разным charset?
 
Начав искать проблемму и читая эту тему я сразу нашел одно из мест.
QuickeneR предложил замену:

Код:
 
...FOptions, @FScaledRect, PChar(String(s)) + j, i - j, nil);...
 

Модифицированный вариант от этого я нашел в текущих исходниках FastReport!

Код:
 
        if FWysiwyg then//было
          ExtTextOut(C.Handle, X + Round(add1 * SinA), Y + Round(add1 * CosA),
            FOptions, @FScaledRect, PChar(String(s)) + j, i - j, @FTempArray[j])
        else
          ExtTextOut(C.Handle, X + Round(add1 * SinA), Y + Round(add1 * CosA),
            FOptions, @FScaledRect, PChar(String(s)) + j, i - j, nil);
 

Господа, ну также нельзя. String(s) - Преобразование типов которое недопустимо при работе с уникодом.
Корректно вместо PChar(String(s)) нужно писать:

Код:
 
        if FWysiwyg then//fix
          ExtTextOut(C.Handle, X + Round(add1 * SinA), Y + Round(add1 * CosA),
            FOptions, @FScaledRect, PChar(WideStringToStringEx(s,CharSetToCodePage(C.Font.Charset))) + j, i - j, @FTempArray[j])
        else
          ExtTextOut(C.Handle, X + Round(add1 * SinA), Y + Round(add1 * CosA),
            FOptions, @FScaledRect, PChar(WideStringToStringEx(s,CharSetToCodePage(C.Font.Charset))) + j, i - j, nil);
 

WideStringToStringEx - функция преобразования строки по указанной локали, которую мы получаем через функцию FastReporta CharSetToCodePage.

Код:
 
function WideStringToStringEx(const WS: WideString; CodePage: Cardinal): AnsiString;
var
  InputLength,
  OutputLength: Integer;
begin
    InputLength := Length(WS);
    OutputLength := WideCharToMultiByte(CodePage, 0, PWideChar(WS), InputLength, nil, 0, nil, nil);
    SetLength(Result, OutputLength);
    WideCharToMultiByte(CodePage, 0, PWideChar(WS), InputLength, PAnsiChar(Result), OutputLength, nil, nil);
end;
 

После этого мы получаем корректный результат в не завмсимости от локали!
Но это начало пути. Редактор Memo тоже не корреткно зачитывает строки из-за:

Код:
 
    Memo.Text := FMemoView.Text;//было
 

Переделываем:

Код:
 
//fix
    Memo.Text := WideStringToStringEx(FMemoView.Text,CharSetToCodePage(Memo.Font.charset));
 

Ну и пишет тоже:

Код:
 
    FText := Memo.Text;//было
 

Переделываем:

Код:
 
//fix
    FText := AnsiToUnicode(Memo.Text,CharSetToCodePage(Memo.Font.charset));
 

AnsiToUnicode - функция FastReporta.
 
Ну вот теперь у нас корректное открытие формы, печать и редактирование!
Это не просто исправление бага, это целое продвижение FastReporta на качественно новый уровень - реальная поддержка unicode (т.е. мего багфикс)
 
P.S.Единственное в чем я не уверен, что "вылавил" все места в FastReporte (А может все?), но думаю этой информации достаточно чтобы сделать нормальным весь остальной код
 
P.S.S. а про вопрос с OEM_CHARSET сложнее, т.к. из в досовской БД может быть любой charset, а у Delphi нет OEM_RUSSIAN_CHARSET, OEM_BALTIC_CHARSET. Но все равно решения придумать можно....
 

Всего записей: 58 | Зарегистр. 22-08-2002 | Отправлено: 16:40 28-09-2007 | Исправлено: TJSergio, 16:47 28-09-2007
TJSergio



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые форумчане,
неужели описаный мною баг ни кого не волнует?
 
И насколько реально что в FR4 все-таки исправят этот глюк?

Всего записей: 58 | Зарегистр. 22-08-2002 | Отправлено: 18:03 02-10-2007
RUSer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пока с ним никто не сталкнётся - он никого волновать не будет
 
А глюк исправят, просто My_Way здесь не часто постит. Но если заглядывает, то заглядывает конкретно. Таблица сверху тому доказательство.
 
TJSergio
если хоочешь, чтобы багофикс твой включили в следующей версии фр4, то пиши им на форум - ссылка на их сайте. Там тоже разбирают баги репорта.

Всего записей: 390 | Зарегистр. 24-08-2004 | Отправлено: 19:25 02-10-2007
TJSergio



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RUSer - Спасибо за ответ!
 

Цитата:
Пока с ним никто не сталкнётся - он никого волновать не будет

Вот это и странно, ведь глюк "на поверхности". У нас за то, что мы заставляем пользователей "менять локаль" голову отрывают
 

Цитата:
если хоочешь, чтобы багофикс твой включили в следующей версии фр4, то пиши им на форум - ссылка на их сайте. Там тоже разбирают баги репорта.

А я попробовал там написать, ни каких комментариев. А тут ещё и лицензию (может быть)...
Просто хочется сэкономить "кровные копейки".

Всего записей: 58 | Зарегистр. 22-08-2002 | Отправлено: 11:06 03-10-2007
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TJSergio
-=Den=- тебе уже ответил в форуме

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 11:41 03-10-2007
DmLam

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

Цитата:
А я попробовал там написать, ни каких комментариев.

 
А там даже проблемы официальных юзеров не торопятся исправлять. Баги в серверных компонентах, которые уже 1,5 года известны и о которых я здесь писал (вместе с фиксами) и за которые мне еще одну лицензию дали (плюсом к двум купленым), и на оф. форуме писал - до сих пор не исправлены. Только обещания после писем лично директору.

Всего записей: 34 | Зарегистр. 13-01-2003 | Отправлено: 12:01 03-10-2007
TJSergio



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

Цитата:
-=Den=- тебе уже ответил в форуме  

А ведь точно, ответил. Но ответ не применим в реальности по причинам мною уже описанным.
Ведь в отчете может быть сразу разные charsets
А ведь исправление, которое решит эту проблему я написал. Я же от чистого сердца, чтобы помочь отличному компоненту.
Ладно, прошу прощения за разведенную дискуссию, буду ждать изменений в этой ситуации и параллельно искать новый механизм для отчетов.

Всего записей: 58 | Зарегистр. 22-08-2002 | Отправлено: 13:55 03-10-2007
fandm



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем добрый день!
 
Не знаю заинтересует ли это кого, но всё же...
Недельку назад пытался ввести в объект TfrxMemoView (версия FastReport 4.4 stable, Delphi 5) текст на азербайджанском и грузинском языках дабы проверить полноту поддержки Unicode (локализация Windows XP русская).
Вышло так, что вместо символов, "выпадающих" из всех известных charsets вводились знаки вопроса. Тобишь казалось бы ситуация ясна, несмотря на то, что свойство Memo типа TWideStrings.
Поскольку компоненты честно купленные, я сразу в поддержку, мол так и так, со скриншотами и т.п. Надо отметить, что переписка сильно затянулась, но баг был признан и занесён, как говорится, в TODO лист.  
Казалось бы всё. Ошибку исправят и всё будет хорошо, но на днях я натыкаюсь на сообщение TJSergio и в переписке через ПМ я от него узнаю интересную вещь, что если в свойстве Font.Charset объекта TfrxMemoView выставить DEFAULT_CHARSET, то якобы вместо TMemo в редакторе текста создастся TUnicodeMemo, что разумеется должно обеспечить корректное "понимание" всех Юникод-символов.
Я сделал поиск по исходникам и таки действительно, выяснилось, что в недрах FastReport имеет место быть компонент TUnicodeMemo.
И вот тут то я и решил попробовать его на деле. Открыл в DesignTime дизайнер первого попавшегося отчёта, кинул TfrxMemoView (по-умолчанию Font.Charset и так равен DEFAULT_CHARSET), ввёл текст на азербайджанском, а потом и на грузинском и о чудо! Оно заработало!
Стал я думать и гадать, а почему же у меня неделю назад то так не получалось?
И выяснил! Оказывается, если вызывать дизайнер отчёта в DesignTime, то Юникод-символы объектом TfrxMemoView воспринимаются верно, а вот если вызвать дизайнер в RunTime (это то я и делал в первый раз), то как раз и наблюдается "непонимание" некоторых символов из состава азербайджанского алфавита + всех символов грузинского языка.
 
Итак. В чём же разница между работой дизайнера в DesignTime и RunTime? И выходит ошибка то совсем не в том, что я предполагал в самом начале?
 
Добавлено:

Цитата:
Пока с ним никто не сталкнётся - он никого волновать не будет  

 
Кстати... вопрос поддержки юникода и локалей и т.д. и т.п. сейчас вообще-то становится очень остро, т.к. IT-индустрия в странах Закавказья и Средней Азии только становится на ноги и, должен Вам сказать, довольно таки нехилыми темпами, учитывая на относительно недавний переход в большинстве стран этого региона с кириллицы на латиницу. Так что настало время обращать внимание и на эти проблемы

Всего записей: 256 | Зарегистр. 10-10-2003 | Отправлено: 11:17 04-10-2007
XFree2

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. Если на машине установлен fr 3.* и поверх него поставить fr 4, то в RunTime происходит ошибка - property PrintOption.PrintOnSheet does not exist.
 
  Лечение: удалить ссылку на пути для преждней установки fr3
 
2. При совместном использовании Tcx* компонентов и fr 4 происходит ошибка при компиляции такого кода:
 
   CrossView.ColumnMemos[i].HAlign := haRight
 
  Лечение: введение namespace в модуль с fr.
 
Добавлено:
Господа, пора заняться документацией на продукт!
 
Попробовал ваш компонент - может он и мощный, но пользуясь документацией не могу решить элементарные проблемы:
 
1. Заполнил frxCrossView при помощи AddValue(. , . , .)  данными. Как получить заголовки (строки) frxCrossView в RunTime?? (необходимо далее выравнять сами ячейки вправо или влево. Как это сделать - тоже не понятно, потому что frxCrossView.ColMemos[0].HAlign работает аналогично frxCrossView.CelMemos[0].HAlign и выравнивает ВСЕ ячейки)
 
2. В событии OnCalcWidth хочу определить размер надписи, заносимой в ячейку, чтобы узнать максимальный размер надписи в пикселях для колонки. Хотел делать это как обычно: Canvas.Font.TextWidth(.), но ведь ссылку на канвас получить не удаётся! ( пришлось вытащить protected св-во в public. А как такую задачу надо решать на самом деле??  PS: Font у frxCrossView в скрипте тоже не доступен (насколько я понял, поскольку это property) )

Всего записей: 2 | Зарегистр. 04-10-2007 | Отправлено: 13:25 04-10-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 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-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru