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

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
ramasaisaksoft

Load different qvds from different folders using with for loop statement

Hi QV Folks,

My Root folder is D:\TestQVD

Sub folders are Test1

                        Test2

                        Test 3

each sub folder have 5 same type of qvd's same date and time stamp

but no.of records/rows are different imagine(sales1.qvd, sales2.qvd, sales3.qvd, sales4.qvd,sales5.qvd)

Now the issue is

i want a for loop to load 3 qvd's into qlikview (sales 1, sales 3, sales 5) (These will change dynamically as per my wish )

i fallowed the below script but i am getting all 5 qvd's(sales 1, sales 2, sales 3, sales 4,sales 5)


how can i load 3 qvds  from each folder ?


in advance thanks for your support.

Set vConcatenate = ;

sub ScanFolder(Root)

          for each FileExtension in 'qvd'

                    for each FoundFile in filelist( Root &  '\*.'  &  FileExtension)                              

                              Task:

                              $(vConcatenate)

                             

                              Load

                              *,

                              '$(FoundFile)' as SourceFile

                              FROM [$(FoundFile)](qvd);

                              Set vConcatenate = Concatenate;

                    next FoundFile

          next FileExtension

          for each SubDirectory in dirlist( Root & '\*.' )

                    call ScanFolder(SubDirectory)

          next SubDirectory

end sub

Call ScanFolder('D:\TestQVD') ;

1 Reply
marcus_sommer

You could use a loop-counter like this:

Set vConcatenate = ;

sub ScanFolder(Root)

          let vLoopCounter = 1;

          for each FileExtension in 'qvd'

                    for each FoundFile in filelist( Root &  '\*.'  &  FileExtension)                              

                         if match($(vLoopCounter), 1,3,5) then

                              Task:

                              $(vConcatenate)

                             

                              Load

                              *,

                              '$(FoundFile)' as SourceFile

                              FROM [$(FoundFile)](qvd);

                              Set vConcatenate = Concatenate;

                        end if

                    next FoundFile

          next FileExtension

          let vLoopCounter = $(vLoopCounter) + 1;

          for each SubDirectory in dirlist( Root & '\*.' )

                    call ScanFolder(SubDirectory)

          next SubDirectory

end sub

Call ScanFolder('D:\TestQVD') ;

In a similar way could be other checks implemented like a wildmatch on '$(FoundFile)' or similar.

- Marcus