Помогите с печатью StringGrid

BFGBFG
отредактировано 21:52 Раздел: FastReport 3.0
Пишу на BCB 6, FR 3.03 Pro
Размещаю на проекте TfrxCrossObject (как в доке программиста) написано что он имеет 2 разновидности TfrxCrossView и TfrxDBCrossView как сделать TfrxCrossView в свойствах токо имя и таг? И как его потом настроить (опять таки как написано в док-ции прогр-ста, пример на Дельфи смотрел да хотелось бы на BCB

Комментарии

  • BFGBFG
    отредактировано 21:52
    Стандартный пример на Delphi

    procedure TForm1.frxReport1BeforePrint(c: TfrxReportComponent);
    var
    Cross: TfrxCrossView;
    i, j: Integer;
    begin
    if c is TfrxCrossView then
    begin
    Cross := TfrxCrossView©;
    for i := 1 to 16 do
    for j := 1 to 16 do
    Cross.AddValue(, [j], [StringGrid1.Cells[i - 1, j - 1]]);
    end;
    end;

    Переделал на ВСВ
    void __fastcall TForm1::frxReport1BeforePrint(TfrxReportComponent *Sender)
    {
    TfrxCrossView *Cross1;
    for(int i=1;i<16;i++)
    for(int j=1;j<11;j++)
    Cross1->AddValue((const Variant*)i,1, (const Variant*)j,1, (const Variant*)StrToInt(StringGrid1->Cells[i - 1][j - 1]),1);
    }

    вызываю frxReport1->ShowReport();
    и пустота....
  • BFGBFG
    отредактировано 21:52
    Делал все по документации не получается 8-(
    убрал нафиг frxCrossObject благо StringGrid не широкий, поставил frxUserDataSet и через переменные вывел как в доке описан печать массива, как же сделать то по уму (т.е. как написано в доке)?
  • отредактировано 21:52
    Пример обработчика на BCB:
    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);
            }
          }
        }
    }
    

  • BFGBFG
    отредактировано 21:52
    Спасибо
    (слишком много я урезал из примера 8-( )
  • GAZGAZ
    отредактировано October 2004
    Поменял строку
    Variant pStrs[] = {"12345"};
    на
    Variant pStrs[] = {"y"};

    при этом FastReport3.03 начал вываливаться в дебаг.
    Помогите ;)
  • BFGBFG
    отредактировано 21:52
    А так
    Variant pStrs[] = {'y'};
  • отредактировано 21:52
    TfrxCrossView по умолчанию пытается суммировать значения в ячейках. Зайдите в его редактор и отключите суммирование.
  • GAZGAZ
    отредактировано 21:52
    AlexTZ написал:
    TfrxCrossView по умолчанию пытается суммировать значения в ячейках. Зайдите в его редактор и отключите суммирование.
    Большое спасибо. Полдня провозился ничего не получалось. ;)
  • ivkivk
    отредактировано 21:52
    подскажите пожалуйста, как отключить суммировку определенной ячейкм
    (предполагается что TfrxCrossView будет соджержать помимо цифровых ячеек ячейки с текстом и по ним суммировка не нужна). В принципе возможно ли это ?
  • отредактировано 21:52
    Суммирование или включено - тогда учитываются все значения ячейки, или выключено. Избирательно оно не работает.

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

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