Fastreport и Fastscript

отредактировано May 2009 Раздел: FastReport 3.0
имеем вот такой код
    TfrxReport frxReport = TfrxReport.Create( Application );
    frxReport.LoadFromFile("scriptreport.fr3");
    
    TfrxMasterData mData = frxReport.FindObject("ObjectsData");
    mData.Dataset = MyDataSet;

   frxReport.ShowReport();

в результате получаем ошибку Набор данных "" не найден.

Как добавить из скрипта таблицу MyDataSet в отчет frxReport->DataSets и frxReport->EnabledDataSets????

Комментарии

  • отредактировано 13:38
    Написал вот такие функции
    void TReport::InitScript( TfsScript* fsScript )
        {
            TfsClassVariable* fsClass = fsScript->FindClass( "TfrxReport" );
            fsClass->AddMethod("function AddDataSet(DataSet:TDataSet,Name:String=''):TfrxCustomDBDataSet",ScriptFunction.CallMethod);
    }
    
        Variant __fastcall TReport::TScriptFunction::CallMethod(System::TObject* Instance, TMetaClass* ClassType,
            const AnsiString MethodName, Variant &Params)
        {
            if(MethodName == "ADDDATASET")
            {
                TfrxReport* frxReport = dynamic_cast<TfrxReport*>(Instance);
                if(frxReport)
                {
                    TfrxDBDataset* frxDBDataSet = new TfrxDBDataset(frxReport->Owner);
                    TDataSet* DataSet = (TDataSet*)((int)Params.GetElement(0));
                    AnsiString Name = VarToStr(Params.GetElement(1));
                    if(Name == "")
                        Name = DataSet->Name;
                    frxDBDataSet->UserName = Name;
                    frxDBDataSet->DataSet  = DataSet;
                    frxReport->DataSets->Add(frxDBDataSet);
                    frxReport->EnabledDataSets->Add(frxDBDataSet);
                    ShowMessage(frxReport->GetAlias(frxDBDataSet));
                    return (int)frxDBDataSet;
                }
            }
       }
    

    результат тот же самый....
  • отредактировано 13:38
    Уважаемые разработчики, вы может все таки ответите как создавать объекты отчета с датасетами и бэндами динамически в скриптах???
  • отредактировано 13:38
    Разработчики продолжают радовать оперативностью своих ответов...

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

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