Autor Thema: Problem in einer Datenbank  (Gelesen 2493 mal)

Offline PAR003

  • Frischling
  • *
  • Beiträge: 30
  • Ich liebe dieses Forum!
Problem in einer Datenbank
« am: 10.06.03 - 11:41:25 »
Guten Tag

Ich bin Fachoberschueler und habe ein paar probleme mit einer Datenbank die Ich entwickeln soll.

1. Ich will von einer Maske einen Button drücken und dieser ändert den Status in einer Antwort - Maske + in der Maske selbst.
Wenn Ich  die Sache mit @Command([Compose];"Formname") angehe, öffnet sich ein vollkommendes neues Dokument und dort wird nicht übernommen (die anderen Felder, welche in der Hauptmaske bearbeitbar sind und in der Antwortmaske berechnet beim Anlegen sind).

2. Ich wil den Zugriff kontrollieren, d. H.:
Nur ein Admin darf alles bearbeiten und ein User darf das Dokument nur minimal bearbeiten.
doch wenn Ich als User reingehe, was verändere und wieder rausgehe und dann später als Admin reingehen  und was verändern will, kommt immer die Messagebox, dass Ich nicht berechtigt wäre etwas zu verändern.
Frage. Kann das an dem Autoren - Feld liegen?
Muss alles mit Rollen ablaufen.

3. Ich möchte ein Agent kreieren (Script), welcher Dokumente überprüft und automatisch ein Feldwert ändern.
Beispiel: Ich als User gehe auf ein Dokument und verändere ein Feldwert. Dann sichere und schließe Ich das Dokument. Jetzt soll der Agent, welcher alle Dokumente durchläuft, von diesen einen umgeformten Feldwert ein anderes Feld verändern ( Hauptmaske und Antwortmasske) und sichern.
Ich hoffe Ich dränge Hier niemanden etwas auf mit diesen Fragen und Problemen.
Ich danke trotzdem allen schon vorab einmal.

PS.:
 Ich bin FOS-Praktikant und arbeite erst seit Ende Februar mit R5 Und programmiere erst seit April diesen Jahres.

MfG PAR003

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Problem in einer Datenbank
« Antwort #1 am: 10.06.03 - 12:14:08 »
ich schnapp mir mal die Frage 1 (gemach  ;D eins nach dem anderen):

"Ich will von einer Maske einen Button drücken und dieser ändert den Status in einer Antwort - Maske + in der Maske selbst."

Versteh ich nicht ganz. Der Status soll im Antwortdokument geändert werden und im Dokument selbst (wenn ich "Maske" mit "Dokument" übersetze). Meinst Du dabei das Elterndokument?

Wenn ja, dann
- erstelle einen Action Button
- die Formel
Field Status:="Geschlossen"
ändert zB das Feld Status auf geschlossen im Dokument, das in der Ansicht markiert ist ("schwarze Blaken drauf")
- die Formel
@SetDocField( Dokument-ID ; Feldname ; neuerWert )
ändert ein bestimmtes Dokument ab, nämlich dessen Dokument ID mit dem Wert in der obigen Formel übereinstimmt. Das kann man super in Eltern-Antwort Beziehungen verwenden. Generiert man ein Antwortdoc, erhält dasselbige einen "Stempel", der stets auf das Elterndokument verweist. Dieses Feld nennt sich "$REF" und beinhaltet die 32 stellige DokumentID des Parents. Nimmst Du also im Actionbutton die Formel
@SetDocField( $REF ; Eltern_Feld_ABC ; "123246765" )
liest die Formel aus dem Antwortdoc das $REF aus, sucht das Elterndoc und ändert dort das Feld Eltern_ABC_Feld ab.


(zu @setdocfield:
Text. Die eindeutige ID (UNID) eines Dokuments. @DocumentUniqueID gibt die eindeutige ID (UNID) des aktuellen Dokuments an. Um die eindeutige ID des übergeordneten Dokuments anzugeben, geben Sie $Ref als ersten Parameter an. $Ref ist ein spezielles Feld in einem Antwortdokument, das die eindeutige ID des übergeordneten Dokuments enthält.)
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 Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Problem in einer Datenbank
« Antwort #2 am: 10.06.03 - 12:26:29 »
Hi,

ich versuch's mal mit Frage 2:

Das der Admin die Dokumente nicht bearbeiten kann, liegt an den Autorenfeldern. Geb ihm Managerrechte in der ACL und dann kann er alle Dokumente ändern.

Zitat
...ein User darf das Dokument nur minimal bearbeiten.

Wie ist das zu verstehen. Soll er nur bestimmte Felder ändern dürfen?

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

Offline PAR003

  • Frischling
  • *
  • Beiträge: 30
  • Ich liebe dieses Forum!
Re:Problem in einer Datenbank
« Antwort #3 am: 10.06.03 - 13:03:08 »
HI, zur zweiten Frage.
Der User sollte nur  zwei Feldwerte ändern und mehr nicht.
Das eine wäre halt , wenn er auf den Aktions - Button klickt und damit indirekt ein Feld ändert.
Das zweite Feld wäre halt das hochzählende Feld (Wie oft schon auf den Button geklickt wurde und wer darauf geklickt hat)
Danke!!!
MfG PAR003

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:Problem in einer Datenbank
« Antwort #4 am: 10.06.03 - 13:23:53 »
Hi,

eine Idee auf die Schnelle wäre, alle Felder doppelt in die Maske aufzunehmen. Die einen als bearbeitbare für den Admin, die anderen als berechnete für den User. Die berechneten holen sich über die Werteformel den Wertaus ihrem bearbeitbaren "Kollegen".

Die Anzeige der jeweiligen Felder wird mit einer Rolle in der Verstecken-Formel geregelt.

Den Button kannst du auch in Anhängigkeit der Rolle anzeigen lassen.

Der Code für den Button könnte so aussehen:

...
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim iCount As Integer

Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document

doc.FeldA = "Wert"

iCount = doc.FeldB(0)  'Feld für den Zähler, muss nummerisch sein

iCount = iCount + 1  'Zähler um eins erhöhen

doc.FeldB = iCount  'Wert zurückschreiben

Call doc.Save(True,True)

...

Den Code mußt du natürlich an deine Feldnamen anpassen und er enthält keine Fehlerbehandlung.


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

Offline PAR003

  • Frischling
  • *
  • Beiträge: 30
  • Ich liebe dieses Forum!
Funktioniert leider nicht so wirklich
« Antwort #5 am: 16.06.03 - 13:12:26 »
Hi Hallo,
leider  funktioniert die Sache mit dem Button nicht.
Gibt es noch eine andere Script-Lösung als diese?
Aber trotzdem danke für den Tipp.
Ich danke auch schon einmal im Voraus für jeden Tipp.
MfG PAR003

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:Problem in einer Datenbank
« Antwort #6 am: 16.06.03 - 13:19:52 »
Hi,

was funktioniert nicht?


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

Offline PAR003

  • Frischling
  • *
  • Beiträge: 30
  • Ich liebe dieses Forum!
Kommt immer die Fehlermeldung
« Antwort #7 am: 16.06.03 - 14:24:42 »
Hi Hallo,
wenn Ich den Button ausführen will, dann kommt immer die Fehlermeldung : Type mismatch.
Wie gefragt, gibt es noch andere Variationen um so etwas ausführen zu lassen?
Ich danke Ihnen für Ihren Tipp und danke jeden schon einmal im Voraus.
MfG PAR003

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:Problem in einer Datenbank
« Antwort #8 am: 16.06.03 - 14:38:03 »
Hi,

als Alternative könnte ich noch die Formelsprache anbieten.

So könnte die Formel aussehen:

FIELD FeldA := FeldA;
@SetField("FeldA"; "Der Wert soll gesetzt werden");
FIELD FeldB := FeldB + 1;

FeldA ist ein bearbeitbares Textfeld
FeldB ist ein bearbeitbares Feld vom Typ Zahl mit 0 als Vorgabewert.

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

Offline PAR003

  • Frischling
  • *
  • Beiträge: 30
  • Ich liebe dieses Forum!
Danke es funktioniert
« Antwort #9 am: 16.06.03 - 14:45:17 »
Hi Hallo,
Danke für den Tipp.
es funktioniert.
MfG PAR003

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz