Autor Thema: Hilfe bei Aktioen "Click"  (Gelesen 13961 mal)

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Hilfe bei Aktioen "Click"
« Antwort #20 am: 04.09.07 - 20:17:26 »
Hi,

zum (leidigen) Thema mit den Verbergeformel ...
wenn man mehrere kombiniert bekomm ich immer einen Knoten ins Hirn   :-[
Meiner Meinung nach wären "Darstellungsformeln" besser gewesen,
meist hat man ja: die Schaltfläche will ich sehen, wenn...

Darum hab ich mir einen einfachen Trick angewöhnt:
Die Verbergeformel ist ja das Gegenteil der Darstellungsformel:

Verbergeformel = !(Anzeigeformel)

Wenns ums Anzeigen geht, schreib ich Verbergeformeln IMMER in eine grosse Klammer und negiere sie:
Code
!(
FORMEL1 & FORMEL2 & FORMEL3
)
-> wird angezeigt wenn alle 3 Formel war sind

Ist aber das gleiche wie:
wird Verborgen wenn eine der Formeln falsch ist:
Code
FORMEL1 | FORMEL2 | FORMEL3

In Deinem Fall wäre das dann:
Hardware soll es nur im Status=1 sehen:
Code
!(
(@IsMember("[Hardware]";@UserRoles)) 
& Status=1
)
bzw.
Nicht Hardware oder nicht Status=1 soll es nicht sehen:
Code
@IsNotMember("[Hardware]";@UserRoles)
| Status!=1
)

Eine ander Möglichkeit ist natürlich die Formeln zuerst in einfache Ausrück (true/false) zuzuweisen
und dann wirken lassen:
als negierte-Anzeigeformel
Code
HardwareUser:= @IsMember("[Hardware]";@UserRoles);
StatusIstOK:= Status=1;
!(Hardwareuser & StatusIstOK)
als Verbergeformel:
Code
Hardwareuser:= @IsMember("[Hardware]";@UserRoles);
StatusIstOK:= Status=1;
!Hardwareuser | !StatusIstOK

Viel Erflog, Pete(r)

Logik war halt irgendwann in meinem Studium,
Praxis ist heute....
pete(r)

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Hilfe bei Aktioen "Click"
« Antwort #21 am: 04.09.07 - 20:34:59 »
Heißer Tipp ist der Best-Practice-Artikel zu Verbergen-Wenn im Forum. Dort stehen ein paar hilfreiche Tipps, die einem bei diesem Thema helfen.

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Hilfe bei Aktioen "Click"
« Antwort #22 am: 04.09.07 - 20:45:09 »
Thema: [Formelsprache] Verbergen-Wenn (Hide-When) - Formeln

schön, dass ich mit meinem 'gesunden Halbwissen' nicht so weit entfernt liege...
auch hier wird gerne mit "Anzeigeformeln" -> !() gearbeitet   ;D
pete(r)

Offline chakoe

  • Aktives Mitglied
  • ***
  • Beiträge: 133
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #23 am: 05.09.07 - 08:44:17 »
Ja, das stimmt wohl, und grundsätzlich habe ich das auch schon angeleiert...bleibt abzuwarten, was daraus wird.
Kopf hoch, es kann nicht immer regnen

Offline chakoe

  • Aktives Mitglied
  • ***
  • Beiträge: 133
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #24 am: 05.09.07 - 08:57:58 »
Kann ich mir die Verbergeformel für den ersten Button so vorstellen?

@IsNotMember("[Hardware]";@UserRoles) | status >9

Status ist das Feld, das mit betätigen des Buttons auf 10 gesetzt wird.
Ist die Formelsprache so richtig, oder muss ich noch Zeichen setzen?
Kopf hoch, es kann nicht immer regnen

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Hilfe bei Aktioen "Click"
« Antwort #25 am: 05.09.07 - 09:28:41 »
Hi,

passt so.

Wie gesagt es muss ein Richtig/Falsch aus der Formel resultieren.
Ich setzte gerne nochmals eine Formel um die ausdrücke und jeden ausdruck in eine eigene Zeile.
Und kurz ein Kommentar in der ersten zeile ist auch manchmal hilfreich, wenn man später grübelt.

Dies ist zwar das selbe Resultat wäre aber Übersichtlicher:
Code
REM {verbergen für nicht Hardware-User oder nach dem Status 9 };
(
@IsNotMember("[Hardware]";@UserRoles)
| (status >9)
)

Aber auch hier finde ich eine "Anzeigeformel" sprechender:  ::)
Code
REM {anzeigen für Hardware-User und nur bis zum Status 9 };
!(
@IsMember("[Hardware]";@UserRoles)
& (status <=9)
)

Teste es doch einfach mit einen "bearbeitbaren Feld" für Status, dieses kannst Du ja auch nur für die Rolle "[Desinger]" anzeigen, und für die anderen verbergen  ;)
"Komplizierte" Formeln kannst Du auch in ein Feld "Berechnet zur Anzeige" berechenen lassen und dort prüfen.

Beachte noch, wenn Du immer Status := Status +1  setzt,
dass es kompliziert wird, wenn Du im nachhinein einen neuen Zwischenstatus einfügen musst.
(z.B. zwischen 4 und 5. Ok, hier gäbs zwar 4.1 4.2, aber 4.1+1 = 5.1 !=5)
Aus diesem Grund würde ich
zu den Stati 10 20 30 40 ... oder 100 200 300 ... raten
und definiere feste Stati in Deinem Workflow: der Button soll Status:=10 setzen, statt Status := Status +1 .

Wenn Du mehr als nur ein oder zwei Buttons/Texte Felder/Tabelle... einem "Status" verbergen willst, solltest Du noch über berechnete Teilmasken nachdenken.
z.B. @IF(Status=90; "TeilmaskeFreigabe";"TeilmaskeFreigabeDarstellung")

Viel Erfolg, Pete(r)
pete(r)

Offline chakoe

  • Aktives Mitglied
  • ***
  • Beiträge: 133
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #26 am: 05.09.07 - 10:30:45 »
So,

das scheint jetzt schonmal zu funzen,

der Button ist nur für die Leute sichtbar, die Ihn sehen sollen, und wenn die Leute den Button gedrückt haben, müssen Sie das Dokument speichern, und beim nächsten öffnen ist der button weg....
Allerdings stellt sich mir jetzt die Frage:

Ist es sinnvoller, das Dokument direkt im Bearbeitungsmodus öffnen zu lassen (damit der Button direkt funktioniert), oder sollen die Leute im Dok erstmal einen Doppelklick machen, um in den Bearbeitungsmodus zu kommen? Was ist sinnvoller?

Könnten wir als nächsten Schritt evtl. auch nochmal auf die Historie zu sprechen kommen?
Kopf hoch, es kann nicht immer regnen

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Hilfe bei Aktioen "Click"
« Antwort #27 am: 05.09.07 - 10:35:53 »
Hi,

Anzeige ist oft auch gewünscht, darum würde ich nicht gleich in den Bearbeitungsmodus wechseln.

Im Button würde ich aber gleich einen Save und Close bzw. Refesh mit eintragen.

Eine einfache History (wie schon oben genannt) kannst duch auch im Button eintragen.

(Aufwändigere History wurde oben ja auch besprochen, QuerySave....)

Viel Erfolg, Pete(r)
pete(r)

Offline chakoe

  • Aktives Mitglied
  • ***
  • Beiträge: 133
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #28 am: 05.09.07 - 14:33:15 »
Hallo,

ich versuche mich grade an der oben verlinkten History...

ich verstehe das folgende leider nicht:

# Add the following code in the Global Options of the form:

Use "ClassHistory"

# In the form’s Global Declarations, add the following line of code:

Dim g_history As History

#######################
Kopf hoch, es kann nicht immer regnen

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #29 am: 05.09.07 - 14:38:05 »
Siehe hierzu in der DesignerHelp (mindestens) folgende Kapitel:
Incorporating a LotusScript script library
Defining global variables and subprograms

Ohne diese Basics wird das nix.

Bernhard

Offline chakoe

  • Aktives Mitglied
  • ***
  • Beiträge: 133
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #30 am: 05.09.07 - 15:17:34 »
soo,

alles wird gut....bestimmt....wenn man ein wenig näher hinschaut, findet man sich stück für stück zurecht...

Ich habe diese Globals nun gefunden...hab auch alles schön nach der anleitung
(http://sw-guide.de/lotus-notes-domino/lotusscript-history/) durchgeführt...

Nun bekomme ich für das berechnete Feld History, welches ich nach Anleitung erstellt habe,
einen Fehler:  Keine Formel angegeben für berechnetes Feld: History.

Was mach ich falsch?
Kopf hoch, es kann nicht immer regnen

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #31 am: 05.09.07 - 15:22:10 »
Du hast keine Formel für das berechnete Feld History angegeben. Mehr kann man dazu nicht sagen.

Also gib eine die benötigte Formel (nämlich den Bezug auf das Feld History selbst) an. Auch das sind absolute Basics, die Du Dir mit Hilfe der sehr guten DesignerHelp erarbeiten solltest.

Bernhard

Offline chakoe

  • Aktives Mitglied
  • ***
  • Beiträge: 133
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #32 am: 06.09.07 - 09:51:50 »
Guten Morgen, alle zusammen...

das mit dem Bezug des Feldes History auf sich selbst hab ich so gemacht:

In dem Formelfeld hab ich einfach nochmal den Namen des Feldes eingetragen.

Dann funktionierte die Historie dahingehend, daß ich beim Erstellen eines neuen Dokumentes
einen Eintrag Document created erhalten habe.
soweit, sogut....aber wenn ich dann die einzelnen Buttons betätige, wird dieses nicht angezeigt,
es wird also kein Eintrag in der Historie erzeugt....

Wie kann ich das realisieren?
Kopf hoch, es kann nicht immer regnen

Driri

  • Gast
Re: Hilfe bei Aktioen "Click"
« Antwort #33 am: 06.09.07 - 09:56:30 »
Du mußt dann über die Buttons ein Feld setzen und dieses auch im PostOpen-Event überwachen (siehe Punkt 6 in der Anleitung).

Offline chakoe

  • Aktives Mitglied
  • ***
  • Beiträge: 133
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #34 am: 06.09.07 - 10:16:19 »
So,

also muss ich ein Feld für jeden Button, der in der Historie erscheinen soll, anlegen.
Dann muss ich also im PostOpen des Dokumentes die Formel nochmals eintragen,
allerdings muss ich die doch bestimmt verändern, sodaß Sie sich auf das neue Feld
bezieht, oder?

###############################################
' The strItemsArray contains the field names you want to observe.
   Dim strItemsArray(2) As String   
   strItemsArray(0) = "Subject"
   strItemsArray(1) = "Date"
   strItemsArray(2) = "Body"
' The strItemDspArray contains the field names that are displayed,
' if you do not want to use different display names, then just pass strItemsArray
' as 3rd parameter to the PostOpenStartObservation method.
   Dim strItemDspArray(2) As String
   strItemDspArray(0) = "The Subject"
   strItemDspArray(1) = "Last modified on"
   strItemDspArray(2) = "Content"
' intMaxLenEntryArray is the maximum length of each value being displayed.
' Provide an empty array if you do not want to limit this.
' Here we limit each value to 75 chars max.
   Dim intMaxLenEntryArray(2) As Integer
   Dim i As Integer
   For i = 0 To 2
      intMaxLenEntryArray(i) = 75
   Next
' "History" is the name of the history field.
   Set g_history = New History("History")
' Now we call the initial method of this History object
   Call g_history.PostopenStartObservation(Source, strItemsArray, strItemDspArray, intMaxLenEntryArray)
####################################################


SOOOO:

also: Ich muss die Formel imPostopen um die neuen Felder für jeden Button erweitern.
Aber: wenn ich einfach ein Feld über jedem Button erstelle, muss ich ja noch irgendwas machen,
damit sich der Wert des Feldes ändert, das in der Historie erscheint, oder? Wie krieg ich das denn hin, daß sich der Wert ändert? auch wieder einfach über den Button das zugehörige Feld mit irgendeinem Wert füllen? Das könnte doch klappen, oder?
« Letzte Änderung: 06.09.07 - 10:27:10 von chakoe »
Kopf hoch, es kann nicht immer regnen

Driri

  • Gast
Re: Hilfe bei Aktioen "Click"
« Antwort #35 am: 06.09.07 - 10:28:59 »
Wenn Du für jeden Button diese Historie haben möchtest, dann wäre das so.

Den ersten Array mußt Du dann um die Anzahl der Felder erweitern und jeweils die Feldnamen angeben. Im zweiten Array trägst Du dann parallel dazu den Text ein, der in der History stehen soll.


Edit :

Genau, Du müßtest dann mit dem Button für eine Änderung im Feld sorgen.

Offline chakoe

  • Aktives Mitglied
  • ***
  • Beiträge: 133
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #36 am: 06.09.07 - 12:32:58 »
So, mühsam ernährt das Eichhörnchen....

Die Historie läuft prinziell....aber:

Die Historie wird erstellt, sobald ich ein neues Dok erstelle (Document created....)
Drücke ich auf den ersten Button, passiert nix...Dok verlassen, save...wieder öffnen
erster Button wie gewünscht verschwunden( weil erledigt, siehe vorher im Thread),
aber kein Eintrag in der Historie. Dann doppelklick (bearbeitungsmodus), betätigen
des 2. buttons, save&exit -> eintrag wird erstellt. wieder öffnen, eintrag ist da, doppelklick,
betätigen des 3. Buttons save&exit -> eintrag wird erstellt. wieder öffnen, eintrag ist da, doppelklick,
betätigen des 4. Buttons, dann bekomme ich den Fehler:

Error #9
subscript out of Range
Line #325 in procedure: <PROCESSPOSTSAVE>

Was mache ich falsch?

#####
zusatzinfios:

ich habe für jeden button ein feld "hist_buttonname" erstellt, typ text.
dann habe ich bei jedem feld den vorgabewert "offen" vergeben und dann bei jedem Button die funktion "feld "hist_buttonname" ändern in erledigt" hinterlegt.
Zusätlich habe ich die Felder mal sichtbar gemacht, um zu sehen, ob die funktionen in den Buttons funzen, und dies ist der Fall, die felder werden alle wunderbar mit dem Inhalt "erledigt" gefüllt.
« Letzte Änderung: 06.09.07 - 12:47:59 von chakoe »
Kopf hoch, es kann nicht immer regnen

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #37 am: 06.09.07 - 17:27:10 »
Ich habe mir diesen Thread (und ältere) jetzt mal durchgehend angeschaut. Mein Fazit: Mit derartigen Knowhow-Defiziten schon bei den Basics ist die jetzige Aufgabenstellung nicht nur mehr als ambitioniert, sondern eigentlich nicht zu schaffen (oder "irgendwas funktioniert", man weiss aber nicht, warum, was ich für gefährlich halte).

Du scheinst derzeit einiges an Zeit in dieses "Projekt" zu stecken. Darf ich Dir den Tipp geben, dies vorher in eine strukturierte Lernphase zu stecken? Vielleicht (aber das kann ich jetzt nicht abschätzen) bist Du dann sogar eher, auf jeden Fall aber überhaupt irgendwann mal fertig mit dem, wozu man Dich beauftragt hat.

Was die gepostete Fehlermeldung angeht: Du hast offensichtlich eine andere Version von Michis HistoryClass. Ich kann zwar bestätigen, dass die Fehlermeldung aus ProcessPostSave stammt, aber "meine" Zeile 325 kann diese Meldung gar nicht provozieren.
Ich befürchte, dass selbst wenn Du uns jetzt "Deine" Zeilen 320 bis 330 schickst (wenn Du diese überhaupt findest), dann würdest Du mit einem empfohlenen Workaround wieder hilflos dastehen.

So vergeuden wir jedenfalls alle unsere Zeit. Vorschlag: Gehe die Sache strukturiert an, lege eine solche Lernphase ein. Und wenn dabei Fragen kommen, helfen wir sehr gerne, und wir werden uns dann mit Dir über wirkliche Erfolge freuen können.

Bernhard

Offline WernerMo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.050
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #38 am: 06.09.07 - 17:53:37 »
Hallo Bernhard,

das deckt sich mit meinen Antworten unter #2 und 6.

Und was mich besonders trifft (daher habe ich mich hier auch ausgeklickt, auf meine Frage:

im Jahre 2004 hast Du geschrieben:

"Ich habe mir mal von einem Bekannten die Bücher

Notes/Domino 5: Einführung in die LotusScript-Programmierung
Anwendungsentwicklung unter Lotus Notes/Domino 5

von Addison-Wesely besorgt, vielleicht bringt mich das ein bischen weiter,
wenn zeitlich hinhaut...."

Wie weit bist Du damit gekommen?

Und die Nachfrage:
Zitat
Steht alles in der Hilfe oder in den Büchern, die Du schon 2004 lesen wolltest.
Aber Dokulesen ist "uncool"
kam als Antwort nur:
Zitat
das hat nichts damit zu tun, daß es uncool ist, sondern schlicht und einfach damit,
das ich seitdem nichts mehr mit Notes-Design zu tun hatte, weil ich anderweitig
schaffen sollte...ist blöde, weiss ich auch, aber man kennt das doch:

Mach mal, du hast sowas doch schonmal gemacht...und dann steht man da...

Die einzigen Fragen die mir dazu noch einfallen sind:
  • Wer soll das später warten und pflegen?
  • wäre es nicht besser, die Forumsmitglieder sparen ihre Zeit und inverstieren mehr ins Überreden das Mitglied zu einer fundierten Grundschulung?
  • wie viele solche "Fälle" gibt es noch hier?
  • wer trägt die Verantwortung für solche "Arbeitssituation(en)"

Sorry wenn ich so reagiere, aber aus meiner Sicht gibt es (für mich) nur zwei Möglichkeiten Mitleid (und weinen) oder ganz ehrlich die Ursachen suchen und dann aber auch anpacken.
Aber wenn die Leute beides nicht wollen....

Gruß Werner
Gruß Werner
  o                                                  o   
 /@\  Nächster @Notes-Stammtisch  /@\  online Sept. 2020?
_/_\__________________________/_\_ Details folgen.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Hilfe bei Aktioen "Click"
« Antwort #39 am: 06.09.07 - 18:14:06 »
Werner, ich habe in solchen Situationen (und die sind ja nun nicht selten) auch immer ein Problem. Wenn ein Fragesteller schon entsprechend auftritt, ist's mir wurscht (und ich denke eher, wenn ich dann doch Antworten lese: Warum tun die Kollegen sich das an??), aber ... Sebastian gibt sich ja nun wirklich Mühe. Zumindest im Rahmen dessen, wofür er bezahlt wird. Und offensichtlich: Warum sollte er mehr tun? Aber auch: Warum sollten wir etwas tun?

Im Falle von Sebastian gilt m.E. nicht: "Aber wenn die Leute nicht wollen ...". Hier scheint eher die Geschäftsleitung völlig konsterniert zu schauen, wenn man da jemanden bei drohendem Blinddarmdurchbruch sagen würde: "Lassen Sie sich doch vom Netzwerker operieren - das kostet nix extra!".

Um bei diesem Bild zu bleiben: Sebastian bekommt sicherlich nicht nur von mir weiter Unterstützung, wenn er strukturiert lernend die Sache "Notes-Programmierung" angehen will und dabei Fragen hat. Was er aber gerade machen will / muss: Nö, das ist Ressourcenvergeudung.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz