Daily Reports to identify what users did not update field?

Hello,

is it possible to generate an automated daily report showing the Users that have not completed a field (Column) into the App?

So I have a table named “Work Diary” where the driver uploads a photo of his previous day’s work diary page.

Now, I want to get a report each morning with the drivers that have not uploaded the photo or page.
is this possible with Appsheet? I know you can generate reports but not sure whether the reports can be this specific.

Thanks in advanced.

Solved Solved
0 16 830
1 ACCEPTED SOLUTION

Steve
Participant V

This is certainly possible.

Assuming the Driver column of the Work Diary table is a Ref to the Drivers table, the following will get you a list of the rows of the Drivers table that don’t have entries in the Work Diary table for yesterday’s date:

(
  FILTER("Drivers", TRUE)
  - SELECT(
    Work Diary[Driver],
    ([Date] = (TODAY() - 1))
  )
)

In your report template, use the expression in your <<Start>> tag:

<<Start: (FILTER("Drivers", TRUE) - SELECT(Work Diary[Driver], ([Date] = (TODAY() - 1))))>>

See also:







View solution in original post

16 REPLIES 16

Slices might be handy in this case (https://help.appsheet.com/en/articles/895302-slices-the-essentials). You could create a slice of your “Work Diary” table with “ISBLANK([Photo])” as your row filter. This slice would contain any work diary records that’s missing a photo. The daily scheduled report would then reference the slice.

Hi, @Phuong thanks for your response. I don’t think slices would work in this case because there is not like a reference into the “Work Diary” table to compare which drivers are missing in the table, does that makes sense?
So the work diary table got 3 columns: Date, Driver and Work Diary photo. So whatever new row created, it will have the photo in it.

it has to be an expression that compares List A (List of the Users that have updated the photo) with List B (list of all Users) then remove the duplicates and finally get the users not found into the list B.

Any ideas on how to achieve this?

Would the Driver column be your primary key for this table? Essentially, every driver would have a record in this table. At the end of each day, they would access their record and update the photo column. Is my understanding correct?

I don’t think there’s a way to tell whether an existing field was recently updated. Maybe we could generate a table to log all of the work diary entries, rather than overriding existing ones? This table could have the following columns: Entry ID (Unique Identifier), Entry Date, Driver, and Work Diary Photo. Drivers would need to add a new work diary entry at the end of each day. This way, we could see who didn’t submit a work diary entry from the previous day.

Steve
Participant V

This is certainly possible.

Assuming the Driver column of the Work Diary table is a Ref to the Drivers table, the following will get you a list of the rows of the Drivers table that don’t have entries in the Work Diary table for yesterday’s date:

(
  FILTER("Drivers", TRUE)
  - SELECT(
    Work Diary[Driver],
    ([Date] = (TODAY() - 1))
  )
)

In your report template, use the expression in your <<Start>> tag:

<<Start: (FILTER("Drivers", TRUE) - SELECT(Work Diary[Driver], ([Date] = (TODAY() - 1))))>>

See also:







Sometimes I feel like crying when it take you guys one response to find the solution haha. I spent a whole day trying to figure it out, I tried Slices, new tables, virtual Columns, I also found some old posts related to the topic but neah I was not sure what direction to take!! but anyway @Steve THANK YOU very much. It is exactly what I was looking for

Good for you for putting in the effort! I’m sure you learned plenty along the way!

Hi, @Steve how can I divide the list of names in 2 columns, so instead of jump to the second page once the list hits the end, jump to the right into page 1.

Thank you

That’s advanced formatting that I have no experience with. I’m afraid I don’t know.

I found this post, where @Aleksi suggests an expression:

<<Start: SELECT(Table[KeyColumn],MOD([NumberColumn],2)=1)>>.

but I m not sure how to adapt it to my case. I’m not familiar with the MOD() function

Do you know whether this can help?

I’ve never used that approach, and it looks like it would take some time to figure out. Sorry.

that’s ok. I appreciate your help anyway

Expressoin Aleksi introduced of

<<Start: SELECT(Table[KeyColumn],MOD([NumberColumn],2)=1)>>.

Is taking set of rows with “odd” number for [NumberColumn] involving MOD expression. Meaning, the rows with [numberColumn] values are only 3, 5, 7, 9 ,11 cont…

In the meantime, if you want to create the multiple number of table column the technique Aleksi introduced in the other post you could refer to as basement.

Hi @Alejandra_Petro this formula was used in a solution where you have two Start & End expressions inside of one table. First create a table with two columns… and then add two nested tables inside of these two columns. These two tables can then have their own Start & End expressions and something like the example formula.

Hi @Aleksi,

I’m having a hard time with reports haha

This is my template and it’s giving me the result I want but for some reason, the table is duplicating in the report. What am i doing wrong?

2X_d_df6cf16b080a72814db517e32be05914dd09eb26.jpeg

The only way you can do this is if you create a nested table inside of every cell and then have one Start & End in each of these nested tables.

I had a hard time with reports these last three days and Im so happy this community is available for everyone looking for some help. After so many tries and reading, I found exactly what I was looking for. A list of Drivers with no entries, grouped by Supervisor. I followed @Suvrutt_Gurjar instructions in the post below and the result was perfect!


Thanks everyone for your help and @Suvrutt_Gurjar for such an effort.

Top Labels in this Space