Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: TripleH am 31.12.03 - 14:30:42

Titel: Maske übernehmen
Beitrag von: TripleH am 31.12.03 - 14:30:42
Hallo!
Tut mir Leid das ich so viel Frage aber wer nicht fragt bleibt dumm:)
Und zwar hab ich eine Maske "Kunden erfassen"in der ich Daten speichern kann die in der Ansicht Kunden gespeichert werden und nach Nachnamen geordnet sind. Allerdings wie kann ich verhindern das Namen Doppelt angelegt werden?
Nachnamen können ja identisch sein aber beim Vornamen muss ja dann unterschieden werden.
Meine 2, Frage ist folgende: Von der Maske Kunden erfassen werden die Daten gespecihert und dann spring ich rüber zu der Make Kalkulationen wo Berechnungen zu dem Kunden gemacht werden. Wie kann ich erreichen das die Daten aus der Maske Kunden erfassen dann automatisch im Kopf von der Maske Kalkulationen steht?
Vielen Dank
Titel: Re:Maske übernehmen
Beitrag von: Axel am 31.12.03 - 15:02:58
Hi,

eine Lösung für die Prüfung auf doppelte Einträge, wäre eine Prüfung im QuerySave - Event der Maske. Dazu legt du dir eine Ansicht an, die in der ersten Spalte den Nach- und den Vornamen anzeigt und aufsteigend sortiert ist. Im QuerySave-Event prüfst du mit der GetDocumentByKey-Methode aus der NotesView - Klasse, ob es schon Einträge gibt.

Zur zweiten Frage:
Es gibt in den Maskeneigenschaften die Option "Formel übernehmen Werte aus gewähltem Dokument". Diese markierst du in der Maske Kalkulationen. In die Felder, die Daten aus der Kunden-Maske anzeigen sollen, trägst du als Vorgabewert-Formel oder als Werte-Formel (je nachdem ob es berechnete oder bearbeitbare Felder sein sollen) die entsprechenden Feldnamen aus der Kunden-Maske ein. Die Feldnamen selbst müssen nicht unbedingt identisch sein.

Axel
 
Titel: Re:Maske übernehmen
Beitrag von: TripleH am 31.12.03 - 17:11:34
Hallo!
Danke zur 2. Frage hat supi geklappt leider bei der 1. noch nicht so ganz und zawr hab ich jetzt noch eine Ansicht "doppelt" erstellt in der die 1. Spalte der Nachname ist und die 2. Spalte der Vorname. Beides in einer Spalte ist doch garnicht möglich oder?
Doch wie ist das mit der GetDocumentByKey-Methode aus der NotesView?Müßte ich in die Kalkulationsmaske wo der speichern Button ist?irgendwie ist mir das noch nicht ganz klar?
Ich hoffe du kannst mir nochmal helfen:)
Titel: Re:Maske übernehmen
Beitrag von: koehlerbv am 31.12.03 - 17:55:02
Beides in einer Spalte ist ohne weiteres möglich. Beispiel:
Code
LastName + ", " + FirstName
Der Key für NotesView.GetDocumentByKey muss dann natürlich identisch aufgebaut werden.

Für das Verfahren ist dann aber noch gaaanz wichtig:
- Prüfen musst Du in dem Moment, wo Kundendaten gespeichert werden (ich vermute mal, dass das NICHT Deine Kalkulationsmaske ist)
- Ist das zu prüfende Dokument neu, darf es mit NotesView.GetDocumentByKey NICHT gefunden werden.
- Wird ein bereits bestehendes Dokument geprüft (falls erforderlich, also, wenn die bereits gemachten Kundenangaben geändert werden dürfen), muss dies über NotesView.GetAllDocumentsByKey erfolgen, und dann darf die resultierende NotesDocumentCollection nur ein Document enthalten mit der selben UNID wie das gerade in der Mache befindliche.

HTH,
Bernhard
Titel: Re:Maske übernehmen
Beitrag von: TripleH am 01.01.04 - 14:06:37
Hallo!
 Leider hab ich noch nicht ganz hinbekommen. Die Daten werden in meiner Kundenerfassen Maske gespeichert.
Dort hab ich mir jetzt Querysave rausgesucht wo dann eine Prozedur erscheint die ich dann so ergänzt hab:

Sub Querysave(source As Notesdocument, Continue As Variant)
Notesview.Getdocumentykey(name +","+vorname,optional byval exactmatch as integer)as notesdocument
End Sub


Leider kommt immer die Fehlermeldung:

Kundenerfassung: Querysave:2 Unexpected; name;Excepted: Expression

Ich Ihr könnt mir nochmal helfen.
Gruß
Titel: Re:Maske übernehmen
Beitrag von: animate am 01.01.04 - 14:37:58
öffne doch mal die Designer Hilfe und such nach der GetDocumentByKey-Methode.
Dann schaust du dort, was die Parameter bedeuten, die du der Methode mitgeben musst und dann hast du dein Problem schon gelöst.
Titel: Re:Maske übernehmen
Beitrag von: TripleH am 01.01.04 - 17:35:40
Hallo!
Du hast recht! Doch das ist meon großes Prob die Hilfe ist nicht installiert und ich kann sie erst Moantag nachinstallieren.
Und jetzt häng ich in der LUFT WEIL MÖCHT SCHON WAS TUN BIS DAHIN:
Ich hoffe du bringst es übers Herz und bist heut mal meine Hilfe:)
Titel: Re:Maske übernehmen
Beitrag von: TMC am 01.01.04 - 17:43:57
Download hab ich Dir ja glaub ich schon gepostet:

Download Designer Hilfe (http://www-10.lotus.com/ldd/notesua.nsf/0b345eb9d127270b8525665d006bc355/31ff9be43583a4c7852569810054522f?OpenDocument)

Hier gibts die Hilfe online, also per Browser lesbar:
http://www-12.lotus.com/ldd/doc/domino_notes/5.0.1/help5_designer.nsf

TMC
Titel: Re:Maske übernehmen
Beitrag von: Axel am 02.01.04 - 10:27:17
Hi,

erstmal alles gute im neuen Jahr.

Versuch's mal so:

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) '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 Sub

So sollte das funktionieren. Unter Umständen musst du die Feldnamen und/oder den Namen der Ansicht anpassen.

Axel
Titel: Re:Maske übernehmen
Beitrag von: animate am 02.01.04 - 11:21:11
Gib einem Hungernden einen Fisch, und er wird für einen Tag satt....
Titel: Re:Maske übernehmen
Beitrag von: koehlerbv am 02.01.04 - 15:34:39
@Axel: Dein Vorschlag funktioniert solange, wie nur neue Dokumente angelegt werden. Wird ein vorhandenes Dokument editiert, findet er auf jeden Fall genau dieses Dokument in der Ansicht ...
Also: Dein Code, wenn Source.IsNewDoc = true. Andernfalls muss geprüft werden, ob NotesView.GetAllDocumentsByKey eine NotesDocumentCollection mit mehr als einem Mitglied ergibt.

HTH,
Bernhard
Titel: Re:Maske übernehmen
Beitrag von: TripleH am 03.01.04 - 16:44:36
Hallo!
Auch heute leider wieder kein Tag wo ich Eure Hilfe nicht brauch.
Und zwar hab ich ich eine Kalkulationsmaske welche ich in meine Ansicht doppelt
abspeichere.
Allerdings ist mein Problem wenn ich es später wieder aufrufe um evtl. Änderungen vorzunehmen
hab ich keine Möglichkeit dazu weil man die Dialoglisten nicht mehr bearbeiten kann.
Hat jemand ne Idee wie man das lösen kann?

Und dann hab ich noch ne kleine Frage am Rande. Und zwar springe ich zwischen den Masken mir dem
@Command([Compose];"";"Kundenerfassung") Befehl. Geht das nur um zwischen Masken zu springen weil
wenn ich von einer Maske zu einer Seite springe will bekomme ich immer die Fehlermedlung
"ungültiges oder nicht vorhandenes Dokument!"
Hat jemand ne Erklärung dafür?

Berhard bei deinem letzten Statement ist die Stelle nicht zu finden mit dem Source.IsNewDoc = true!?

Ich Dank euch schon jetzt wieder.
Gruß
Titel: Re:Maske übernehmen
Beitrag von: Axel am 03.01.04 - 17:35:40
@Bernhard

Yoo, hast recht. Hab' ich auf die Schnelle übersehen.  :-\

@TripleH

Bernhard's Statement kannst du auch nicht finden, denn das musst du erst einfügen.

Das könnte ungefähr 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 = 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

Zitat
Und zwar hab ich ich eine Kalkulationsmaske welche ich in meine Ansicht doppelt
abspeichere.
??? ??? Entweder ist heut' nich' mein Tag oder ich stehe auf der Leitung. Kannst du mal erklären, was du damit meinst.

Zitat
Allerdings ist mein Problem wenn ich es später wieder aufrufe um evtl. Änderungen vorzunehmen
hab ich keine Möglichkeit dazu weil man die Dialoglisten nicht mehr bearbeiten kann.
Hat jemand ne Idee wie man das lösen kann?

Ähhmm, bist du im Lese- oder Editmodus. Das hört sich stark nach dem Lesemodus an. Wechsle mal in den Editmodus, dann solltest du das Dokument bearbeiten können.

Axel

Titel: Re:Maske übernehmen
Beitrag von: animate am 03.01.04 - 17:49:32
Hallo!
Auch heute leider wieder kein Tag wo ich Eure Hilfe nicht brauch.
Und zwar hab ich ich eine Kalkulationsmaske welche ich in meine Ansicht doppelt
abspeichere.
Allerdings ist mein Problem wenn ich es später wieder aufrufe um evtl. Änderungen vorzunehmen
hab ich keine Möglichkeit dazu weil man die Dialoglisten nicht mehr bearbeiten kann.
Hat jemand ne Idee wie man das lösen kann?

ich glaube, ich habs mir jetzt 12x durchgelesen und checks einfach net. Bitte erklär das echt nochmal.

Zitat
Und dann hab ich noch ne kleine Frage am Rande. Und zwar springe ich zwischen den Masken mir dem
@Command([Compose];"";"Kundenerfassung") Befehl. Geht das nur um zwischen Masken zu springen weil
wenn ich von einer Maske zu einer Seite springe will bekomme ich immer die Fehlermedlung
"ungültiges oder nicht vorhandenes Dokument!"
Hat jemand ne Erklärung dafür?

@Command([Compose]) erzeugt neue Dokumente mit einer angegebenen Maske (bei dir Kundenerfassung )
um eine Seite zu öffnen, gibts ein anderes @Commad

Syntax
@Command( [OpenPage] ; page )
Parameters
page
Text. The name of a page defined for the current database.
Titel: Re:Maske übernehmen
Beitrag von: TMC am 03.01.04 - 18:07:48
Doppelposting auch noch:

www.spotlight.de am 03.01.2004 um 16:49:18:

Zitat
Speichern von Masken

Hallo!
Auch heute leider wieder kein Tag wo ich Eure Hilfe nicht brauch.
Und zwar hab ich ich eine Kalkulationsmaske welche ich in meine Ansicht doppelt
abspeichere.
Allerdings ist mein Problem wenn ich es später wieder aufrufe um evtl. Änderungen vorzunehmen
hab ich keine Möglichkeit dazu weil man die Dialoglisten nicht mehr bearbeiten kann.
Hat jemand ne Idee wie man das lösen kann?

Und dann hab ich noch ne kleine Frage am Rande. Und zwar springe ich zwischen den Masken mir dem
@Command([Compose];"";"Kundenerfassung") Befehl. Geht das nur um zwischen Masken zu springen weil
wenn ich von einer Maske zu einer Seite springe will bekomme ich immer die Fehlermedlung
"ungültiges oder nicht vorhandenes Dokument!"
Hat jemand ne Erklärung dafür?
Ich Dank euch schon jetzt wieder.
Gruß

Geschickt von shrug am 03.01.2004 um 16:49:18

Titel: Re:Maske übernehmen
Beitrag von: TripleH am 03.01.04 - 20:46:50
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ß
Titel: Re:Maske übernehmen
Beitrag von: TMC am 03.01.04 - 21:43:08
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.
Soweit klar.

Zitat
Diese Maske kann man über einen Button abspeichern (wird in der Ansicht "doppelt" gespeichert).
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.
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.

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
Titel: Re:Maske übernehmen
Beitrag von: TripleH am 04.01.04 - 01:49:17
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
Titel: Re:Maske übernehmen
Beitrag von: Axel am 04.01.04 - 11:22:46
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

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
Titel: Re:Maske übernehmen
Beitrag von: TripleH am 04.01.04 - 18:29:19
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
Titel: Re:Maske übernehmen
Beitrag von: animate am 04.01.04 - 18:47:15
yep.

aussteigen kannst du mit

Exit Sub
Titel: Re:Maske übernehmen
Beitrag von: Axel am 05.01.04 - 10:54:16
Hi,

der Code im QuerySave-Event muss 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 = 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

Es reicht die Abfrage If Source.IsNewDoc = true. Wenn diese Bedingung erfüllt ist, also es sich um ein neues Dokument handelt, wird die Prüfung durchgeführt. Bei einem bestehenden Dokument passiert nichts. Es wird nur gespeichert.


Axel
Titel: Re:Maske übernehmen
Beitrag von: TripleH am 09.01.04 - 14:28:54
Hallo!

Ich hab mal wieder ein kleines neues Prob.
Und zwar hab ich ja noch immer meine Kalkulationsmaske in der Kundendaten erfasst und berechnt werden.
Die Maske wir ja in der Ansicht "doppelt" gespeichert.
So und jetzt zu meinem Prob in einer anderen Maske hab ich einen Button "Neukunden"
und wenn ich auf den drücke möcht das sich eine Ansicht aufmacht in der nur die Kunden sind die neu angelegt
wurden(also neu angelegte Dokumente).
Ausserdem wenn dann die neuen Dokumente einmal aufgerufen habe sollen sie dann automatisch aus der Liste
gelöscht werden.
Wenn man dann einen auswählt aus der Liste der Neu Kunden sollen dann die Daten aus der Kalkulationsmaske
erscheinen.
Ich denk mal möglich ist es ja genau das gleiche Dokument aufzurufen welches welches als Kalkulationsmaske schon
mal abgespeichert wurde, aber ist es auch möglich das dann z.B. die ganzen Buttons wie "speichern"
die in der Kalkulationsmaske sind dort nicht mehr erscheinen?
Kennt jemand einen Weg wie ich das realisieren kann?
Würd mir echt helfen wenn ich einmal weiß wie das geht da ich das für weitere Masken so ähnlich
auch machen muss.

Danke euch.

Gruß

Titel: Re:Maske übernehmen
Beitrag von: TMC am 09.01.04 - 22:49:22
Zitat
Und zwar hab ich ja noch immer meine Kalkulationsmaske in der Kundendaten erfasst und berechnt werden.
Die Maske wir ja in der Ansicht "doppelt" gespeichert.
Die Maske wird NICHT in einer Ansicht gespeichert. Hab ich oben glaub ich schon mal erwähnt. Eine Maske kann nie in einer Ansicht 'gespeichert' werden, siehe oben.

