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

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Заметил баг, никак не могу с ним справиться.
Сделал отчёт.
http://i082.radikal.ru/0904/10/b1d00302df2f.jpg (скрин нужного места).
А при печати, да и в режиме предпросмотра получаю следующее:
http://i003.radikal.ru/0904/f4/7a7ddf60b77a.jpg (скрин предпросмотра).
Все компоненты типа TfrxMemo, имеют одинаковое значение Top. А при печати первый чуть-чуть выше оказывается. И не пойму, почему.
 
Это уже известная проблема?  
 
 
P.S. Если нужно, файл fr3 отчёта могу выслать по электронке.

Всего записей: 16 | Зарегистр. 31-10-2007 | Отправлено: 09:21 05-04-2009 | Исправлено: omickron, 09:42 05-04-2009
pzaytsev

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Данная тема ещё актуальна? Найден баг в FastReport Enterprise (TfrxServer)

Всего записей: 429 | Зарегистр. 22-08-2005 | Отправлено: 13:20 16-07-2009
apnss

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не знаю актуально или  нет,  но думаю пригодится
 
 
при экспорте отчета  в Excel не  принимается формат  #,##0.00
 
решение
--------------
 

Код:
procedure TfrxXLSExport.ExportPage_Fast;
...
  function ConvertFormat(const fstr: string): string;
...
     case fstr[length(fstr)] of
       'n': begin
             result := '# ##0' + DecimalSeparator;
             for i := 1 to p do result := result + '0';
            end;
       'f': begin
              result := '0' + DecimalSeparator;
              for i := 1 to p do result := result + '0';
            end;
       'd': begin
              result := '#' + DecimalSeparator;
              for i := 1 to p do result := result + '#';
            end
        // <---- добавлено
        '#', '0':
          begin
            result:= fstr;
            If ThousandSeparator <> ',' Then result:= ReplaceStr(result, ',', ThousandSeparator);
            If DecimalSeparator <> '.' Then result:= ReplaceStr(result, '.', DecimalSeparator);
          end;
       // <------
     end;

Всего записей: 710 | Зарегистр. 26-02-2002 | Отправлено: 19:13 10-11-2009 | Исправлено: apnss, 19:21 10-11-2009
buhscout

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FastReport.Utils.CompilerException was unhandled
  Message="(Text2): error CS0246: Не удалось найти имя типа или пространства имен \"ContragentAddress\" (пропущена директива using или ссылка на сборку?)\r\n"
  Source="FastReport"
  StackTrace:
       в GNnEm402crmrrFi87q.V3uCXhV3NcYg2ptgle.QrplypkLO()
       в GNnEm402crmrrFi87q.V3uCXhV3NcYg2ptgle.h8GaT14KQ()
       в FastReport.Report.SWtlkQw2C()
       в FastReport.Report.Prepare(Boolean append)
       в FastReport.Report.Prepare()
       в FastReport.Report.Show(Boolean modal, Form owner)
       в FastReport.Report.Show()
       в ITS.Contracts.AddIn.OutgoingSpecificationView.sbPrint_Click(Object sender, EventArgs e) в C:\documents\CHEMK\Its.Contracts\Contracts\ITS.Contracts.AddIn\OutgoingSpecificationView.cs:строка 579
       в System.Windows.Forms.Control.OnClick(EventArgs e)
       в DevExpress.XtraEditors.BaseButton.OnClick(EventArgs e)
       в DevExpress.XtraEditors.BaseButton.OnMouseUp(MouseEventArgs e)
       в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в DevExpress.Utils.Controls.ControlBase.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.RunDialog(Form form)
       в System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
       в System.Windows.Forms.Form.ShowDialog()
       в ITS.Contracts.AddIn.ContractView.OpenEditor(BaseSpecification specification) в C:\documents\CHEMK\Its.Contracts\Contracts\ITS.Contracts.AddIn\ContractView.cs:строка 380
       в ITS.Contracts.AddIn.ContractView.sbChange_Click(Object sender, EventArgs e) в C:\documents\CHEMK\Its.Contracts\Contracts\ITS.Contracts.AddIn\ContractView.cs:строка 170
       в ITS.Contracts.AddIn.ContractView.gcSpecifications_DoubleClick(Object sender, EventArgs e) в C:\documents\CHEMK\Its.Contracts\Contracts\ITS.Contracts.AddIn\ContractView.cs:строка 181
       в System.Windows.Forms.Control.OnDoubleClick(EventArgs e)
       в DevExpress.XtraGrid.GridControl.OnDoubleClick(EventArgs ev)
       в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в DevExpress.XtraEditors.Container.EditorContainer.WndProc(Message& m)
       в DevExpress.XtraGrid.GridControl.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.Run(Form mainForm)
       в View.Program.Main() в C:\documents\CHEMK\Its.Contracts\View\Program.cs:строка 15
       в System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       в System.Threading.ThreadHelper.ThreadStart()
  InnerException:  
 
сборка Data.dll:
 
public class Address  
{
...
}
 
сборка Contragents.dll:
 
public class ContragentAddress : Address, ICloneable
{
...
}
 
public class ContragentCompany {
public virtual ContragentAddress CAddress{get;set;}
...
}
 
сборка ContractsData.dll:
 
public partial class Contract : Document {
public virtual ContragentCompany HomeContragent {get;set;}
...
}
 
выводится в отчёт: Contract.ContragentCompany.ContragentAddress
 
отчёт находится в сборке Contracts.AddIn.dll, референсы на все сборки тоже
 
Добавлено:
public partial class Contract : Document {  
public virtual IList<Contragent> Contragents {get;set;}  
...  
}
 
отчёт не видит вложенных свойств в Contragent, вместо свойств класса Contragent есть только свойство Value c DataType IList`1

Всего записей: 1 | Зарегистр. 14-01-2010 | Отправлено: 09:53 14-01-2010
vladmal

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Delphi 2007, FastReport 4.9.60
Описание бага + багофикс.
=============================
Описание ошибки:
 
 При использовании TfrxDBLookupComboBox, когда в качестве поля ListField используется поле источника данных с алиасом, отличным от имени поля набора данных (например, "Компания" вместо "Company"), выбрасывается ошибка "Поле не найдено":
- при вызове метода   TfrxReport.ShowReport() - через короткий промежуток после начала просмотра отчета
- при вызове метода   TfrxReport.DesignReport() - после завершения просмотра отчета
 
Способ воспроизведения:
=============================
1. В папке \Demos\Main находим проект FRDemo.dpr, открываем.
 
2. Открываем Unit2.pas, находим CustomersDS. Вызываем "Edit Field Aliases..."
Для поля "Customer" задаем алиас "Компания", жмем ОК.
 
3. Сохраняем, компилируем, запускам приложение.
 
4. В деревце с отчетами открываем папку "Dialogs and script".
Выбираем отчет "Hello FastReport", жмем кнопку Design.
 
5. Меню - Отчет - Данные - ставим галку "Customers", жмем ОК.
 
6. Открываем форму диалога DialogPage1.  
 
На форму бросаем DBLookupComboBox, настраиваем его свойства:
 
AutoOpenDataSet = "True";
DataSet = "Customers";
KeyField = "Cust No";
ListField = "Phone";
 
Запускам, видим, видим, что DBLookupComboBox работает, жмем ОК, наблюдаем preview, закрываем Preview - все ОК.
 
Меняем значение ListField.
 
ListField = "Компания";
 
Запускам, видим, видим, что DBLookupComboBox работает, жмем ОК, наблюдаем preview, закрываем Preview - получаем Exception.
 
Сохраняем отчет (Ctrl+S), закрываем дизайнер, жмем Preview, видим, что DBLookupComboBox работает, жмем ОК, получаем наблюдаем Exception на фоне Preview.
 
 
Причина:
=============================
 
При десериализации объекта TfrxDBLookupComboBox свойство ListField записывается/восстанавливается раньше, чем свойство DataSet.
 
Поэтому код  

Код:
 
procedure TfrxDBLookupComboBox.SetListField(Value: String);
begin
  if FDataSet <> nil then
    Value := FDataSet.ConvertAlias(Value);
  FDBLookupComboBox.ListField := Value;
end;
 

- не выполнит преобразования алиаса в физическое имя поля, и свойству ListField внутреннего компонента FDBLookupComboBox в нашем случае будет присвоено значение "Компания" (вместо "Company").
 
 
Багофикс:
=============================
Все, что нужно сделать - поменять порядок описания членов класса  TfrxDBLookupComboBox в секции Published: - свойство KeyField разместить после свойства DataSetName;
 
Секция published теперь должна выглядеть так:

Код:
 
  published
    property AutoOpenDataSet: Boolean read FAutoOpenDataSet write FAutoOpenDataSet default False;
    property DataSet: TfrxDBDataset read FDataSet write SetDataSet;
    property DataSetName: String read GetDataSetName write SetDataSetName;
    property ListField: String read GetListField write SetListField;
    property KeyField: String read GetKeyField write SetKeyField;
    property DropDownWidth: Integer read GetDropDownWidth write SetDropDownWidth;
    property DropDownRows: Integer read GetDropDownRows write SetDropDownRows;
    property OnClick;
    property OnDblClick;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
  end;
 

==============================
 
Это все .

Всего записей: 10 | Зарегистр. 26-08-2004 | Отправлено: 05:30 13-05-2010 | Исправлено: vladmal, 05:37 13-05-2010
vladmal

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

Цитата:
Все, что нужно сделать - поменять порядок описания членов класса  TfrxDBLookupComboBox в секции Published: - свойство KeyField разместить после свойства DataSetName;  

 
Нужно оба поля (KeyField и ListField) помещать после DataSetName.
Короче, должно быть именно так, как на врезке ("Секция published теперь должна выглядеть так: ")

Всего записей: 10 | Зарегистр. 26-08-2004 | Отправлено: 14:28 10-06-2010
AS0kol

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Двусторонняя печать. Первый раз отчет печатется нормально в режиме двусторонней печать, во второй раз duplex из PrintDialog игнорируется.
Решение:  
в процедуре TfrxPrinter.SetPrintParams
заментить
  if FDuplex <> -1 then
    ADuplex := FDuplex;
 
  if (ADuplex <> FMode.dmDuplex) and (ADuplex <> -1) then
  begin
    FMode.dmFields := FMode.dmFields or DM_DUPLEX;
    FMode.dmDuplex := ADuplex;
  end;
на
  if ADuplex <> -1 then begin
    FMode.dmFields := FMode.dmFields or DM_DUPLEX;
    FMode.dmDuplex := ADuplex;
  end;

Всего записей: 1 | Зарегистр. 23-09-2010 | Отправлено: 20:24 23-09-2010
JustAMaaan

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тема ещё актуальна? Глюк в FR4, точнее - в компоненте TfsSyntaxMemo из комплекта поставки:
1. Ставим тип подсветки синтаксиса stSQL
2. Вбиваем в Lines тестовую строку, я выбрал такую:
select *, i "My Field" from my_table where q='test' and r=7 and s is NULL
 
3.меняем размер шрифта в свойстве TextAttr с 10 на 12
 
Компилируем, запускаем, получаем полный набор глюков с отображением: курсор рисуется не там, где надо, выделение текста - аналогично, если начать вводить текст, когда курсор стоит на букве r - введённые символы не отображаются. Причина в том, что ширина символа считается фиксированной и одинаковой для всех шрифтов, хотя все четыре используемых шрифта могут быть разными.

Всего записей: 221 | Зарегистр. 17-09-2004 | Отправлено: 11:39 21-10-2010
Boatswian

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FastReport 4.11 Standart + Delphi7
 
При экспорте в RTF формат в Memo не экспортируется зачеркнутый тип шрифта.
 
В frxExportRTF.pas
 
В процедуру  
function TfrxRTFExport.GetRTFFontStyle(const f: TFontStyles): String;
begin
  Result := '';
  if fsItalic in f then Result := '\i';
  if fsBold in f then Result := Result + '\b';
  if fsUnderline in f then Result := Result + '\ul';
end;
 
надо добавить строчку
  if fsStrikeOut in f then Result := Result + '\strike';
 
А в FastReport inc надо отправлять сообщение или Вы сами пересылаете?

Всего записей: 1 | Зарегистр. 05-12-2011 | Отправлено: 00:44 06-12-2011 | Исправлено: Boatswian, 16:22 06-12-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не по теме но все же: В FastCube 1.8.6 при использовании в программе SafeMM проявляется AV в fcGridPainters.pas - TfcCustomGridPainter.DrawText. Способ исправления очень простой:

Код:
//было:
  Sz := (Length(AText) + 5) * SizeOf(TfcChar); // +4 characters for DT_MODIFYSTRING
  GetMem(P, Sz);
  Move(PfcChar(AText)^, P^, Sz);
//стало:
  Sz := (Length(AText) + 5) * SizeOf(TfcChar); // +4 characters for DT_MODIFYSTRING
  GetMem(P, Sz);
  Move(PfcChar(AText)^, P^, Length(AText) * SizeOf(TfcChar));

Всего записей: 2323 | Зарегистр. 24-05-2007 | Отправлено: 14:57 26-12-2011
pzaytsev

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, вы еще сюда пытаетесь писАть? Посмотрите дату последнего обновления шапки 2007 год. Пять лет назад.

Всего записей: 429 | Зарегистр. 22-08-2005 | Отправлено: 15:59 03-01-2012
Frodo_Torbins

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

Всего записей: 2323 | Зарегистр. 24-05-2007 | Отправлено: 20:02 03-01-2012
Ruslan9977

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Смотрел на поисковиках и ничего такого не нашел. Имеется отчет, сгенерированый ФР, заголовок файла fp3 <?xml version="1.0" encoding="utf-8"?> (наверно старая версия). Открываю frxPreview1->LoadFromFile(...), редактирую значение поля (напр. МЕМО1) и после выполнения функции Modified или PreviewPages->ModifyPage(...) поля МЕМО становятся пустыми.НО, если перед открытием отчета поправить файл fp3 на <?xml version="1.0" encoding="utf-8" standalone="no"?> тогда все нормально.
Также и при сохранении и повторном открытии сохраненного файла (бывает вместо пустых полей иероглифы).

Всего записей: 2 | Зарегистр. 14-10-2010 | Отправлено: 20:38 26-10-2012
exteris

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

Цитата:
Имеется отчет, сгенерированый ФР, заголовок файла fp3 <?xml version="1.0" encoding="utf-8"?> (наверно старая версия)
Не факт, что старая. В самом отчете можно посмотреть, какой версий ФР он сделан.
 

Цитата:
НО, если перед открытием отчета поправить файл fp3

Странно как-то, если standalone не указан, то он по умолчание принимается как NO.
 
Добавлено:
И да, по FR есть специальная ветка.

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 12:53 27-10-2012
Ruslan9977

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Исправил следующим кодом:
      TStringStream *mstream = new TStringStream();
      mstream->LoadFromFile(OpenDialog1->FileName);
      mstream->Position = 0;
      String str = mstream->ReadString(38);
      // перевiка версiїї файлу i замiна заголовку на нову структуру
      if (str.Pos("<?xml version=\"1.0\" encoding=\"utf-8\"?>") == 1)
      { TStringStream *rstream = new TStringStream();
         mstream->Position = 38;
         rstream->WriteString("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>");
         rstream->WriteString(mstream->ReadString(mstream->Size - 38));
         mstream->LoadFromStream(rstream);
         delete rstream;
      }
 
      TMemoryStream *fstream = new TMemoryStream();
      fstream->LoadFromStream(mstream);
      delete mstream;
frxReport1->PreviewPages->LoadFromStream(fstream);
... и все ОК. Спасибо

Всего записей: 2 | Зарегистр. 14-10-2010 | Отправлено: 19:38 27-10-2012
Открыть новую тему     Написать ответ в эту тему

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