Bitte um Hilfe bei der Erweiterung eines PDF-Berichts

Diese Ausdrücke funktionieren für eine gruppierte Vorlage:

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

 

Datum

Von Uhr

Bis Uhr

Dauer

Unterschrift

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

<<[Ankunft]>>

<<[Abfahrt]>>

<<[Dauer]>>




<<[Signatur]>><<End>>

<<End>>

Wenn ich aber versuche einen EOMONTH-Ausdruck für die Anzeige des [Zeitstempel_ID] für den aktuellen Monat und die Zwischensumme von <<[Dauer]>> für die jeweilige [Kundenadresse] auszugeben wird kein PDF gespeichert. 

Habe schon etliche Varianten ohne Ergebnis ausprobiert, bin jetzt an meine Grenzen angelangt und erbitte um Hilfe.

 

Solved Solved
1 16 291
1 ACCEPTED SOLUTION

I think if your GROUP column is in ServiceBericht table, it should be list type with element type as "Ref" and reference table as ServiceBericht.

Can you please share the screenshot of the column setting? 

Also I hope in context of this report   you are only working with just one table , ServiceBericht. 

View solution in original post

16 REPLIES 16

Based on understanding, it sounds that you wish to add duration for all the rows in the table.

May be you could try an expression written in green below

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

 

Datum

Von Uhr

Bis Uhr

Dauer

Unterschrift

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

<<[Ankunft]>>

<<[Abfahrt]>>

<<[Dauer]>>




<<[Signatur]>><<End>>

Total Duration : <<CONCATENATE(SUM(SELECT(Servicebericht[Dauer], IN([Zeitstempel_ID], [GROUP]))), " HOURS")>>

<<End>>

 

 

 

Vielen Dank für Ihre Antwort aber das ist leider nicht das was ich probiere zu erreichen möchte. 

Ich habe eine Servicebericht-Datei aus dieser möchte ich für jeden aktuellen Monat einen Monatsbericht (PDF) generieren, nach [Kundenadresse] gruppiert und die Summierung der Dauer pro Kunde.

ERSTE KUNDENADRESSE
Datum                   Von Uhr     Bis Uhr        Dauer                              Unterschrift
12.
01.2022 21:57       17:50:00     19:50:00         02:00:00
19.01.2022 18:50       16:15:00     17:45:00          01:30:00
26.01.2022 21:25      16:20:00     17:20:00         01:00:00

Servicezeit:                                                         04:30

ZWEITE KUNDENADRESSE
Datum                     Von Uhr   Bis Uhr       Dauer                           Unterschrift
06.01.2022 18:58      16:10:00     16:55:00       00:45:00
12.01.2022  21:55       14:50:00    16:05:00       01:15:00
26.01.2022 21:23       13:35:00     15:05:00       01:30:00

Servicezeit:                                                         03:30 

Servicezeit des Monats:                                  08:00

So ungefähr sieht das bisher generierte PDF aus und dieses möchte ich erreichen.

Ich hoffe, daß meine Darstellung hilfsreich für eine Lösung ist.

Thank you for more details. Could you mention where exactly you are looking for help? I mean are you unable to compute Servicezeit for each customer or "Servicezeit des Monats"

Could you mention how your current template looks ?

Das ist meine aktuelle Vorlage aufgrund Gruppierte Liste aus einer Tabelle - Google Cloud Community welche Funktioniert:

Regalservice-Bericht Stand <<text(now(),”dd.mm.yyyy hh:mm”)>> 



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

 

Datum

Von Uhr

Bis Uhr

Dauer

Unterschrift

<<Start: ORDERBY([GROUP],[_ROWNUMBER],FALSE)>>MONTH([Zeitstempel_ID])=MONTH(EOMONTH(TODAY(), -0))<<[Zeitstempel_ID]>>

<<[Ankunft]>>

<<[Abfahrt]>>

<<[Dauer]>>




<<[Signatur]>><<End>>

 

<<End>>

Dies sind die Tabellenspalten:

