У меня проблема с использованием цикла for с полями Crystal Reports.
С моей целью я пытаюсь извлечь все SQLExpressionFieldDefinition из моего отчета.
Чтобы сделать это, я получаю счетчик SQLExpressionFieldDefinition в отчете.
Цикл for работает идеально, пока не достигнет последней итерации. Затем он генерирует недопустимый индекс.
Другими словами, SQLExpressionFieldDefinition-> Count = 5 для примера, первые 4 итерации работают, когда он достигает 5 числа, появляется проблема недопустимого индекса.
Вот код:
for ( nIterator = 1; nIterator <= rpt->DataDefinition->SQLExpressionFields->Count; nIterator++ )
{
SQLExpressionFieldDefinition
*sqlExpressionFieldDefinition = rpt->DataDefinition->SQLExpressionFields->get_Item(nIterator);
strText = sqlExpressionFieldDefinition->Text;}
Жду ваших ответов. Спасибо.
Индексаторы для массивов должны начинаться со значения 0, а не с 1 и заканчиваться значением Count - 1
,
Crystal Reports не является исключением из этого правила.
for (nIterator=0; nIterator < rpt->DataDefinition->SQLExpressionFields->Count; nIterator++ )
Других решений пока нет …