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

Пустой DataBand

Добавлено: 28 июл 2015, 15:38
onik111
всем привет.

Я генерю отчет:

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

	string sql = "select report from dbo.report where idreport = " + idreport.ToString();
			dbconn._db.command.CommandText = sql;
			try
			{
				dbconn._db.OpenDB();
				rep = (byte[])dbconn._db.command.ExecuteScalar();
			}
			catch
			{
				throw;	
			}
			finally
			{
				dbconn._db.CloseDB();
			}

			// построить отчет
			StiReport report = new StiReport();
			report.Load(rep);
			report.Compile();

			report["idorder"] = IdOrder;
			report["PeopleFio"] = FIO;

			report.Render(true);

	MemoryStream stream = new MemoryStream();
			report.ExportDocument(StiExportFormat.Pdf, stream);

return stream;
но в результате кол-во строк в DataBand отчета = 0, хотя при предпросмотре > 0.

В чем может быть дело?

Re: Пустой DataBand

Добавлено: 29 июл 2015, 11:32
Леонид
Добрый день!

Вы загружаете отчёт из blob поля, затем присваиваете значения двум переменным отчёт и рендерите его, - конечно же DataBand будет пустым, т.к. вы не присваиваете ему никакого источника данных.

Как вариант, из кода, перед

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

report.Render(true);
надо присвоить источник данных, например, если у вас DataSet (а в нём DataTable) так:

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

      stiReport.RegData(yourDataSource);
      stiReport.Dictionary.Synchronize();
Соответственно в DataBand вы должны указать названия полей из вашего источника в компонентах Text, например для первого поля {yourDataSource.Id}, для второго {yourDataSource.FIO} и т.д.

Проверьте так же, что компоненту DataBand присвоено имя источника данных. :!:

Re: Пустой DataBand

Добавлено: 30 июл 2015, 09:22
HighAley
Здравствуйте.

Решение зависит от используемого источника данных.
Возможно поможет и синхронизация, а может ещё что-то.
Для более подробного ответа необходимо увидеть пример проекта, который воспроизводит вашу ситуацию.

Спасибо.