9. Juni 2017 14:52
Hi,
die Gruppierungen müssen ggf. mit in die Tabelle eingefügt werden. Daher bietet es sich an die Pagetabelle temporär zu verwenden. (Propertie: SourceTableTemporary = Yes)
Wichtig ist es zu wissen, dass bei Verwendung von Einrückungen keine Spaltensortierung mehr möglich ist. Das müsste dann ggf. auch Programmiert werden, indem die Tabelle für jede Sortierung neu gefüllt wird. (z.B. über Actions: Sortieren nach Holz, Sortieren Nach Böden, ...)
Kleines Beispiel für eine einfache Einrückung:Für die Überschrift (Gruppe: "Verwendung") gehe ich aus Performancegründen* durch eine separate Tabelle (die in meinem Fall eh schon da ist).
Nur auch Datensätze mit der jeweiligen Verwendung vorhanden sind, wird die Überschrift und gleich darunter die zugehörigen Datensätze eingefügt.
Um es mir bei der Sortierung etwas einfacher zu machen, werden die Datensätze beim Anlegen durchgezählt (Feld: "Sorting Order"). Dieses Feld nutze ich am Ende für die Sortierreihenfolge. (
Rec.SETCURRENTKEY("Sorting Order");)
Bei den Datensätzen (Entries) wird die Einrückung auf 1 gestellt (Feld: "Intendation"). Bei der Überschrift ist das ja nicht nötig, da der Standardwert des Intendationfeldes schon 0 beträgt.
*Wenn du keine Tabelle für die Codes aus "Verb. Böden" und "Verb. Holz" hast, dann musst du die Daten sammeln. Bei einer großen Datenmenge kann das aber dauern, da würde ich schon fast von dem Vorhaben abraten.
SendHistory ist der Record und Rec ist die TEMPORÄRE SourceTable der Page- Code:
//SORT RECORD
SendHistory.SETCURRENTKEY(Usage,"Sending Date");
SendHistory.ASCENDING(FALSE);
//COPY REC TO TEMPREC
SortOrderCount := 0;
DocumentUsage.RESET;
IF DocumentUsage.FINDSET THEN REPEAT
SendHistory.SETRANGE(Usage,DocumentUsage."Document Usage");
IF NOT SendHistory.ISEMPTY THEN BEGIN
//--INSERT GROUP>-----------------------------
IF NOT SkipGrouping THEN BEGIN
Rec.INIT;
Rec.Usage := DocumentUsage."Document Usage";
Rec."Sorting Order" := SortOrderCount;
SortOrderCount += 1;
Rec.INSERT(TRUE); //TRUE = Generates Primary Key: GUID
END;
//--INSERT ENTRIES>---------------------------
IF SendHistory.FINDSET THEN REPEAT
Rec := SendHistory;
Rec.Indentation := 1;
Rec."Sorting Order" := SortOrderCount;
SortOrderCount += 1;
Rec.INSERT(FALSE);
UNTIL SendHistory.NEXT = 0;
END;
UNTIL DocumentUsage.NEXT = 0;
Rec.RESET;
Rec.SETCURRENTKEY("Sorting Order");
Microsoft.Dynamics.Nav.Client_2017-06-09_14-21-43.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.