Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
atsushi_saijo
Creator II
Creator II

Autogenerate inside Loop

Dear Gurus,

I stumbled in a requirement where I must autogenerate NoOfRow() inside loop.

Specifically, this application is used as a source file for labels. The user put an excel file, where [a.] part number; [b.] Maximum number of labels to print.

Part NumberMaximum Number of Labels
A2
B5
C3

The script should produce such result:

A     1

A     2

B     1

B     2

...

B     5

C     1

C     2

C     3

[Attempted Script]

I have initially authored such script:

//Initial Load

T1: Load [Part Number] as P#, [Maximum Number of Labels] as Max from (Source Excel);

//Getting maximum number of rows in the source file

Let noRows = NoOfRows('T1')

//define loop condition

for i=0 to $(noRows)-1

     Let a = peek ('P#', $(i), 'T1');

     Let b = peek ('Max', $(i), 'T1');

//Generate serialised number

T2: Load RowNo() as Serial Autogenerate $(b),

Next;

[Issue]

However; it seems $(b) is not passed. Just error and stops execution.

I would appreciate for any help on this script.

Atsushi

1 Solution

Accepted Solutions
Gysbert_Wassenaar
Partner - Champion III
Partner - Champion III

Try using the while keyword:

LOAD *, iterno() as RecNo

while IterNo() <= [Maximum Number of Labels]

From ...somewhere...;


talk is cheap, supply exceeds demand

View solution in original post

5 Replies
Gysbert_Wassenaar
Partner - Champion III
Partner - Champion III

Try using the while keyword:

LOAD *, iterno() as RecNo

while IterNo() <= [Maximum Number of Labels]

From ...somewhere...;


talk is cheap, supply exceeds demand
atsushi_saijo
Creator II
Creator II
Author

Thanks, I am trying now.

atsushi_saijo
Creator II
Creator II
Author

Excellent it is working. IterNo() is used as serial, and while ..... close was used as condition. I appreciate for your fast and elegant resolution.

MK_QSL
MVP
MVP

Temp:

Load * Inline

[

  Part Number, Label

  A, 2

  B, 5

  C, 3

];

Load

  [Part Number],

  IterNo() as NO

Resident Temp

While IterNo() <= Label;

Drop Table Temp;

atsushi_saijo
Creator II
Creator II
Author

I appreciate for your support too. Your solution is working. I deeply appreciate for your fast resolution. Atsushi