Autor Thema: Sprung in ein Feld mit .GotoField  (Gelesen 6622 mal)

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Sprung in ein Feld mit .GotoField
« am: 20.06.06 - 14:18:20 »
Hallo,

ich erstelle über einen Agenten ein Dokument in dem ich Metadaten und Daten vom Großrechner in das Dokument übertrage. Danach aktualisiere ich das NotesUIDocument und möchte mit GotoField in ein Feld springen, das erst nach dem Aktualisieren sichtbar wird. (siehe Code-Schnipsel). Leider erhalte ich immer nur die Fehlermeldung 'Feld nicht gefunden'. Ein 'Doevents' vor dem GotoField hat auch nicht geholfen.

Hat jemand eine Idee wie der Code aussehen muß, dass das Feld angesprungen wird?

Rainer

                        ndoDest.computewithform True, False
                        
                        nduNew.refresh True                     
                        nduNew.refreshhideformulas                           
                        
                        vntValue = ndoDest.getitemvalue("t_StartFeld")
                        
                        If vntValue(0) <> "" Then
                           nduNew.gotofield(vntValue(0))
                           
                        End If


Rainer Zaske

MCSD - C#

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: Sprung in ein Feld mit .GotoField
« Antwort #1 am: 20.06.06 - 19:24:27 »
Gibt's das Feld, zu dem du springen willst auch wirklich in der Maske?


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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Sprung in ein Feld mit .GotoField
« Antwort #2 am: 20.06.06 - 23:47:28 »
Abgesehen davon: Warum passiert solch ein Stunt überhaupt im FrontEnd? DIE Begründung würde mich jetzt mal interessieren  ;)
Und wenn die Begründung passt, dann der wirkliche Code ...

Bernhard

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Sprung in ein Feld mit .GotoField
« Antwort #3 am: 21.06.06 - 08:32:59 »
@Axel: Das feld ist wirklich in der Maske, aber beim Öffnen noch ausgeblendet

@Bernhard: Hier die Begründung: Eine Anforderung unserer Fachabteilung ist, dass Sie für bestimmte Prozesse die passenden Formbriefe versenden muß. Damit Sie sich nicht die Daten einzeln aus der 3270-Emulation heraussuchen und -kopieren müssen lese ich Sie per LSX aus und übertrage später alles nach Word zum Drucken.
Die Fachabteilung möchte außerdem die Möglichkeit besitzen diese Werte noch zu bearbeiten. Da ich immer unterschiedliche Felder für die einzelne Brief benötige habe ich alle Konfigurationsdaten in Metadaten-Dokumenten gespeichert damit ich sie nach Bedarf füllen und anzeigen kann und benötige somit nur eine Basismaske.
Da der Benutzer auch mal den falschen Brief auswählen kann und das Dokument danach einfach wegwerfen soll. Es können nämlich nur ganz bestimmte Benutzer Dokumente löschen (Anforderung der Revision). Das ist der Grund wieso ich das ganze im Frontend und nicht im Backend betreibe.

PS: Das ganze funktioniert super wenn man keine verstecken Felder hat, denn ich habe auf die gleiche Art schon 15 weitere Geschäftsprozesse abgebildet.

Ich hoffe das reicht als Begründung.  ;)

Rainer
Rainer Zaske

MCSD - C#

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: Sprung in ein Feld mit .GotoField
« Antwort #4 am: 21.06.06 - 09:08:45 »
Beim Setzen des Fokus in ein Feld muss diese sichtbar und bearbeitbar sein.


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

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Sprung in ein Feld mit .GotoField
« Antwort #5 am: 21.06.06 - 09:15:31 »
Ergänzend zu Axel ....

was dazu führt das ein GotoField mit TabbedTables und berechneten Tabellen nicht richtig funktioniert.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Sprung in ein Feld mit .GotoField
« Antwort #6 am: 21.06.06 - 09:23:19 »
Ich dachte, dass nach dem .refresh und .refreshhodeformulas das Feld sichtbar ist.

Wird auf die beiden Refreshs der Bildschirm nicht direkt aktualisiert?  ???

Rainer
Rainer Zaske

MCSD - C#

Offline Marco Simon

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Sprung in ein Feld mit .GotoField
« Antwort #7 am: 21.06.06 - 12:02:41 »
Ist das Feld denn im LS-Debugger sichtbar?

MfG

Marco

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Sprung in ein Feld mit .GotoField
« Antwort #8 am: 21.06.06 - 12:07:22 »
Wird auf die beiden Refreshs der Bildschirm nicht direkt aktualisiert?  ???
Nein wird es nicht, speziell dann nicht wenn das in einer Tabelle irgendwo zu finden ist.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Sprung in ein Feld mit .GotoField
« Antwort #9 am: 21.06.06 - 12:31:02 »
@Marco: Das Feld ist im Debugger sichtbar. Aber nicht am Bildschirm.

@Thomas: Das Feld liegt leider in einer Tabelle, anscheined hab ich wohl den Kanpf verloren und muß mir ein Workaround überlegen.  ???
Rainer Zaske

MCSD - C#

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Sprung in ein Feld mit .GotoField
« Antwort #10 am: 21.06.06 - 12:53:07 »
@Thomas: Das Feld liegt leider in einer Tabelle, anscheined hab ich wohl den Kanpf verloren und muß mir ein Workaround überlegen.  ???
Wenn du da ein Workaround findest könntest du uns das bitte mitteilen. Das bräuchten wir nämlich auch dringend.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Sprung in ein Feld mit .GotoField
« Antwort #11 am: 22.06.06 - 11:35:47 »
Hallo,

