Form design: grid of text or numeric input

You could populate a text label containing the title for each row, eg from an item list (take a look at my earlier link)

Scrollbar? Swipe? (latter would require disabling swiping performing 'next control' obviously)

1 Like

I like this idea, no need to constrain our grids to "repeating" questions.

And then handle not duplicating the labels (when it s a repeat group), much the same we done presently with select repeat groups; ie an appearance tag to say hide labels.

why did you cross this out? it seems like a reasonable solution.

As noted by @LN

which seems to be the prevailing workaround for constructing a select table/grid. Basically, the first 'row' is a faux select/select1 with a "label" appearance, simply in order to display show the column headings. Then you'd put all the real select questions in a repeat group, with a list-nolabel. And you then put the whole contraption in a field-list group so it all gets displayed together. Its a bit of a kludge (IMO) because you're adding an entirely redundant select control into your form simply for the purpose of displaying the column headings. But hey, it gets the job done!

However, on reflection (hence redaction) I dont believe this approach is particularly scalable nor the best approach for displaying the column headings for a generic (group-based) grid. It would basically mean duplicating the entire group and all its controls (!) once at the beginning (using "label" appearances or equivalent) for the column headings, and then again within the subsequent real repeat group (w/ "nolabel").

Since we're proposing having to introduce a new group appearance anyway (ie "table") then I think it might be preferable to simply exploit this; by definition a "table" appearance would imply "field-list" (ie the group/repeat group should be shown on the same page), and when rendering a repeat group having a "table" appearance, only show the enclosed controls' labels if position(..) index = 1. This would relieve the form writer from having to worry about how to display the column headings, which they must presently do with the select table workaround.

[aside: we might even look at whether this more general design could be used to better define a select table: ie a repeat group w/ appearance="table", containing a single select/select1 question, and similarly only display the select's option labels if position(..) index = 1?]

Bump.

Is there still interest in coming up with a design for proper (ie not merely select/checkbox) matrix of questions? of mixed text and/or numeric types? with row and/or column mutual-exclusivity control? with defaults? ...

2 Likes

I think this would be good to do eventually. We took it off the TSC roadmap because there wasn't much interest when I first posted it. I'm currently focused on closing out things that have been on the roadmap for a while.

I think of this feature as separate from repeats and wouldn't try to build on top of them though I don't have a spec in mind yet. I think it should support mixed text and numeric types. I think it would be ok for clients to either wrap or clip in the case of long rows -- presumably this feature would be most useful for large devices.

I'm sure grid style appearance is very helpful for for enumerators to input and it happens very often with paper form. One of our worker's barrier to move to digital form is they dont feel comfortable and familiar to input data without grid style, they have to answer very similar questions.
I voted and still wait for this feature.
Text and numberic input and @David_Kaftan proposal is all my desire.
I see How do I handle the table in xlsform .The attached table and Table questionnaire (integer and text input) so I 'd like to call @Josiah76 and @Frimpongeben1 to this topic for ther interested in the feature.
Hope this come soon.

1 Like

Hi all - yes this certainly would be useful - see my latest post How to transform a table into questions on ODK

In my example, I would need the user to be able to input the row names also, as they would be unique time stamps

Did this feature ever get added? It would be very useful for project Im working on.

I am also waiting for a update
Did you get it yet?

Hi @Atlin and @annejones101
the answer is no, it hasn't been implemented.

Hi, would hope to see any updates on this. Thank you.

Quiero ayudar con el desarrollo de este tema. me interesa las tablas para las encuestas. tienen el repositorio publico para crear mi rama?

Hi,
i'm also very interested in matrix text or numeric inputs into a grid widget as described by Helen.
Hope the function will be added soon!

Hi, also just sharing my interest in this feature. We are shifting to data collection using ODK & monitors are not very happy about 10 questions for boys, and then the same 10 questions for girls. Having a grid for them to input numbers in a familiar table format would really help.

Thank you

1 Like

My ideal UX for grids are click counters of things in 2 by 2 categories.

My concrete example are turtle tracks. While I'm capturing a geotrace in the background, I walk along a beach and tap to add one count to a relevant cell. My columns are turtle species, the rows are types of tracks.

I want to use each cell as a click counter (value plus one) and also be able to correct a misplaced click (value minus one). For this, I need to see the value (an integer number), a large plus button and a smaller minus button.

2 Likes

This is the case discussed here :

So it would be really useful for such species list monitoring (punctual/linear abundance indexes)

1 Like

In my experience when people ask for grid views, they mean one of two things.

  1. The first is a true grid based data entry, like the one @Florian_May described. Here you have different fields in grid positions and the orientation in a grid format is simply a device to simplify data entry and reduce the currently very substantial need to be swiping all over the place when there's lots of options. Grids are essentially just very efficient.

Example 1 : Turtles

Track type 1 Track Type 2
Turtle species 1 1 [+][-] 0 [+][-]
Turtle species 2 12 [+][-] 25 [+][-]
Turtle species 3 3 [+][-] 5 [+][-]

Example 2 : Visual acuity measurements of left and right eye in a single individual

Left Eye Right Eye
Visual Acuity 0.7 0.4
IOP mmHg 12 25
CD ratio 0.3 0.8

In example 1 the data entry tool (the clicker) is really simple so lends itself well to phone based data collection

In example 2 the popup keyboard, number pad, drop-downs or scrolling would be needed, but this would not necessarily be a horrible thing, especially if using a tablet (which is our normal for most fieldwork).

  1. The other type of grid people ask me about is really a way to present repeats side by side in a single view (let's assume we are using a tablet here because there's a need for serious screen real-estate)

Example 1 : A daily clinical observations form
||OBS1|OBS2|OBS3|
|-|-|-|-|-|
|Time of assessment | HHMM | HHMM |HHMM
|Temperature|39.0|38.4|37.0|
|Respiratory Rate | 88|76|60|
|Heart Rate|120|110|90|
|LOWEST Consciousness (AVPU)|A|A|A

Example 2 : A household structure survey (note here the repeats go down, this is abitrary)

||Age|Biological Sex|Tb infection|
|-|-|-|-|-|
|Person 1 | 44 | MALE |ACTIVE
|Person 2|49| MALE|ACTIVE|
|Person 3| 15|FEMALE|NONE|
|Person 4|12|FEMALE|LATENT|

Example 1 has the benefit that a clinician can look at the patient's progress over time. It works best when the number of repeats is fixed, or you'd need a scrolling canvas!

Example 2 has the benefit that data entry for different 'repeats' can be done in non-linear manner, for instance enumerator could get all the names and sexes down for everyone before doing the individual tests for infection. This would vastly simplify a lot of data entry, but clearly would need fundamental changes to Collect.

Note that using Enketo via a browser can achieve lite versions of both of these approaches, so functionality in Collect is perhaps less a requirement for these rather more specialist use cases. The only issue is the relatively less well developed/less certain off-grid functions of Enketo and lack of easy way to enable browser caching of forms when internet is unavailable. The clinical observations form is something I have been asked about many times, especially for things like emergency hospital units where internet is unreliable. Is there any case for (optionally) replacing the front end of Collect with Enketo, but back-ending it with the existing infrastructure?

5 Likes

Is there any update about the set up of this functionality? Is it in the pipeline of upcoming features? Thanks!

I can't wait to see Case 1 example 1 and Case 2 example 2. They are very very important features to add to collect.

hello @LN @yanokwa

i would like to implement a label value grid of 2 columns and 3 rows in xlsforms,
how can i horizontally align each label and its corresponding value to come up with the rows ?