Domino 9 und frühere Versionen > ND6: Entwicklung

Antwortdokumente kopieren?

(1/5) > >>

wuwu:
Hallo Profis,

ich habe eine prinzipielle Frage wie ich die folgende Aufgabe lösen sollte bzw. wie ihr soetwas  umsetzen würdet!

Ich habe eine Eingabemaske Anfragen, die beinhaltet ein Feld mit dem Namen Kostenträger.
Des weiteren eine Maske(mit Antwortdokumente) die nennt sich Arbeitsschritte, beinhaltet mehrere Felder wie Bezeichnung usw.

Momentan ist es so, in der Maske Anfragen wird der Kostenträger ausgewählt. Und perr Button werden die einzelnen Arbeitsschritte(Antwortdokumente) hinzugefügt- > dargestellt in einer eingebetteten Ansicht - funktioniert alles bestens.

Nun ist es aber so, das pro Kostenträger die Arbeitsschritte meistens immer gleich sind. Wie würdet Ihr das realiseren?
Ziel ist also: Wenn ich einen Kostenträger auswähle, dass er mir dann die einzelnen Arbeitsschritte zum Dokument bzw. eingebettete Ansicht hinzufügt?

Ich hoffe es hilft mir wer, bei der Lösung meines Problems, bin für jeden Rat dankbar!

Mfg Horst

TMC:
Du hast ja sicherlich Gründe, dass Du jeweils mit Antwortdokumenten arbeitest.


--- Zitat ---Ziel ist also: Wenn ich einen Kostenträger auswähle, dass er mir dann die einzelnen Arbeitsschritte zum Dokument bzw. eingebettete Ansicht hinzufügt?
--- Ende Zitat ---

Ich weiß nicht wie ein Kostenträger ausgewählt wird, aber es ist ein Trigger. Dieser Trigger (oder z.B. separater Button) könnte dann per LotusScript Antwortdokumente erstellen, entsprechend füllen und speichern.

Ergo: Antwortdokumente per LotusScript erstellen, siehe u.a. die MakeResponse Methode der NotesDocument-Klasse.

dirk_2909:
Hallo Horst,

wenn Du mit eingebetteten Ansichten arbeiten möchtest, ist das doch auch überhaupt kein Problem. Und Du erzeugst noch weniger Dokumente.

Erstelle doch Arbeitsschritt-Dokumente, in denen die Arbeitsschritte beschrieben sind. jedes dieser der Dokumente ist einem oder mehrere Kostenträgern zugeordnet.

In der Eingabemaske für die Anfrage fügst Du eine Embedded View ein. Die Single Categorie der View muss sich auf das Feld Kostenträger beziehen.
Die Ansicht muss nach Kostenträger kategorisiert sein.

Wenn der Anwender jetzt die Kostenstelle auswählt, werden die entsprechenden/zugeordneten Arbeitsschritte angezeigt (nach einem refresh des UI-Docs).

Natürlich kann man keine evtl. Bearbeitung in den Arbeitsschrittdokumente machen :-(

Dann geht nur die Lösung von TMC !

Dirk

wuwu:
Hallo TMC & Dirk,

die Lösung von TMC gefällt mir sehr gut!

Habe eine Maske Request -> Typ Dokument -> Feld KTR
Habe eine Maske Arbeitsplan -> Typ Dokument -> Feld T_KTR

Wir haben ca. 250 Arbeitspläne erstellt, in dem das Feld t_KTR(Kostenträger) auch ausgewählt wurde.

Ich bin momentan soweit, das wenn ich in ein neues Dokument - Maske Request erstelle und dort ein Kostenträger ausgewählt ist, das er mir nur die Dokumente anzeigt, die auch zum ausgewählten Kostenträger passen.

Script:
Sub Click(Source As Button)
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Set db = session.CurrentDatabase
   
   Dim ws As New NotesUIWorkspace   
   Dim uidoc As notesuidocument
   Dim doc As NotesDocument
   
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   If doc.t_ktr(0) = "" Then
      Exit Sub
   Else
      Dim view As notesview
      Dim v_doc As NotesDocument
      Dim var As String
      
      Set view = db.GetView("$Test")
      Set dc = view.GetAllDocumentsByKey(doc.t_KTR(0))   
      Set v_doc = dc.GetFirstDocument
      
      Do Until v_doc Is Nothing
         var = var & v_doc.t_KTR(0) & Chr(10)
         Set  v_doc = dc.GetNextDocument(v_doc)
      Loop
      Msgbox var
   End If
End Sub

Ich weis jetzt aber nicht wie ich aus den Arbeitsplänen, Antwortdokumente für die Request Maske erstelle. Wenn ich mich nicht richtig ausgedrückt habe bzw. etwas unklar ist, einfach melden!

dirk_2909:
@Horst

In etwa so:

Set docResponse = db.CreateDocument

With docResponse
    .Form = "MaskenNamederArbeitsschritte"
    REM Hier weitere Werte aus v_doc und doc übergeben
    '......
    Call .MakeResponse( doc )
    Call .Save( True , True )
End With


Die genauen Werte musst Du natürlich noch übergeben. Ich habe Dir nur die Richtung vorgegeben.

Dirk

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln