Autor Thema: löschen in eingebetteter View verhindern?  (Gelesen 3186 mal)

Offline fritandr

  • Global Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 742
  • Geschlecht: Männlich
  • Höre nie auf besser zu werden...
    • KAMMACHI Consulting GmbH
löschen in eingebetteter View verhindern?
« am: 29.10.04 - 14:55:14 »
Hallo,

bei meiner Suche hier im Forum bin ich nur auf Beiträge gestossen, in denen beschrieben wird, wie man unter R5 mit diversen Workarounds Dokumente aus einer eingebetten View löschen kann. Ab und zu habe ich dann auch den Hinweis gelesen, daß das ja unter ND6 dann problemlos geht.

Genau das ist der Punkt, an dem ich jetzt gerade bin. Ich habe eine Maske mit einer eingebetteten Ansicht. Aus dieser Ansicht kann ich per Doppelklick die einzelnen Dokumente aufrufen, oder auch Dokumente löschen. Ich möchte nun gerne erreichen, daß meine Anwender aus dieser eingebetteten Ansicht keine Dokumente löschen können.

Hat jemand von Euch einen Tipp, wie ich das erreichen kann?

Viele Grüße
Andreas
« Letzte Änderung: 05.11.04 - 10:11:47 von fritandr »
Andreas Fritz

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: löschen in eingebetteter View verhindern?
« Antwort #1 am: 29.10.04 - 18:12:08 »
Hi,

was mir spontan dazu einfällt, wäre der Weg über das Database-Script und hier das QueryDocumentDelete. Das funktioniert aber nur, wenn man die Dokumente aus der eingebetteten Ansicht eindeutig identifizieren kann, z.B. über den Maskennamen.

Hast du ein paar mehr Infos, dann wird's vielleicht einfacher zu durchschauen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: löschen in eingebetteter View verhindern?
« Antwort #2 am: 29.10.04 - 21:54:46 »
Das ist wohl schon die einzige Möglichkeit, da einzugreifen. Nebst dem Identifizieren des Docs über das Form-Feld, wie es Axel beschreibt, sehe ich das Hauptproblem darin, festzustellen, ob dieses Löschen jetzt tatsächlich aus einem schlafenden Vieh heraus ausgelöst wurde oder ob das sonstwo ausgelöst wurde.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: löschen in eingebetteter View verhindern?
« Antwort #3 am: 31.10.04 - 14:30:26 »
Ich habe eine Maske mit einer eingebetteten Ansicht. Aus dieser Ansicht kann ich per Doppelklick die einzelnen Dokumente aufrufen, oder auch Dokumente löschen. Ich möchte nun gerne erreichen, daß meine Anwender aus dieser eingebetteten Ansicht keine Dokumente löschen können.

Wie schon oben erwähnt kannst Du über "QueryDocumentdelete" arbeiten.

Beispiel:
Code
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
	Dim uiws As New NotesUIWorkspace
	If uiws.Currentview.viewalias ="Embedded01" Then
		Continue = False
	End If
End Sub

Dadurch darf kein User aus der Ansicht heraus Doks löschen, wenn der Aliasname der Ansicht "Embedded01" lautet. Das funktioniert auch mit eingebetteter Ansicht.


Das funktioniert aber nur, wenn man die Dokumente aus der eingebetteten Ansicht eindeutig identifizieren kann, z.B. über den Maskennamen.
Verstehe ich jetzt nicht. Was meinst Du mit "eindeutig identifizieren"?

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: löschen in eingebetteter View verhindern?
« Antwort #4 am: 31.10.04 - 19:57:20 »
Genau das, was Du oben beschrieben hast. Sprich, man darf diese Ansicht nur als Embedded verwenden und nirgends sonst. Frage, bist Du sicher, dass CurrentView nur dann gesetzt ist, wenn diese Ansicht auch aktiviert ist? Wie ist das, wenn ein Dokument aus der View heraus geöffnet ist und man dann die Delete-Taste drückt?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: löschen in eingebetteter View verhindern?
« Antwort #5 am: 31.10.04 - 20:11:14 »
Frage, bist Du sicher, dass CurrentView nur dann gesetzt ist, wenn diese Ansicht auch aktiviert ist? Wie ist das, wenn ein Dokument aus der View heraus geöffnet ist und man dann die Delete-Taste drückt?

Sehr guter Einwand, Jens.

Da ist dann kein Handle mehr auf die View da.

Könnte man abfedern über ein

Select Case uiws.Currentview.viewalias
   Case "Embedded01":
      'Aktion, z.B. Continue = False
   Case "Eine andere View":
      'eine andere View
   Case Else:
      'eine ganz andere View - oder aber es existiert gar kein Handle auf die View, da
      'die Entf-Taste im Dok gedrückt wurde
      'Vielleicht hier ein pauschales Continue = False
End select


Jetzt sind wir soweit, dass Andreas genau auflisten sollte, wann gelöscht werden darf und wann nicht - um weiterhelfen zu können.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: löschen in eingebetteter View verhindern?
« Antwort #6 am: 31.10.04 - 20:15:28 »
Nachdem ich SelectCase erwähnte:

Hier ein evtl. hilfreicher Link für Andreas, da dies so wohl nicht dokumentiert ist....
http://www.geniisoft.com/showcase.nsf/archive/20040503-0907!OpenDocument&count=-1
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: löschen in eingebetteter View verhindern?
« Antwort #7 am: 31.10.04 - 20:38:53 »
Das mit dem Hinweis in Bens Blog ist wahrlich gut, ich bin kürzlich selber darauf gestossen, ist aber - wie dort auch erwähnt - eigentlich ganz korrekt in der Hilfe dokumentiert. Manchmal lohnt es sich, die Definition in der Designer-Hilfe wieder mal anzuschauen, auch wenn man das Gefühl hat, dass man eigentlich alles darüber weiss, weil mans ja dauernd braucht.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline fritandr

  • Global Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 742
  • Geschlecht: Männlich
  • Höre nie auf besser zu werden...
    • KAMMACHI Consulting GmbH
Re: löschen in eingebetteter View verhindern?
« Antwort #8 am: 31.10.04 - 23:23:09 »
Hallo,

zuerst mal danke für die unerhofft zahlreichen Antworten während des Wochenendes. Ich denke, mit den bis jetzt eingegangenen Antworten kann ich schon was anfangen. Es ging mir ja darum, Lösungsansätze zu finden.

Viele Grüße
Andreas

P.S.:
Da ich momentan nur wenig Zeit habe (das Bett ruft  ;D), liefere ich die von Euch gewünschten Details morgen oder so nach. Momentan weiss ich nämlich nicht , wie ich mein Problem mit wenigen Sätzen so beschreiben kann, daß Ihr mir ggf. noch weiter helfen könnt.
Andreas Fritz

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: löschen in eingebetteter View verhindern?
« Antwort #9 am: 01.11.04 - 10:39:40 »

Das funktioniert aber nur, wenn man die Dokumente aus der eingebetteten Ansicht eindeutig identifizieren kann, z.B. über den Maskennamen.
Verstehe ich jetzt nicht. Was meinst Du mit "eindeutig identifizieren"?

Matthias

Hi,

da das QueryDocumentDelete im Database-Script liegt gilt es ja datenbankweit. Also musst du, wenn du das Löschen nur aus der eingebetteten Ansicht verhindern willst, die Dokumente die in dieser Ansicht angezeigt werden, identifizieren. Und das kann z.B. über den Maskennamen oder ein Feld das entsprechend gesetzt ist, gehen.

Wenn es aber möglich ist den Viewnamen oder -alias zu ermitteln ist das natürlich die elegantere Methode.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline fritandr

  • Global Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 742
  • Geschlecht: Männlich
  • Höre nie auf besser zu werden...
    • KAMMACHI Consulting GmbH
Re: löschen in eingebetteter View verhindern?
« Antwort #10 am: 02.11.04 - 12:46:23 »
Hallo,

mein Problem ist inzwischen gelöst. Der Tipp, auf die Currentview auszuwerten erwies sich als goldrichtig.

Es ist so, daß ich eine Maske mit Produkten habe. Innerhalb dieser Produkte gibt es eine / mehrere eingebettete Views.
Eine dieser eingebetteten Ansichten zeigt auch wieder einen Auszug aus den Produkten selbst an.
Jetzt kamen meine Anwender auf die Idee, daß sie durch Löschen in der eingebetteten Ansicht, die Produkte aus der entsprechenden Kategorie nehmen könnten. Leider endete diese Idee natürlich damit, daß das in der View angezeigte weitere Produkt einfach gelöscht wurde.
Deshalb habe ich nach der Möglichkeit gesucht, das löschen in einer eingebetteten Ansicht zu unterbinden.

Anbei noch mein QueryDocumentDelete, wie es im Moment aussieht. Den von TMC erwähnten select habe ich noch in eine If-Abfrage gehängt, weil es sonst zu einer "object Variable ..." Fehlermeldung kam, wenn ich tatsächlich versucht habe, ein gerade angezeigtes Dokument zu löschen.

Code
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
	Dim uiws As New NotesUIWorkspace
	Dim msgTitle As String
	Dim msgText As String
	
	msgTitle = "embedded View"
	msgText = | Attention!
          You cannot delete documents from here. 
          Please go back to the main view to delete Documents.|
	
	
	If Not (uiws.CurrentView Is Nothing) Then
		Select Case uiws.Currentview.viewalias
		Case "Ansicht01":
		'----- document in embedded View can not be deleted
			Messagebox msgText, 0 + 64, msgTitle
			Continue = False
		Case "Ansicht02":
		'----- document in embedded View can not be deleted
			Messagebox msgText, 0 + 64, msgTitle
			Continue = False
		Case "Ansicht03":
		'----- document in embedded View can not be deleted
			Messagebox msgText, 0 + 64, msgTitle
			Continue = False
		Case Else:
			continue = True
		End Select
	End If
End Sub

Übrigens. Ja, ich hätte natürlich die drei Viewnamen durch Komma getrennt in den select schreiben können. Da ich aber meine Anwender kenne und erwarte, daß in jeder Situation eine andere Fehlermeldung ausgegeben werden soll, habe ich mich entschieden, für jede betroffene, eingebettete, Ansicht gleich einen eigenen case-Zweig aufzumachen.

Nochmals Danke für Eure Hilfe.
Andreas
Andreas Fritz

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: löschen in eingebetteter View verhindern?
« Antwort #11 am: 02.11.04 - 13:01:35 »
Mit NotesDocument.ParentView könntest Du das auch noch dahingehend erweitern, dass auch bei geöffneten Dokumenten der Bezug zur Ansicht hergestellt werden kann (wenn Du das möchtest).

HTH,
Bernhard

Offline fritandr

  • Global Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 742
  • Geschlecht: Männlich
  • Höre nie auf besser zu werden...
    • KAMMACHI Consulting GmbH
Re: löschen in eingebetteter View verhindern?
« Antwort #12 am: 02.11.04 - 13:06:35 »
Hallo Bernhard,

danke für die Anregung. Das werde ich auf alle Fälle mal im Hinterkof behalten.
Im Moment bin ich wunschlos glücklich, was meine Anwendung angeht. Aber man weiss ja nie.

Grüße aus dem Badischen.
Andreas
Andreas Fritz

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz