Which is the block that defines any item in the list to be added to another list?

four lists are the four columns of the table, in each of the columns the text of the selected button that belongs respectively to one of the four lists will be inserted

Then it is good to have list of lists, since maintaining four lists for single subject/entity doesn't look great.

Yes, but in the four positions of the "Data List" the four lists cannot be inserted directly, because only the buttons that have the image set on "on" will go into the columns.
... maybe I'm not getting something, .. how did you intend to make the list of lists?

Did you work with option in or secrion in post #11, which is about list of lists

You can store "true" and "false" as cell values to represent inclusion or non-inclusion.
That way, everything lines up in the table.

..oh, this sounds good, although I don't understand yet what you mean exactly :slight_smile: ... can you show me an example of blocks?

image

Suppose row2 and col4 is clicked you will make it True, this how you need to be stick with a row and col interpretation. You need to establish a correspondence between button and row*col.

ah no, thanks, but my app works differently
I send you my app, ...so click the Level1 in the Home and then follow several pages clicking buttons, ..finally you will save the data and open it in the table by clicking button "List"
...there is still no table because I'm working on it separately
Nadi_02.aia (763.0 KB)

I looked at your app, and see it is time to do a little data modelling.

You are taking a survey consisting of a set of unique single words in buttons, pressed or not pressed.
Each word belongs to a category, regardless of whether it was pressed or not. That association can be hard coded in a csv table and loaded at app start.

  • word
  • category

The user's survey end result is a one dimensional list of the word texts that he chose.

Am I right?

1 Like

You are right. This is the example of the data that can be detected by the practitioner of the pulse-reading technique
... I'm still deciding which column to put "Activity" in, but it's not relevant here.
data examples.pdf (26.5 KB)
The list of data added each time the pulse reading is performed will be very long because it will be done at least twenty times a day.
...anyway saving and transmitting data in the table works well with both TableView and DynamicTable, there are only a few problems still to be solved and then I'll paste the table blocks into my file. In this topic I'm trying to simplify blocks of saving button...
...so let's go with coding :slightly_smiling_face:
:cherry_blossom:

Hi Abraham,
So far I have tested the data collecting by inserting only a few rows into the table. Now by increasing the amount of data to be saved and loaded, everything slows down considerably, as you said. So I'm looking forward to seeing your idea of how to improve my project.
Thank you

Export and upload your new .aia file, for specific pointers.

Note: I do not support extensions.

what do you mean by "specific pointers"? ...are you telling me to upload again my aia file here?
...is it possibile to create the table without extensions?

Yes.

Probably. I haven't seen new code for 3 days, though.

Here you are :blush:
Nadi_03.aia (761.0 KB)

Would be really great to avoid extensions...
So please operate, I'm open to all possibilities :cherry_blossom:

You seem to be saving your full data table in just one tag ('data') in a single TinyDB NameSpace.

That full data table extends over the lifetime of your app, so it's going to be a burden to navigate however you use it.

I propose using a Divide and Conquer approach to storing that data, using TinyDB NameSpaces, only one NameSpace per day (yyyyMMDD) and use the HHmm of each reading as that reading's tag in that NameSpace.

That would turn the storage of a single reading into a single operation consisting of

  • set TinyDB1 NameSpace to yyyyMMDD of today
  • store your reading under tag HHmm of that reading into TinyDB1.

To get a table of one day's readings,

  • start with an empty list (table) of readings
  • set TinyDB1.NameList to that day's yyyyMMDD
  • for each tag in TinyDB1.taglist
    • get the value for that tag in TinyDB1 (a reading)
    • add the reading to your list of readings
  • feed the list of readings to whatever display mechanism you want.

Study the Clock's formating blocks and their extra help link for how to get yyMMdd and HHmm values.

Also, I see you are using a generic button click event in addition to specific button click events, but you are not taking advantage of the notAlreadyHandled feature to avoid extra handlers being invoked:

Regarding your urge to try to show data in a table, that works best on paper, not on small phone screens.

You can squeeze your table into a List Picker or ListView by combining headers and cell contents of a row into single list Elements in a tag:value format, like

header1:value of row 1 column 1
header2:value of row 1 column 2
...
header6:value of row 1 column 6
============ (new list element)
header1:value of row 2 column 1
header2:value of row 2 column 2
...
header6:value of row 2 column 6
============ (new list element)
...

Wow, it sounds really good!!
It's all new to me, but I have a good feeling about your ideas...
Now, how to put it into practice? ...could you help me?

...now I have to go (I'm in the European time zone) but tomorrow I will try to understand how to apply it.
Today I kept looking for the solution to fix the list of the "Save" button, but I didn't solve it...
bye

Here is a general purpose table to ListView converter you can use:
csv_vertical_display.aia (36.3


global rawText

KB)
nst-est2018-alldata.csv (64.9 KB)




Sample run: