Как из StringGrid напечатать график Chart

GAZGAZ
отредактировано 14:57 Раздел: FastReport 3.0
Народ помогите как графики строить не из базы данных, а например из StrinGrid

Комментарии

  • BFGBFG
    отредактировано October 2004
    Посмотри вот это

    автор AlexTZ

    Пример обработчика на BCB:


    CODE
    void __fastcall Tshet_faktura::frxReport1BeforePrint(
    TfrxReportComponent *c)
    {
    TfrxCrossView* Cross;

    //AnsiString pStrs[1];
    //int pRows[1],pCols[1];
    AnsiString s=c->ClassName();
    //Variant vInteger(4);

    if(s == "TfrxCrossView")
    {
    Cross = (TfrxCrossView*)c;
    for (int i = 1;i<=16;i++)
    {
    for (int j = 1;j<=16;j++)
    {

    Variant pRows[] = {i};
    Variant pCols[] = {j};
    Variant pStrs[] = {"12345"};
    int nSize = ARRAYSIZE(pStrs);
    Caption = IntToStr(nSize);
    Cross->AddValue((const Variant*)pRows,ARRAYSIZE(pRows)-1,
    (const Variant*)pCols,ARRAYSIZE(pCols)-1,
    (const Variant*)pStrs,ARRAYSIZE(pStrs)-1);
    }
    }
    }
    }


  • GAZGAZ
    отредактировано 14:57
    Предыдущий код выводит на печать таблицу.

    Может кто программировал с frxChartObject. Как ей воспользоваться? Или где можно о ней почитать ;)
  • BFGBFG
    отредактировано November 2004
    Не очень удачный вариант

    //====================================================void __fastcall TMain_Form::Print_ButtonClick(TObject *Sender)
    {
    InputData_UserDataSet->RangeEnd = reCount; InputData_UserDataSet->RangeEndCount = StrToInt(NumberLayers_Edit->Text) ;
    InputData_Report->LoadFromFile("PrintReports\\inputdata1.fr3",false);
    InputData_Report->ShowReport();
    }
    //


    void __fastcall TMain_Form::InputData_UserDataSetGetValue(const AnsiString VarName, Variant &Value)
    {
    if (CompareText(VarName,"NoLayer") == 0) Value = LayersParam_StringGrid->Cells[0][InputData_UserDataSet->RecNo+1];

    if (CompareText(VarName,"p_model") == 0) Value = LayersParam_StringGrid->Cells[1][InputData_UserDataSet->RecNo+1];

    if (CompareText(VarName,"p") == 0) Value = LayersParam_StringGrid->Cells[2][InputData_UserDataSet->RecNo+1];

    if (CompareText(VarName,"h_model") == 0) Value = LayersParam_StringGrid->Cells[3][InputData_UserDataSet->RecNo+1];

    if (CompareText(VarName,"h") == 0) Value = LayersParam_StringGrid->Cells[4][InputData_UserDataSet->RecNo+1];
    }

    А на графики соответственно указать InputData_UserDataSet
    х значение InputData_UserDataSet."p_model"
    у значение InputData_UserDataSet."p"
    токо Preview ничего не покажет

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

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