@werner precisely, its a recursive macro that processes each row, and calls
the macro again with the next row, inside a new vars widget with the new
incremented value of the variable.
The emptyMessage is triggered at the end and gives the final cumulative
value.
On Thursday, August 27, 2020 at 6:36:01 PM UTC+2 Werner wrote:
> Thanks, Saq, so this means you are using recursion? Didn't realize this
> was possible in TW. I will yet have to try it out and get back to you.
>
>
> Am Mittwoch, 26. August 2020 22:41:16 UTC+2 schrieb Saq Imtiaz:
>>
>> I'm a bit tired so this isn't as clear as I would like, but hopefully
>> this pseudocode will point you in the correct direction for the pattern for
>> getting this done with just wikitext:
>>
>> \define processRow()
>> nestedRows = level2 +count[]
>> <$vars cnt={{{[<cnt>add<nestedRows>]}}}>
>> <$list filter="[[allrows] +[after<currentTiddler>]]"
>> emptyMessage="<<cnt>>">
>> <<processRow>>
>> </$list>
>> </$vars>
>> \end
>>
>> \define processAllRows()
>> <$vars currentTiddler={{{[allrows] + first[]}}} cnt="0">
>> <<processRow>>
>> </$vars>
>> \end
>>
>> <td rowspan=<<processAllRows>> > or set it to a variable for re-use.
>>
>> On Wednesday, August 26, 2020 at 9:16:30 PM UTC+2 Werner wrote:
>>
>>> Good evening guys, me again.
>>>
>>> I understand that the scope of a variable is defined by the enclosing
>>> <$vars> <$set> or <$wikify> widgets. I also understand that any new <$set>
>>> widget opens up a new scope, where a variable <myVar> defined in an outer
>>> scope would be overridden. I am facing a problem where I would need to
>>> access out-of-scope variables (or come up with a completely different
>>> approach).
>>>
>>> I am still working on a set of double-nested JSON data (using Josh
>>> Fontany's JSONmangler plugin). I want to display the content of the data in
>>> a table using table cells spanning multiple rows like <td rowspan = "5">.
>>> The problem here is, the rowspan is defined by the number of elements in
>>> the lowest nested level and I would need it before rendering the table and
>>> looping through the array elements fetching the data. So typically, in a
>>> garden variety programming language, I would do something as follows:
>>>
>>> totalRows = 0
>>> Loop through Level1
>>> nestedRows= Level2.count()
>>> totalRows += nestedRows
>>> End Loop
>>>
>>> Could anybody enlighten me, if a construct like this is possible in TW
>>> and how I would achieve it?
>>>
>>> Two fallback options:
>>> - storing the number of elements in the JSON structure (yuck - feels
>>> like cheating).
>>> - throwing the whole JSON data structure at an JS macro. Positive side
>>> effect: I would have to dive into it and learn something new.
>>>
>>> Thanks for helping me out on this.
>>> Best, Werner
>>>
>>>
>>>
>>>
>>>
>>>
--
You received this message because you are subscribed to the Google Groups
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/681c064e-8b61-4c5e-8f88-b99a1b4cfb1fn%40googlegroups.com.