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