Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: ThomasHB am 14.07.11 - 17:27:03

Titel: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: ThomasHB am 14.07.11 - 17:27:03
Hallo Zusammen,

wie müsste man vorgehen, wenn man einen Counter trotzdem hochzählen lassen will, selbst wenn Dokumente gelöscht wurden?

Erstellt man dazu jeweils eine Art Zähldokument, auf den sich der Counter berufen kann?
Also Beispielsweise, ein Dokument wird erstellt und im QueryClose wird ein count Dokument erzeugt... Oder wie geht man vor?

LG,
Thomas
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: koehlerbv am 14.07.11 - 17:31:15
http://atnotes.de/index.php/topic,16270.0.html
und
http://www.google.de/search?q=%22fortlaufende+nummer%22+site%3Aatnotes.de&hl=de&biw=1280&bih=892&num=10&lr=&ft=i&cr=&safe=images
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: ThomasHB am 15.07.11 - 13:56:54
...danke dafür, also irgendwie keine so wirklich tolle Idee.

OK, vielleicht überlege ich mir auch was anderes, mal sehen.
Ist ja nur zum probieren hauptsächlich.  :)

Ich habe mal im Designer Help nach geschaut aber die Info auf die folgende Frage entweder nicht gesehen oder steht nicht drin.

Habe ich im Event QueryOpen des Forms eigentlich schon Zugriff auf die Felder des Forms?
Ich habe irgendwie, bei dem was ich probiert habe so das Gefühl, als wären die erst im PostOpen Programmtechnisch nutzbar.  :)
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: koehlerbv am 15.07.11 - 14:07:43
Bei neuen Dokumenten: Nein. Worauf auch.
Bei bereits gespeicherten Dokumenten: Ja.

Bernhard
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: ThomasHB am 15.07.11 - 16:18:45
Hallo Bernhard,

danke für die Antwort.  :)

Komisch dann komme ich aber trotzdem nicht weiter und kenne den Grund nicht.

Folgender Code soll im PostOpen (die Felder kann ich mit dem Debugger sehen, zwar leer aber sie sind da) das Feld n_exist_call_number befüllen. Das Feld n_exist_call_number ist ein Computed Feld und als Number vom Typ.
Und trotzdem wird am Ende, bei AppendItemValue, das Item nicht gefüllt.

Ist mein Code falsch oder was mache ich falsch?

Code
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim doc As NotesDocument
	Dim v As NotesView
	Dim item As NotesItem
	Dim number_call As Integer
	
	Set db = s.CurrentDatabase
	Set v = db.GetView("($exist_Call_Nr)")
	
	If v.EntryCount <> 0 Then
		Set doc = v.GetLastDocument
		Set item = doc.GetFirstItem("n_exist_call_number")
		number_call = Cint(item.Text)
		
		Call Source.Document.AppendItemValue("n_exist_call_number", number_call)
	Else
		number_call = 1
		Call Source.Document.AppendItemValue("n_exist_call_number", number_call)
	End If
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: Thomas Schulte am 15.07.11 - 16:24:48
Schau dir mal den Unterschied zwischen Backend und Frontend an. Du arbeitest mit dem Backend Objekt. Und wo soll er das Anzeigen ...
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: koehlerbv am 15.07.11 - 16:27:08
Abgesehen davon: Wenn das in Verbindung mit dem Threadtitel steht, dann denk mal etwas mehr über die Sinnhaftigkeit dieses Tuns nach - und vergiss die Sache als total blödsinnig sofort wieder.

Bernhard
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: ThomasHB am 15.07.11 - 16:30:15
Notes UI, Frontend.

Da ist schon so eine Sache... Ich denke, ich weiß was du meinst.
Aber warum?

Warum kann er das mit den Backend Teilen nicht machen?

Also ich meine ich sehe im Debugger ja, das alles befüllt wird nur eben das Feld nicht.
Aber da muss ich ja auf Source.Document zurückgreifen, wenn ich das gerade geöffnete Dokument befüllen will, oder?.
Also sollte das doch egal sein?

Ich bin ehrlich, wann Backend und Frontend weiß ich noch nicht. Dafür fehlt mir Erfahrung.

Nur sollte das an dieser Stelle nicht egal sein?

