Beiträge von paul_k

    Ich kann dem Zellenhintergrund aber entweder ein Bild zuweisen, oder ein Bild über eine Formel ( @getfield(Feldname aus dem Dokument )zuweisen.


    Ich wüßte nicht wie ich hier eine ander DB angeben könnte



    Gruß Paul

    es ist doch aber auch bei einer extra NSF genauso, dass ich die DB zuerst komplett schließen muß bevor die Resourcen sichtbar werden oder liege ich da falsch und wie verhält sich das Zellenbild wenn die Bildresource nicht mehr in der eigenen nsf liegt
    ( @GetField("picture") ).


    Ich werde ja mit Sicherheit auch deinen Beispiel-Code ändern müssen, wenn die Resource in eine andere DB geschrieben werden soll.


    Gruß Paul

    Guten Morgen Dirk,


    es sollen natürlich nicht alle diese Uploads machen, nur ein bestimmter Personenkreis und die haben Entwicklerrechte.


    Muß ich im UI die ganze DB closen oder reicht es wenn ich die Resource öffne und dann wieder close ( wenn ich die Maske aus dem Designer starte, ein Bild in die NSF speichere und anschließend im Designer die Bildresourcen öffne und wieder schließe ist das Bild sofort in der Maske verfügbar ).


    Kannst du mich da im Source-Code unterstützen, in der Ecke war ich noch nicht im Lotusscript.


    Danke


    Gruß


    Paul

    Hallo Dirk,



    ein super Beitrag, hat auch sofort funktioniert.


    Meine Frage:


    Ich habe aber das Problem, dass die Bildresource zwar sofort angelegt wird, aber ich die Datenbank erst schließen und danach wieder öffnen muß um das Bild zu sehen.


    Gibt es eine Möglichkeit um einen refresh auf die Bildresourcen zu machen, um das Bild
    z.B sofort als Zellenbild ( @GetField("picture") anzuzeigen ??



    Gruß Paul

    Ich möchte beim Onload eine Bildresource ( Name steht im Dokument ) in ein Rich-Text-Field einfügen.
    Habe ich die Datei im Windows-File-System geht das ja wunderbar mit
    uidoc.import(........).


    Bloß jetzt habe ich ein Problem mit dem verteilen der Bilder, kann ich die Bilder als gemeinsame Resourcen in die Datenbank einfügen, werden sie automatisch mitrepliziert.


    Ein weiterer Vorteil wäre dass der Enduser die Bilder nicht sehen sollte ( im Windows-File-System kann ich das nicht verhindern ).



    Gruß Paul






    Hat sich erledigt, geht einfach mit einer Tabelle ( Tabellenbild zuweisen ) !!!



    Gruß Paul

    Ooooooh Mann,


    danke Diala, manchmal ist es schlimm wenn man's mit den Augen hat.


    Die Leerstelle war das Problem und wenn man sich dann verrennt geht irgendwan gar nichts mehr.


    Auf jedenfall funktioniert's jetzt prächtig.


    Gruß Paul

    Hallo Dirk,


    ich bin keine Größe in der Formelsprache, habe aber jetzt einfach einmal das


    proof := weggelassen.



    Die Formel soll folgendes bewirken:


    Ich möchte aus der Ansicht - Feldbezeichner den Wert aus der Spalte Dictionary_translation als Ergebnis übertragen, Suchbegriff:


    DE:Tiresize


    Das funktioniert prima solange der Suchbegriff vorhanden ist.
    Fehlt der Suchbegriff od. ist gar die Datenbank nicht vorhanden kommen Fehlermeldungen und die Maske wird überhaupt nicht angezeigt.


    Irgendwie funktioniert das mit dem Ergebnis vorher abfragen nicht.




    Jetzt bekomme ich beim ausführen die Fehlermeldung:


    Eintrag im Index nicht gefunden


    Trage ich als nsf "richtig" ein kommt beim ausführen die Fehlremeldung


    Datei nicht gefunden



    die Datei: Anwendungen/Dict/D_Dictionary gibt es nicht
    und ich möchte eigentlich dass dann im Feld der Wert aus


    EN_Dictionary steht.



    Mein Code:


    falsch := "ANWENDUNGEN/DICT/" + "D"+ "_Dictionary.nsf";
    richtig := "ANWENDUNGEN/DICT/" + @UpperCase(@LanguagePreference ( [Content] ))+ "_Dictionary.nsf";




    engl := @DbLookup( "" ;@ServerName:richtig ; "Feldbezeichner" ;" EN:tiresize" ; "Dictionary_Translation");



    de := @DbLookup( "" ;@ServerName:falsch ; "Feldbezeichner" ; "DE:tiresize"; "Dictionary_Translation");



    dlbl := @DbLookup( "" ;@ServerName:falsch ; "Feldbezeichner" ; "DE:tiresize" ; "Dictionary_Translation");
    @If(@IsError(dlbl); engl; de);




    Gruß Paul

    Ich hole die Daten nicht aus einer anderen Lotus-Notes Datenbank, sondern aus einer Notes-unabhängigen DB2.
    Das direkte befüllen der Werteliste wäre mir halt unheimlich wichtig gewesen, weil ich 5 -7 Wertelisten haben die in abhängigkeit zu einander stehen.


    Beispiel:


    - zuerst wird der Reifenhersteller gewählt,
    - danach können alle Profile des Herstellers gewählt werden,
    - dann alle Reifengrößen die es in diesem Profil von diesem Hersteller gibt
    - vom Hersteller zugelassene Messfelgen




    Gruß Paul

    Es funktioniert jetzt mittlerweile, wenn ich ein darkfeld, bei dem Mehrfachwerte zugelassen sind, in dem Dokument habe und dieses Feld in der Auswahl des Kombifeldes als Formel hinterlege.
    Dieses darkfeld befülle ich dann aus dem button des vorhergehenden Documents.


    Das ist mir aber alles zu viel Action, mir wäre es viel lieber wenn ich die Werteliste des Kombifeldes direkt füllen könnte.



    Gruß Paul

    Hallo Dirk,
    irgendetwas läuft da komplett schief.
    1. Warum sehe ich beim debuggen die im Designer eingegebene Auswahl (Auswahl eingeben ( eine pro Zeile ) nicht und im Dokument werden sie angezeigt.


    2. Wie spreche ich die Schüsselfelder eines Kombinatioonsfeldes an ( die values sind es ja ganz offentsichtlich nicht ).




    Gruß Paul

    Der Array wird folgendermaßßen gebildet:


    Set view = db.GetView("RECRM_TYRE_003_TRA")
    Set keydoc = view.GetFirstDocument

    Set feld = New notesitem(doc,"tra_back"," ")

    Redim arr(view.AllEntries.count) As String
    For i = 1 To view.AllEntries.Count
    z = i - 1
    arr(z)= Keydoc.ColumnValues(1)
    Set keydoc = view.GetNextDocument(keydoc)
    Next i



    Im Array arr steht jetzt folgender Inhalt:


    [0] "E1 <-> Rillenprofil"
    [1] "E2 <-> Querprofil"
    [3] "E3 <-> ....
    .
    .
    [133] "C1 <-> Glattes Profil"



    Dieser Array wird mit


    Set Feld = doc.replaceitemvalue("tra_back",doc)
    in die ValueListe des Kombifeldes "tra_back" übertragen


    anschließend wird das document mit
    call doc.save ( true, true, true ) gesichert
    und mit
    call ws.document(true, doc) aufgerufen
    sowie mit
    call.docRemoveprmanently(doc) wieder gelöscht



    Gruß Paul

    nein ich verwende keine Aliase.
    Ich habe festgestellt wenn ich in das Kombifeld Werte eintrage
    z.B.


    Test1
    Test2



    so bekomme ich als Ergebnis:


    Test1
    Test2
    E1 <- Rillenprofil


    Im Debugging sehe ich das im Gegensatz zum Debugging vor save, dass die Werte nicht mehr in den einzelnen Array-Elementen stehen, sondern alle im value[0] und zwar in folgendem Format 'E1 <-> Rillenprofil||E2 <-> Querprofil||E3 <->.....'
    E ist nichts von den Werten Test1 und Test2 zu sehen.


    Auch das Kombifeld dass ich über eine Formel versorge, sieht man in den values keinen Eintrag.



    Gruß Paul

    Tut mir leid dass ich nerve, aber mehr als Wert wird nicht angezeigt.


    Das Dokument wird über einen Button aus einem anderen Dokument gestartet. Die onClick-Methode enthält folgende Source:


    ( Ich hätte dir gerne einen Screenshot vom Debugger dazugehängt, funktioniert irgendwie nicht. Aber die Values des Kpmbifeldes sind mit 168 Einträgen gefüllt, kurz vor Call ws.EditDocument(True, doc) )


    Sub Click(Source As Button)

    Dim s As New NotesSession
    Dim ws As New NotesuiWorkSpace
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim view As NotesView
    Dim Feld As NotesItem
    Dim arr() As String
    Dim z As Integer

    Set db = s.CurrentDatabase
    Set doc = New NotesDocument(db)
    doc.Form = "RECRM_TYRE_003"

    Set view = db.GetView("RECRM_TYRE_003_TRA")
    Set keydoc = view.GetFirstDocument

    Set feld = New notesitem(doc,"tra_back"," ")

    Redim arr(view.AllEntries.count) As String
    For i = 1 To view.AllEntries.Count
    z = i - 1
    arr(z)= Keydoc.ColumnValues(1)
    Set keydoc = view.GetNextDocument(keydoc)
    Next i

    Set feld = doc.replaceitemvalue("tra_back",arr)
    '
    '
    Call doc.Save(True, True, True)
    Call ws.EditDocument(True, doc)
    Call doc.RemovePermanently(True)

    End Sub



    Gruß Paul

    Das hört sich gut an ( NotesUIWorkSpace.EditDocument ).
    Kannst du mir einen Tip geben wie das funktioniert, ich bin noch ziemlich am Anfang.


    Mit dieser Variante würde ich dies gerne machen:



    Sub Onload(Source As Notesuidocument)
    If source.EditMode = True Then
    Dim s As New NotesSession
    Dim db As Notesdatabase
    Dim view As NotesView
    Dim Doc As NotesUIDocument
    Dim KeyDoc As NotesDocument
    Dim Feld As NotesItem
    Dim arr() As String
    Dim z As Integer
    Dim s_f As String


    Set db = s.CurrentDatabase
    Set view = db.GetView("RECRM_TYRE_003_TRA")


    Set keydoc = view.GetFirstDocument



    'Feld2
    'direkt in das Kombinationsfeld
    ' Ergebins: 1 Eintrag DefaultEintrag ja
    '
    Set feld = New notesitem(source.document,"tra_script"," ")


    Redim arr(view.AllEntries.count) As String
    For i = 1 To view.AllEntries.Count
    z = i - 1
    arr(z)= Keydoc.ColumnValues(1)
    Set keydoc = view.GetNextDocument(keydoc)
    Next i


    Set feld = source.document.replaceitemvalue("tra_script",arr)



    Dim workspace As New NotesUIWorkspace


    und wie geht es jetzt bitte weiter........



    Danke


    Gruß Paul


    End sub

    Das waren ja alles nur Versuche und da es das 4. Feld war, ein letzter verzweifelter Versuch.
    Beim Feld 3 stehen die Werte im Darkfeld sauber mit , getrennt im Feld drin.


    Und beim Feld 2 habe ich als Ergebnis ja sogar einen Eintrag im Kombifeld stehen


    Gruß Paul

    Ich habe eine Maske mit 4 Kombinationsfeldern. Diese Felder werden auf unterschiedliche Art gefüllt.


    Problem: Ich möchte das Kombifeld nicht per Formel füllen, da die Werte aus einer DB 2 kommen und ich
    nicht Temp-Dokumente anlegen möchte, die ich dann in einem View virtuell anzeige um sie dann von der
    Formel in das Kombifeld zu übertragen.
    Das Ergebnis der Maske wird auch nicht als Dokument abgelegt, sonder in DB 2 Tabellen gespeichert.



    1. ) Formel - funktioniert


    @DbColumn("";"";"RECRM_TYRE_003_TRA";2)


    Ergebnis: 19 Einträge kein DefaultEintrag


    Felder 2,3 und 4 werden über lotusscript ( OnLoad ) versorgt.


    Feld 2
    ( Name = TRA_CODE )
    wird mit document.replaceitemvalue("tra_code",arr)
    der Array direkt in das Kombinationsfeld geschrieben.


    Ergebnis: 1 Eintrag DefaultEintrag ist dieser 1 Eintrag


    Feld 3
    ( Name = TRA_SCRIPT, dark-Feld = T_SCRIPT )


    wird mit source.document.replaceitemvalue("t_script",arr)
    der Array in das Darkfeld geschrieben und das Kombifeld sollte eigentlich über den Eintrag T_script in der Auswahlformel
    die Werte übernehmen.


    Ergebnis: kein Eintrag


    Feld 4
    ( Name = TRA_code2, dark-Feld = T_SCRIPT2 )


    wird mit source.document.replaceitemvalue("t_script2",s_f)
    der String in das Darkfeld geschrieben und das Kombifeld sollte eigentlich über den Eintrag T_script2 in der Auswahlformel
    die Werte übernehmen.


    Der Inhalt von Feld 2 sieht folgendermaßen aus:
    "|Wert1|Wert2|Wert3"


    Ergebnis: kein Eintrag



    Jetzt noch der Source-Code von OnLoad:


    Sub Onload(Source As Notesuidocument)
    If source.EditMode = True Then
    Dim s As New NotesSession
    Dim db As Notesdatabase
    Dim view As NotesView
    Dim Doc As NotesUIDocument
    Dim KeyDoc As NotesDocument
    Dim Feld As NotesItem
    Dim arr() As String
    Dim z As Integer
    Dim s_f As String

    Set db = s.CurrentDatabase
    Set view = db.GetView("RECRM_TYRE_003_TRA")

    Set keydoc = view.GetFirstDocument
    'Set doc = source.document
    '
    'Feld2
    'direkt in das Kombinationsfeld
    ' Ergebins: 1 Eintrag DefaultEintrag ja
    '
    Set feld = New notesitem(source.document,"tra_script"," ")

    Redim arr(view.AllEntries.count) As String
    For i = 1 To view.AllEntries.Count
    z = i - 1
    arr(z)= Keydoc.ColumnValues(1)
    Set keydoc = view.GetNextDocument(keydoc)
    Next i

    Set feld = source.document.replaceitemvalue("tra_script",arr)

    'Feld3
    ' Über verstecktes feld
    ' Ergebnis kein Eintrag
    ' im versteckten Feld sind alle Einträge vorhanden
    '
    Set keydoc = view.GetFirstDocument
    'Set doc = source.document

    Set feld = New notesitem(source.document,"t_script"," ")

    Redim arr(view.AllEntries.count) As String
    For i = 1 To view.AllEntries.Count
    z = i - 1
    arr(z)= Keydoc.ColumnValues(1)
    Set keydoc = view.GetNextDocument(keydoc)
    Next i

    Set feld = source.document.replaceitemvalue("t_script",arr)


    'Feld4
    '
    ' Über verstecktes Feld 2. Versuch
    ' Ergebnis kein Eintrag im Kombinationsfeld
    ' im versteckten Feld sind alle Einträge vorhanden
    '
    S_F = "|"
    Set keydoc = view.GetFirstDocument
    Set view = db.GetView("RECRM_TYRE_003_TRA")
    For i = 1 To view.AllEntries.Count
    z = i - 1
    s_f = s_f & "||" & Keydoc.ColumnValues(1)
    Set keydoc = view.GetNextDocument(keydoc)
    Next i

    Set feld = New notesitem(source.document,"t_script2"," ")
    Set feld = source.document.replaceitemvalue("t_script2",s_f)


    ' ListeGefüllt = True
    End If
    End Sub

    Ich möchte in einem View in der Ansichtsauswahl mit einer Formel arbeiten. Es sollen alle Dokumente ausgewählt werden die die Form = "Dictionary" haben.


    Eine weitere Spalte der Dokumente heißt
    dictionary_language


    Diese Spalte soll ebenfalls in die Formel eingebunden werden.
    Es funktioniert hervoragend wenn ich die Formel folgendermaßen definiere:
    SELECT (@Contains(Form; "Dictionary")) & (@Contains(dictionary_language; "de"))


    Verwende ich folgende Formel funktioniert es überhaupt nicht:
    SELECT (@Contains(Form; "Dictionary")) & (@Contains(dictionary_language; @LanguagePreference([Region])))


    obwohl ich mir beim QueryOpen einen Prompt eingebaut habe
    @Prompt([Ok];"Test";@LanguagePreference([Region]))
    der mir als Ergebnis de anzeigt


    Gruß Paul