[Gelöst] BLOB Bilder kopieren in Tabelle zeigt nur ein Bild

22. November 2021 21:14

Hallo,

Ziel ist es auf einer Page verschiedene Bilder anzuzeigen aus verschiedenen Quelltabellen.

ich habe eine Tabelle mit 5 Blob Felder.

Ich habe eine Page mit einer Funktion AddPicture (InStream):

Code:
AddPicture(InStr : InStream)
CurrentIndex += 1;
CASE CurrentIndex OF
  1: BEGIN
     Picture1.CREATEOUTSTREAM(OutS);
    END;
  2: BEGIN
     Picture2.CREATEOUTSTREAM(OutS);
    END;
  3: BEGIN
     Picture3.CREATEOUTSTREAM(OutS);
    END;
  4: BEGIN
     Picture4.CREATEOUTSTREAM(OutS);
    END;
  5: BEGIN
     Picture5.CREATEOUTSTREAM(OutS);
    END;
END;

COPYSTREAM(OutS,InStr);
CLEAR(OutS);


In einer Codeunit möchte ich die Page aufrufen und verschiedene Bilder übergeben:

Code:
QuellTabelle.CALCFIELDS(Bild1);
QuellTabelle.CALCFIELDS(Bild2);
QuellTabelle2.CALCFIELDS(Bild1);

IF QuellTabelle."Bild1".HASVALUE THEN BEGIN
  QuellTabelle."Bild1".CREATEINSTREAM(InS);
  PicturePage.AddPicture(InS);
END;

IF QuellTabelle."Bild 2".HASVALUE THEN BEGIN
  QuellTabelle."Bild2".CREATEINSTREAM(InS);
  PicturePage.AddPicture(InS);
END;
IF QuellTabelle2."Bild1".HASVALUE THEN BEGIN
  QuellTabelle2."Bild1".CREATEINSTREAM(InS);
  PicturePage.AddPicture(InS);
END;
PicturePage.RUNMODAL();


Es wird aber immer nur ein Bild angezeigt, die anderen Felder bleiben Leer.
Im Obigen Beispiel wird immer nur Picture1 der Zieltabelle angezeigt.

Ändere ich den Code wie folgt:
Code:
AddPicture(InStr : InStream)
CurrentIndex += 1;
CASE CurrentIndex OF
  1: BEGIN
     Picture1.CREATEOUTSTREAM(OutS);
     Picture2.CREATEOUTSTREAM(OutS);
    END;
  2: BEGIN
     Picture2.CREATEOUTSTREAM(OutS);
    END;
  3: BEGIN
     Picture3.CREATEOUTSTREAM(OutS);
    END;
END;


Wird das erste Bild (aus Quelltabelle1, Bild1) im Feld Picture2 angezeigt.

Was mache ich falsch?

Vielen Dank
Zuletzt geändert von elTorito am 23. November 2021 08:42, insgesamt 1-mal geändert.

Re: [RTC] BLOB Bilder kopieren in Tabelle zeigt nur ein Bild

22. November 2021 22:58

Ein MODIFY am Ende der Funktion kann helfen :-) :roll: :oops:

Unter den Bildern (ToolTip vom System?) steht überall " Klicken Sie mit der rechten Maustaste auf das Bild, um es zu kopieren oder zu speichern"

Bekommt man diesen Text weg? Die Page ist nicht editierbar...

Danke

Re: [RTC] BLOB Bilder kopieren in Tabelle zeigt nur ein Bild

22. November 2021 23:30

Ich denke dieser Text unter dem Bild kommt immer dann wenn der SubType des Felds Bitmap ist.

Re: [RTC] BLOB Bilder kopieren in Tabelle zeigt nur ein Bild

22. November 2021 23:43

Hallo,

noch ein Sache: Blob.HasValue funktoniert auch ohne Calcfields vorher:
also:
Code:
If Blob.hasValue then begin
  CalcFields(Blob);
.....
end;


Gruß Fiddi