Описание компонентов

wrawra
отредактировано 14:45 Раздел: FastReport 3.0
Здравствуйте.
Подскажите где можно найти подробное описание методов и свойств компонентов FR3? В частности интересует как записать значение параметра TfrxADOQuery.
Пробую писать StaffQuery.Params := 1 - не катит.

Спасибо.

Комментарии

  • gpigpi
    отредактировано 14:45
    http://www.fast-report.com/pbc_download/fr3help_ru.zip
    http://www.fast-report.com/ru/documentation/
    Попробуйте
    StaffQuery.Params.Items[0].Value:=1;
    или сопоставьте параметру значение переменной отчёта
  • отредактировано 14:45
    Пример на Builder'е, в качестве SQL текста задан вызов процедуры с одним параметром ("call Owner.GetSome(@ID = :id)"):
       TfrxADOQuery * pfrxADOQuery;
        pfrxADOQuery = (TfrxADOQuery *) frxReport1->FindObject("m_pSomeQuery");
        pfrxADOQuery->Params->Find("id")->Value = 555;
        frxReport1->ShowReport(true);
    
    В сложный запрос у меня параметр засунуть так и не получилось, неправильно присваивает значение. Причем, если в FR задать, так же некорректно.

    Можно сформировать и написать сам запрос:
       TfrxADOQuery * pfrxADOQuery;
        pfrxADOQuery = (TfrxADOQuery *) frxReport1->FindObject("m_pClientsQuery");
        pfrxADOQuery->SQL->Text = "call Owner.GetSome(@ID = 555)";
        frxReport1->ShowReport(true);
    
    Можно передать параметр через переменные FR, для этого создаем переменную ("parameter") и в параметрах TfrxQuery присваиваем значение параметра этой переменной (там формочка удобная), а потом задаем значение параметра из кода программы:
       frxReport1->Variables->Items[frxReport1->Variables->IndexOf("parameter")]->Value = 438;
        frxReport1->ShowReport(true);
    
  • wrawra
    отредактировано July 2006
    Спасибо за помощь! Очень помогло.

    А не подскажите, можно ли из отчета обратиться к ini-файлу и прочитать из него значение.
    Вообще задача такая: надо установить DataBaseName для TfrxADODataBase. Это значение я могу хранить либо в ini-файле, либо (что предпочтительней) в UDL. Было бы замечательно написать что то типа:
    TfrxADODataBase.DataBaseName := './connection.udl';
    Но что то я не нашел возможности для этого.
  • gpigpi
    отредактировано 14:45
    Можно использовать пользовательские функции
  • отредактировано 14:45
    Можно считать значение в программе и передать его в FR.
    Например:
           TfrxADODatabase * pfrxADODB;
            pfrxADODB = (TfrxADODatabase *) pfrxReport->FindObject("ADODatabase1");
            pfrxADODB->Connected = false;
            pfrxADODB->DatabaseName = "Provider=ASAProv.90;Password=q;Persist Security Info=True;User ID=q;Extended Properties=""LINKS=ShMem,TCP;ENG=agency""";
            pfrxADODB->Connected = true;
    
    Или создать ADOConnection в программе и передать его в FR.
    Например:
  • отредактировано 14:45
    Например:
       try
        {
            ADOConnection1->ConnectionString = "Provider=ASAProv.90;Cache Authentication=True;User ID=q;Password=q;Extended Properties=\"LINKS=ShMem,TCP;ENG=agency\"";
            ADOConnection1->LoginPrompt = false;
            ADOConnection1->Connected = true;
            //-------------------------------------------------------------------
            TfrxADODatabase * pfrxADODB;
            pfrxADODB = (TfrxADODatabase *) frxReport1->FindObject("m_pDatabase");
            pfrxADODB->Connected = false;
            pfrxADODB->Database = ADOConnection1;
            pfrxADODB->Connected = true;
            //-------------------------------------------------------------------
            frxReport1->ShowReport(true);
        }
        catch (...)
        {
        }
    
    Только, pfrxADODB->Database, почему-то недоступным оказался.

    Вопрос к разработчикам:
    Как получить доступ к свойству Database?
  • Stalker4Stalker4 123
    отредактировано 14:45
    wra написал:
    А не подскажите, можно ли из отчета обратиться к ini-файлу и прочитать из него значение.
    Если тебе надо именно ini, то подключи к своей программе модуль fs_iinirtti из библиотеки FastScript и используй в скрипте класс TIniFile.
  • wrawra
    отредактировано 14:45
    Спасибо.
    Сделал передачей значения из программы в отчет.

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

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