Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TMC am 15.12.03 - 23:40:11

Titel: Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: TMC am 15.12.03 - 23:40:11
Hi,

ich öffne mit
@DialogBox("box_W";[AutoHorzFit]:[AutoVertFit];"Title")
eine Dialogbox von einem Dokument aus, Dok befindet sich im Lesemodus.
(es soll nach Klick auf OK ein Kalendereintrag gesetzt werden)

Problem: User, die nur Autorenrechte haben, dürfen die Felder darin nicht bearbeiten .

Ein Setzen eines Autorenfeldes und Eintragen einer Rolle, die die User haben, bringt auch keinen Erfolg.

Wie muss ich die Dialogbox öffnen, damit User (Autoren) darin die Felder bearbeiten dürfen?


TMC
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: Axel am 16.12.03 - 08:59:52
Hi,

bezieht sich die Dialogbox auf auf Felder in dem Dokument, aus dem sie geöffnet wird? Wenn das Dokument im Lesemodus ist, dann können meines ERachtens auch die Felder in der Dialogbox nicht geändert werden.

Versuch mal die Dialogbox zu öffnen wenn das Dokument im Editmodus ist.


Axel
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: Lossa am 16.12.03 - 14:51:58
Hi,

ich würde das ganz pragmatisch lösen, rufe zwei unterschiedliche Dialogboxaufrufen oder Masken auf:
Für Autoren des Dok's Maske A
Für alle anderen Maske A [ReadOnly] Flag notwendig oder eben Maske B.

Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: TMC am 16.12.03 - 21:21:38
Hi,

OK:
Wenn Autor im eigentlichen Dokument als Autor eingetragen ist, dann öffnet sich auch die Dialogbox richtig (bearbeitbar).
@Lossa: verstehe Deinen Ansatz noch nicht ganz.

Woran ich schon gedacht hab: das ganze in Script machen (also Dialogbox öffnen). Dabei ggf. ein temp.-Doc erstellen wegen der Rechte wenns nicht anders geht....
Hat da vielleicht wer einen Ansatz?

Danke,
TMC
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: Lossa am 16.12.03 - 21:37:40
Hallo TMC,

Das meine ich:

