Qlik Community

QlikView Scripting

Discussion Board for collaboration on QlikView Scripting.

Not applicable

RENAME in a loop problem

Hi,

I have the following setup:

Table A loads data from an excel file, Table B loads different data from the same excel file.

Table A contains fields with default names (@1, @2, @3, etc), table B contains the actual names for the fields in table A.

I have multiple excel files to go through, so I have the renaming process in the loop that goes through all of the my files.

Mapping load didn't work for me, so I am working on this workaround.

Within the file loop, I have the RENAME loop, which looks like this:

FOR i=0 to NoOfRows('FieldNameMap')-1

    LET vNewFieldName = Peek('Field Name',$(i),'FieldNameMap');

    LET vOldFieldName = '@' & ($(i)+1);

    RENAME Field '$(vOldFieldName)' to '$(vNewFieldName)';

NEXT

This process works fine for the first excel file; however, the second time around, I can see in the debugger that the RENAME loop takes in the correct field names, but after the loop, my table still has @1, @2, @3, etc as the names of the fields!

Another thing I should mention is that the tables are created at the beginning of the file loop, then one table is used as a resident table and then both the table and the map are dropped before the loop gets to NEXT, so I'm esentially starting with new tables every time I loop through with a new excel file.

To sum up: why do the fields keep their names after the first file is processed?

Thanks,

Siarhei K.

6 Replies
danielrozental
Honored Contributor II

RENAME in a loop problem

You can rename all fields using a mapping tabl, you should look at the "Rename Field" entry in the help file.

Not applicable

RENAME in a loop problem

I already tried the mapping load, as I described before, but that option doesn't work for me. I am also trying to work with the rename field option, which I also described before, which is giving me a lot of trouble...

danielrozental
Honored Contributor II

RENAME in a loop problem

Can you share a sample application and include your data files?

Not applicable

RENAME in a loop problem

Sorry, but I can't.

I was reading about other people having the issue of not being able to rename fields, and I was told that there might be an issue with me trying to rename a field with a name that is already used in another table. Don't see why that would be a problem, though.

danielrozental
Honored Contributor II

RENAME in a loop problem

Yeah, that probably won't work. Can you load first the file that needs renaming?

Can you post your entire script?

Not applicable

RENAME in a loop problem

I don't think I can post my entire script, sorry.

I did, however, confirm that the problem is trying to rename a field to create an association in a table that has already been loaded.

My workaround, to keep the field names dynamic is to create a whole bunch of variable, which keep the new field names, then when I load the table with fields that I want to rename, I use the following:

@1 as $(v1)

for example.

This works in my case, when I can load the new field names BEFORE I load the fields that I need to rename, and of course, if I know the exact number of fields that I will be renaming.

Hope this helps somebody out there.

Thanks,

Siarhei K.

Community Browser