Adressbuch mit Foto

  • Ist es möglich das Adressbuch so anzupassen dass es für den jeweiligen Kontakt ein Foto zeigt?
    Die Briefcase-Funktion hilft mir leider nicht..
    Schön wäre wenn in der Maske contacts in dem freien Feld links neben der Auflistung (First, Middel, Last etc.) das jeweilige Bild zu sehen wäre.


    Ich kenn mich leider mit dem Designer nicht gut aus. Ich hab zwar dort herausgefunden dass ich zwar ein Bild einfügen kann, aber das ist leider statisch. Da aber jeder Kontakt ein anderes Bild hat (z.b. nachname.jpg) hilft mir das nicht weiter..

  • Prinzipiell ist das zwar möglich, setzt aber eine nicht unerhebliche Manipulation voraus, zum einen müssen die entsprechenden Ansichten geändert werden und desweiteren muß an binären Feldflags "getrickst" werden. Außerdem eignen sich dann nur Bilder mit bestimmten Limits was Typ und Größe betrifft zur Anzeige. Bei Verletzung der Restriktionen kann es zum Totalabsturz (Red Box) kommen und im schlimmsten Fall ist die Datenbank danach hinüber. Also nicht wirklich empfehlenswert ...


    Nachtrag Edit: Hab mich verlesen...ich dachte es geht um die Ansicht. In der Maske gehts natürlich einfacher.

    • Offizieller Beitrag

    in die Maske kannst Du Dir ein bearbeitbares Rich Text Feld (ich nenne es mal "Bild") bauen. Mit einer Schaltfläche und dem folgenden Code wird beim Drücken der Schaltfläche das jeweilige Bild eingefügt.


    @PostedCommand([EditGotoField]; "Bild" );
    @PostedCommand([FileImport]; "JPEG Image"; "Laufwerk:\\Pfad\\Nachname..jpg");


    Achtung in den Pfadangaben z.B. "c:\Bilder\ich.jpg" müssen die "\" durch doppelte "\\" ersetzt werden z.B: "C:\\Bilder\\ich.jpg".


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Danke erstmal euch beiden!


    Ist das in deinem Beispiel nicht auch statisch Diali? Die Bilder heißen ja nicht alle nachname.jpg oder ich.jpg sondern je nach Kontakt. Das heißt der Name des Bildes müsste je nach Kontakt der gerade angezeigt wird dynamisch erzeugt werden. Ist das auch möglich?

    • Offizieller Beitrag

    @PostedCommand([FileImport]; "JPEG Image"; "Laufwerk:\\Pfad\\Nachname..jpg");


    Den String "Laufwerk:\\Pfad\\Nachname..jpg" musst Du noch zusammenbauen. In etwa so:
    "c:\\Bilder\\" + Lastname + ".jpg".


    Gruß
    Dirk

  • Sorry, aber ich glaube ich brauch nochmal Hilfe..


    Ich hab jetzt ein Rich-Text eingefügt mit Namen Bild. Dann hab ich eine Schaltfläche hinzugefügt mit folgendem Formelcode:
    @PostedCommand([EditGotoField]; Bild );
    @PostedCommand([FileImport]; "JPEG Image"; "/tmp/ich.jpg")


    Den Pfad zum Bild habe ich erstmal statisch gelassen um dort Fehler ausschließen zu können. Der Server läuft auf einer Linuxkiste deswegen der Pfad /tmp/ich.jpg
    Ich hab es auch schon mit einem Pfad auf meinem lokalen Client versucht (c:\\tmp\\ich.jpg) aber auch ohne Erfolg.


    Klicke ich nun in der Adressdatenbank auf die erstellte Schalftläche bekomme ich den Fehler:
    "Angegebener Befehl kann nicht ausgeführt werden."


    Ich hab schon ein bisschen was probiert aber ich weiß nicht woran es liegt, fest steht nur dass Lotus damit den zweiten Befehl meint..

  • Wenn es auf deinem lokalen PC einen Pfad namens "/tmp/ich.jpg" gäbe dann wär die Welt in Ordnung ;) Also entweder du stellst deinen PC schnell auch auf Linux um oder änderst den Pfad in einen Windows-kompatiblen (das wär sicher einfacher *g*).


    Edit: Ok hab grad gesehen du hast die Windowsvariante schon probiert. Heut überseh ich einfach einiges ;)


    Versuch in dem Falle erstmal händisch ob der Import funktioniert indem du dich mit dem Cursor in das Feld stellst und dann die Importfunktion über Datei->Importieren testest.

  • CarstenH: Macht doch nix ;) Wie meinst du händisch testen? In der Adressdatenbank selber seh ich das Feld Bild garnicht so dass ich dort den Cursor setzen könnte!


    taurec: Wenn ich das mache dann kommt der Fehler:
    "Feld nicht gefunden" und danach der andere Fehler. Obwohl es das Feld gibt!


    Ich bin über Erstellen -> Feld gegangen und habe dort bei Typ "Rich Text" und "Bearbeitbar" gewählt

  • Aaaah - jetzt geht es! Hide-when war okay, mein Fehler war: Ich hab das Feld einfach im freien Raum platziert. Jetzt hab ich es testweise direkt hinter das Feld FirstName geschoben und es geht!


    Gut, danke! Den Rest mit dynamischen Namen usw. werd ich dann schon hinbekommen!


    Eine Frage hab ich aber noch: Es widerspricht zwar dem jetzigen Aufbau aber kann man das Bild auch einfügen ohne erst den Button drücken zu müssen?


    Edit: Und noch eine Frage:
    Bezieht der das nur auf den Client? Denn wenn ich den Serverlink einbastel dann sagt er "Datei nicht gefunden"

  • Daran wird sich nix ändern - sprich es geht nicht auf diesem Weg auf dem Server ;)


    Grund:


    @Commands sind in Wirklichkeit die entsprechenden Menüpunkte aus dem Client, können also nur mit aktivem UserInterface (Client) ausgeführt werden. Keine Chance auf diesem Weg auf dem Server. Für die Hintergrundausführung auf einem Server müßte die Lösung komplett anders angegangen werden.


    Zur Frage obs ohne Button geht:


    Klar, einfach Cursor ins Feld und Datei->Import oder alternativ Erstellen->Bild. Dann ist jeder Dateiname ok.

    • Offizieller Beitrag

    das Einfügen ohne Butten funktioniert z.B.: mit einem Script-Agent auf dem Server oder Du schreibst die 2 Zeilen ins QuerySave der Maske. Natürlich solltest Du dann noch Fehlerroutinen einbauen (z.B.: Bild nicht vorhanden, usw)


    Gruß
    Dirk

  • Hallo,


    das funktioniert jetzt alles wunderbar soweit. Ich hab die zwei Zeilen in das onLoad der Maske geschrieben. Jetzt gibt es nur ein Problem mit den Berechtigungen. Und zwar zeigt er das Bild nur an wenn der User mindestens die Rolle Editor hat. Hat er eine niederwertige Rolle kommt der Fehler:
    "Angegebener Befehl kann nicht ausgeführt werden."


    Der User soll aber in der Datenbank nichts ändern dürfen, was sich imho mit der Editor-Rolle so nicht einstellen lässt. Hat da einer eine Idee was ich tun kann?

    • Offizieller Beitrag

    die 2 @-Funktionen setzen voraus, dass das Dokument bearbeitet werden darf.
    Im QuerySave ist sichergestellt, das der User das Dokumemnt zur Bearbeitung offen hat.


    Gruß
    Dirk

  • Klingt logisch denn er fügt das Bild ja auch in einem bearbeitbarem Feld ein. Das ganze birgt aber noch ein Problem: Der jeweilige Datensatz kann nur von einer Person eingeschaut werden da sonst die sinngemäße Meckermeldung kommt: "Das Dokument wird bereits von xxx bearbeitet"


    *argh* Kann man da was machen?

    • Offizieller Beitrag

    die Bilder würde ich direkt in dem Adressbuch speichern. Dies kann z.B. von einem periodischen Agent übernommen werden.


    Gruß
    Dirk

  • Ist das nicht egal ob die Bilder in der Datenbank oder einem Verzeichnis liegen? Öffnet er nicht in jedem Fall den Datensatz zum Bearbeiten und somit dürfen nicht mehrere gleichzeitig zugreifen?
    Sorry, bin dir zwar dankbar für Deine Hilfe aber ich weiß nicht ganz wie Du das meinst..
    Mittlerweile wär es mir auch egal wenn der User auch schreibend zugreifen darf, schön wär halt nur wenn auch mehr als einer sich einen Eintrag anschauen dürfte.

    • Offizieller Beitrag

    also die Zeilen
    @PostedCommand([EditGotoField]; "Bild" );
    @PostedCommand([FileImport]; "JPEG Image"; "Laufwerk:\\Pfad\\Nachname..jpg");


    machen eigentlich nichts anders als den Courser in das Feld Bild zu setzen und dann einen über das Menü "Erstellen" - "Bild" den Typ und Dateinamen zu übergeben. Beide Commands funktionieren nur, wenn das Dokument zum Editieren geöffnet ist. Anders bekommst Du es im FrontEnd nicht hin.


    Sind die Bilder dagegen im Feld eingefügt, muss das Dokument nicht mehr zum Bearbeiten geöffnet werden und es können gleichzeitig mehrere Benutzer das Dokument ansehen.


    Über die Datenbank-Eigenschaften kannst Du das Sperren der Dokument abschalten, allerdings mit der Gefahr, dass es Speicherkonflikte gibt.


    Gruß
    Dirk