Передача переменных в отчет в С++ Builder

отредактировано 15:39 Раздел: FastReport 3.0
Может у кого-нибудь есть опыт передачи переменных в отчет в среде C++ Builder.
Попробовал таким образом :
PrihodRashodReport->Variables->Clear();
PrihodRashodReport->Variables->AddVariable("'Category1'", "'DBeg'", data1);
PrihodRashodReport->Variables->AddVariable("'Category2'", "'DEnd'", data2);

Выдает ошибку нет такой переменной DBeg и DEnd.
Подскажите пожалуйста, где косяк ?
Заранее огромное спрасибо

Комментарии

  • zz 5zz 5 Россия, Москва
    отредактировано 15:39
    В документации, по-моему в руководстве разработчика, есть пример, как программно создавать и передавать переменные в отчет. Судя по вашему коду можно предположить, что отсутсвует добавление категории.
  • отредактировано 15:39
    Если есть созданная заранее в FR переменная (например, "Client"), то можно передать ей значение следущим образом (пример для строки):
    frxReport1->Variables->Items[frxReport1->Variables->IndexOf("Client")]->Value = "\"Иванов Иван\"";
    
    Так в Builder'е работает.

    А напримую - нет:
    frxReport1->Variables["Client"] = "\"Иванов Иван\"";
    
  • отредактировано 15:39
    Спасибо.
    Сделал следующим образом :
     PrihodRashodReport->Variables->Clear();
      PrihodRashodReport->Variables->Items[PrihodRashodReport->Variables->IndexOf("DBeg")]->Value = "\"data1\"";
      PrihodRashodReport->Variables->Items[PrihodRashodReport->Variables->IndexOf("DEnd")]->Value = "\data2\"";
    
    .
    Выскакивает ошибка : List index out of bounds (-1).
    Что сие значит ?
    Заранее спасибо !
  • отредактировано 15:39
    jasamo написал:
    Спасибо.
    Сделал следующим образом :
     PrihodRashodReport->Variables->Clear();
      PrihodRashodReport->Variables->Items[PrihodRashodReport->Variables->IndexOf("DBeg")]->Value = "\"data1\"";
      PrihodRashodReport->Variables->Items[PrihodRashodReport->Variables->IndexOf("DEnd")]->Value = "\data2\"";
    
    .
    Выскакивает ошибка : List index out of bounds (-1).
    Что сие значит ?
    Заранее спасибо !
    Вы пытаитесь обратится к несуществующей переменной.
    Добавление переменных описано в документации:

    - очистить список

    - создать категорию

    - создать переменные

    - повторить шаги 2 и 3 для создания других категорий.

    код
    TfrxVariable * Category;
    PrihodRashodReport->Variables->Clear();
    Category = PrihodRashodReport->Variables->Add();
    Category->Name = " Category1";//имя категории начинается с пробела!!!
    PrihodRashodReport->Variables->AddVariable("Category1","DBeg",data1);
    Category = PrihodRashodReport->Variables->Add();
    Category->Name = " Category2";
    PrihodRashodReport->Variables->AddVariable("Category2","DEnd",data2);
    
  • SvetkinSvetkin СПб
    отредактировано 15:39
    написал:
    Если есть созданная заранее в FR переменная (например, "Client")

    а судя по тому что Вы писали до этого этих переменных в отчете просто нет.
    соответственно и индекса у них нет, поэтому и возвращается -1

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

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