How can I create data storage using clock component and display it in a table using calendar?

You only need to create as many rows in the Label table as you can fit onto your phone in landscape mode that would be visible without scrolling.

How big is your phone?

This reminds me of an old joke:

A man goes into a hardware store, looking for something to help him cut down a tree. The salesman sells him their finest chainsaw. The customer returns later all tired, bloody, and sweaty, and throws the chainsaw down on the counter. "This chainsaw can't cut anything!".
The salesman take the chainsaw, verifies the chain is seated properly and lubricated, and that the chainsaw has gasoline. The salesman pulls the starter cord, and the chainsaw roars to life. The customer, startled, asks "What's that noise?"

My app will be displayed on various devices, including tablets. It depends on the user's choice.

The number of rows you display in Labels is a compromise between

  • what will fit on the smallest device screen without scrolling
  • your patience in adding extra rows of Labels to the screen and to the label_table component table in the Blocks Editor.

Off the top of my head, I guess 6 rows should be enough to fill the screen without overwhelming the user. This all user taste, which I leave to you.

The blocks measure length of list against the label_table, so they will adjust automatically.

After considering your, Abraham and Ram, solutions and suggestions, I created my table.
I kept my Scroll Arrangement component. It doesn't take up space, it's easy to use for the user, and it's easier for me to manage.

For now I have set 10 rows, but later I will add more.
I made hide the rows/Horizontal Arrangements that don't contain data.
I matched the Namespace TinyDB data with DatePicker.

It works.
...but I have some questions:

  • how can I improve and simplify my blocks?

  • why doesn't Horizontal Scroll Arrangement work? ...it contains the whole table

  • can you explain why I had to set quantity "0" instead of "-1" or "+1"?

  • how can I set the "right arrow" disabled when the date in the DatePicker is set to instant "Now" (after changing days backward and forward)?
    I assembled the blocks like this but it doesn't work:

Nadi_07.aia (958.4 KB)

I found the solutions and improved my blocks.

Now, how can I create my customized DatePicker popup Calendar?
...I would like to mark the days on which the data is stored.

This is a sample I had lying around.
You would have to customize it to fit your app's data storage.

P.S. For an inspiring example of visualization of time-based data, see http://histography.io/
(Not an offer to program it for you)

Yes, very creative mind ....like all the App Inventor community :slightly_smiling_face:

...so
1
Thank you

4 Likes

When I am clicking the datepicker my calendar starts, but automatically the popup dialog also starts. How can I disable it?

Please download and post each of those event block(s)/procedures here ...
(sample video)

...ah, ok, no problem.
I will post all the blocks once I have finished working on my calendar, so then we'll see it.

Is this question related to the topic? Else either search in forum or create new topic regarding this. Before that dont forget to hit the properly reply as solutiin which gives you an idea

Hi Spicy, You are right.
So I can correct the topic title in: "How can I create data storage using clock component and display it in a table using calendar?"
They are all related subjects as I explained in my first post. The calendar is just following that thread, until my storing and displaying work together optimally.
Or I can break this thread and create a new topic. However, in this topic there is already the Abraham's suggestion I am working on and I am collecting the questions to ask.

So tell me what you prefer and what is most comfortable for readers :slight_smile:

1 Like

better split the topic.. Thats always healthy conversation betwenn one and all..

also chek up whether this calendar apps suits for you or not

...so my calendar has been fixed in the separate topic: Fixing my customized calendar

If the Community allows, I continue this topic.

So far I have collected, stored and displayed the first level data. It is for students who have finished the first level of the Self-Pulse Reading technique learning.
Subsequently, the students will access the second level (from Home page) where they will collect the new, more advanced data and will have to display them in the same table.
These second level data must not be mixed with the first level data. So it must be stored separately.

It probably means that the time to dive into the dictionary ocean has come, doesn't it?
Should I further differentiate the names of Namespaces?

...or maybe just add a new TinyDB?

I await your suggestions :slight_smile:

Because you are dealing with two separate populations of users, this is a good opportunity to do a Project->SaveAs to lock in your success with your first version and start your expansion in a separate larger project.

This will have the side benefit of giving you a new set of TinyDB storage areas where you can start fresh with new data organizations.

There is a question I have for you regarding second level data:

Is it tied to the same timestamp (tag) used to access your level 1 data?
Will you continue to have only one Submit button but have it now cover both level1 and level2 data?

Also, Can you really fit both levels of data into a single row in your onscreen display table on a phone?

Those need to be answered before data storage design can proceed.

Yes, the tags will be formed the same way as now. Only informations / buttons to click will change.

I could use the same "Save" button, or, if it is necessary, I can replace it with a new "Save" button for level 2.
In the same way I will use the already existing pages, changing their titles, buttons, etc., ...but I will also add the new pages.

I will use the same table structure, but the data will not be mixed. At the time of display, only the data of level 1 will appear (when one is on level 1 of the app) or only the data of level 2 (when one is on level 2 of the app).

I'm curious to understand your idea better.

Dictionaries are like little in-memory TinyDBs, good for keeping data separate by name.

They allow in-place update, and can deal well with missing data.
You can remove a key/value from a dictionary without affecting the other keys/values.

Here is your starter reading...
http://ai2.appinventor.mit.edu/reference/blocks/dictionaries.html

Ok, done.
What's next?

I forgot to mention that iOS AI2 currently has no dictionary support.

Is that a problem for you?

Yes ...actually it is
Although for now I use android as a Companion, so theoretically it could be done, but I hope that soon there will be the possibility to build apps for iOS. At what point are you?