ich mir ein Workaround gebastelt, das nur auf diese Maske passt. Ich zeige eines meiner Systemfelder (Datum des Briefes) jetzt an und mache es gleichzeitig auch editierbar. Das macht im großen und ganzen auch Sinn.

Bevor ich mich zu diesem Schritt entschlossen habe hab ich etwas mit der API gespielt. Doch weder Postmessage zum Senden eines Klick-Events noch das setzen des Fokus per API in das Fenster zusetzen hat geholfen.

Vielleicht hat ja einer unsere Notes-Götter noch eine Idee was man machen könnte.

Rainer
Rainer Zaske

MCSD - C#

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Sprung in ein Feld mit .GotoField
« Antwort #12 am: 27.06.06 - 11:30:31 »
Hi,

mal ein anderer Vorschlag, der insbesondere auch mit dem Laden von berechneten Teilmasken zum erfolg führt...

WIe wäre es das UIDoc zu schliessen, und neu zu laden ?
(über die DocumentUniqueID)
pete(r)

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Sprung in ein Feld mit .GotoField
« Antwort #13 am: 27.06.06 - 11:51:06 »
Dann muß ich aber das Dokument zuerst speichern und das will ich vermeiden.
Rainer Zaske

MCSD - C#

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Sprung in ein Feld mit .GotoField
« Antwort #14 am: 27.06.06 - 13:08:37 »
Hi, nochmals.

Ich hab mir jetzt mal die Grundlagen deines Scritps zusammengebaut, und leider den Fehler nicht navollziehen können.... (ausser das feld war wirklich nicht da)  :-\

Darum folgende Fragen:
- Wie steuerst Du das Anzeigen des Feldes, in das du willst (über Hide, wenn ein anderes Feld != wert?) und ist womöglich dieses steuer-feld in der Maske erst nach dem Feld in das du springen willst?
- Was für ein Typ ist dein Feld in das du willst (Text?)
- Hängt es womöglich in einer berechneten Teilmaske, einem Layout oder einem Abschnitt (ev. sogar mit "nicht"-bearbeitungsrecht oder zugeklappt)
ect.

(PS: habs mit R 5.0.11 & R 6.53 versucht)



pete(r)

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Sprung in ein Feld mit .GotoField
« Antwort #15 am: 27.06.06 - 14:23:26 »
Hallo,

das Steuerfeld befindet sich am Anfang der Maske in einen Bereich mit beschränkten Zugriff. Das Feld enthält die Feldnamen der die angezeigt werden sollen.
Die Feder um die geht, haben eine Hide-When-Formel von de Typ '@isnotmember("Feldname"; t_SichtbareFelder)'. Leider befinden sich die Felder in einer Tabelle, die ich innerhalb einer Tabelle befindet und dieser Umstand scheint die Probleme zu bereiten.

Rainer
Rainer Zaske

MCSD - C#

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Sprung in ein Feld mit .GotoField
« Antwort #16 am: 28.06.06 - 12:32:30 »
So jetzt doch nochmal ne wilde Frage:

Ist womöglich das Steuer-Feld vom Typ "Berechnet zur Anzeige"?
oder berechnet sich da was aus anderen Feldern oder dblookups drin?
Ein refresh schmeisst ja bekanntlich gerne mal "berechnet zur anzeige" aus dem  UIdoc.Document  raus....
(in Deinem Fall: UIDoc erzeugen ohne speichern, UIdoc refresh und danach zugriff auf das backend-Doc um den wert zu holen)
Und DBLookups und berechnete aus anderen Feldern kommen auch nicht immer so ganz linerar rüber wie man es will.

-> Auf was ich raus will ist ob wirklich der richtige Feldname in vntValue(0) ankommt, auf welches du springen möchtest.
oder was ja auch gerne passiert: das vntValue(0) hat ein lehrzeichen, sonderzeichen, umbruch, "merhfachwert" als ein String, ect.

Ich weiss, dass das jetzt etwas Frischlingmässig klingt, aber machmal sind die grössten Probleme doch nur kleine "Leichtsinnsfehler" ect.
pete(r)

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Sprung in ein Feld mit .GotoField
« Antwort #17 am: 28.06.06 - 13:52:57 »
Hallo,

nein, das Feld ist kein Feld, das zur Anzeige oder beim Anlegen berechnet wird, sondern ein ganz normales Feld das über die Metadaten beim anlegen gepflegt wird.

Beim Auslesen des Feldes erhalte ich den korrekten Wert. (vntValue(0)) enthält den richtigen Namen.

Das Problem ist, dass das Feld zum Zeitpunkt des Befehl .GotoField nicht sichtbar ist.

Rainer
Rainer Zaske

MCSD - C#

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Sprung in ein Feld mit .GotoField
« Antwort #18 am: 28.06.06 - 14:10:52 »
hast Du mal versucht ein neues Dokument im Backend zu erzeugen (nicht speichern) und dann dieses im Frontend zu öffnen?, ist dann das Feld, welches Du anspringen willst sichtbar?

Falls ja sollte das ansprinmgen auch funktionieren. Alternativ könntest Du noch versuchen einen uidoc.Refresh (F9) auszuführen, dann müssten die HW-Formeln neu berechnet werden.
Gruß
Dirk

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Sprung in ein Feld mit .GotoField
« Antwort #19 am: 28.06.06 - 16:08:52 »
Hallo,

es funktioniert jetzt. Viel Dank. :D

Ich hätte nicht gedacht, dass es klappt über NotesDatabase.CreateDocument ein Dokument im Backend zu erstellen und dies dann mit NotesUIWorkspace.EditDocument im Frontend zu öffnen, ohne es vorher zu speichern.

Nochmals vielen Dank an alle die geholfen haben.
Rainer Zaske

MCSD - C#

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz