Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: theo-1964 am 02.03.11 - 09:25:30
-
Hallo Forum,
folgendes Problem:
Habe innerhalb eine Maske eine Schaltfläche mit deren Hilfe ich über DBColumn und dann später über DBlookup Daten aus einer Ansicht in die Felder der Maske übertragen möchte. Dies habe ich innerhalb einer einzigen Datenbank auch hinbekommen.
Nun muß ich Daten aus einer anderen Datenbank (vom gleichen Server holen).
Ich habe natürlich die Designer Hilfe studiert und auch die diversen Beiträge in diesem Forum ausprobiert. Aber es klappt immer noch nicht.
Hier die beiden Zeilen die schon nicht funktionieren.
parts:=@DbColumn("Notes" : "NoCache";"servername/firma/de" : "MATERIAL.NSF";"Ansicht";"1");
selpart:=@Prompt([OkCancelList];"Auswahl";"Bitte wählen Sie Adresse aus dem Bestand";"";parts);
Folgendes noch als Hintergrund:
Die Datenbank aus der ich die andere Datenbank aufrufe liegt in einem weiteren Verzeichnis im data Pfad des Servers:
also: firma\datenbank.nsf
die Datenbank auf die ich zugreifen will liegt (eigentlich im gleichen Verzeichnis) aber ich habe diese schon in das data Verzeichnis umkopiert so das sie jetzt direkt erreichbar sein sollte (um mir Pfadangaben bei der Datenbank zu ersparen)
Das Serverbetriebssystem ist Linux (vielleicht spielt das ja eine Rolle)
Wenn ich im Designer auf die Datenbank zugreife steht dort als Pfad:
\\servername/firma/de\firma\datenbank.nsf (Datenbank mit der Lotus Formel)
und die Datenbank aus der ich die Daten holen will:
\\servername/firma/de\material.nsf
Aktuell mit dem oben genannten Formel-Code passiert folgendes: Die Schaltfläche blitzt kurz auf und es passiert gar nix.
Ich habe bereits mit folgenden Schreibweisen gearbeitet:
Replik-ID verwendet statt Servernamen und Datenbanknamen
Doppelschrägstriche verwendet.. Schrägstriche auch mal anderes herum..
Vielleicht kann ja jemand Licht ins Dunkel bringen.
Viele Grüße Detlef
-
Hallo
wenn es dir um die erste Spalte und nicht um die Spalte mit namen 1 geht, musst du die 1 am ende ohne Anführungszeichen schreiben:
parts:=@DbColumn("Notes" : "NoCache";"servername/firma/de" : "MATERIAL.NSF";"Ansicht";1);
-
Leider klappt es auch mit der Änderung dann nicht.
Was sehr komisch ist und ich nicht verstehe, das der Designer am Ende der Formel immer ein @true einfügt... Kann das was mit der Problematik zu tuen haben.
Hier geändert Code.. Falls ich noch irgendwo Tomaten auf den Augen haben sollte..
parts:=@DbColumn("Notes" : "NoCache";"servername/firma/de" : "MATERIAL.NSF";"xxx";1);
selpart:=@Prompt([OkCancelList];"Auswahl";"Bitte wählen Sie Adresse aus dem Bestand";"";parts);
@True
:'( Viele Grüsse Detlef
-
Was gibt deine Funktion/ Aktion denn zurück?
Kannste mal den kompletten Code posten?
-
Und die Formel ist in einem Button in einem Form im "Click" Event?
-
HIer ist der Code wie er später mal werden soll... [ich weiss das ich dort den Servernamen noch unterbringen muss (ludb) Aber soweit bin ich ja noch nicht..
lutype:="Notes":"NoCache";
ludb:=material.nsf;
luview:="Artikel";
ptcol:=1;
parts:=@DbColumn(lutype;ludb;luview;ptcol);
selpart:=@Prompt([OkCancelList];"Auswahl";"Bitte wählen Sie den Artikel aus dem Bestand";"";parts);
artikelbez:=5;
selartikelbez:=@DbLookup(lutype;ludb;luview;selpart;artikelbez);
preis:=8;
selpreis:=@DbLookup(lutype;ludb;luview;selpart;preis);
FIELD RechnungFakt_1:=@Trim(RechnungFakt_1:artikelbez);
FIELD RechnungsWert_1:=@Trim(RechnungWert_1:selpreis);
@Command([ViewRefreshFields])
-
ach ich vergaß..
ja, es ist innerhalb einer Maske eine Schaltfläche : Click
-
ludb:=material.nsf;
Sollte das nicht
ludb:="material.nsf";
heissen?
-
Ich weiß, Du hast schon geschrieben, daß da der Servername noch fehlt. Aber ohne den Servernamen wird das ganze Konstrukt nur funktionieren, wenn die Datenbank lokal bei Dir im Data-Verzeichnis liegt. Also mußt Du den auf jeden Fall auch noch ergänzen, um überhaupt zu einem Ergebnis kommen zu können.
-
Hallo ingo..
habe mir mal eine lokale Replik erstellt.. den Code geändert.
lutype:="Notes":"NoCache";
ludb:="material.nsf";
luview:="xxx";
ptcol:=1;
parts:=@DbColumn(lutype;ludb;luview;ptcol);
selpart:=@Prompt([OkCancelList];"Auswahl";"Bitte wählen Sie den Artikel aus dem Bestand";"";parts);
artikelbez:=5;
selartikelbez:=@DbLookup(lutype;ludb;luview;selpart;artikelbez);
preis:=8;
selpreis:=@DbLookup(lutype;ludb;luview;selpart;preis);
FIELD RechnungFakt_1:=@Trim(RechnungFakt_1:artikelbez);
FIELD RechnungsWert_1:=@Trim(RechnungWert_1:selpreis);
@Command([ViewRefreshFields])
Jetzt bekomme ich die Meldung Datenbank nicht gefunden - Server wählen...
???
Grüsse Detlef
-
aus der Hilfe
To perform a lookup on a local database, use "" for the server name and specify the database name explicitly, such as "":"DATABASE.NSF."
-
... gib für deine luDB auch den Server mit an - es muß ein Array sein:
ludb:= "" : "material.nsf";
... für lokal
-
maxima mea culpa
Es lag an der Ansicht. Die Spalten waren nicht als "allgemein" sondern als Zahl definiert.
Hier noch mal zum Abschluß der Code der funktioniert.
lutype:="Notes":"NoCache";
ludb:= "servername/firma/de" : "material.nsf";
luview:="xxx";
ptcol:=1;
parts:=@DbColumn(lutype;ludb;luview;ptcol);
@Prompt([OkCancelList];"Auswahl"; "Bitte waehlen Sie den Artikel aus dem Bestand";"";parts);
.....
Vielen Dank für Eure Tipps.. die mir letztlich doch die Augen geöffnet haben
Viele Grüße Detlef