_RowNumber[Anzahl]Zeitstempel_ID[DateTime] Kundenadresse[Ref]Bezirk_ID[Anzahl]Liefertermin[Text]Ankunft[Zeit]bestellte_Pak[Text]ausgeliefert[Datum]Regalservice ja/nein[Enumeration]Bemerkungen[Text]Abfahrt[Zeit]Dauer[Zeit]Foto[Bild]Unterschrift[Unterschrift]

Jetzt möchte ich gerne, wie das Schaubild von meiner ersten Antwort oben zeigt, dass in der die PDF-Vorlage

1.  nur Daten des aktuellen Monat dargestellt werden 

2. die Servicezeit pro Kunde in der Spalte "Dauer" dargestellt wird

3. die Servicezeit insgesamt ganz am Ende in der Spalte "Dauer" dargestellt wird.

Zur Info: Bei Ihren oben genannter Vorschlag wurde "keine neue Datei erstellt", genau wie bei meinen etlichen Versuche vorher meine Vorlage zu  optimieren.

Thank you for the details. May we know how [Group] column is composed and in which table it is?

Edit: Okay, got it. You are referring to a post on Grouping. When I tried to translate it the link was lost. I found the hyperlink in your original post.

Please try below

For the [GROUP] column , please add the MONTH() argument in its expression.

  1. So if your current [GROUP] expression is something like

SELECT(Servicebericht[Zeitstempel_ID], [Kundenadresse] =[_THISROW].[Kundenadresse])

please change it to something like 

SELECT(Servicebericht[Zeitstempel_ID], AND([Kundenadresse] =[_THISROW].[Kundenadresse], MONTH([Zeitstempel_ID])=MONTH(TODAY()))

2. Your expression for the total duration can be something like highlighted below 

Suvrutt_Gurjar_0-1652027423780.png

The expression for "Gesamtdauer " can be 

<<START: LIST(ANY([GROUP]))>>
<<SUM([GROUP][Dauer])>>
<< END >>

 

 

 

Habe erstmal meinen  [GROUP]-Ausdruck in SELECT(Servicebericht[Zeitstempel_ID], AND([Kundenadresse] =[_THISROW].Kundenadresse],MONTH([Zeitstempel_ID])=MONTH(TODAY())) geändert.

Im Test nach Eingabe von neuen Daten wird aber wieder "keine neue Datei erstellt"!

Could you test if the VC that you have created for [GROUP] returns any rows with the expression

SELECT(Servicebericht[Zeitstempel_ID], AND([Kundenadresse] =[_THISROW].Kundenadresse],MONTH([Zeitstempel_ID])=MONTH(TODAY())))

If you have records in multiple years, you could also use an expression

SELECT(Servicebericht[Zeitstempel_ID], AND([Kundenadresse] =[_THISROW].Kundenadresse],TEXT([Zeitstempel_ID], "YYMM")= TEXT(TODAY(), "YYMM")))

Generally , the expression seems correct. So if you have customer addresses existing in the table for timestamps with current month , then typically the template should produce results.

https://help.appsheet.com/en/articles/3517328-text

 

Meine App kann ich seit Montag nicht mehr bearbeiten, da Server-Error. Aber anhand des AppSheet Monitoring wird folgende Fehlermeldung ausgegeben nach Änderung der virtuellen Spalte "Group" in SELECT(Servicebericht[Zeitstempel_ID], AND([Kundenadresse] =[_THISROW].Kundenadresse],MONTH([Zeitstempel_ID])=MONTH(TODAY())).

Error encountered in step with name [Schritt 1.1]: Error: 'Schritt 1.1' task 'Step 2' Body template. Expression 'ORDERBY(SELECT(Daten[Zeitstempel_ID],[Zeitstempel_ID]=INDEX([GROUP],1)),[Kundenadresse],FALSE)' is invalid due to: Unable to find table 'DATEN', did you mean 'Tanken'?. Error: 'Schritt 1.1' task 'Step 2' Body template. Start expression 'ORDERBY(SELECT(Daten[Zeitstempel_ID],[Zeitstempel_ID]=INDEX([GROUP],1)),[Kundenadresse],FALSE)' should generate a List of Ref values. Please verify that it generates a List and that the contents of the List are Ref values. Ref values should come from the 'Key' column of the referenced table. Error: The document body is empty.

