Hilfe bei der Erweiterung eines PDF-Berichts (Teil II)

Habe jetzt einen funktionierenden gruppierten monatlichen Bericht mit Summierung der Dauer pro Kunde und viel gelernt, siehe Solved: Bitte um Hilfe bei der Erweiterung eines PDF-Beric… - Google Cloud-Community .

Hier die neue funktionierende Vorlage:

<<Start: ORDERBY(SELECT(Servicebericht[Zeitstempel_ID],[Zeitstempel_ID]=INDEX([GROUP],1)),[Kundenadresse],FALSE)>><<UPPER([Kundenadresse])>> Bezirk: <<[Bezirk_ID]>>



Datum/Zeitstempel



Bemerkungen



Von Uhr



Bis Uhr



Dauer



Unterschrift



<<Start: ORDERBY([GROUP],[_RowNumber],FALSE)>><<[Zeitstempel_ID]>>



<<[Bemerkungen]>>



<<[Ankunft]>>



<<[Abfahrt]>>



<<[Dauer]>>



<<[Signatur]>><< ENDE >>



Gesamtdauer pro Kunde:



<<START: LIST(ANY([GROUP]))>>



<<SUM([GROUP][Dauer])>>



<< ENDE >>

Gesamtdauer pro Bezirk=2341: ???

Gesamtdauer pro Bezirk=2361: ???

<< ENDE >>

Dies sind nochmal die Googlesheet Tabellenspalten:

_RowNumber[Anzahl], Zeitstempel_ID[DateTime], Kundenadresse[Text], Bezirk_ID[Text], Liefertermin[Text], Ankunft[Zeit], bestellte_Pak[Text], ausgeliefert[Datum], Regalservice ja/nein[Enumeration], Bemerkungen[Text], Abfahrt[Zeit], Dauer[Dauer], Foto[Bild], Unterschrift[Unterschrift] und die VC “Group”[Ref] mit der App-Formel SELECT(Servicebericht[Zeitstempel_ID], AND([Kundenadresse] =[_THISROW].[ Kundenadresse], MONTH([Zeitstempel_ID])=MONTH(TODAY())))

???: Mit welchen Ausdrücken wäre es nur in der Vorlage möglich die Gesamtdauer pro Bezirk zu ermitteln? Aktuell sind die Kunden nur in 2 Bezirke(2341 und 2361) unterteilt.

Please try

<<Start: ORDERBY(SELECT(Servicebericht[Zeitstempel_ID],[Zeitstempel_ID]=INDEX([GROUP],1)),[Kundenadresse],FALSE)>><<UPPER([Kundenadresse])>> Bezirk: <<[Bezirk_ID]>>



Datum/Zeitstempel



Bemerkungen



Von Uhr



Bis Uhr



Dauer



Unterschrift



<<Start: ORDERBY([GROUP],[_RowNumber],FALSE)>><<[Zeitstempel_ID]>>



<<[Bemerkungen]>>



<<[Ankunft]>>



<<[Abfahrt]>>



<<[Dauer]>>



<<[Signatur]>><< ENDE >>



Gesamtdauer pro Kunde:



<<START: LIST(ANY([GROUP]))>>



<<SUM([GROUP][Dauer])>>



<< ENDE >>

Gesamtdauer pro Bezirk=2341: <<SUM(SELECT([Group][Daur], [Bezirk_ID]=“2341”))>>

Gesamtdauer pro Bezirk=2361: <<SUM(SELECT([Group][Daur], [Bezirk_ID]=“2361”))>>

<>

1 Like

Danke für den Vorschlag, aber leider ist das Ergebnis noch nicht das Richtige, siehe:

Ich hätte gerne, daß die Gesamtdauer der Bezirke nur einmal am Ende des Berichtes aufgeführt werden und diese zusammengerechnet werden.

Can you please show with a report example how you are expecting those totals by districts. Currently it is showing a total of 03:45:00 hours twice, once inside the table and once below the table. Where do you want district totals and total duration of all districts. Please let us know.

Edit: You have also added <<[Bezirk_ID]>> above the template table. Have you ensured the table furnishes details by <<[Bezirk_ID]>>

Or are you looking for help in constructing that expression as well?

Have you modified the expression highlighted below to list details related to only one <[Bezirk_ID]>>

1 Like

Hier das Berichtsbeispiel:

KUNDE Bezirk: 2341



Datum/Zeitstempel



Bemerkungen



Von Uhr



Bis Uhr



Dauer



Unterschrift



04.05.2022 19:03:00



16:30:00



19:00:00



02:30:00



18.05.2022 16:44:00



15:30:00



16:45:00



01:15:00



Gesamtdauer:



03:45:00

KUNDE Bezirk: 2361



Datum/Zeitstempel



Bemerkungen



Von Uhr



Bis Uhr



Dauer



Unterschrift



19.05.2022 17:03:00



Eingeräumt gewesen



16:35:00



17:05:00



00:30:00



Gesamtdauer:



00:30:00

KUNDE Bezirk: 2361



Datum/Zeitstempel



Bemerkungen



Von Uhr



Bis Uhr



Dauer



Unterschrift



12.05.2022 13:07:00



Eingeräumt gewesen



12:30:00



13:15:00



00:45:00



Gesamtdauer:



00:45:00

KUNDE Bezirk: 2341



Datum/Zeitstempel



Bemerkungen



Von Uhr



Bis Uhr



Dauer



Unterschrift



11.05.2022 16:27:00



14:45:00



16:30:00



01:45:00



Gesamtdauer:



01:45:00

KUNDE Bezirk: 2341



Datum/Zeitstempel



Bemerkungen



Von Uhr



Bis Uhr



Dauer



Unterschrift



05.05.2022 15:57:00



15:00:00



16:00:00



01:00:00



Gesamtdauer:



01:00:00

Gesamtdauer Bezirk 2341: ???

Gesamtdauer Bezirk 2361: ???

In diesem Bericht sollte die Gesamtdauer Bezirk 2341: 06:30 (03:45+01:45+01:00) und die Gesamtdauer Bezirk 2361: 01:15 (00:30+00:45) ergeben.

Ich hoffe, dass diese Darstellung weiterhilft und bitte um Entschuldigung für meine schlechte Darstellung meines Anliegen. Bin erst seit Anfang des Jahres mit AppSheet unterwegs und habe bisher alle Herausforderungen lösen können, nur Aufgrund der Inhalte aus diesem Forum.

Thank you for all the details. You need not apologize as we all have learning curves on a new system. Your latest post helps in understanding the requirement. However the requirement is a bit tricky as it calls for two level grouping. You could try the following. I have not been able to test the suggestion, though.

Please modify the [GROUP] column expression as below SELECT(Servicebericht[Zeitstempel_ID], AND([Kundenadresse] =[_THISROW].[ Kundenadresse], [Bezirk_ID]=[_THISROW].[Bezirk_ID], MONTH([Zeitstempel_ID])=MONTH(TODAY())))

Then the template could be as follows

<<Start: ORDERBY(SELECT(Servicebericht[Zeitstempel_ID],[Zeitstempel_ID]=INDEX([GROUP],1)),[Kundenadresse],FALSE)>><<UPPER([Kundenadresse])>> Bezirk: <<[Bezirk_ID]>>



Datum/Zeitstempel



Bemerkungen



Von Uhr



Bis Uhr



Dauer



Unterschrift



<<Start: ORDERBY([GROUP],[_RowNumber],FALSE)>><<[Zeitstempel_ID]>>



<<[Bemerkungen]>>



<<[Ankunft]>>



<<[Abfahrt]>>



<<[Dauer]>>



<<[Signatur]>><< ENDE >>



Gesamtdauer pro Kunde:



<<START: LIST(ANY([GROUP]))>>



<<SUM([GROUP][Dauer])>>



<< ENDE >>

<>

Gesamtdauer pro Bezirk=2341: <<SUM(SPLIT(SELECT([Group][Daur], [Bezirk_ID]=“2341”),“,”))>>

Gesamtdauer pro Bezirk=2361:<<SUM(SPLIT(SELECT([Group][Daur], [Bezirk_ID]=“2361”),“,”))>>

1 Like

Der Lösungsvorschlag erzeugt folgenden Fehler:

  • Fehler 1 : ‘1.1’ Aufgabe ‘Erstellen einer PDF-Datei’ Body template. Der Ausdruck ‘SUM(SPLIT(SELECT([Group][Dauer], [Bezirk_ID]=“2341”),“,”))’ ist ungültig aus: Die Funktion ‘SUMME’ erfordert eine Liste numerischer Eingaben.
  • Fehler 2 : ‘1.1’ Aufgabe ‘Erstellen einer PDF-Datei’ Body template. Der Ausdruck ‘SUM(SPLIT(SELECT([Group][Dauer], [Bezirk_ID]=“2361”),“,”))’ ist ungültig durch: Die Funktion ‘SUMME’ erfordert eine Liste numerischer Eingaben.
  • Fehler 3: Der Dokumenttext ist leer

Got it. Please try

<<Start: ORDERBY(SELECT(Servicebericht[Zeitstempel_ID],[Zeitstempel_ID]=INDEX([GROUP],1)),[Kundenadresse],FALSE)>><<UPPER([Kundenadresse])>> Bezirk: <<[Bezirk_ID]>>



Datum/Zeitstempel



Bemerkungen



Von Uhr



Bis Uhr



Dauer



Unterschrift



<<Start: ORDERBY([GROUP],[_RowNumber],FALSE)>><<[Zeitstempel_ID]>>



<<[Bemerkungen]>>



<<[Ankunft]>>



<<[Abfahrt]>>



