0

Bilder mit html-Code anzeigen

Hallo, ich möchte eine Untertabelle durchlaufen und die Bilder über html ausgeben (als pdf). Mein Code ist wie folgt:

for i in Bilder do
            link:=link+"</p><src='"+shareFile(Bilder.Bild)+"' width='25%' height='25%'>"
    end

Als Fehler wird immer die unbekannte Funktion shareFile() angezeigt.

12 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ob der Rest des Codes so funktioniert, kann ich nicht sagen, aber sharefile() erwartet als Parameter eine ID. Wenn also 'Bilder' eine verknüpfte Tabelle ist (ansonsten müsste ein 'select' davor), würde ich es so versuchen:

    shareFile(i.Bild)
    
    • Wegener & Hinz GmbH
    • green_cup
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Stimmt natürlich, habe ich übersehen.......Danke

    Wenn ich folgenden Code nehme mit shareFile():

    if cnt(Bilder) = 0 then 
        html(link) 
    else
        let bild:="";
        for i in Bilder do
                bild:=shareFile(i.Bild);
                link:=link+"</p><src='"+bild+"' width='25%' height='25%'>"
        end;
        html(link)
    end

    bekomme ich immer die Meldung: "Funktion darf keine Änderung an Daten vornehmen" ?

    Wo liegt der Haken ??

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

      I.R. Soll das Script in einem Funktionsfeld ablaufen? Ist 'link' ein Datenfeld? Dann wäre das der Grund für die Meldung. Denn Funktionsfelder dienen ausschließlich dazu, Berechnungen durchzuführen und deren Ergebnis anzuzeigen. Man kann mit ihnen keine Werte in Datenfelder schreiben, was mit "link := ..." aber augenscheinlich versucht wird.

    • Wegener & Hinz GmbH
    • green_cup
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Der Code läuft in einem Funktionsfeld eines Reportes zur Darstellung von Text und ggf. zugehörige Bilder dahinter. "link" ist ein Textstring (Variable) der über html(link) zur Darstellung genutzt wird.

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

      I.R. in dem von dir geposteten Code wird 'link' aber nicht als Variable definiert. Oder ist 'bild' vielleicht auch der Name eines Datenfeldes?

      Allgemeiner Tipp: Ich würde eigene Variablen grundsätzlich so benennen, dass sie immer sofort als solche erkennbar sind und sich von Ninox-Schlüsselwörtern und Datenfeldern unterscheiden. Also z. B. ein "my" o. ä. davor setzen (= 'myLink'). Das kann wesentlich zur Lesbarkeit und Verständlichkeit von Scripten beitragen (auch für einen selbst).

    • Wegener & Hinz GmbH
    • green_cup
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Mit der Kennzeichnung der Variablen bin ich etwas schlampig, obwohl der Code erstmal nur Spielerei derzeit ist der später endgültig in meiner DB genutzt wird.

    'bild' ist auch eine Codevariable die den Link zum Bild aus der Funktion shareFile() aufnehmen soll.

    • Wegener & Hinz GmbH
    • green_cup
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Habe jetzt in der DB ein Textfeld erzeugt, wo je DS bei jeder Bildänderung der Link zugewiesen wird. Ein Funktionsfeld funktioniert komischerweise nicht.😮

    Jetzt habe ich im Report auch einen Platzhalter für das Bild nach dem Text, das Bild wird aber in der pdf nicht angezeigt.

    • Wegener & Hinz GmbH
    • green_cup
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Mein Problem:

    Der vollständige Code im Funktionsfeld der Druckvorschau:

    let myHTML1 := replace(replace(Langtext, "
    ", "<br>"), " ", "&nbsp");
    let text_v := "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspverantwortlich: ";
    let text_t := "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspTermin: ";
    let link := "<b>" + Kurztext + "</b><br>" + raw(myHTML1) + " <p align=left> <b>" + text_v + "</b>" + verantwortlich + "<br><b>" + text_t + "</b>" + Termin + "</p>";
    if cnt(Bilder) = 0 then
        html(link)
    else
        for i in Bilder do
            link := link + "</b><br><img src={" + i.shareLink + "}style=width:400px height:300px>"
        end;
        html(link)
    end

    Das Ergebnis in der Vorschau:

    Das Ergebnis als PDF-Ausdruck:

    Das Bild wird nicht dargestellt. Muß ich die Bild-Tabelle gesondert freigeben oder so?

    Oder ist der Code oben fehlerhaft (HTML)?

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

      I.R. Ich habe wenig Erfahrung mit HTML-Konstrukten im Drucklayout, sorry. Vielleicht kann jemand anders weiterhelfen?

    • Wegener & Hinz GmbH
    • green_cup
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Trotzdem vielen Dank für die Unterstützung !!!! Wenn ich eine Lösung habe werde ich auf jeden Fall sie hier zeigen.

    • Wegener & Hinz GmbH
    • green_cup
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Bin zumindest einen Schritt weiter. Im Druckeditor werden die Bilder jetzt angezeigt.

    Ausschnitt Code:

    for i in Bilder do
            link := link + "</b><br><img src=" + i.shareLink + " style max-width:100% height:auto>"
    end;
    html(link)

    Problem dabei:

    - wie passe ich die Größe an die Seitenbreite an

    - in der PDF werden die Bilder nicht ausgegeben

    • Wegener & Hinz GmbH
    • green_cup
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Das mit der Größe habe ich auch hinbekommen. Das Bild ist immer 500 px breit, die Höhe passt sich an und wird zentriert:

    link := link + "<center></b><br><img src=" + i.shareLink + " style= width:500px><c/enter>"

    In der Vorschau im Editor sieht das schon gut aus Aber als PDF wird das nicht ausgegeben😥

Content aside

  • vor 1 JahrZuletzt aktiv
  • 12Antworten
  • 230Ansichten
  • 2 Folge bereits