Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: wuwu am 08.09.04 - 16:24:41

Titel: Felder verbergen - hide
Beitrag von: wuwu am 08.09.04 - 16:24:41
hallo,

würde gerne per Script (button) ein Feld verbergen:

Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesForm
   Dim vc As NotesItem
   Set db = session.CurrentDatabase
   Set view = db.GetForm("Vorschlag")
   Set vc = Zeitfenster

mehr habe ich nicht und komm auch nicht weiter mit .ishidden usw.

danke für eure hilfe!

mfg
Titel: Re:Felder verbergen - hide
Beitrag von: Driri am 08.09.04 - 16:40:00
Das geht IMO nicht per Script. Du mußt eine Hide-When-Formel auf das Feld setzen und kannst dann höchstens über ein Flagfeld die Hide-When-Formel bedienen.


Also z.B. Hide-When setzen für Flagfeld=1 und dann im Script das Flagfeld entsprechend schießen. Das erfordert dann allerdings im UIDocument ein RefreshHideFormulas.
Titel: Re:Felder verbergen - hide
Beitrag von: wuwu am 08.09.04 - 17:00:03
merci für die schnelle antwort, ich versteh aber leider nur bahnhof!

ich bin leider noch ein neuling im scriptn von notes dbs!

ich hoffe du kannst mir trotzdem weiter helfen!

mfg
Titel: Re:Felder verbergen - hide
Beitrag von: Driri am 08.09.04 - 17:09:32
Das sollte wohl machbar sein  ;)

Du kannst auf das Feld eine Hide-When-Formel setzen (vorletzter Tab in den Feldeigenschaften, "Absatz verbergen, wenn..."). Also z.B. Flag="1".

Dann baust Du ein verstecktes Feld mit Namen "Flag" ein. Wenn das Feld den Wert "1" hat, wird das obige Feld verborgen.

Für das Verbergen per Button reicht dann eigentlich auch Formelsprache aus, z.B. so :

@SetField("Flag";"1");
@Command([RefreshHideFormulas])
Titel: Re:Felder verbergen - hide
Beitrag von: wuwu am 08.09.04 - 17:12:19
spitzenklasse!

wie sieht die ganze geschichte dann aus im lotus script?
ich möchte gerne die geschichte vom anfang an im lotus script machen!

merci einstweilen!

mfg horst
Titel: Re:Felder verbergen - hide
Beitrag von: Driri am 08.09.04 - 17:23:25
Dann müßtest Du per Script das Feld "Flag" auf "1" schießen und für das NotesUIDocument ein RefreshHideFormulas absetzen.

Also in Kurzform

Call uidoc.FieldSetText("Flag", "1")
Call uidoc.RefreshHideFormulas
Titel: Re:Felder verbergen - hide
Beitrag von: wuwu am 08.09.04 - 17:37:30
Hallo,

habe jetzt folgendes script gebastelt:

Sub Click(Source As Button)
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Set uidoc = ws.CurrentDocument
   
   Call uidoc.FieldSetText("Flag","1")
   Call uidoc.RefreshHideFormulas
   
End Sub

er setzt den eintrag in flag, aber er macht die Aktualisierung nicht automatisch, das heist wenn ich den button gedrückt habe bzw. loslasse. er versteckt das feld erst wenn ich f9 mache warum?

merccccciiiiii
Titel: Re:Felder verbergen - hide
Beitrag von: TMC am 08.09.04 - 20:59:36
Ich hätte jetzt auch erwartet, dass es mit "RefreshHideFormulas" geht.

Welche Client-Version setzt Du ein?

Versuch mal ein: Call notesUIDocument.Refresh
Titel: Re:Felder verbergen - hide
Beitrag von: TMC am 08.09.04 - 21:05:55
Habs gerade getestet. das Feld muss im Backend gesetzt werden.

So gehts mei mir (R5.0.11):

Sub Click(Source As Button)
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   'Call uidoc.FieldSetText("Flag","1")
   doc.Flag = "1"
   Call uidoc.RefreshHideFormulas
   
End Sub
Titel: Re:Felder verbergen - hide
Beitrag von: koehlerbv am 08.09.04 - 21:26:16
spitzenklasse!

wie sieht die ganze geschichte dann aus im lotus script?
ich möchte gerne die geschichte vom anfang an im lotus script machen!

merci einstweilen!

mfg horst

Ich schliesse mich jetzt mal Todes allseits bekannter Meinung an: Warum denn nur verdammt noch mal LS in solchem Fall ? WOZU ?
Wer mit @functions nicht klar kommt, scheitert garantiert auch mit LS.

By the way: In LS müsste das Update des UI-Docs mit
Call NotesUIWorkspace.ViewRefresh
passieren.

Bernhard
Titel: Re:Felder verbergen - hide
Beitrag von: TMC am 08.09.04 - 21:41:49
By the way: In LS müsste das Update des UI-Docs mit
Call NotesUIWorkspace.ViewRefresh
passieren.

Na ja, dafür haben wir ja speziell die Methode uidoc.RefreshHideFormulas.
Macht imho auch Sinn, wenn man per LS die Hidewhens aktualisieren will, da doch sonst u.U. Feldvalidierungen zuschlagen, die man vielleicht hier noch gar nicht will.