<<[Dauer]>>



<<[Signatur]>><< ENDE >>



Gesamtdauer pro Kunde:



<<START: LIST(ANY([GROUP]))>>



<<SUM([GROUP][Dauer])>>



<< ENDE >>

<>

Gesamtdauer pro Bezirk=2341: <<SUM(SELECT(Servicebericht[Dauer], AND([Bezirk_ID]=”2341”, MONTH([Zeitstempel_ID])=MONTH(TODAY()))))>>

Gesamtdauer pro Bezirk=2361: <<SUM(SELECT(Servicebericht[Dauer], AND([Bezirk_ID]=”2361”, MONTH([Zeitstempel_ID])=MONTH(TODAY()))))>>

1 Like

Super und ein grosses DANKE es funktioniert tatsächlich. Ich hatte auch in den letzten Stunden zig Ausdrücke ohne Erfolg ausprobiert.

2 Likes

Danke für das Update. Schön zu wissen, dass es funktioniert. Gern geschehen.

1 Like

Ich wollte jetzt aus der funktionieren gruppierten Vorlage nur die Kunden eines bestimmten Bezirkes darstellen, was ich wie folgt ohne Fehlermeldung versuchte:

<<Start: ORDERBY(SELECT(Servicebericht[Zeitstempel_ID],[Zeitstempel_ID]=INDEX([GROUP],1)),[Kundenadresse],FALSE,[Bezirk_ID]=”2341”)>><<UPPER([Kundenadresse])>> Bezirk: <<[Bezirk_ID]>>



Datum/Zeitstempel



Bemerkungen



Von Uhr



Bis Uhr



Dauer



Unterschrift



<<Start: ORDERBY([GROUP],[_RowNumber],FALSE,[Bezirk_ID]=”2341”)>><<[Zeitstempel_ID]>>



<<[Bemerkungen]>>



<<[Ankunft]>>



<<[Abfahrt]>>



<<[Dauer]>>



<<[Signatur]>><< ENDE >>



Gesamtdauer pro Kunde:



<<START: LIST(ANY([GROUP]))>>



<<SUM([GROUP][Dauer])>>



<< ENDE >>

<>

Diese Filterung der Bezirke hat aber keine Auswirkung auf die Darstellung der PDF-Datei. Warum ist das so, die Ausdrücke sind doch korrekt, oder?

Maybe this can be the first START statement, not tested though.

<<Start: ORDERBY(SELECT(service_report[timestamp_ID],AND([timestamp_ID]=INDEX([GROUP],1, , [district_ID]=”2341 ))),[customer_address] ,FALSE )>><<UPPER([customer_address] )>> District: <<[district_id]>>

Second START statement may not require District ID.

1 Like

Danke für den Vorschlag, aber bei:

<<Start: ORDERBY(SELECT(Servicebericht[Zeitstempel_ID],AND[Zeitstempel_ID]=INDEX([GROUP],1)),[Bezirk_ID]=“2361”)),[Kunde],FALSE,)>><<UPPER([Kunde])>> Bezirk: <<[Bezirk_ID]>>

wird beim Test ca. 3 Minuten probiert zum Laden und dann abgebrochen mit den Hinweis: Fehler: Auf die Datentabelle ‘Servicebericht’ kann aus folgenden Gründen nicht zugegriffen werden: Der Vorgang ist abgelaufen.

Nach Korrektur der Klammern erfolgt:

Fehler 1: ‘Handle updated Servicebericht record 2’ task ‘Erstelle eine neue Datei’ Body template. Der Ausdruck ‘ORDERBY(SELECT(Servicebericht[Zeitstempel_ID], AND[Zeitstempel_ID]=INDEX([GROUP],1,[Bezirk_ID]=“2361”)),[Kunde],FALSE)’ ist ungültig aus: Tabelle ‘UND’ konnte nicht gefunden werden, meinten Sie ‘Kunde’?.

You are getting the error of table AND because there is no starting ( after AND. It should be AND(…

Anyway if you need reports by District_ID, I believe you will need two [GROUP] columns

[GROUP2341] with an expression

SELECT(Servicebericht[Zeitstempel_ID], AND([Kundenadresse] =[_THISROW].[ Kundenadresse], [Bezirk_ID]=“2341”, MONTH([Zeitstempel_ID])=MONTH(TODAY())))

Then your START statement above the template table can be

<<Start: ORDERBY(SELECT(Servicebericht[Zeitstempel_ID],[Zeitstempel_ID]=INDEX([GROUP2341],1)),[Kundenadresse],FALSE)>><<UPPER([Kundenadresse])>> Bezirk: <<[Bezirk_ID]>>

Inside the table under the heading " Datum/Zeitstempel" it can be:

<<Start: ORDERBY([GROUP2341],[_RowNumber],FALSE)>><<[Zeitstempel_ID]>>

If this works, please repeat the process for District_Id 2361

1 Like