Zitat
So und jetzt zu meinem Prob in einer anderen Maske hab ich einen Button "Neukunden"
und wenn ich auf den drücke möcht das sich eine Ansicht aufmacht in der nur die Kunden sind die neu angelegt
wurden(also neu angelegte Dokumente).
Wie definierst Du "neu angelegt" ? Über einen Status? Das solltest Du wohl tun.
Dazu ein Feld "Status" erstellen in der Maske, computed when composed. Sobald sich der Status ändert, setzt Du das Feld auf "Status 2", "neu angelegt", oder wie auch immer.
Dann eine View-Selection (Ansichtsauswahl) SELECT Status = "DEIN STATUS".

Zitat
Ausserdem wenn dann die neuen Dokumente einmal aufgerufen habe sollen sie dann automatisch aus der Liste gelöscht werden.
Was verstehst Du unter "aufgerufen", meinst Du, sobald das Dok dann also auch 'nur' gelesen wird? Dann brauchst Du einen Postopen-Event-Code, angepasst auf Dein Status-Feld.

Zitat
Wenn man dann einen auswählt aus der Liste der Neu Kunden sollen dann die Daten aus der Kalkulationsmaske
erscheinen.
"Wenn man dann....." Und wo rufst Du das exakt auf? In einem Listenfeld?

Zitat
Ich denk mal möglich ist es ja genau das gleiche Dokument aufzurufen welches welches als Kalkulationsmaske schon
mal abgespeichert wurde, aber ist es auch möglich das dann z.B. die ganzen Buttons wie "speichern" die in der Kalkulationsmaske sind dort nicht mehr erscheinen?
Verstehe ich nicht ganz Deine Logik. Also Buttons verbergen geht über die Verbergen-Wenn Eigenschaften. Dort platzierst Du die Formel Deiner Wahl.

Mal ein persönlicher Rat von mir:

Sagen Dir überhaupt die Begriffe
 - berechnet beim Anlegen / computed when composed
 - View-Selection (Ansichtsauswahl)
 - Postopen
 - Listenfeld
was?

Ich befürchte nicht.
Mein Rat ist, dass Du Dir erstmal ein Einsteiger-Buch zu R5 kaufst, z.B. "Domino Designer R5 Anwendungsentwicklung mit Lotus Notes von Raimund Mann", siehe www.amazon.de

Das Buch arbeitest Du dann durch, und danach startest Du mal mit einer simplen Eigenentwicklung.

Ich habe nämlich stark das Gefühl, dass Du jetzt mit Zwang versuchst, eine Notes-DB zu entwickeln, ohne elementare Hintergründe zu kennen. Aber diese Hintergründe musst Du kennen, da kann Dir auch kein Forum helfen.

Meinen Rat, auch mal http://www.nsftools.com/misc/WhatIsNotes.htm durchzulesen, bist Du scheinbar nicht gefolgt, siehe Deine Aussage zu "Maske in Ansicht speichern". Wenn Du englisch nicht so gut kannst ist das auch kein Problem: umso mehr empfehle ich, dass Du Dir ein deutschsprachiges Einsteiger-Buch kaufst.

Sollte Dein Auftraggeber (Chef, oder wer auch immer) Druck auf Dich machen, dass Du was entwickeln musst binnen x Tage: erkläre die Situation. Notes ist keinesfalls mit Trial&Error ohne Vorkenntnisse, ohne Literatur etc. zu erlernen. Selbst ein Quereinsteiger mit viel Programmiererfahrung in anderen Sprachen muss sich erstmal mit den Notes-Eigenarten beschäftigen, vorher geht gar nichts.
Ich habe das Gefühl, Du bist zwar ehrgeizig (oder jemand macht Dir den Druck), hier was zu entwickeln auf die Schnelle, aber imo fehlen Dir einfach die Hintergründe.