Aber ansonsten gebe ich Dir vollkommen Recht: Ohne @Formula-Language - Kenntnisse und Einsatz  ist es imho nahezu unmöglich, eine App sauber zu programmieren.
Titel: Re:Felder verbergen - hide
Beitrag von: Tode am 09.09.04 - 13:32:18
Wenn Du Anfänger bist, ist das der FALSCHE Ansatz.

Lerne ERST Formel- Sprache, und mache damit ALLES, was Damit geht. Und wenn Du in sehr ferner Zukunft mit Formel alleine nicht weiterkommst, DANN beschäftige Dich mit Script, aber keinen Tag vorher.

Gerade an Deinem Thread sieht man es wieder...

Formel- Lösung:
@SetField( "Flag" ; "1" );
@Command( [ViewRefreshFields] )

Script-Lösung:
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   'Call uidoc.FieldSetText("Flag","1")
   doc.Flag = "1"
   Call uidoc.RefreshHideFormulas

was ist wohl die effizientere Methode zu Programmieren !?

Tode
Titel: Re:Felder verbergen - hide
Beitrag von: koehlerbv am 09.09.04 - 20:53:39
Wenn Du Anfänger bist, ist das der FALSCHE Ansatz.

Lerne ERST Formel- Sprache, und mache damit ALLES, was Damit geht. Und wenn Du in sehr ferner Zukunft mit Formel alleine nicht weiterkommst, DANN beschäftige Dich mit Script, aber keinen Tag vorher.

Gerade an Deinem Thread sieht man es wieder...

Formel- Lösung:
@SetField( "Flag" ; "1" );
@Command( [ViewRefreshFields] )

Script-Lösung:
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   'Call uidoc.FieldSetText("Flag","1")
   doc.Flag = "1"
   Call uidoc.RefreshHideFormulas

was ist wohl die effizientere Methode zu Programmieren !?

Tode

Wie ich schon gesagt hatte, Tode:
"Wer mit @functions nicht klar kommt, scheitert garantiert auch mit LS."

Notes ohne @functions ist unmöglich, und mit @functions lernt man zudem auch am ehesten die Notes-Interna.

Bernhard
Titel: Re:Felder verbergen - hide
Beitrag von: Glombi am 09.09.04 - 22:14:08
Eine interessante Frage: Was ist besser, um Notes zu verstehen: Formel oder Script?
Ist es nicht eher Script mit dem Klassenmodell?

Bitte nicht falsch verstehen! Ich bin auch ein alter Notsi, der mit der Formelsprache groß geworden ist und diese intensiv eingesetzt hat. Inzwischen mache ich aber nur noch triviale oder "high-end" Sachen (Listen, Lookups etc.) damit, dazwischen kommt Script.

Andreas
Titel: Re:Felder verbergen - hide
Beitrag von: koehlerbv am 09.09.04 - 22:23:14
Ich meine (Tode auch  ;D):
FORMEL.

Weil: Man kriegt nicht den kleinsten Pippifax hin in Notes, ohne mit @functions umgehen zu können. Keine Ansicht, keine Gliederung, in Masken kein Hide-when und anderes ... es macht einfach keinen Sinn, Notes-(oder vor allem Domino-)Apps zu entwerfen, wenn man nicht eine fundierte Ahnung von @functions hat.
Ausserdem setzen diese immer DIREKT ein fundiertes Wissen über die Notes-Backgrounds voraus.

Daher meine Meinung: Wer sich mit @functions nicht auskennt, fällt IMMER mit LS auf die Nase. Professionelle Ansprüche setze ich jetzt dabei voraus. Logisch.

Bernhard
Titel: Re:Felder verbergen - hide
Beitrag von: TMC am 09.09.04 - 22:24:23
Eine interessante Frage: Was ist besser, um Notes zu verstehen: Formel oder Script?
Ist es nicht eher Script mit dem Klassenmodell?

Ich war ein Quereinsteiger mit wenig Vorwissen in Basic-Dialekten.
Zwangsläufig habe ich mit Formelsprache angefangen, komplett ausgereizt und hab dann mit LS begonnen, weil ich mit Formel einfach nicht mehr weiterkam. Für mich persönlich war das ein guter Weg.

Wenn Du mir Anfangs das Klassenmodell gezeigt hättest, dann hätte ich nur Bahnhof verstanden. Die Notes-Interna kenne ich aber nur wirklich, seit dem ich LS code.
Die Formelsprache hat mir persönlich die Notes-internas nicht aufgezeigt.

Mittlerweile mache ich es mit dem Einsatz von Formel & Script wie Du, Andreas (und wie wohl jeder, der das Know-how hat, Notes-Apps zu entwicklen)
Titel: Re:Felder verbergen - hide
Beitrag von: Glombi am 09.09.04 - 22:31:36
Da stimme ich voll zu. Ohne Formelsprache geht es nicht. Aber die Formelsprache ist nicht unbedingt besser als Script geeignet, die Architektur von Notes besser zu verstehen.

