2016-06-22 2 views
3

У нас есть отчет, который отображает на странице PageFooter, какой способ оплаты клиент использовал для оплаты заказа, в этой области у нас есть три других объекта TableObjects, которые работают правильно, но есть один, который выполняет скрипт для построения вручную TableObject, проблема, которую мы расположены, когда он выполняет этот сценарий он не показывая сообщение StackOverflowException в System.Drawing.dllОшибка при выполнении сценария для объекта TableObject, расположенного в разделе PageFooter

Visual Studio Error while showing report

сообщение сверху означает генерацию отчетов выполняет.

Сценарий, который я нашел это не удается это один, если этот сценарий не выполняется дисплеи отчета правильно, но без информации, которую мы хотим показать, что TableObject

private void TableModalidadPago_ManualBuild(object sender, EventArgs e) 
    { 
     // get the data source by its name 
     DataSourceBase rowData = Report.GetDataSource("DOCUMENTO_MODALIDAD_PAGO"); 

     // init the data source 
     rowData.Init(); 

     if (rowData.RowCount == 0) 
     { 
     TableModalidadPago.Visible = false; 
     return; 
     }  

     // print the first table row - it is a header 
     TableModalidadPago.PrintRow(0); 
     TableModalidadPago.PrintColumns();  
     TableModalidadPago.PrintRow(1); 
     TableModalidadPago.PrintColumns(); 


     // now enumerate the data source and print the table body 
     while (rowData.HasMoreRows) 
     { 
     // print the table body 
     TableModalidadPago.PrintRow(2); 
     TableModalidadPago.PrintColumns(); 

     // go next data source row 
     rowData.Next(); 
     } 

     TableModalidadPago.CanBreak = false; 
     TableModalidadPago.CanGrow = true; 
    } 

Он терпит неудачу на линии

TableModalidadPago.PrintRow(0); 

И если я помещаю TableObject в другой раздел, который не является PageFooter, он отлично работает.

Кто-нибудь знает, есть ли какие-либо ограничения на выполнение кода в PageFooter или есть ли какие-либо ошибки в предоставленном скрипте?

Я уже отправил эту информацию в FastReports форуме, но до сих пор нет ответа (Link)

Edit: Я также создал билет в центре FastReports поддержки и до сих пор нет ответа ...

Edit2: 24/06/2016 Сегодня я видел, что они опубликовали новую версию FastReports.Net (2016.3 предыдущий был 2016.2), и я загрузил и установил ее, после очистки моего проекта и повторного попытки, ошибка все еще повторяется, с этой новой версией программа просто unpllectly закрывает и не отображает сообщение об ошибке, я обновил свой билет в центре поддержки

Спасибо.

ответ

3

Ошибка переполнения стека предполагает, что цикл while может быть бесконечным. Может на самом деле терпит неудачу на линии

TableModalidadPago.PrintRow(2); 

Возможно, вам нужно удалить строки из объекта ROWDATA, как только вы напечатал их?

+0

Благодарим за предложение или ответ. В таблице есть только одна строка, обычно клиенты платят только одним способом, и только тот же код сбой только тогда, когда он находится в PageFooter, в других разделах работает отлично. Кстати, строка не работает TableModalidadPago.PrintRow (0); код не достигает предоставленной строки. Еще раз спасибо. –