Процедура ContinueDataset |
При создании потоков данных существует возможность создания элементов потока данных, не основанного на таблице (с использованием ключевого слова dataset). В этом случае контроль за количеством записей в наборе данных возлагается на прикладного программиста и осуществляется с использованием процедуры ContinueDataset.
При формировании очередной записи нужно вызывать ContinueDataset. Данный вызов является сигналом генератору отчетов, что текущий элемент потока существует. Если процедура не была вызвана - считается, что набор данных кончился (предыдущая запись - последняя в наборе) и выдача будет прекращена.
Для вызова процедуры удобно использовать обработчик cmOnProcess элемента потока данных.
ContinueDataset;
В случае необходимости вызова процедуры ContinueDataset не из обработчиков элемента потока данных нужно использовать синтаксис с указанием имени этого элемента потока данных:
<имя-датасета>.ContinueDataset;
Где <имя-датасета> - идентификатор, имя элемента потока данных.
В данном примере набор данных будет состоять из пяти записей. Иллюстрируется вызов процедуры ContinueDataset из обработчика cmOnProcess.
interface SampleInterface; // ------------------------------ var counter : integer; // ------------------------------ datastream SampleStream ( dataset SampleDataset ( [ SMPLCNTR ] counter; ); ) handleEvent SampleDataset cmPreProcess : { counter := 0; } cmOnProcess : { counter := counter + 1; if (counter < 6) then ContinueDataset; } end; end; // ------------------------------ end.
Атлантис 5.1.2x.