автономные отчеты...

отредактировано 09:28 Раздел: FastReport 3.0
Здравствуйте,
Ситуация следующая:
я в рантайме создаю AdoQuery, задаю параметры которые передаються в момент вызова фаст репорта. Типичная ситуация.
для созданного AdoQuery указываю sql запрос. В версии 2.53 было свойство у запроса - Active. при изменении его рефрешился список полей в для соответсвующего кверя. Сейчас этого не происходит и не понятно почему.
Как получить поля?

Комментарии

  • отредактировано 09:28
    Вроде рефрешится, после изменения текста sql (в дизайнере) должно обязательно.
  • отредактировано 09:28
    AlexTZ написал:
    Вроде рефрешится, после изменения текста sql (в дизайнере) должно обязательно.

    Взял пример из Fast Report studio для с#
    то, что добавил программно, видно,
    то, что добавил в дизайнере - нет. Сначала подумал, что запрос с ошибками, но нет. это тривиальный запрос select 'asdasd' as message.

    кстати, куда деваеться AdoDataBase которое я создаю руками. Как ассоциируеться с репортом?
    Соединяюсь с MSSQL.
  • отредактировано 09:28
    AlexTZ написал:
    Вроде рефрешится, после изменения текста sql (в дизайнере) должно обязательно.
    видимо не подхватывает дефолтную database. т.к. если создать еще AdoDataBase и прописать вместо дефолтной ее, то все работает...

    мне бы хотелось, что бы по умолчанию использовалась дефолтная база..
    это возможно?
  • отредактировано 09:28
    Попытался передать строку соединения чтобы потом создать AdoDataBase с этой строкой. Вылазит ошибка.(попытался вывести значение переменной на печать)
    Memo1: Error in expression 'packet size=4096; user id=..;... ' Т.Е. моя строка соединения. далее ' ; expected'

  • отредактировано 09:28
    Попробовал сейчас в студии создать запрос. Все работает, только в самом начале надо указать базу данных в меню Report|Data.
  • отредактировано September 2005
    AlexTZ написал:
    Попробовал сейчас в студии создать запрос. Все работает, только в самом начале надо указать базу данных в меню Report|Data.
    Сделал следующее:
    - взял стандартный пример из Fast Report Studio.(Source который) для шарпа.
    - поменял коннекшин стринг на мой (с MSSQL сервером).
    (Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=*****;Data Source=*****)
    - для динамическгог запроса изменил SQL. на свой
    - запускаю пример
    - открываю дизайн Simple Report-а.
    - добавляю AdoQuery1.
    - пишу заведомо корректныей запрос(проверяю в QA)/
    нажимаю ок. в меню Отчет-Данные все галочки стоят по умолчанию(попробовал сбрасывать устанавливать -результата нет).
    ничего не рефрешиться. списка полей для запроса как нет так и не было.
    хотя для динамического запроса все нормально.

    меняю строку соединения обратно и пишу запросы на customer то все работает.

    PS и еще при запросе сохранить не сохранить, если выбираешь не сохранить он все равно сохраняет.
  • almanalman космополит
    отредактировано September 2005
    YaNN написал:
    Сделал следующее:
    - взял стандартный пример из Fast Report Studio.(Source который) для шарпа.
    - поменял коннекшин стринг на мой (с MSSQL сервером).
    (Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=*****;Data Source=*****)
    - для динамическгог запроса изменил SQL. на свой
    - запускаю пример
    - открываю дизайн Simple Report-а.
    - добавляю AdoQuery1.
    - пишу заведомо корректныей запрос(проверяю в QA)/
    нажимаю  ок. в меню Отчет-Данные все галочки стоят по умолчанию(попробовал сбрасывать устанавливать -результата нет).
    ничего не рефрешиться. списка полей для запроса как нет так и не было.


    Вы избежите эту ошибку, если будете использовать дизайнер, поставляемый вместе со Студией. Если же Вы используете runtime дизайнер, то необходимо установить имя aliasa для DefaultConnection.
    C#:
    TfrxReportClass report;
    report.ReportOptions.ConnectionName = "MyConnection";



    YaNN написал:
    хотя для динамического запроса все нормально.

    То есть, TfrxADOQuery, созданный из программы, работает нормально?
    YaNN написал:
    PS и еще при запросе сохранить не сохранить, если выбираешь не сохранить он все равно сохраняет.

    Уточните пожалуйста, в каком месте не работает отмена сохранения.
  • almanalman космополит
    отредактировано 09:28
    Благодаря этой теме в документации появился параграф, описывающий работу с DefaultConnection.
  • отредактировано 09:28
    alman написал:
    То есть, TfrxADOQuery, созданный из программы, работает нормально?

    Уточните пожалуйста, в каком месте не работает отмена сохранения.
    Да, TfrxAdoQuery работает нормально.
    Вот изменненый код примера:
    // Create report object
    frx = new TfrxReportClass();

    // FastReport will check registry to find database ConnectionString based on СonnectionName
    frx.ReportOptions.ConnectionName = "Unicode_private";
    // this feature under development
    frx.EngineOptions.SilentMode = frxSilentMode.simMessageBoxes;
    frx.MainWindowHandle = (int) this.Handle;
    // Create ADO database object
    ado_database = new TfrxADODatabaseClass();
    ado_database.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=****;Data Source=****";
    ado_database.LoginPrompt = false;
    ado_database.Connected = true;

    // Create ADO query object
    ado_query = new TfrxADOQueryClass();
    ado_query.Name = "DynamicallyCreatedADOQuery";
    ado_query.Query = "select top 1 * from sample_table";
    ado_query.DataBase = ado_database;

    ---(вроде бы алиас для базы данных здесь указан)
    по сохранению.
    беру пример из студии добавляю туда что нибудь, закрываю дизайнер и на вопрос сохранить изменения говорю нет. открываю снова этот же репорт и вижу что изменения сохранились.
  • almanalman космополит
    отредактировано 09:28
    YaNN написал:
    по сохранению.
    беру пример из студии добавляю туда что нибудь, закрываю дизайнер и на вопрос сохранить изменения говорю нет. открываю снова этот же репорт и вижу что изменения сохранились.
    Скорее всего файл не сохранён, а когда Вы открываете дизайнер ещё раз, то используется последнее состояние отчёта.

    Простейшее решение проблемы - перед открытием отчёта прочитать его из файла ещё раз.

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

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