+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Per DOM Felder verschieben


(Marcus Bölke) #1

Moin,

ich versuche unter Delphi10 und L&L 20 per DOM Felder zu verschieben und deren Inhalt zu verändern:

procedure ZeileBearbeiten(Zeile : TLlDOMTableLineBase);
  var F : TLlDOMTableFieldBase;
      s : string;
  begin
    if Zeile.Fields.Count > 10 then
    begin
      f := Zeile.Fields[8];
      Zeile.Fields.Move(8, Zeile.Fields.Count - 2);
      s := Zeile.Fields[5].GetProperty('Contents');
      if (Pos('@', s) > 0) then
        f.SetProperty('Contents', Format('(%s + %:0sV + %:0sVV) / @ExistZTeiler', [s]));
    end;
  end;

Die Inhaltsänderung funktioniert einwandfrei, allerdings wird das Ändern der Feldreihenfolge nicht gespeichert.

Da die Auswertung reichlich Zeilen hat, ist das Ändern im Designer reine Strafarbeit:(

Hätte jemand eine Idee?

Gruß und schönes Wochenede
Marcus


(Günther Schwarze) #2

Ich würde mal versuchen, statt des “Move” ein Delete und anschließendes Insert zu machen. Die DOM-Listen sind glaube ich ein wenig speziell.

G.


(Marcus Bölke) #3

Moin Günther,

Danke für das Gedanken machen.

Leider funktioniert weder Remove/Insert , Exchange noch

      //Zeile.Fields.Move(8, Zeile.Fields.Count - 2);
      f1 := Zeile.Fields[Zeile.Fields.Count - 2];
      Zeile.Fields[Zeile.Fields.Count - 2] := Zeile.Fields[8];
      Zeile.Fields[8] := f1;

Eigentlich komisch, in der Benutzervariablenliste kann man die Einträge im Designer ja auch verschieben…

Ich komme wohl um das Erstellen einer Routine zum Kopieren eines Feldes nicht herum:(
Naja, besser als 2 mal in ca. 110 Zeilen alles per Hand einzustellen;)

Sonnige Grüße aus dem Norden
Marcus