Domino 9 und frühere Versionen > ND6: Entwicklung

Maske übernehmen

<< < (4/7) > >>

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