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
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 Bilddateien ( JPEG ) per Button z.B. uidoc.import öffnen und als Bildresource in der aktuellen NSF ablegen.
Geht so etwas überhaupt ????
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
Hallo,
bei mir bringt der Teil der Formel:
dbl := @DbLookup("" : "NoCache"; ""; "Ansicht"; Key; 4);
folgenden Fehler:
Kein Haupt- oder Auswahlausdruck in Formel: "
wo liegt da das Problem
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