Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: matzge am 24.07.03 - 15:07:02
-
Hallo!
Ich arbeite gerade an einer Datenbank für unsere firmeninterne Bibliothek.
Über ein Formular gebe ich alle benötigten Daten ein, die danach in einem View angezeigt werden.
Jetzt möchte ich dass ich in einem anderen Formular (das ich auf "Buttondruck" öffne) die Daten dieses Views anzeigen kann, sodass sie verändert werden können.
Wie schaffe ich es also, dass ich bestimmte Daten aus einem View in ein Formular übergeben kann.
Danke für jede Hilfe oder Anregung
Roland
-
Daten aus einer View in ein Document?
Das wird wohl nichts. Wenn ein Document in einer View den Fokus hat und in den Eigenschaften der Maske für das neue Dokument die Eigenschaft "Formulas inherit values from selected document" angehakt ist, kanns du Werte aus genau diesem einen Dokument in das neue ohne Progammierung übernehmen.
Für alles andere müsstest du dir per LotusScript die selektierten Dokumente holen und dann über die Eigenschaft ColumnValues die View-Einträge holen.
-
Danke für die schnelle Antwort.
Die Sache mit "Formulas inherit values from selected document" war ein sehr heißer Tip denke ich.
Meine Schaltfläche mit der ich das neue Formular öffnen will in dem die Daten erscheinen sollen ist mit folgender Formel belegt: @Do(@Command([Compose];"Editform").
D.h. es müsste ein leeres Dokument erstellt werden. Aktiviere ich aber das "Formulas inherit values from selected document" in der "Editform" werden trotzdem keine Daten des Dokuments das den Fokus hat angezeigt.
Muss ich das Formular über eine andere Formel öffnen?
Grüße und Danke
Roland
-
Wenn in der Formel sonst nichts steht, ist das @Do überflüssig, aber es dürfte auch nicht schaden.
Was ist mit den Feldnamen?
-
Ich habe zuerst versucht in dem neuen Formular die Felder gleich wie die Felder
in dem Eingabeformular zu nennen: Ohne Erfolg
Auch habe ich die Felder gleich wie die Column´s im View genannt und auch die Felder ganz anders benannt: Ohne Erfolg
Grüße Roland
-
Ich habe zuerst versucht in dem neuen Formular die Felder gleich wie die Felder
in dem Eingabeformular zu nennen: Ohne Erfolg
So (oder mit einer Formel, die sich auf den Feldnamen bezieht) sollte es gehen. Colmn Titles haben nichts zu sagen. Das kann nur noch irgendwas ganz Blödes sein, was da nicht stimmt. Allerdings habe ich spontan leider keine Idee...
-
Hi,
die Felder müssen genauso heißen wie die Felder in der Maske, aus der du die Daten übernehmen willst. Zusätzlich mußt du jeweils den Feldnamen nochmals in die Vorgabewerte aufnehmen.
D.h. ein Feld das Name heißt bekommt in den Vorgabewert auch Name rein.
Axel
-
... die felder im neuen doc MÜSSEN den gleichen namen haben wie die felder um ursprungsdoc.
in den maskeneigenschaften "felder autom. aktualisieren" anhaken.
und "formeln übernehmen... " anhaken.
dann muss natürlich vorher ein doc ausgewählt sein, wenn ein neues doc erstellt wird.
-
Jetzt klappts!! ;D ;D
Habe noch ein paar Sachen geändert und jetzt funzt es.
Danke für den Tip mit "Formulas inherit values from selected document".
Ohne den hätte das nie geklappt
Grüße und Danke
Roland
-
Hi,
setzt du dann bitte den Thread noch auf "Erledigt". Danke.
Axel
-
Nochmal ein kurzer Schwischenruf:
Die Feldnamen müssen meiner Meinung nach nicht unbedingt gleich sein, es genügt, in der Formel auf den Feldnamen im Ursprungsdokument zu verweisen ...
-
Nochmal ein kurzer Schwischenruf:
Die Feldnamen müssen meiner Meinung nach nicht unbedingt gleich sein, es genügt, in der Formel auf den Feldnamen im Ursprungsdokument zu verweisen ...
Hi,
yoo, du hast recht. Die Felder mpssen nicht zwangläufig so heißen wie im Ursprungsdokument. Lediglich im Vorgabewert muß der passende Feldname drinstehen.
Axel
-
Hallo!
Die Werte aus dem Dokument werden jetzt toll in das neue Formular übernommen. (Ich freute mich ja gestern schon)
Wenn ich in diesem Formular aber Werte ändere und speichere, werden sie nicht übernommen. Was läuft da falsch? Zum Zweck der änderung von bestimmten Daten wäre dieses Formular ja gedacht.
Grüße und Danke
Roland
-
Hi,
die Werte werden nur einmal übernommen, und zwar beim anlegen und sonst nicht mehr.
Notes ist keine relationale Datenbank.
So was müsstest du mit einigem Aufwand selbst nachprogrammieren.
Axel
-
Dann werd ich wohl meine Pläne ändern müssen :'(
Ist es dann möglich das Häkchen bei "Hide paragraph if formula is true" über einen Button zu beeinflussen? (Oder generell "Field Properties" über einen Button zu beeinflussen)
Grüße und Danke
Roland
-
Hi,
wenn du über den Button ein Feldwert änderst auf den in der Hide-When-Formel zugegriffen wird, ja.
Das Ändern von Feld-Eigenschaften ist wenn, nur über die C-API möglich. Bin mir da aber nicht sicher was da überhaupt geht. Die grosse Gefahr die ich dabei sehe ist, wenn du eine Feldeigenschaft änderst, kann der Feldinhalt verloren gehen.
Axel
-
> wenn du über den Button ein Feldwert änderst
> auf den in der Hide-When-Formel zugegriffen wird, ja
Hallo!
Ich habe jetzt genau das gemacht. D.h. über einen Button weise ich einem Feld die Werte "1" oder "2" zu.
Im Feld das ich anzeigen (oder nicht anzeigen) will, habe ich in die "Hide paragraph when Formula is true" Formel folgendes geschrieben:
Hiddenfield = "1".
Wenn ich aber im Formular dann auf den Button klicke, ändert sich zwar richtigerweise der Wert in dem Feld zwischen "1" und "2". Das Feld auf das sich die Formel bezieht wird aber trotzdem nicht versteckt.
Was habe ich falsch gemacht?
Grüße
Roland
-
... nix, einmal refresh, dann sollte es gehen.
ist in den maskeneigenschaft "felder autom. aktualisieren" angehakt ?
-
Hi,
du musst das Dokument noch aktualisieren.
Formel: @Command([ViewRefreshFields])
Script:
...
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Call uidoc.RefreshHideFormulas
...
Axel
-
Hallo!
Ich habe "autorefresh" aktiviert, leider funktioniert die Sache noch nicht.
Ist die Syntax meiner Hide Formula richtg: Hiddenfield = "1"
@Axel: Gibt es auch in JavaScript eine Funktion zum Refreshen der Fields, da ich alle Buttonfunktionen mit JavaScript behandle.
Grüße
Roland
-
Hallo!
Ich habe jetzt den Fehler gefunden, warum die Sache nicht funktioniert hat.
Der Feldtyp der Feldes dem ich 1 oder 2 zuweise war auf Number. Mit dem Typ Text funktioniert die Sache.
ABER: Sie funktioniert nur einmal. D.h. Wenn ich auf den Button klicke wird das Feld versteckt. Außerdem verschwindet auch der Button selbst nach dem Refresh. (Ist klar, da automatisch auch beim Button das "Hide if formula is true" aktiviert wird.) Wenn dies aber beim Button deaktiviere so wird es auch beim Feld deaktiviert. Kann man die beiden "entkoppeln"?
Speichere ich das Dokument dann taucht der Button nie wieder auf, d.h. ich kann das versteckte Feld nicht wieder anzeigen.
Vielleicht weiss jemand Rat, es wäre wirklich wichtig.
Grüße und Danke
Roland
-
Hi,
liegt der Button und das Feld im gleichen Absatz? Wenn ja, ist es klar warum. Die Hide-When-Formel gelten pro Absatz und nicht für jedes Objekt getrennt.
Positioniere die beiden mal in zwei verschiedene Absätze.
Axel
-
Danke Axel
Genau das habe ich jetzt getan und jetzt funktioniert die Sach wirklich.
Einziges Problem: Ich muss noch immer per Hand refreshen, da wie gesagt mein Button JavaScript verwendet und ich dort nicht weiss wie man refreshed.
Vielleicht weisst du wie das funktionieren könnte, bzw. vielleicht könntest du mir eine Formula sagen die den selben Zweck wie mein JavaScript für den Button (also das übergeben der Werte "1" bzw "2" in das Feld) erfüllt.
Ich habs zwar schon mit einer Formula probiert, die funktioniert aber nicht.
Grüße und Danke
Roland
-
Hi,
wenn der Button nichts anderes macht als eine Feldwert setzen, ist das relativ einfach.
Angenommen das Feld heißt Status und der Wert kann nur "1" oder "2" sein, dann muß die formel so aussehen:
FIELD Status := Status;
@If(Status = "1"; @SetField("Status"; "2"); @SetField("Status"; "1"));
@Command([ViewRefreshFields]);
Axel
-
DANKE Axel!
Jetzt funktioniert die Sache wie ich will!!!
Danke nochmal an alle die geholfen haben und
Grüße
Roland