Create a Workflow Template using a "start" expression to look the same way as a "gallery" view

Hello,

Is it possible to do something like this?
Use a “start” expression to create a workflow template that imitates a grid.

The intention is to reproduce a photo gallery on a pdf report.

Any thoughts?

Thanks

I am not sure if this is responsive to your question, but you can do what is described in topic “Customer Template in Table Format” in this article https://help.appsheet.com/en/articles/2697047-sample-email-templates

A very good question! Off the top of my head and even after a bit of thought, I can’t think of an easy way (or even a difficult way) to do what you want. I hope others chime in with some ideas!

Actually it should be doable. Are you able to show what kind of template you would like to have… for example how many images in one row. Then… how many images do you have in one record. Are these image fields required fields?

1 Like

Sorry for the delay.
I would like to have a grid with 3 columns. For now, my records have one column for images.
But I can convert this table adding 3 requested image fields if this is what you are suggesting. Is it? What is your idea?

Hello,

I’ve made some complex template, can you link a photo, a document, or anything that shows what the final result has to look?

I believe the best option is if I make a small sample app :slight_smile:

1 Like

The result could be something like this. This is generated from child records where you have only one image column.

2 Likes

Though you can add headers as well like the Gallery view has…

3 Likes

This is exactly what I need!!! Can you please reveal the magic behind it, man? God bless you! hahahah

It needs a nested table structure…

7 Likes

Finally you found a trick! which should have been a long running mystery to find this type of tricks. I never come up with using MOD expression.

This is super awesome.

Quick question.

[_rownumber] field and its value is always adhere to the original table rather than “slice”.

For instance, let me explain simple case.

The table “image” looks like this

row number | image
1 | xvdsfsafdas.jpg
2 | fdsagasfas.jpg
3 | fgafasdfas.jpg
4 | htgafsddfsa.jpg
5 | dsafafdsa.jpg
6 | fffdsafafdsa.jpg
7 | fdsagasfada.jpg]

then the [related Images] ref fields should looks like this.

1 | xvdsfsafdas.jpg
3 | fgafasdfas.jpg
7 | fdsagasfada.jpg]

rather than,

1 | xvdsfsafdas.jpg
2 | fgafasdfas.jpg
3 | fdsagasfada.jpg]

What I mean is sliced, related table"s rownumber is not recalculated based on the slice condition, but inherit the row number from the original table.

On your demo case, we have 4 column, but I assume in the extreme case, we may have 2 images on the first column in the table, but none of images for the rest of 3 columns, based on the number of [_rownumber] being returned the slice (slice, in this case, is related rows based on ref.)

If the slice will be able to regenerate the new row number based on the selected number of the row, your template should perfectly work, what do you think?

2 Likes

Im just thinking of the trick @Suvrutt_Gurjar introduced to me before will add fuel to your trick to generate the serial number (alternative to row number) to run your trick more efficiently, although this is just based on impression, not testing anything at all.

At the end, the expressions will get bit expensive and heavy, but Im on the feeling that we could achieve the goal to display the multiple columns on template out of the multiple rows.

@Suvrutt_Gurjar
I invite your thoughts as well!

Looking forward to see you all response tomorrow, now time goes to bed…

@Aleksi

Very elegant. Thank you!

In this example I only wanted to show how you can generate the template using nested tables. Yes you are correct that it can happen that one column have all images. In this case you don’t need to have a virtual sequential number to avoid that. You would only need to know how many images to but in every column. Those groups you can read with a virtual column like…
LIST(
CEILING(COUNT([RELATED CHILDS])/4.0),
CEILING((COUNT([RELATED CHILDS])-1)/4.0),
CEILING((COUNT([RELATED CHILDS])-2)/4.0),
CEILING((COUNT([RELATED CHILDS])-3)/4.0)
)
and the result is for example like 3,3,2,2. Then you can use it for filtering directly in the template. The template could be like this.

As we can see, there are lot of ways how you can solve your challenges and that’s always interesting :slight_smile: And I’m sure there is more clever way to do the same, but this was the first idea how to solve it.

3 Likes

Hi Aleksi,
Thank for sharing innovative ideas as always.
Inspired by your trick, I worked around with my own idea, employing dynamic rownumbers based on the slice (actually not a slice, but related child table rows), and use such a dynamic rownumber to dynamically assign to the template table with multiple column (my case was max 3 column rather than 4 in light of the width of the template which is portrait / A4 setting) together with MOD expression.

It is now perfectly working fine as well, although I took a bit different approach from yours, but ended up with the exactly same result, which is most important.

1 Like

@tsuji_koichi and @aleksi,

Thank you for sharing some very innovative ideas. Very interesting solutions for "gallery " views in the reports.

1 Like

As you can see, there are many ways as always :grinning:

1 Like