Quantcast
Channel: WinDev Forum
Viewing all articles
Browse latest Browse all 1914

ArraySeek() issue solved

$
0
0
In my previous post I mentioned an issue of ArraySeek() always returning a value of 1 regardless of whether the sought value existed or not.

Having returned to programming I also noticed that combos bound to the arrays showed no values even though the arrays themselves had content.

My error, no surprise here, as I was using a reversal of the code used to store the JSON content to populate the arrays....
FOR EACH LookupDetail where StringBuild("FK_LUCode = '%1'",s_LUCode)
	//Fetch and convert the content of the detail (JSON) string
	s_LUDetailJSON = LookupDetail.LookUpList_JSON; v_LUDetail = JSONToVariant(s_LUDetailJSON)
	//Assign the variant to the array
	{"m_Arr" + s_LUCode,indVariable} <- v_LUDetail
END
following a few posts with Andy Stapleton I changed this to
FOR EACH LookupDetail where StringBuild("FK_LUCode = '%1'",s_LUCode)
	//Fetch and convert the content of the detail (JSON) string
	s_LUDetailJSON = LookupDetail.LookUpList_JSON
	// Deserialization to the element
	Deserialize({"m_Arr" + s_LUCode,indVariable}, s_LUDetailJSON, psdJSON)
END
All is now working as expected.
Only difference I can see when viewing the arrays in the debugger is that the header of the Value column for each row of the array shows different description

When using JSONToVariant it shows <VariantMenber>
When using Deserialize it shows <STR_Detail4Combo> //Array of a Structure

The conclusion has to be that variant members are invisible outside of the array itself although I have no idea why this should be or why an array based on a variant always returns the value of 1.

Another lesson learned.

Viewing all articles
Browse latest Browse all 1914

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>