Страница 1 из 1

Пустой CrossTab

Добавлено: 02 сен 2013, 09:47
keeper
Здравствуйте!

В отчете вывожу данные в CrossTab. Иногда бывает ситуация, когда в него не попадают данные. В этом случае, мне нужно, чтобы в отчет выводилась структура таблицы (чтобы печатались заголовки). Но в печатаются только заголовки ячеек с итогами.
Во вложении два скриншота: структура CrossTab в отчете и что я получаю в отчете.

Re: Пустой CrossTab

Добавлено: 02 сен 2013, 17:56
Aleksey
Здравствуйте,

К сожалению, на данный момент, это невозможно.
Как вариант, если нет данных, можно попробовать в событии добавить дополнительную пустую строку.

Спасибо.

Re: Пустой CrossTab

Добавлено: 11 сен 2013, 16:30
Леонид
Добрый день!

Согласен с Алексеем, такой функционал в принципе не нужен, т.к. задача специфическая.
Вы можете легко реализовать такой функционал (на примере Oracle).

1-вариант, из кода C#:

Код: Выделить всё

  OracleDataAdapter daMain = new OracleDataAdapter ("select * from my_stored_procedure");
  DataTable qrMain = new qrMain();
  daMain.Fill(qrMain); // execute sql

  if (qrMain.Rows.Count == 0)
  {
    DataRow row = qrMain.NewRow(); // add an empty row
    qrMain.Rows.Add(row);
    
    // fill data row data
    row["field1"] = 0;    
    row["field2"] = "Нет данных";

    qrMain.AcceptChanges();
  }

  // execute report with diagram
  stiReport.Render();
2-вариант, из кода отчёта в событии BeginRender:

Код: Выделить всё

  qrMain.Connect(); // if property ConnectOnStart is false

if (qrMain.Rows.Count == 0)
{
    DataRow row = qrMain.[b]DataTable[/b].NewRow(); // add an empty row
    qrMain.Rows.Add(row);
    
    // fill data row data
    row["field1"] = 0;    
    row["field2"] = "Нет данных";

    qrMain.[b]DataTable[/b].AcceptChanges();
}

Re: Пустой CrossTab

Добавлено: 11 сен 2013, 16:49
Aleksey
Здравствуйте,

Спасибо за предоставленную информацию.