Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Boox am 10.02.15 - 10:36:03

Titel: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: Boox am 10.02.15 - 10:36:03
Hallo alle zusammen! Ich brauche etwas "Starthilfe" von Euch. Ich habe eine Datenbank mit Betreuungseinheiten und zugeordneten Kunden, ein Kunde kann mehreren Einheiten zugeordnet sein. In der Ansicht sieht das etwa so aus:

Betreuungseinheit A
          - Kunde 1
          - Kunde 2
          - Kunde 3

Betreuungseinheit B
          - Kunde 2
          - Kunde 4
          - Kunde 6

Betreuungseinheit C
          - Kunde 1
          - Kunde 2
          - Kunde 6

....

Für jeden Eintrag gibt es ein Dokument, also ich gehe nicht über Mehrfachwerte (das führte an anderer Stelle zu Problemen, daher ist dieser Weg besser für mein Vorhaben). Nun möchte ich eine Schaltfläche bauen um Kunden in eine andere Einheit zu verschieben, also beispielsweise Kunde 6 in die Einheit A. Gleichzeitig möchte ich aber auch, dass der Kunde 6 aus der Betreuungseinheit C entfernt (bzw. aus der Ansicht ausgeblendet) wird, also anschließend nur noch in A vorhanden ist.

Das Verschieben von B nach A ist ja kein Problem und auch mit Formelsprache machbar (@SetField("Einheit"; Zieleinheit), für den Rest benötige ich vermutlich Script?! Da bin ich allerdings (immer) noch Anfänger...

Ich möchte hier nicht um "fertigen Code" betteln, ich benötige einfach nur ein paar Denkanstöße über welche Klassen/Methoden das am besten zu bewerkstelligen ist :)


Viele Grüße


Gregor
Titel: Re: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: ascabg am 10.02.15 - 10:39:26
Hallo,

Prinzipiell ist dein Vorhaben auch mit @Formeln realisierbar.

Nur eine kleine Frage haette ich.

Was passiert, wenn du z.B. deinen Kunden 1 der Betreuungseinheit B und C zuordnen willst?


Andreas
Titel: Re: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: Boox am 10.02.15 - 10:42:28
Halo Andreas,
ich habe vergessen zu erwähnen: Am Ende soll ein Kunde nur in einer Einheit auftauchen. Also man würde ihn dann einfach nur verschieben!

Viele Grüße

Gregor
Titel: Re: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: Peter Klett am 10.02.15 - 10:55:25
Wenn ein Kunde nur einer Einheit angehört, hast Du doch kein Problem, denn wenn Du die Einheit des Kunden 6 von C auf A änderst, steht der Kunde nicht mehr unter C.

In Deinem Beispiel hast Du aber mehrere Einheiten einem Kunden zugeordnet. Falls das Altlasten sind, müsste da wohl jemand mal drin aufräumen.

EDIT: Falls das das Problem ist, was Du lösen willst

Mit NotesDatabase.Search nach den doppelten Dokumenten suchen (gleicher Kunde), die dann löschen (wäre fatal, wenn das ginge, denn dann hätten die User Löschrechte in der Datenbank) bzw. mit einem Flag versehen, dass die nicht mehr in den Ansichten erscheinen und später von einem Admin oder periodischen Agenten gelöscht werden.

Als Search übergibst Du eine Selektionsformel, wie in einer Ansicht. Also alle Dokumente mit der gleichen Kundennummer, wie der des aktuellen Dokuments, aber nicht mit der ID. Etwa so

Set col = db.Search (|Kunde = "| & doc.Kunde (0) & | " @Text (@DocumentUniqueID) != "| & doc.UniversalID & |"|, Nothing, 0)

Danach ein Flag mit StampAll einfügen oder mit RemoveAll alle löschen (siehe oben)
Titel: Re: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: Boox am 10.02.15 - 11:03:21
Hallo Peter,
Genau um das Aufräumen geht es ja ;) Oder besser gesagt: Neustrukturierung.

Zu deinem Hinweis: Dann steht der Kunde aber noch unter B. Und das soll möglichst "automatisch" gelöst werden, ohne dass ich den Kunden 6 unter B nochmal anfassen muss. In dem Beispiel ist das ja schnell gemacht, aber es gibt Kunden, die in 20 Einheiten sind.
Titel: Re: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: Peter Klett am 10.02.15 - 11:04:07
siehe mein EDIT im Post oben
Titel: Re: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: Boox am 10.02.15 - 11:08:01
Ah, das klingt doch gut, werde ich mir mal anschauen! Vielen Dank!


P.S: Natürlich sollen (und dürfen) sie auch nicht löschen, mache das selbstverständlich über nen Flag :D
Titel: Re: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: Boox am 10.02.15 - 12:58:05
So, dank Peters Hilfe bin ich einen großen Schritt weiter! Aus dem Dokument heraus klappt das schon mal. Allerdings möchte ich es gerne auch aus der Ansicht heraus erledigen.

Ich habe es bisher jedoch nicht hinbekommen. Mein Problem: Wie kann ich denn das ausgewählte Dokument in der Ansicht "greifen", so dass ich dann auf die Felder zugreifen kann? Vom Gefühl her hätte ich gesagt, über die NotesUIView gibt's bestimmt sowas wie eine "GetDocument"-Methode...da finde ich jedoch nichts...nur in der DocumentCollection-Klasse, aber die Collection habe ich ja noch gar nicht. Oder habe ich da einfach nen Denkfehler?



Hier schon mal mein Code, der aus dem geöffneten Dokument funktioniert.

Sub Click(Source As Button)
   Dim workspace As New NotesUIWorkspace
   Dim session As New NotesSession   
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim uidoc As NotesUIDocument
   
   Set uidoc = workspace.CurrentDocument
   Set doc=uidoc.document
   Set db=session.CurrentDatabase
   
   Set collection = db.Search (|kd_kdnr = | & doc.kd_kdnr (0) & | & @Text (@DocumentUniqueID) != "| & doc.UniversalID & |"|, Nothing, 0)
   
   Call collection.StampAll("Test", "2")
   
End Sub
Titel: Re: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: ascabg am 10.02.15 - 13:11:34
Hallo,

Ein Ansatz waere NotesDatabase.UnprocessedDocuments


Andreas
Titel: Re: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: koehlerbv am 10.02.15 - 13:30:07
Und dann mit NotesDocumentCollection.Count = 1 prüfen, ob da wirklich nur ein Dokument gewählt wurde (dafür reicht es auch, den Cursor einfach auf das Dokument zu stellen, Haken ist nicht erforderlich). Nicht, dass da vorher schon Dokumente ausgewählt wurden, die dann für den User klammheimlich mit umgebogen werden.

Bernhard
Titel: Re: Dokument verschieben und gleichzeitig ähnliche Dokumente ausblenden
Beitrag von: Boox am 10.02.15 - 13:32:59
Es klappt, vielen Dank, Andreas! Da muss man aber auch erstmal drauf kommen ;)

Und danke auch an Bernhard, baue das gleich mal rein!