Ich werde daraus nicht so richtig schlau.

The problem is explicit:

Start expression 'ORDERBY(SELECT(Daten[Zeitstempel_ID],[Zeitstempel_ID]=INDEX([GROUP],1)),[Kundenadresse],FALSE)' should generate a List of Ref values.

I would guess that the Zeitstempel_ID column of the Daten table is not the table's key column, and is not a Ref column.

Die VC für [GROUP] gibt jetzt nur die Daten des aktuellen Monats als Liste zurück: 

"Group 05/05/2022 , 05/12/2022" welche korrekt sind.
Meine zahlreiche Versuche die PDF-Datei zu erstellen scheitern immer wieder:
  • Fehler 1 : '1.1' Aufgabe 'Erstellen einer PDF-Datei' Body template. Der Ausdruck 'ORDERBY([GROUP],[_RowNumber],FALSE)' ist ungültig aus folgenden Gründen: ORDERBY hat ungültige Eingaben.
  • Fehler 2 : '1.1' Aufgabe 'Erstellen einer PDF-Datei' Body template. Der Startausdruck 'ORDERBY([GROUP],[_RowNumber],FALSE)' sollte eine Liste von Ref-Werten generieren. Überprüfen Sie, ob eine Liste generiert wird und dass der Inhalt der Liste Ref-Werte sind. Ref-Werte sollten aus der Spalte 'Key' der referenzierten Tabelle stammen.
  • Fehler 3: Der Dokumenttext ist leer

oder 

  • Fehler 1 : '1.1' Aufgabe 'Erstellen einer PDF-Datei' Body template. Der Startausdruck 'LIST(ANY([GROUP])' sollte eine Liste von Ref-Werten generieren. Überprüfen Sie, ob eine Liste generiert wird und dass der Inhalt der Liste Ref-Werte sind. Ref-Werte sollten aus der Spalte 'Key' der referenzierten Tabelle stammen.
  • Fehler 2: Der Dokumenttext ist leer 

Die Spalte [Zeitstempel_ID] ist die "KEY" , die virtuelle Spalte [GROUP] hat den Datentyp "Liste" und eine REF-Spalte [Referenz Kunde/Kundenadresse] REF_ROWS("Kunde", "Kundenadresse") mit Datentyp "Liste".

Ich verstehe einfach nicht, warum die Ausdrücke nicht mehr funktionieren, es wurde ja nur in der VC [GROUP] die vorherigen Daten gefiltert, sonst nichts.  

Could you please check and confirm if your [GROUP] column is having element type as reference (Ref) and it points to the same table that the column is in ( I believe it Servicebericht table ) as the Reference table?

Suvrutt_Gurjar_0-1652799311380.png

 

Meine virtuelle Spalte [GROUP] hat den Type "List"  und den Element Type "Date". 

Habe mal den Element Type auf "Ref" gesetzt,  da bekomme ich folgenden Fehlermeldung:

Der Spaltenname 'group' im Schema 'Servicebericht_Schema' des Spaltentyps 'Ref' hat eine ungültige App-Formel '=SELECT(Servicebericht[Zeitstempel_ID], AND([Kundenadresse] =[_THISROW].[ Kundenadresse], MONTH([Zeitstempel_ID])=MONTH(TODAY())))'. Der Typ der App-Formel 'List of Ref to table 'Servicebericht' of Date' stimmt nicht mit dem Spaltentyp 'Ref to table 'Servicebericht' von Date' überein.

 

I think if your GROUP column is in ServiceBericht table, it should be list type with element type as "Ref" and reference table as ServiceBericht.

Can you please share the screenshot of the column setting? 

Also I hope in context of this report   you are only working with just one table , ServiceBericht. 

Meinen Sie dies:

Tommy62_1-1652820053659.png

 

Thank you. I had actually requested for the column setting of GROUP column.

Anyway , I think your GROUP column needs to have element type as " Ref"

Even in sample app you mentioned you have referred,  element type of GROUP column is Ref

Grouped-list-from-one-table 

Top Labels in this Space