OK, here's what worked for me. It took me a bit to figure it out, especially for making it work on a JSON tree, but it works.
\define makeRowspan() <$vars currentAction={{{ [all[current]indexes[Actions]sort[]first[]] }}} cnt="0" > <<addRows>> </$vars> \end define addRows() <$set name="Items" filter= "[all[current]indexes[Actions]addprefix[Actions/]addsuffix[/Items]]" select =<<currentAction>> > <$set name="itemCount" value={{{ [all[current]indexes<Items>count[]] }}} > <$vars cnt={{{ [<cnt>add<itemCount>] }}} > <$list variable="currentAction" filter= "[all[current]indexes[Actions]sort[]after<currentAction>]" emptyMessage= "<<cnt>>" > <<addRows>> </$list> </$vars> </$set> </$set> \end and then in the <table> <$wikify name=rows text=<<makeRowspan>> > <td rowspan=<<rows>> > ... Thanks so much, Saq and Tony, this took me a lot further on the learning curve. Without you, I would have never come across using first[] and after[]. Best, Werner Am Donnerstag, 27. August 2020 19:56:38 UTC+2 schrieb Saq Imtiaz: > > @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 tiddlywiki+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/25008790-0ef4-4215-971c-b44a53db2e42o%40googlegroups.com.