Du prüfst ob User = Autor
dann
@Dialogbox("box_w"...);
sonst
@Dialogbox("box_w";[Readonly]...)
oder
@Dialogbox(box_w_RO"...) wobei diese Maske box_w_RO nur Felder hat die Berechnet zur Anzeige sind.

Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: koehlerbv am 16.12.03 - 21:42:38
Hallo, TMC,

sag' mal genaueres an ... Wenn sich die Dialogbox auf ein Dokument bezieht, welches ein Autor auch anderweitig bearbeiten dürfte, dann geht das auch mit einer Dialogbox, und Lese- oder Editiermodus spielt da keine Rolle. Da klemmt offensichtlich was ganz anderes. Lossa's Hinweis erscheint mir eher missweisend.

Bernhard
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: TMC am 16.12.03 - 21:45:25
Hi Lossa,

sorry, ich glaub ich habe oben missverständlich gepostet:
Zitat
Problem: User, die nur Autorenrechte haben, dürfen die Felder darin nicht bearbeiten .
Das ist nicht die Frage von mir, sondern das jetzige Ergebnis, welches ich aber vermeiden will.

Mein Ziel:
Es soll jeder Autor die Dialogbox bearbeiten dürfen, unabhängig von den Rechten im jeweiligen Dokument.
Und das klappt leider so nicht.

TMC
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: Lossa am 16.12.03 - 21:51:27
Hallo TMC,

entschuldige habe das etwas falsch verstanden.
Du willst als mittels einer Dialogbox ein NEUES ?? Dokument erstellen?

Wenn Ja, dann erzeuge eine Dialogbox ohne OK und Abbrechen. Dann baust du in der Dialogbox einen eigenen Knopf "OK" oder ähnlich bezeichnet und dort erstellst du via LS ein beliebiges neues Dokument und schliesst die Dialogbox.

Wenn Nein, dann erzähl mal mehr
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: TMC am 16.12.03 - 21:52:47
OK, Bernhard, ich hol mal weiter aus, merke gerade, hab da viel zu schnell gepostet, ohne mehr Background zu geben (siehe auch vorigen Post).

Es gibt da eine DB mit vielen Dokumenten.
Jeder ist grundsätzlich auch Autor lt. ACL. Aber nur in manchen Doks steht auch namentlich ein Autor drin.
Die Doks haben u.a. die Felder "ReminderUNID" (berechnet, enthält: @Text(@DocumentUniqueID)) und "ReminderSubject" (enthält u.a. den Titel des Docs).

Nun gibt es einen Button in der Maske, der die o.g. Dialogbox aufruft. Dabei werden die 2 erwähnten Felder benötigt (weil diese übernommen werden per Default), da daraus ein Kalendereintrag entsteht.

Nun der Haken: User, die nicht in einem Autorenfeld von Dokumenten stehen, sollen trotzdem nach klick auf den "Reminder"-Buhtong die Dialogbox bearbeiten dürfen (um z.B. ein Datum zu setzen) . Und das klappt so leider noch nicht.


TMC
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: Lossa am 16.12.03 - 22:00:45
HI TMC,

ich frage aber nocheinmal soll in dem Dokument die Änderung der Dialogbox laden oder in ein/em andern/neuem Dokument geändert/erstellt werden?
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: TMC am 16.12.03 - 22:03:31
Hi Lossa,

das ursprüngliche Dokument, von dem aus die Dialogbox aufgerufen wird, soll nicht geändert werden nach Eingabe von Daten in der Dialogbox.

TMC
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: Lossa am 16.12.03 - 22:30:59
Hi TMC,

ich arbeite zwar mit ND6 und habe z.Z keinen R5 client installiert, aber versuche doch einmal das:

Erstelle eine Schaltfläche in deiner Maske:
Ausgeführt wird JavaScript
Dort erstellst du folgenden code:

window.open("/db.nsf/w_box?openForm","Titel des Fensters")

wenn die Maske in einem Dialog erscheint, dann kannst du das ganze verfeinern, indem du mit der grösse des Fensters arbeites:
Hierzu gibt es einen 3. Parameter bei windows.open(...)
"height=...","width=..." ACHTUNG gross und kleinschreibung und die Anführungszeichen sind richtig so und auch das Komma.
Kanst mir ja sagen wenn es klappt, oder kannst du Dir das weitere Denken?
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: Semeaphoros am 16.12.03 - 22:33:16
Also, wenn die Diabox ein neues Doc erstellen soll, dann bitte unbedingt mit LS arbeiten. Die LotusScript Diabox erlaubt es, der Box ein Dokument mitzugeben. Bevor man WS.Dialogbox aufruft, wird zuerst in der Datenbank ein neues, leeres Dokument erstellt, allfällig vorbesetzte Felder gefüllt und dann die Diabox aufgerufen. Bei diesem Vorgehen spielt der Zustand des aktuellen Docs absolut keine Rolle.
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: TMC am 16.12.03 - 22:40:48
OK, ich danke Euch !

Die Lotus Script - Lösung hört sich sehr interessant an, wegen dem
Zitat
Bei diesem Vorgehen spielt der Zustand des aktuellen Docs absolut keine Rolle.

Grüße,
TMC
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: Lossa am 16.12.03 - 22:42:27
Hi,

ich habe den Wald nicht mehr vor lauter Bäumen gesehen und die Lösung mit LS ist der einfachste und effektivste Weg das Problem zu lösen.
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: Semeaphoros am 16.12.03 - 23:29:51
Na, ich hab ja auch den Vorteil gehabt, als letzter zu antworten und hab dadurch auch bessere Karten gehabt ...  ;)
Titel: Re:Autor öffnet Dialogbox und darf nichts ändern
Beitrag von: TMC am 19.12.03 - 22:37:26
Hier noch die umgesetzte Lösung:

Zitat
Sub Click(Source As Button)
   'Öffnet Reminder Dialogbox.
   'Dabei wird ein neues Temporäres Doc erzeugt, in das u.a. der aktuelle User als Autor eingetragen wird,
   'damit die Dialogbox bearbeitbar ist.
   
   Dim uiws As New NotesUIWorkspace
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim docDialog As NotesDocument
   Dim uidoc As NotesUIDocument       
   
   Set db = s.CurrentDatabase
   Set uidoc = uiws.CurrentDocument
   Set doc = uidoc.Document
   
   Set docDialog = db.CreateDocument
   docDialog.Reminder_unid = doc.Reminder_unid
   docDialog.Reminder_Subject = doc.Reminder_Subject
   
   Dim autorenItem  As New NotesItem( docDialog, "AutorenfeldTemp", s.username  )
   
   Call  uiws.DialogBox( "box_Wiedervorlage", True, True, False, True, True, False, "Reminder", docDialog, False, False)
   
End Sub



Gruß
TMC