🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Grafik aus Base lesen und in form stellen? [Gelöst]

Alles zur Programmierung im LibreOffice.
gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: EIngebettete Grafik aus Base auslesen und in form stelle

Beitrag von gogo » Mo 21. Mai 2012, 16:43

Code: Alles auswählen

oForm.getByName("imgProduct image").commit(true)
in Anlehnung an: http://de.openoffice.info/viewtopic.php ... 43#p139329

bzw. noch mehr Hammer:

Code: Alles auswählen

oForm.getByName("imgProduct image").commit(true)
oForm.ismodified = true
oForm.reload
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Decurtins
Beiträge: 20
Registriert: So 20. Mai 2012, 16:55

Re: EIngebettete Grafik aus Base auslesen und in form stelle

Beitrag von Decurtins » Mi 23. Mai 2012, 19:54

Danke vielmals Gogo.
Hab mir allerdings noch eine andere Lösung zusammengebröselt (ein Form.Reload ist dabei nicht nötig, würde bei mir, glaub ich, auch nicht funktionieren, da ich das Form als Dokument ohne echten Bezug zu einer Table der Datenbank einsetze, der Reload würde alle werte aus den Formularfeldern löschen, denke ich…)
...


YES! :D

Habe mir eine Lösung zusammengesucht.

ConvertToURL() wandelt nur in korrektes Format um, gibt allerdings nicht den echten relativen Pfad wieder.
Den relative Pfad (des Datenbankfiles, wo sich auch die Bilddateien befinden) kann mann via

Code: Alles auswählen

Pathdatabase= tools.strings.DirectoryNameoutofPath(ThisDatabaseDocument.url,"/")
erheben.

hier nochmal der funktionierende Code

Code: Alles auswählen

ResultSetProductImage = Statement.executeQuery("SELECT DISTINCT ""Product image"" FROM ""Products_R-tunes"" WHERE ""Product"" = '" + sProduct + "'") 

If Not IsNull(ResultSetProductImage) Then
  While ResultSetProductImage.next
    sResultSetProductImage = ResultSetProductImage.getString(1)
  Wend
End If

DIM oImgProductImage as object
oImgProductImage = oForm.getByName("imgProduct image")

if not globalscope.BasicLibraries.islibraryloaded("Tools") then
      globalscope.BasicLibraries.loadlibrary("Tools")
end if

DIM Pathdatabase
Pathdatabase= tools.strings.DirectoryNameoutofPath(ThisDatabaseDocument.url,"/") ' Für Windows vielleicht "\" (bin auf Mac)

oImgProductImage.ImageURL = Pathdatabase & "/" & sResultSetProductImage 

Decurtins
Beiträge: 20
Registriert: So 20. Mai 2012, 16:55

Re: EIngebettete Grafik aus Base auslesen und in form stelle

Beitrag von Decurtins » Mi 23. Mai 2012, 20:24

Doch noch nicht ganz... :?

Das Bild erscheint jetzt einfach am linken unteren Rand des Forms und hat scheinbar keinen Bezug mehr zum Graphik Kontrollfeld.

nach meiner Logik sollte es eigentlich klappen, denn ich gebe dem objekt oImgProductImage ja nur eine .ImageURL mit und verändere sonst nichts…

kann man da was machen?

EDIT: :oops: Hatte ein zweites ImgProduct image Grafikkontrollfeld (ohne rand und daher unsichtbar) im Formular.

aber jetzt klappt alles.
Danke F3K für die Hilfsbereitschaft !
Zuletzt geändert von Decurtins am Mi 23. Mai 2012, 22:35, insgesamt 2-mal geändert.

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: EIngebettete Grafik aus Base auslesen und in form stelle

Beitrag von F3K Total » Mi 23. Mai 2012, 21:24

Ja,
z.B. ein Beispieldokument hochladen ...
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: EIngebettete Grafik aus Base auslesen und in form stelle

Beitrag von gogo » Do 24. Mai 2012, 07:49

Code: Alles auswählen

Pathdatabase= tools.strings.DirectoryNameoutofPath(ThisDatabaseDocument.url,"/") ' Für Windows vielleicht "\" (bin auf Mac)
Mit getPathSeparator solltest Du immer den richtigen kriegen (GlobalScope.BasicLibraries.LoadLibrary("Tools") ... dort ist getPathSeparator drin).

Code: Alles auswählen

Pathdatabase= tools.strings.DirectoryNameoutofPath(ThisDatabaseDocument.url, getPathSeparator )
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Decurtins
Beiträge: 20
Registriert: So 20. Mai 2012, 16:55

Re: EIngebettete Grafik aus Base auslesen und in form stelle

Beitrag von Decurtins » Do 7. Jun 2012, 14:11

Super danke !

ergebnis =

Code: Alles auswählen

Pathdatabase= tools.strings.DirectoryNameoutofPath(ThisDatabaseDocument.url, getPathSeparator)  
oImgProductImage.ImageURL = Pathdatabase & getPathSeparator & sResultSetProductImage
dann wird das Kind ja Betriebssystemunabhängig, richtig?

herzlichen Dank nochmals!


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten