Autor Thema: Felder in Ansicht bearbeiten  (Gelesen 3041 mal)

Offline SVShane

  • Frischling
  • *
  • Beiträge: 2
  • Ich liebe dieses Forum!
Felder in Ansicht bearbeiten
« am: 11.06.03 - 08:37:07 »
Hallo Leute,

ich bin neu hier und hab ehrlich gesagt noch nicht besonders viel Plan vom Designer und bräuchte jetzt eure Hilfe. Ich suche eine Möglichkeit Felder direkt in einer Ansicht bearbeiten zu können, z.B. ich habe eine Fehlerliste die ich nacheinander abarbeite und die fertigen mit Kontrollkästchen als abgearbeitet markieren will(in der Ansicht). Ich will dazu nicht jedes Dokument öffnen müssen, weil das einfach zu lange dauert: Dokument öffenen, Check setzen, Dokument speichern und schließen. Bei 1000 Kontrollkästchen drehst durch mit der Zeit :P, deswegen wäre ne editierbare Ansicht goil. Vieleicht wisst ihr noch einen anderen Weg? Wahrscheinlich ist die Lösung voll trivial, aber wie gesagt, ich bin n nOOb der für jede Hilfe dankbar ist, THX schon mal im Voraus.


Gruss
Shane

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Felder in Ansicht bearbeiten
« Antwort #1 am: 11.06.03 - 08:52:41 »
auf LDD gibt es ein Redbook zu R6 Entwicklung (PDF = 13 MByte), ab Seite 454

darin steht wie man zB aus einer View heraus Docs erzeugen UND Felder editieren kann:
Create document from view
This feature lets the users create documents directly from the view, without
opening a new window. The users fill the fields in through the view columns. In
this context, the columns appear in edit mode. To set this feature, do the
following:
1. Select the “Create new documents at view level” option in the View’s
properties box.
2. Select “Editable column” in the Column’s properties box for the columns
where you want the user to enter data.
3. Add code to the view’s InViewEdit event to handle the document creation and
validation entries. You can program this event only with LotusScript.
Example 12-5 shows a sample of programming the view’s InViewEdit event to
create a document. In this sample database, there is a form with two fields:
Firstname and LastName. In the view we just allow the user to fill the Firstname
field.
Example 12-5 Create a document from a view
Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As
Variant, Columnvalue As Variant, Continue As Variant)
Const QUERY_REQUEST = 1 ' values for RequestType
Const VALIDATE_REQUEST = 2
Const SAVE_REQUEST = 3
Const NEWENTRY_REQUEST = 4
' Editable column
Const COLUMN_FEATURE = "Firstname" 'programmatic name of column
Const FIELD_FEATURE = "Firstname" 'corresponding field name
Dim ws As New NotesUIWorkspace
Dim note As NotesDocument
Dim db As NotesDatabase
Set db = ws.CurrentDatabase.Database
If RequestType = NEWENTRY_REQUEST Then
'Create a new document

Set note = db.CreateDocument()
note.Form = "frmPersons"
' Column Value is an array of items that you edited in place in the
view
Call note.ReplaceItemValue (FIELD_FEATURE, ColumnValue(0))
Call note.Save(True, True, True)
End If
End Sub
Explanation
The InViewEdit event runs several times, depending on the request that is being
performed.
 Query
This is when the user enters an editable view column entry.
 Validate
This is when the user exits an editable view column entry.
 Save
This is after validation of one or more view column entries in an existing
document.
In the view, use Ctrl-Click here to add a new document in the bottom of the view
to create a document.
An editable column appears in which to enter data. Fill this in and press Enter, or
click outside of the editable field to finalize the procedure.
A new document is created in the database; see Figure 12-92 on page 459.

Editing a document in a view
You can enable Notes users to edit fields of an existing document directly in a
view. The big advantage of this feature is that the document itself does not need
to be opened—editing takes place directly in the view. This is especially
beneficial for documents where users make only minor changes to few fields and
therefore can avoid opening the document in a separate window.
For in-view editing, there is a new event for a view, called InViewEdit, and the
developers have to enable the column to have this feature, “Editable column”. To
enable a view for this option, follow these steps:
1. Select “Editable column” in the Column’s properties box for the columns
where you want the user to enter data.
2. Add code to the view’s InViewEdit event to handle the document creation and
validation entries. You code this event only with LotusScript.
In this new event, we have to add some code that will make sure that the update
happens, and that validation takes place. Example 12-6 on page 457 shows an
Chapter 12. New features in Domino 6 457
InViewEdit LotusScript that enables InViewEdit to take place, accept all user
inputs, and update the document.
Example 12-6 Editing a document in a view
Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As
Variant, Columnvalue As Variant, Continue As Variant)
Const QUERY_REQUEST = 1 ' values for RequestType
Const VALIDATE_REQUEST = 2
Const SAVE_REQUEST = 3
Const NEWENTRY_REQUEST = 4
' Editable column
Const COLUMN_FEATURE = "Firstname" 'programmatic name of column
Const FIELD_FEATURE = "Firstname" 'corresponding field name
Dim ws As New NotesUIWorkspace
Dim note As NotesDocument
Dim db As NotesDatabase
Set db = ws.CurrentDatabase.Database
Set note = db.GetDocumentByID(Source.CaretNoteID)
If (note Is Nothing) Then Exit Sub
If (RequestType = QUERY_REQUEST) Then
If(note.HasItem(FIELD_FEATURE)) Then
'Get the current (original) value to put in Edit box
Columnvalue(0) = note.GetItemValue(FIELD_FEATURE)
Else
'This doc does not contain the required field;
'ignore it
Continue = False
End If
Elseif (RequestType = VALIDATE_REQUEST) Then
'Accept any user input
Continue = True
Elseif (RequestType = SAVE_REQUEST) Then
Call note.ReplaceItemValue (FIELD_FEATURE, ColumnValue(0))
Call note.Save(True, True, True)
End If
End Sub