Die Schwächen der Formelsprache sind aus meiner Sicht:
implizite Typzuweisung
kein "Option Declare"
keine Unterscheidung Feld oder Variable
teilweise unübersichtliche Reihenfolge der Ausführung von @Commands
kein Debugging


Die Stärken der Formelsprache sind aus meiner Sicht:
sehr wenig Codezeilen notwendig
Performance
einfaches Handling von Mehrfachwerten

TBC...

Andreas

P.S.: Evtl. sollten wir das als BP eröffnen? Hier geht es unter.
Titel: Re:Felder verbergen - hide
Beitrag von: Driri am 10.09.04 - 12:59:56
Aus meiner Erfahrung :

Ich kam aus der Welt Access/Visual Basic und bin dann auf Notes umgestiegen.
Angefangen habe ich mit der Formelsprache und erst, als das nicht mehr ausreichte, habe ich mich mit Script beschäftigt.

Allerdings finde ich, daß man durch das Erlernen von Script Notes wesentlich besser verstehen lernt, als wenn man nur mit der Formelsprache rumhantiert.
Also IMO sollte man auf jeden Fall mit den Grundlagen und Formelsprache beginnen und wenn man das intus hat, sich auf Script stürzen. Denn erst so kommt man tiefer in die Geheimnisse der Notes-Architektur.
Titel: Re:Felder verbergen - hide
Beitrag von: Semeaphoros am 10.09.04 - 13:05:26
Na ja, ich bin da wohl ziemlich atypisch :) von vielen verschiedenen Erfahrungen herkommend waren die zwei Stationen vor Notes Basic (Vorgänger von VB, VB(A) gabs dann parallel zu Notes für mich), unmittelbar davor Delphi und dann rein ins Notes. Dann aber gleich sowohl mit Formel wie auch mit Script und ich kann das nur jemandem empfehlen, der von der Theorie der Lerntechnik eine Ahnung hat, sonst klappt das nicht, weil es einfach zu umfangreich ist. Also bitte nicht nachahmen .....
Titel: Re:Felder verbergen - hide
Beitrag von: DaWutz am 11.09.04 - 23:44:14
Also ich als Notes-Anfänger (jetzt ein gutes Jahr) kann dazu sagen, das ich meine ersten Schritte auch mit Formula gemacht habe, aber dann damit immer relativ schnell vor eine Wand gerannt bin.  Vor allem aber wohl, weil ich Sache die ich aus relationellen Datenbanken kannt auch in Notes nutzen wollte. Durch den Einsatz von Script kann ich nun auch einige Sachen nutzen, an die vorher nicht zu denken war.

Für mich ist Formula hauptsächlich unübersichtlich. Wenn man 2 oder 3 @If´s geschachtelt hat, dann braucht man ja schon ewig, um einen simplen Fehler wie eine falsche Klammer oder ein fehlendes " zu finden.

Und Notes-Internas zu verstehen... sowas masse ich mir garnicht an!  ::)
Titel: Re:Felder verbergen - hide
Beitrag von: koehlerbv am 12.09.04 - 00:04:50
Da halte ich für eine falsche Herangehensweise, Wutz.
Wenn Du mit @functions "vor die Wand gerannt bist", könnte das auch an Dir selbst gelegen haben  ;D
Und: Wenn Du bei "w oder 3 @If's" durcheinander kommst, passiert Dir gleiches bei LS mit If und And und Or und den Klammern ... Hier kommt es bei beiden auf das Durchschauen der Logik an (und beides lässt sich gleichermasen gut oder schlecht lesen - man muss sich halt einarbeiten und gewöhnen). Und auch in LS habe ich schon syntaktisch korrekte verschachtelte Abfragen geschrieben, die aber LOGISCH falsch waren. Es gibt da wirklich keinen Unterschied.

Es gibt selbstverständlich viele Aufgaben, die ich lieber mit LS löse oder - vor allem - nur lösen kann. Bei einer professionellen Notes-Applikation kommt man aber logischerweise überhaupt nicht an @functions vorbei, da es in etlichen Design-Elementen die einzig zur Verfügung stehende Programmiermöglichkeit ist.

Wer also nicht bereit ist, sich in @functions wirklich fit zu machen, der wird auch nie eine hochwertige Notes-(oder Domino-)Applikation schreiben können.

Bernhard
Titel: Re:Felder verbergen - hide
Beitrag von: TMC am 12.09.04 - 00:35:51
Da kann ich Bernhard nur voll zustimmen.

Wenn man 2 oder 3 @If´s geschachtelt hat, dann braucht man ja schon ewig, um einen simplen Fehler wie eine falsche Klammer oder ein fehlendes " zu finden.

Das liegt nur am Aufbau Deines Codes.

Du kannst z.B. sowas verwenden:
_Bedingung1 := @If (......)
_Bedingung2 := @If(....)
_Bedingung3 := @If(Bedingung1 | Bedingung2; ......)

Formelsprache bietet da sehr viel zur Übersichtlichkeit.

Zugegeben: Perfekt ist die Fehlersuche nach falschen Klammern etc. nicht, und man kann darauf hereinfallen; aber ein übersichtlicher Codeaufbau kann vieles eingrenzen.