Fazit: Brich bitte Dein Notes-Projekt ab, sag dem Auftraggebr Bescheid, und nimm Dir Zeit Notes kennenzulernen. Das wird mit Sicherheit belohnt; vielleicht nicht kurzfristig (Chef sauer etc.), aber spätestens mittelfristig. Du erkennst dann die Zusammenhänge, Eigenarten etc., und dann packt Dich der "Notes-Virus" und willst nur fast nur noch unter Notes entwickeln :-)

TMC
Titel: Re:Maske übernehmen
Beitrag von: koehlerbv am 09.01.04 - 23:19:45
Gut gebrüllt, TMC-Löwe.
@TripleH: Lotus Notes / Domino ist was für Profis. Denen, die sich dahin entwicklen wollen, sind wir gerne und uneigengenützig behilflich. Wenn Du also vorwärts kommen willst in diesem Umfeld: Befolge TMC's Rat und bleibe dann mit Deinen Fragen in diesem Forum.

Bernhard

PS: An "Paris-Dakar" darf man auch nicht gleich teilnehmen, nur weil man schon mal ein Auto aus der Garage gefahren hat, ohne sich dabei einen Spiegel abzureissen.

PSS: Die Aufgabenstellung Deines "Projektes" tönt eher danach, dass Notes vielleicht nicht gerade die Plattform der Wahl sein muss. Gehen tut das (definitiv), aber hier muss man offensichtlich Notes etwas beibringen, wozu es eigentlich nicht erschaffen wurde. Und hierzu erfordert es professionelles Notes-Knowhow. Genau diese augenscheinlich fehlende Überlegung ist Euer Problem.
Titel: Re:Maske übernehmen
Beitrag von: TMC am 09.01.04 - 23:27:42
Noch ein Nachtrag:
TripleH, ich will Dich hier in keinster Weise aus dem Forum vertreiben, wir werden Dich weiterhin unterstützen, nur bringt es uns beiderseits sehr viel weiter, wenn Du Dich vorab mit dem Thema auseinandersetzt und dann Fragen stellst. Da können wir einfach viel besser helfen   :)

Also viel Erfolg.

Matthias
Titel: Re:Maske übernehmen
Beitrag von: TripleH am 10.01.04 - 00:06:04
Hallo!
ich weiß ich stell zum Teil dumme Fragen.
Ich bin euch überaus dankbar das ihr mich ertragt.
Ja ich versuche mit Zwang ein Projekt  das mir zur Zeit ein bicßeh zu groß ist aber mit dem ich auch versuch zu lernen arbeite.
Leider hab ich nur 2 wochen für das Projekt so das ich noch nicht alles über Notes weiß. Ziel des Projektes ist es auch nicht das alles 100% läuft aber leider bin ich ein perfetionist.
Ich probiere Tag täglich und lese enorm viel zu den Themen.
Ein Buch hab ich schon bestellt da ich auch nach dem Projekt mich weiter mit Notes beschäftigen möcht um es irgendwann mal annähernd mal so gut wie ihr zu beherrschen:)
Ich hoffe ihr versthet die Hintergründe da ich auch eurer Meinung .
MFG Basti

Titel: Re:Maske übernehmen
Beitrag von: TMC am 10.01.04 - 00:21:34
TripleH, Deine Einstellung in Ehren bezügl. "Ziel des Projektes ist es auch nicht das alles 100% läuft " und dass Du Perfektionist bist..

Aber was machst Du wenn exakt 0% läuft nach dem Projekt?

Irgendwann wird Deine Datenbank dann produktiv gesetzt (so wie Du schreibst in 2 Wochen). Was passiert, wenn überhaupt nichts geht? Ich will jetzt nicht schwarzmalen, aber mögliche Szenarien wären:
 - missglückte ACL-Einstellungen und Umsetzungen  (vorgesehene User dürfen alles, oder zu wenig um z.B. ein Dok zu erzeugen)
  - Datensätze sind zufällig weg
  - Replilakationsthematik

u.v.m.

Ehrlich, ich bezweifle massiv, dass Du Dein Projekt binnen 2 Wochen fertiggestellt hast. Siehe meine Empfehlungen oben.

Deine Fragen werden auch beantwortet hier, für die brauchst Du Dich auch nicht entschuldigen. Aber Deine Fragen sind der Auslöser warum ich obiges gepostet habe.

Matthias
Titel: Re:Maske übernehmen
Beitrag von: TMC am 10.01.04 - 00:27:51
Nachtrag:
Bernhard hat es ja auch schon angedeutet, dass Du u.U. die falsche Plattform gewählt hast.

Ich glaub es geht bei Dir um Versicherungsdaten / Berechnung.

Da ist Notes nicht die erste Wahl. Wieviele Mandanten sind denn betroffen?
Access (auch wenn ich die SW hasse) wäre z.B. in so einem Fall empfehlenswerter aufgrund der klassischen DB-Struktur.
Replizierung ist bei Dir wohl - soweit ich das überschaue - eh kein Thema.

TMC
Titel: Re:Maske übernehmen
Beitrag von: TripleH am 10.01.04 - 01:13:05
Hi!
Nett von euch.
Also wie ihr in meinem anderem Posting seht läuft schon ein bißchen.
Abschließend will ich nur sagen stellt euch das bei mir nicht zu professionell vor. Das soll nur ein kleines Projekt in der Schule werden also wird es weit davon entfernt sein wie das in der Praxis vom Profi aussieht. Es sollen wirklich nur die grundlegendsten Dinge gemacht werden weil viel kann man innerhalb von 2 Wochen nicht erwarten.
Ihr könnt euch ja ruhig mal anschauen wie ungefähr das aussehrn soll. Das Projekt hab ich als Anhang in meinem Posting 2 runter:)
Danke für deine Tips oben einen Teil konnt ich umsetzten...
und macht nicht mehr zu lang
Gruß

Basti
Titel: Re:Maske übernehmen
Beitrag von: TripleH am 10.01.04 - 15:59:00
Hallo!
Ich habs soweit hinbekommen das anhand der Status Feld die richtigen Dokumente in der richtigen Ansicht stehen.
Jetzt hab ih auch schon nen bißchen weitergemacht und hab leider wieder nen par Probs.

Es werden immer nur Dokumente in den Ansichten abgelegt welche die Infos der Kalskulationsmaske beinhalten.

1. Macht man z.B. die Ansicht Neu Kunden auf sind dort alle Kunden bei denen im Statusfeld Neu steht.
wählt man eins aus kommt man nur in den Lesemodus des Dokuments. Ich hab jetzt dort einen Button in dem
Dokument der Brief heißt mit folgendem Quelltext "@Command([CloseWindow]);
@If(status =  "neu";@Command([Compose];"BriefNeu");@Command([Compose];"angebot"))"

Allerdings hab ich die Vermutung das er das Feld Status nicht richtig auswerten kann im Lesemodus da er immer
gleich die then anweisung ausfürht und dann zur Maske angebot springt obwohl im Feld Status neu steht.
Weiß jemand Rat wie ich das verbessern kann ohne dabei in den Schreib Modus zu springen?

Das 2. Problm ist das wenn er dann weiter zu der Maske z.B. Brief Neu geht auch die Daten des Dokuments nicht
übernommen werden. Z.B. hab ich ein Feld Name in der Brief neu Maske. Als Vorgabewert hab ich
das Feld name gewählt aus dem Dokument zuvor. Das hängt wohl wieder mt dem Lesemodus zusammen denn wenn
von dem Schreib Modus in den die Maske Brief Neu gehe wird der Name übernommen.

Ich hoffe jemand kann mir weiterhelfen.

Schönen Tag noch.

Basti