LG,
Thomas
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: ThomasHB am 15.07.11 - 16:31:32
Abgesehen davon: Wenn das in Verbindung mit dem Threadtitel steht, dann denk mal etwas mehr über die Sinnhaftigkeit dieses Tuns nach - und vergiss die Sache als total blödsinnig sofort wieder.

Bernhard

Du ich probiere aus... Ich versuche hinter die Dinge zu kommen. Und da ist Sinnhaftigkeit erst mal egal.
Ich glaube nicht, das es besser wäre wenn ich ohne selbst zu probieren von vornherein nachfrage, wie geht das... Oder wie siehst Du das?
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: koehlerbv am 15.07.11 - 16:33:15
POST-open. Und Du änderst im Speicher. Was meinst Du, wie das die bereits im Frontend geöffnete Maske mitbekommen soll?
Schau Dir die entsprechenden Aktualisierungsmethoden in NotesUIDocument und vor allem im NotesUIWorkspace (immer unterschätzt) an!

Bernhard
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: koehlerbv am 15.07.11 - 16:38:23
Ich glaube nicht, das es besser wäre wenn ich ohne selbst zu probieren von vornherein nachfrage, wie geht das... Oder wie siehst Du das?

Wenn Du tatsächlich so (oder über andere scheinbar "naheliegende" Varianten) selbst Erfahrung sammeln möchtest: Das kann man schon machen. Ob man das tatsächlich nahe liegende dabei erkennt, sei dahingestellt.

Mein Tipp: Denke als erstes nach. Du MUSST zum Beispiel sehen, dass es so nicht funktionieren kann mit der fortlaufenden Nummer.
Anschliessend solltest Du das geballte Wissen auf AtNotes durchforsten. Ein paar Links habe ich Dir schon aufgemalt, Suchbegriffe wie "fortlaufend", "nummer", "sequentiell" sollten naheliegend sein.

Und bitte, nimm uns nicht übel, dass das Anliegen hier ein Reizthema ist, da es schon 1000 Mal behandelt wurde - und dann kommt der nächste Überschlaue oder Nichtdenker. Daher zurück zu Ratschlag 1: Erst nachdenken. Genau nachdenken. Szenarien durchspielen.

Bernhard
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: ThomasHB am 15.07.11 - 16:51:32
Kann ich verstehen...

Was anderes allerdings nicht. Du sagst ja selbst Post-Open und ich würde im Speicher ändern.

Gebe ich denn durch Source.Document (Source basiert ja auf NotesUIDocument) nicht an, das er an dieser Stelle das Froentend Document nehmen soll und nur mit Dingen beladen wird, die im Backend also im Speicher generiert wurden?

Alles Events in der Form gehen ja im Grunde auf UI, also verstehe ich das jetzt gerade so, das alles was in UI passiert auch mit UIDocument, UIView etc. angesprochen werden muss, selbst wenn ich mir nur aus bereits zuvor gespeicherten Dokumenten, wenn es denn welche gibt bestimmte Werte aus Feldern holen will?

Und Danke für die Tipps, ich werde die Help da mal zu Rate ziehen.  :)
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: koehlerbv am 15.07.11 - 17:01:33
Thomas, Du gehst nicht auf Source (NotesUIDocument), sondern auf Source.Document (NotesDocument). Ein *wichtiger* Unterschied. Den Abgleich zwischen NotesUIDocument und NotesDocument musst Du herstellen.
Und gleich ein weiterer Tipp: Das ist alles ganz einfach - ausser bei RichText! Das behalte mal gleich im Hinterkopf.

Bernhard
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: ThomasHB am 15.07.11 - 17:04:40
Wie?

Wenn ich das Event PostOpen gucke in einem Form, da steht doch ganz klar:

Code
Sub Postopen(Source As Notesuidocument)

Ist das nicht NotesUIDocument????
Ich verstehe das gerade nicht.  ???  :)
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: koehlerbv am 15.07.11 - 17:08:44
Schaust Du Dir bitte mal Deinen eigenen Code an, Thomas?! Bitte mitdenken! Du musst Dir doch doch bei Deinem Code etwas gedacht und dazu auch nachgelesen haben. Oder hast Du das Teil "gefunden"?

Bernhard
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: ThomasHB am 15.07.11 - 17:13:23
Nein, ich bin jetzt nur verwirrt...  :-[

Mit diesem Befehl:
Code
Call Source.Document.AppendItemValue("n_exist_call_number", number_call)

spreche ich doch das UIDocument an, oder? Also nach meinem Verständnis, das gerade geöffnete. Weil im Post Open, wo der Code steht Source As NotesuiDocument deklariert ist.

Und vorher habe ich dann doc as NotesDocument deklariert, das mag ja sein, aber da will ich mir ja im Hintergrund Werte aus einem Dokuemnt holen... !?!?!?
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: Thomas Schulte am 15.07.11 - 17:16:53
Schau dir einfach die Beschreibung der Klasse NotesUIDocument an. Du benutzt da die Property .document und das ist nicht das UIDOC was du gerade im Frontend siehst. Wie Bernhard schon gesagt hat. Zwischen Notesuidocument (was Source ist) und Notesdocument (was das ist wo du gerade drin rumwurschtelst gibt es ein paar gravierende Unterschiede. und
Schau Dir die entsprechenden Aktualisierungsmethoden in NotesUIDocument und vor allem im NotesUIWorkspace (immer unterschätzt) an!
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: koehlerbv am 15.07.11 - 17:18:51
Thomas, erst mal wieder ruhig werden  ;)

Source ist NotesUIDocument. Frontend.

Eine der Properties des NotesUIDocuments ist Document. Das ist das dahinter liegende BACKEND-Dokument. Du sprichst also über das instantiierte Frontend-Dokument das "dahinter" liegende Backend-Dokument an.
Und genau das musst Du Dir klar machen. Wenn das erstmal in der noch hohlen Rübe drin ist, dann wird schon etliches sehr viel klarer. Wir mussten das auch alle lernen. Auch mein erstes Wort war "Mama" und nicht "Notes"  ;D

Bernhard
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: Thomas Schulte am 15.07.11 - 17:20:22
Nein, ich bin jetzt nur verwirrt...  :-[

Mit diesem Befehl:
Code
Call Source.Document.AppendItemValue("n_exist_call_number", number_call)

spreche ich doch das UIDocument an, oder? Also nach meinem Verständnis, das gerade geöffnete. Weil im Post Open, wo der Code steht Source As NotesuiDocument deklariert ist.

Und vorher habe ich dann doc as NotesDocument deklariert, das mag ja sein, aber da will ich mir ja im Hintergrund Werte aus einem Dokuemnt holen... !?!?!?
Du sprichst eben mit dieser Notation nicht das UIDocument an. Sodern das BackEnd Objekt NotesDocument, das ein Bestandteil des NotesUIdocs ist.
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: ThomasHB am 15.07.11 - 17:24:14
.... OKay  :)

Jetzt habe ich das begriffen, aber das Document Backend ist... pfffff.
Da wäre ich ja im Lebtag nicht drauf gekommen.

Ich dachte weil Source eben als UI deklariert ist, naja.

Ich danke euch für die Hilfe, mal sehen wie weit ich jetzt damit kommen werde.
Danke.  :)
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: koehlerbv am 15.07.11 - 17:32:55
Aus der DesignerHelp - erster Satz zur Klasse "NotesDocument":
Zitat
Represents a document in a database.

In einer Datenbank - nicht auf Deinem Bildschirm. Thomas - *das* sind die Dinge, die Du beachten musst.

Und da Du Dich sichtbar mühst, helfen wir gerne. Du solltest jetzt mal - um zum Thema zurück zu kommen, drei Punkte aufschreiben, warum eine fortlaufende Nummer über PostOpen niemals sicher zu vergeben sein kann.
Als nächste Aufgabe: Mindestens einen Punkt, warum das im Frontend (also irgendwas in der Maske) sowieso unmöglich ist.

Dann näherst Du Dich diesem Thema sinnvoll. Und: Durchsuche das Forum hierzu - dort stehen die Antworten. Und Lesen bildet  :)

Bernhard
Titel: Re: Weiterzählen selbst wenn Dokument gelöscht wurde
Beitrag von: ThomasHB am 15.07.11 - 17:47:01
Werde ich kommende Woche alles mal machen, ich bin schon froh jetzt an dieser Stelle was gelernt zu haben.  :)

Und da ich schon seit 16 Uhr nach hause gehen könnte, werde ich das jetzt mal machen. :)

Und wünsch euch zunächst mal ein schönes Wochenende, die Aufgaben führ ich mir dann am Montag mal zu gemüte.

LG,
Thomas