БАГИ в FastReport 3

отредактировано 09:00 Раздел: FastReport 3.0
Не путайте пожалуйста топики.
Баг Фиксы и Баги.

Баг Фиксы где куски кода. исправленные.!!!!!
«134567

Комментарии

  • отредактировано 09:00
    В дизайнере FR301 компонентик TfrIBXQuery не видит IBX IBDatabase родительского экзешника, соответственно не выдаёт его в свойстве Database.
  • отредактировано 09:00
    А ты попробуй в проекте выстави проперть база данных по умолчанию.

    Вот тока оно не показывается в Фасте.
    в Фибе у меня автоматом ципляет
  • отредактировано 09:00
    Konst написал:
    А ты попробуй в проекте выстави проперть база данных по умолчанию.
    Вот тока оно не показывается в Фасте.
    Базу по умолчанию выставлял - не помогает. Всё равно не видит TfrIBXQuery эту базу в дизайнере FR.
    Или я что-то не понимаю: если я в отчёте хочу сделать запросик через TfrIBXQuery, но использовать имеющееся соединение с базой, то как быть ?
  • отредактировано 09:00
    В TfrxIBXComponents надо выставить DefaultDatabase. После этого все компоненты TfrxIBXTable/Query становятся подключенными к ней (на пустое св-во TfrxIBXTable/Query.Database не обращайте внимания!)
  • отредактировано 09:00
    DeveloperManual-ru.pdf

    берем пример построения своего мастера.
    Чтото у меня не получается скомпилять.

    лезут Сплошные Ошибки.
    Так же у вас везде описано
    Bmp.LoadFromResourceName('frxMyWizard');
    Ну не может у меня Дельфа 7 найти такое
    а вот если мы сделаем так
    Bmp.LoadFromResourceName(0, 'frxMyWizard');
    Тогда заработает.

    Вопрос Вы пробовали скомпилять то что написано в Документации??

  • отредактировано 09:00
    Пробовал, но не все ;)
    Bmp.LoadFromResourceName(hInstance, 'frxMyWizard');

    где еще ошибки?
  • отредактировано 09:00
    Саша а почему мастера появляются только в файл новый
    и там в итемсах выбираем мастер.
    Но если Мастер вообще не относится к новому отчету.

    Раньше они появлялись в меню мастера.
    Это было удобнее.
    Сейчас переделываю импорт из Мсворда таблички.

    И загрузка части таблицы разве это новый отчет??
  • отредактировано 09:00
    Невнимательно читаешь:
    frxWizards.Register(ClassRef: TfrxWizardClass; ButtonBmp: TBitmap; IsToolbarWizard: Boolean = False);
    третий параметр как раз указывает, куда поместить мастер. Если на тулбар - тогда включи его в View|Toolbars|Extra tools.
  • отредактировано 09:00
    Саша раньше мы делали через такую функцию
    function FrUnits(x: Double):Integer;
    begin
    Result := Round((x / 2.835) / 5 * 18 );
    end;

    т.е вычисляли х или у с этой фукцией попробовал ее в 3 результат совсем другой.
    Есть ли какая готовая функция?? иликакие нибудь магические числа??
  • отредактировано 09:00
    AlexTZ написал:
    В TfrxIBXComponents надо выставить DefaultDatabase. После этого все компоненты TfrxIBXTable/Query становятся подключенными к ней (на пустое св-во TfrxIBXTable/Query.Database не обращайте внимания!)
    Слова настоящего программиста ;)
  • отредактировано 09:00
    В тройке единицы измерения, как и раньше, пиксели. Но теперь они нецелые. Для перевода в сантимеры, дюймы есть константы
    fr01cm = 3.77953; // 96 / 25.4
    fr1cm = 37.7953;
    fr01in = 9.6;
    fr1in = 96;
  • отредактировано 09:00
    Установил новую версию
    смотрю в директории Zlib одни obj файлы так и должно быть??
    Еще не собирал пакеты.
    версия проф.
  • отредактировано 09:00
    Сделайте отключения установки пакетов в System32 директорию.

    Приходится ручками потом удалять. Не храню я их там.
    И пакеты пересобираю.
  • отредактировано 09:00
    Повторно
    Имеем Delphi4, FastReport 3.02, OS Win2k SP4, IE 6
    Не сохраняется в DFM значения Child бенда
    поэтому инструкция
    - File|New application
    - бросаем на форму TfrxReport
    - в дизайнере добавляем MasterData и Child
    - устанавливаем MasterData.Child = Child1
    - в проекте пишем обработчик на кнопку - ShowReport
    - запускаем - ...
    Не работает.
    В отличие от Delphi7 где это работает.
    P.S. неужели я один на Delphi4 ;)
  • отредактировано 09:00
    1. Не корректно работает clipboard: два экзешника с запущенными дизайнерами отчетов, в одном на странице с диалогом выделяются все компоненты (компоненты таблиц, Edits & Label's), копируются в буфер. При вставке скопированных элементов теряются их имена, заменяются по умолчанию. Мягко говоря, неудобно.
    2. КуНды подевалось свойство TfrxReport.Modified ? Каким образом теперь узнать что отчет корректировался?
    Схема:
    TfrxReport.DesignReport;
    if TfrReport.Designer.Modified then ...
    не работает, так после работы дизайнера TfrReport.Designer=nil
    3. Завел свой "движок" для работы с компонентами доступа Apollo. Ввел свою функцию
    constructor TFunctions.Create;
    begin
    with fsGlobalUnit do
    begin
    AddedBy := Self;
    with AddClass(TfrxAPLTable, 'TfrxCustomDataset') do
    begin
    AddMethod('procedure SetOrder(index:integer)', CallMethod);
    ...
    В итоге, когда интерпретатор "добирается до строчки .SetOrder(1) выходит ошибка "Invalid variant type conversion"

    Взял и заменил в определении integer на string, изменил соответственно выховы функции
    AddMethod('procedure SetOrder(index:string)', CallMethod);
    Все сразу заработало!!!
    Я конечно могу подправить исходники ядра, но когда каждые пять дней происходят какие то изменения (выходят новые версии), то желание отпадает
  • отредактировано 09:00
    Сижу за компом и торчу от интерпретатора. Напоминает картину из сказки "сидит старуха у моря, а рядом разбитое корыто..."
    Интерпретатор "мертвый", стал еще хуже чем был !!!
    Проблемы с variant-ами. Ну сколько на эти грабли наступали группы разработчиков и RALIB, и DreamScripter и т.д.
    Самый обычный код:
    var s:string;
    begin
    s:=taMDoc.FieldByName('DOPCODE').AsString;
    s:=Copy(s,1,6); // срабатывает ошибка типичная вариантовская "Invalid variant type conversion"
    s:=UpperCase(s);
    Это я расписал чтобы нагляднее было.
    В итоге я пришел к выводу, что рановато было на этот продукт переходить!!!
    Это как про 1С:
    - Собираетесь ли вы переходить на "восьмерку"?
    - Нет, пускай годика два поотлаживается, на других покрутится... 1С v7.7 вон сколько лет отлаживалась !!!


  • отредактировано 09:00
    Интерпретатор работает просто идеально. Ошибка может выскакивать только здесь:
    taMDoc.FieldByName('DOPCODE').AsString;
    по причине, независящей от него. Есть пример на DBDEMOS, который выдает ошибку с вариантами? Буду рад взглянуть у себя.
  • отредактировано 09:00
    vadim_zh написал:
    Повторно
    Имеем Delphi4, FastReport 3.02, OS Win2k SP4, IE 6
    Не сохраняется в DFM значения Child бенда
    поэтому инструкция
    - File|New application
    - бросаем на форму TfrxReport
    - в дизайнере добавляем MasterData и Child
    - устанавливаем MasterData.Child = Child1
    - в проекте пишем обработчик на кнопку - ShowReport
    - запускаем - ...
    Не работает.
    В отличие от Delphi7 где это работает.
    P.S. неужели я один на Delphi4 ;)
    Проверял на Delphi5 (это основной инструмент). Работает. Буду рядом с Delphi4 - проверю там.
  • отредактировано 09:00
    SeregaG написал:
    1. Не корректно работает clipboard: два экзешника с запущенными дизайнерами отчетов, в одном на странице с диалогом выделяются все компоненты (компоненты таблиц, Edits & Label's), копируются в буфер. При вставке скопированных элементов теряются их имена, заменяются по умолчанию. Мягко говоря, неудобно.
    2. КуНды подевалось свойство TfrxReport.Modified ? Каким образом теперь узнать что отчет корректировался?
    Схема:
    TfrxReport.DesignReport;
    if TfrReport.Designer.Modified then ...
    не работает, так после работы дизайнера TfrReport.Designer=nil
    3. Завел свой "движок" для работы с компонентами доступа Apollo. Ввел свою функцию
    constructor TFunctions.Create;
    begin
    with fsGlobalUnit do
    begin
    AddedBy := Self;
    with AddClass(TfrxAPLTable, 'TfrxCustomDataset') do
    begin
    AddMethod('procedure SetOrder(index:integer)', CallMethod);
    ...
    В итоге, когда интерпретатор "добирается до строчки .SetOrder(1) выходит ошибка "Invalid variant type conversion"

    Взял и заменил в определении integer на string, изменил соответственно выховы функции
    AddMethod('procedure SetOrder(index:string)', CallMethod);
    Все сразу заработало!!!
    Я конечно могу подправить исходники ядра, но когда каждые пять дней происходят какие то изменения (выходят новые версии), то желание отпадает
    1. При использовании клипбоарда в любом случае меняются имена - так и задумано.
    2. Сделаем.
    3. Надо смотреть, возможно ошибка в реализации CallMethod.
  • отредактировано 09:00
    К предущему 3- пункту.
    Долго искал - оказалось 2 pack к 6 делфе д.стоять обязательно. То же касается и ошибок с variant. Если стоит обычная делфа, то даже в демке вылетает ошибка.
    Извини Александр за наезд!!!
  • отредактировано 09:00
    К предудущему пункту 1.
    Нехорошо задумано. По логике - проверить наличие элемента с таким именем, и если есть, то сменить. В противном случае вставить с имеющимся именем.
    2ю53 так и работает, если не ошибаюсь.
  • Eugene LachinovEugene Lachinov Санкт-Петербург
    отредактировано 09:00
    { frxDesgn.pas }

    procedure TfrxDesignerForm.FormKeyDown(Sender: TObject; var Key: Word;
    Shift: TShiftState);

    не обнуляется Key, если клавиша обработана
  • Eugene LachinovEugene Lachinov Санкт-Петербург
    отредактировано 09:00
    Eugene Lachinov написал:
    не обнуляется Key, если клавиша обработана
    это относится и к другим формам библиотеки, в программе срабатывает обработка FastReport VCL и самой программы, что не есть хорошо ;)
  • Eugene LachinovEugene Lachinov Санкт-Петербург
    отредактировано 09:00
    { о багах }

    Редактируемая форма диалога в дизайнере всегда поверх всех окон, даже если находишься в другом приложении, при переключении обратно форма диалога активизируется, но сам Дизайнер где-то за окнами запущенных приложений
  • отредактировано 09:00
    Компонент доступа к базам "Запрос". Меняю текст запроса, не перезачитывается список полей, кот-е потом видно в диалоге алиаса и выбора поля.
  • отредактировано 09:00
    Александр!!! Сделай п-ста в Fastreportе при вставке нового Memo чтобы координаты (Top, Left, Width, Height) брались округленные, т.е. например вместо 62,94 ставилось изначально 63. А то получается визуально все элементы стоят вроде бы в один ряд, а по параметрам координат отличаются на сотые доли, и как итог при экспорте в Ёксел образуется куча лишних срочек и столбцов. М.б. лучше этот параметр округления вывести куданибудь в настройку всего Fastreport.
  • отредактировано 09:00
    В моем експорте автоматом вычисляет +- 10 пиклелей.
  • отредактировано 09:00
    FOnSaveReport

    Добавляем обработку. Сохранения в Блоб Файл.
    Все работает.
    Но я хочу чтобы он стандартно обрабатывал, когда говоришь сохранить как.

    если я в обработчике первой строкой проверяю
    if SaveAs then exit;
    и не выставляю И функция возвращает := False;
    почему не идет стандартая процедура сохранить как?
    по моему здесь
    if frxDesignerComp.FOnSaveReport(Report, SaveAs) then
    begin
    UpdateRecentFiles(Report.FileName);
    UpdateCaption;
    Modified := False;
    end;
    Exit;

    Exit; нужно ставить строкой выше


  • отредактировано 09:00
    Я одно не пойму.
    если я переключаюсь на диалог страницу
    вызов параметра в запросе.
    форма диалога StayOnTop
    даже когда переключаешься в другое приложение эта форма так и висит.
    в 2 такого не было.
    Это вообще не удобно.
    Или где то что то нужно выставить??
  • отредактировано 09:00
    SeregaG написал:
    Александр!!! Сделай п-ста в Fastreportе при вставке нового Memo чтобы координаты (Top, Left, Width, Height) брались округленные, т.е. например вместо 62,94 ставилось изначально 63. А то получается визуально все элементы стоят вроде бы в один ряд, а по параметрам координат отличаются на сотые доли, и как итог при экспорте в Ёксел образуется куча лишних срочек и столбцов. М.б. лучше этот параметр округления вывести куданибудь в настройку всего Fastreport.
    Это касается не столько экспорта, как самих отчетов. При несовпадении координат при разном масштабировании общие линии Memo объектов то утолщаются, то выглядят нормально, при печати аналогично. Чтобы этого не происходило приходится "ручками" выставлять координаты одинаковыми (в инспекторе). Например на мастербанд бросаешь "мемо" с обрамлением, а координаты "мемо" смещены на 0,02 (к примеру). Визуально на шаблоне это не ощущается, а при формировании отчета, линии, то тонкие, то толстые (двойные).
    Т.е. желательно чтобы при перемещении объекта помимо перемещения на 0,5 (как сейчас уже есть), сделать настроечку округления, чтобы шло округление (у мемо был Top=62,23 + 0.5 ->62,50 - округлили).

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.