[Gelöst] Ext. Bild in Formular bzw. Report einfügen

26. Juni 2007 22:51

Hallo

Ich habe ein Problem, das ein Programmier sehr wahrscheinlich leicht beantworten kann.

Ich habe da ein externes Bild auf der lokale Festplatte. Ich will dieses Bild nun in ein Formular oder Report einfügen.

Im Designermodus des Formulars kann man ja in der Toolbox den Image-Control auswählen. Das habe ich auch gemacht. In der Properties des Image-Control kann man in der Property Bitmap eine Zahl eingeben. Abhängig der Zahl wird nun eine Systembitmap ausgwählt.

Jetzt die Frage: Wie bekomme ich das externe Bild ins Navision rein, damit ich in der Proberty Bitmap dieses externes Bild auswählen kann? Wie importiere ich also das externe Bild ins Navision um es auswählen zu können?

Vielen Dank und Grüsse

27. Juni 2007 02:15

gib einfach statt der Zahl für das Systemimage den Pfad und Dateinamen deines externen Images an.

27. Juni 2007 20:15

Hallo Michael

Das mit den Pfad geht leider nur für Bitmap, die nicht grösser sind als 32 kb sind. Nach meiner Meinung sind Bitmaps meistens oder fast immer grösser sind als 32 kb ist die Angabe des Pfad in wenigstens Fälle eine Lösung.

Ich habe aber dann gelesen, das man das Bild in ein BLOB importiern kann.
Kann mir jemand sagen wie das gehen soll? Denn mein externe Bitmap Bild ist 1,5 MB gross

27. Juni 2007 20:51

Durchsuche das Forum einfach nach BLOB - gerade in ganz jüngster Zeit ist hierzu etwas gesagt worden.

27. Juni 2007 22:55

Hier ein kleiner (aber freundlich gemeinter) Wink mit dem Zaunpfahl:

5. Februar 2008 14:01

Ich habe mir alle möglichen Beiträge zu BLOBs durchgelesen. Und habe es auch geschafft ein BLOB in eine Tabelle zu importieren. Aber irgendwie schaffe ich es nicht dieses anzeigen zu lassen. Kann mir vielleicht jemand auf die Sprünge helfen?

Ich habe in einem Report eine PictureBox auf eine Header Section gesetzt. Ich habe versucht das importierte Bild anzeigen zu lassen und auch mal versucht das schon hinterlegte Logo in den Firmendaten anzeigen zu lassen. Aber jedes mal ohne Erfolg .. zumindest erscheint mir das so. Muss ich das PictureBox Control auf die haargenaue Größe des Bildes ändern? Fehlt mir vielleicht ein CALCFIELDS? Über jeden Tipp wäre ich dankbar.

5. Februar 2008 14:11

Heike Bennerscheid hat geschrieben:Fehlt mir vielleicht ein CALCFIELDS?


Ja, (auch) das gehört dazu.

5. Februar 2008 14:14

Hallo dai,

ich denke du stehst vor dem selben Problem wie ich auch mal.

Code:
CompanyInfo.CALCFIELDS(Picture);


Denke der Code fehlt dir

mfg Harrison

Oki Natalie war schneller! Als Info "CompanyInfo" ist meine Variable für mein Logo

5. Februar 2008 14:45

Ich nehme zum Beispiel meine Tabelle "Logos" in der ich eine bmp Datei in ein BLOB Feld importiert habe.

Jetzt habe ich rec_Logos.Bild als Source.Exp in meiner PictureBox. Im OnAfterValidate Trigger habe ich folgenden Code stehen:

Code:
rec_Logos.CALCFIELDS(Bild)


Wenn ich nun den Report ausführe sagt er mir

Logos Field No. "0" exestiert nicht.

Ist auch richtig. Der erste Datensatz fängt mit 1 an. Also muss ich mit einem GET arbeiten. Alles klar irgendwie.. aber wenn ich mir zum Beispiel die Form mit den Firmendaten anschaue hat diese sowas nicht hinterlegt. Oder bin ich einfach nur blind?

5. Februar 2008 15:03

Heike Bennerscheid hat geschrieben:.. aber wenn ich mir zum Beispiel die Form mit den Firmendaten anschaue hat diese sowas nicht hinterlegt. Oder bin ich einfach nur blind?


Wenn du in den Firmendaten stehst, befindest du dich bereits auf einem "Company Information"-Record. Hier ist das GET bzw. FIND schon automatisch durch die Form ausgeführt worden.

CALCFIELDS bezog sich nur auf einen Report, da CALCFIELDS auf allen sichtbaren Feldern einer Form automatisch ausgeführt wird.

5. Februar 2008 15:09

Achso.. ist ja auch irgendwie total logisch *sich gegen Stirn klatsch*

Leider habe ich immer noch das obige Problem mit dieser eigenartigen Fehlermeldung wenn ich auf mein importiertes BLOB zugreifen will. Obwohl ich ein GET und ein FIND vor dem CALCFIELDS verwende. Hab ich wieder nen Knoten im Hirn und mir fehlt wieder nur ne Kleinigkeit?

5. Februar 2008 15:29

Wir sprechen jetzt doch wieder von deinem Report, oder?

Veröffentliche bitte den gesamten Quelltext, der mit dem Holen des richtigen Records (rec_Logos) zu tun hat.
An welcher Stelle rufst du den Quelltext auf?
Wenn du dort einen Breakpoint setzt und den Debugger aktivierst, wird dieser Code tatsächlich aufgerufen?

5. Februar 2008 15:39

Code:
rec_Logos.GET;
IF rec_Logos.FINDFIRST THEN
rec_Logos.CALCFIELDS(Bild);


Der Code wird wie weiter oben geschrieben im OnAfterGetRecord Trigger ausgeführt.
Beim GET scheint er raus zu fliegen.

Nachtrag: Ja, das ganze spielt sich in einem Report ab.

5. Februar 2008 15:57

Aua, da wirfst du was durcheinander.
kannst du dich noch erinnern?
Mittels GET und FIND wird eine Datenbankabfrage ausgeführt.
Möchtest du rec_Logos füllen, brauchst du EINEN dieser beiden Befehle. Alles Weitere kratzt nur unnötig an der Performance.

Wenn du den Inhalt der Primärschlüssel(=PK)felder deiner Zieltabelle kennst, dann arbeitest du mit rec_Logos.GET("PKFeld1", "PKFeld2", ...).

Suchst du in rec_Logos einen bestimmten Datensatz oder gibt es nur einen?
Im letzteren Fall müsste dein FINDFIRST (ohne Filter) zum gewünschten Ergebnis führen.
Im ersten Fall muss du vor dem FINDFIRST mittels SETRANGE oder SETFILTER entsprechende Filterbedingungen setzen.

5. Februar 2008 16:09

Oh man Natalie du bist ein Engel. Durch meinen privaten Umzug scheint mein Hirn wohl doch etwas gelitten zu haben. Du hast natürlich total recht. Mit FINDFIRST klappt es auch wunderbar. Ich glaub ich muss nach den 4 Tagen umziehen und ackern erstmal wieder warm werden. :wink:

5. Februar 2008 16:12

Also nochmal zusammen gefasst:
Deine Fehlermeldung kam nur durch die GET-Zeile. Denn GET ohne Parameter (= Inhalt der Primärschlüsselfelder) bedeutet, dass ein Datensatz mit einem leeren Primärschlüsselfeld gesucht wird. Diesen Datensatz (Nr. = 0) gibt es aber nicht.