Tip: CaretNoteID is a new property with Domino 6 that is the Note ID of the
currently highlighted (that is, at the caret location) document in a view.

Explanation
The InViewEdit event runs several times, depending on the request that is being
performed:
 Query
This is when the user enters an editable view column entry.
 Validate
This is when the user exits an editable view column entry.
 Save
This is after validation of one or more view column entries in an existing
document.
1. Before we edit the document, no events are influenced.
2. We click the document and column value we want to edit. This request is a
Query. This request then checks whether the marked document has the field
to be edited. If so, it sets a value of the field to a constant. If not, it exits the
sub.
3. Then, the next request is Validate, which validates the content. We have set it
to accept all inputs.
4. The next request is the Save request, which actually updates the document
by replacing the current value in the field with the new value and saves it.
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline SVShane

  • Frischling
  • *
  • Beiträge: 2
  • Ich liebe dieses Forum!
Re:Felder in Ansicht bearbeiten
« Antwort #2 am: 11.06.03 - 10:13:19 »
Yessss, it works. ;D

Danke für die schnelle Hilfe, funzt einwandfrei, ich werd mir das redbook mal genauer unter die Lupe nehmen, THX nochmal.

Gruss
Shane

Offline HST

  • Frischling
  • *
  • Beiträge: 4
  • Geschlecht: Männlich
Re: Felder in Ansicht bearbeiten
« Antwort #3 am: 21.06.05 - 19:25:30 »
Hallo allerseits,
ich hab das erste mal Kontakt mit den bearbeitbaren Spalten in Ansichten aufgenommen und bin prompt auf ein Problem gestossen:
Ich hab in meiner Ansicht 3 bearbeitbare Spalten, die ich als Symbole anzeigen lasse. Als Code in das InViewEdit-Objekt habe das Skript aus der Hilfe zum Togglen zwischen 2 Icons kopiert und auf meine Werte angepasst. Die Werte werden richtig in die Felder zurückgeschrieben aber in meiner Ansicht tauchen jetzt in den 3 erwähnten Spalten gar keine Icons mehr auf. Was könnte ich da denn übersehen haben?

Bin dankbar für jede Hilfe  :)
Herbert

Driri

  • Gast
Re: Felder in Ansicht bearbeiten
« Antwort #4 am: 22.06.05 - 10:16:25 »
Werden die Werte evtl. als String zurückgeschrieben ? Für die Symbole braucht Notes Zahlen.

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: Felder in Ansicht bearbeiten
« Antwort #5 am: 22.06.05 - 11:00:17 »
lass dir die 3. Spalte mal als wert und nicht als icon ausgeben, dann siehst du erstmal ob er überhaupt noch etwas zieht.
mit besten Grüßen

Markus Petzold

Offline HST

  • Frischling
  • *
  • Beiträge: 4
  • Geschlecht: Männlich
Re: Felder in Ansicht bearbeiten
« Antwort #6 am: 22.06.05 - 11:17:19 »
Danke erstmal für die prompten Antworten  :)

Dass bzw. ob die Werte richtig zurückgegeben werden hab ich schon vorher überprüft indem ich unter anderem parallel zu der Ansicht mit den editierbaren Spalten eine separate Ansicht gemacht hab mit der selben Darstellungsformel für die Spalte (z.B. @If(aktSerBf="1";12;0)) und dort werden die Symbole dargestellt. Der einzige Unterschied der mir noch auffällt ist, dass ich in der Ansicht mit den editierbaren Spalten den Spalten der Bequemlichkeit halber 'Programmiernamen' gegeben habe, die den Feldnamen entsprechen. Kann es damit was zu tun haben? Sollte ich vielleicht im InViewEdit-Skript die Spalten- und Feldnamen definieren?

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz