Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: schlissm am 18.11.04 - 11:14:02
-
...ein neuer Tag ein neues Problem :
Bastle grad an einer Inventardatenbank rum.
Läuft auch alles soweit so gut ...
Habe Dokumente vom Typ „Hardware“ und Dokumente vom Typ „Software“.
Im Dok „Hardware“ gibt es das Feld Software in dem der Name der Software sowie die DocID gespeichert wird – Trennzeichen = „|“.
Im Dokument Software gibt es ein Feld das den Namen der Hardware enthält.
Nun mein Problem :
Möchte in der Ansicht „viewSoftware“ einen Button einbauen zum Löschen der Software Doks. Es wird ein Agent gestartet. Wie ich das/die Dok(s) lösche hab ich hinbekommen @DeleteDocument ... war nicht so schwer ;)
NUR möchte ich VOR dem löschen in das Dokument Hardware gehen und die entsprechende Software auch dort aus dem Feld „Software“ löschen ...
Steh da grad aufm Schlauch ... ich hoffe ihr könnt mir helfen bzw. werdet aus meiner Beschreibung schlau ;)
-
Du brauchst eine Ansicht, die in der 1. Spalte die Software-DocUNIDs darstellt. In der zweiten Spalte hast Du die DocumentUnique-ID des Hardware-Dokuments.
Mit @DBLookup holst Du Dir die DocumentQuiqueID des Hardware-Dokuments und kannst dieses dann mit @SetDocField manipulieren.
HTH,
Bernhard
-
Wow das war schnell! Danke schon mal
Was ich grad noch nicht so verstehe ist wie ich die Docids von der markierten Software Dokumenten raus bekomme ... und wie ich dann den View entsprechend betüttel ...
....mach sowas grad zum ersten Mal :(
-
Die DocumentUniqueIDs der markierten Dokumente stehen Dir doch unmittelbar zur Verfügung ... Mit Deiner Frage kann ich so erstmal nix anfangen.
Bernhard
-
Ich glaub ich hab grad sooooooooooooo n riesen Brett vorm Kopf!
Das Problem ist das ich "nichts" weiss ...
Ich weiss das der Agent dieses @DeleteDocument auf alle Doks anwendet aber wie macht der das? Kann man das so verstehen das der Agent für jede Makierung aufgerufen wird? Ich versteh die Logik grad garnicht ... :(
Kann ich mir alle DocIds ausgeben lassen?
:-[
-
Er führt - wenn er "auf ausgewählte Dokumente" eingestellt ist - den Code für jedes markierte Dokument aus.
Bernhard
-
okay soweit hab ichs verstanden ! Hab mal n Prompt rein gebaut und der kam echt mehrfach hoch ;)
Jtzt versteh ich nur noicht wie ich son kombinierten View hinbekomme der mir die dociid von software UND hardware anzeigt ...:(
-
Ganz einfach. Du brauchst eine View, die alle Hardware-Dokumente anzeigt. In der ersten Spalte zeigst Du die Werte aus dem Software-Feld an, also die DocUNIDs der zugehörigen Software-Dokumente.
In der zweiten Spalte zeigst Du die DocUNID des Hardwaredokuments an.
-
ok die Ansicht hab ich ... Das bringt mich zu dem Code
xDB := "";
xServer := "";
xView := "deleteacc";
xColumn := 2;
xkey := @Text(@DocumentUniqueID);
xLookup := @DbLookup( "":"NoCache"; xServer : xDB; xView; xKey; xColumn );
xTemp := @GetDocField(xLookup; Accessories);
der View "deleteacc" zeigt in der ersten Spalte die DocId der "software" an, in der zweiten die DocId vom Hardware Dok.
Also müsste doch in xLookup die DocID der Hardware stehen oder ?
Und in XTemp der Inhalt des Feldes ! ?
Dann kommt wieder ein Problem : in dem Feld Accessories können mehrere Werte gespeichert sein ich will aber nur den löschen der die selbe docid hat ..
Wie lösche ich aus einer Liste einen Wert ?