Domino 9 und frühere Versionen > ND6: Entwicklung
Maske übernehmen
TripleH:
Hi all;
Ja am besten erklär ichs nochmal hab das wohl nicht geschickt genug erklärt.:)
Ok ich habe eine Kalkulationsmaske in der man diverse Dinge über Dialoglisten aussuchen kann.
In einem Ergebnisfeld wird dann alles zusammengerechnet je nach dem was man ausgewählt hat.
Diese Maske kann man über einen Button abspeichern (wird in der Ansicht "doppelt" gespeichert).
Wenn ich z.B. später in der Maske Kalkulationen ändern möchte ruf ich Sie über die Ansicht doppelt wieder auf.
Allerdings kann ich jetzt nichts mehr in der Maske Kalkulation machen(also das vorher in den Dialoglisten gewählte kann man nicht mehr ändern).
Und ich würde diese Maske gern nochmal ändern dann nachdem sie irgendwann gespeichert wurde und ich sie dann wieder aufruf.
Oh ich hoff ich habs nen bißchen besser gemacht.
Gruß
TMC:
Nochmal zu Deinem Doppelposting:
Es wird vielfach im Internet als unverschämt angesehen, wenn in verschiedenen Foren sehr zeitnah doppelt gepostet wird (also wie bei Dir 5 Minuten Unterschied).
Das mindeste was zu erwarten wäre, ist jeweils der Hinweis mit Link, wo noch gepostet wurde.
Doppelposting generell erst nach einiger Zeit, nachdem z.B. im Forum 1 keiner helfen konnte nach mehreren Tagen ! Und eben dann Link-Hinweis.
Ich kenne jetzt nicht die Board-Rules von atnotes.de, aber da steht das bestimmt auch so ähnlich drin, also bitte zukünftig beachten.
--- Zitat ---Ok ich habe eine Kalkulationsmaske in der man diverse Dinge über Dialoglisten aussuchen kann.
In einem Ergebnisfeld wird dann alles zusammengerechnet je nach dem was man ausgewählt hat.
--- Ende Zitat ---
Soweit klar.
--- Zitat ---Diese Maske kann man über einen Button abspeichern (wird in der Ansicht "doppelt" gespeichert).
--- Ende Zitat ---
In einer Ansicht kann nichts gespeichert werden. Schau Dir hierzu erneut nochmal folgenden Text an: http://www.nsftools.com/misc/WhatIsNotes.htm
Du hast höchstens in Deiner Ansicht namens "doppelt" in der Ansichtsauswahl eine Formel à la SELECT Form = "DeineMaske". Dadurch erscheinen dann die gespeicherten Doks u.a. dort.
--- Zitat ---Wenn ich z.B. später in der Maske Kalkulationen ändern möchte ruf ich Sie über die Ansicht doppelt wieder auf.
--- Ende Zitat ---
Eine Maske kannst Du nicht aufrufen aus einer Ansicht, nur ein Dokument, aber ich verstehe was Du meinst: Du ruft das Dokument aus der Ansicht auf. In dem Dokument steht im Feld FORM "Kalkulationen", daher öffnet sich das Dok in der Maske "Kalkulationen".
--- Zitat --- Allerdings kann ich jetzt nichts mehr in der Maske Kalkulation machen(also das vorher in den Dialoglisten gewählte kann man nicht mehr ändern).
Und ich würde diese Maske gern nochmal ändern dann nachdem sie irgendwann gespeichert wurde und ich sie dann wieder aufruf.
Oh ich hoff ich habs nen bißchen besser gemacht.
--- Ende Zitat ---
Ich gehe mal davon aus Du hast nichts in den Events der Maske drin (Postopen, Querysave etc.)?
Du kannst das Dokument ansonsten per Doppelklick vom Lesemodus (der Default ist beim öffnen eines Dokuments) in den Bearbeitungsmodus versetzen, alternativ gibt es auch einen Menübefehl afaik, "Dok bearbeiten" oder so.
Weiter kannst Du auch einen @Command([EditDocument]) verwenden.
Schau Dir mal folgende DB im Designer an:
http://www.atnotes.de/attachments/POP3-SMTP.ZIP
Die hatte ich mal schnell zusammengeschustert, aber dort sind die wesentlichen Dinge (Dok speichern, wieder öffnen, bearbeiten etc.) gut ersichtlich.
TMC
TripleH:
Hi!
Danke TMC!
Deine Vorlage hat mir viel gebracht man lernt halt immer am besten von Beispielen.
Allerdings hab ich noch soo spät ne kleine Frage. Und zwar speicher ich ja die Kalkulations maske.
Anhand meiner Querysave abfrage schau ich ob dieses Dokument mit meinem key schon vergeben ist.
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim docLookup As NotesDocument
Dim strKey As String
Set doc = Source.Document
Set db = session.CurrentDatabase
Set view = db.GetView( "doppelt" ) 'Verweis auf Ansicht
strKey = doc.name(0) & ", " & doc.vorname(0) & " " & doc.wagen(0) 'Suchstring zusammensetzen
Set docLookup = view.GetDocumentByKey( strKey, True )
If Not (docLookup Is Nothing) Then
Messagebox "Ein Kunde mit diesem Namen ist mit diesem wagen bereits vorhanden!"
Continue = False 'Speichern verhindern
End If
End Sub
Gibt es eine Möglichkeit das Dokumente die ich aufrufe nicht neu abspeichere sondern wenn ich mein Dokument ändere das das aufgerufene dann einfach überschrieben wird?
Besten Dank an euch.
TMC deinen Ratschlag nehme ich mir zu Herzen.
Gerusame Nacht
Axel:
--- Zitat von: TripleH am 04.01.04 - 01:49:17 ---Gibt es eine Möglichkeit das Dokumente die ich aufrufe nicht neu abspeichere sondern wenn ich mein Dokument ändere das das aufgerufene dann einfach überschrieben wird?
Besten Dank an euch.
TMC deinen Ratschlag nehme ich mir zu Herzen.
Gerusame Nacht
--- Ende Zitat ---
Hi,
wenn du ein bestehendes Dokument aufrufst, etwas änderst und dann speicherst, wird kein neues Dokument angelegt, sondern das bestehende geändert. Das ist aber in jedem Programm so.
In deinem QuerySave-Event ist noch ein kleiner Fehler. Siehe mein obiges Posting vom 03.01.04 17:35.
Axel
TripleH:
Hi,
Dank die Axel hab alles supi hinbekommen bis jetzt. Hab nur noch mal ne Frage zum Querysave Code. Der ja zur Zeit so aussieht:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim docLookup As NotesDocument
Dim strKey As String
If Source.IsNewDoc = true Then 'Prüfen ob es sich um ein neues Dok. handelt. Wenn ja, dann erfolgt Prüfung
set doc = Source.Document
Set db = session.CurrentDatabase
Set view = db.GetView( "doppelt" ) 'Verweis auf Ansicht
strKey = doc.Name(0) & ", " & doc.Vorname(0) 'Suchstring zusammensetzen
Set docLookup = view.GetDocumentByKey( strKey, True )
If Not (docLookup Is Nothing) Then
Messagebox "Ein Kunde mit diesem Namen ist bereits vorhanden"
Continue = False 'Speichern verhindern
End If
End If
End Sub
Allerdings will ich noch ne Abfrage einbauen wenn das Dokument nicht neu ist(also ich ein bestehendes aufrufen und es verändern) das er dort nicht die Abfrage macht ob der Name (also der key) schon vorhanden ist sondern einfach ja dann überspeichert.
Müsste es dann so aussehen?
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim docLookup As NotesDocument
Dim strKey As String
If Source.IsNewDoc = false Then (beende die Abrfrage?)
If Source.IsNewDoc = true Then 'Prüfen ob es sich um ein neues Dok. handelt. Wenn ja, dann erfolgt Prüfung
set doc = Source.Document
Set db = session.CurrentDatabase
Set view = db.GetView( "doppelt" ) 'Verweis auf Ansicht
strKey = doc.Name(0) & ", " & doc.Vorname(0) 'Suchstring zusammensetzen
Set docLookup = view.GetDocumentByKey( strKey, True )
If Not (docLookup Is Nothing) Then
Messagebox "Ein Kunde mit diesem Namen ist bereits vorhanden"
Continue = False 'Speichern verhindern
End If
End If
End Sub
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln