Autor Thema: automatischer Wechsel der Registerkarte in Tabellen  (Gelesen 5606 mal)

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Hi,
ich habe in einer Tabelle mit Registertabs einen versteckten Register-Tab (Zeile), der nur eingeblendet wird, wenn ein verstecktes Feld mit einem Wert gefüllt wird. Das klappt auch so weit. Ich klicke also eine Schaltfläche an und das versteckte Feld wird befüllt, anschließend ein uidoc.Refresh und schwups ist das Tabellenregistertab da.

Was mir nicht gelingt ist dem gerade neu eingelendeten Register-Tab den Focus zu geben, so dass dieser automatisch aufklappt.

Hat jemand einen Hinweis für mich?
Gruss
Lloyd

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #1 am: 31.08.11 - 11:11:13 »
... du brauchst in dem Tab ein bearbeitbares Feld - dann mit uidoc.GoToField

Toni
Grüßle Toni :)

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #2 am: 31.08.11 - 11:17:43 »
Hi,
das hab ich schon probiert. Er spring zwar in das Feld, aber wechselt nicht vorher den Register-Tab.
Gruss
Lloyd

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #3 am: 31.08.11 - 11:24:22 »
... was heißt vorher ??? Vor was ?

Toni
Grüßle Toni :)

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #4 am: 31.08.11 - 11:47:33 »
Ich befinde mich in der Tabelle im 1. Registertab von insgemsamt 6 Registertabs. Ich führe meine Funktion aus und an Position 4 wird der versteckte Registertab eingeblendet. Obwohl ich mit uidoc.GoToField den Focus in ein bearbeitbares Feld des gerade eingelendeten Registertabs setze, bleibe ich weiterhin in Registertab 1 stehen. Wechsel ich den Registertab mit der Maus, sehe ich dass der Focus in dem entsprechenden Feld ist.
Gruss
Lloyd

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #5 am: 31.08.11 - 12:20:56 »
Das ist ein BUG!? in bestimmten Versionen (habs grade getestet, scheint in 8.5.2FP3 behoben zu sein): Der Tab wird beibestimmten Tabellen NICHT gewechselt bei einem GotoField... Genausowenig wie bei Feld- Validierungen.

Deshalb musst Du folgendes machen:

Die Tabelle hat ja sicherlich einen Namen.
Baue also in Dein Script folgenden Befehl mit ein:
Wenn Deine Tabelle "Tabelle1" heisst und er Tab, den Du aktivieren willst "VersteckterTab":
call uidoc.ReplaceItemValue( "$Tabelle1" , "VersteckterTab" ) '- Man kann berechnete Tabellen über ein Feld mit $ + Tabellenname ändern...
Call uidoc.RefreshHideFormulas
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #6 am: 31.08.11 - 12:27:15 »
... ich denke es fehlt nur ein uidoc.Refresh...

Code
	Dim ws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	Dim docThis As NotesDocument
	
	Set uidoc = ws.CurrentDocument
	Set docThis = uidoc.Document
	
	If docThis.ShowTab(0) = "" Then
		docThis.ShowTab = "2"
		Call uidoc.Refresh
		Call uidoc.GotoField( "Testfeld" )
	Else
		docThis.ShowTab = ""
		Call uidoc.Refresh
		
	End If

	

Toni
Grüßle Toni :)

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #7 am: 31.08.11 - 12:40:37 »
Der uidoc.Refresh ist auch nach dem GoToField drin, klappt aber nicht.

Ich habe Notes 8.5.2FP1 auf dem Client.
Gruss
Lloyd

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #8 am: 31.08.11 - 12:47:22 »
Zitat
Ich habe Notes 8.5.2FP1 auf dem Client.
... ich auch...

Toni
Grüßle Toni :)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #9 am: 31.08.11 - 12:49:32 »
ich würde es mit uidoc.RefreshHideFormula mal probieren...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #10 am: 31.08.11 - 13:48:42 »
... der ist im .Refresh mit enthalten - der RefreshHideFormulas berechnet nur keine Felder neu...

Aber ich habe gesehen, daß ich hier 8.52 habe - ohne FP1 - sorry, falls das für Verwirrung sorgte... :-[

Toni
Grüßle Toni :)

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #11 am: 31.08.11 - 14:17:24 »
Hi,
uidoc.RefreshHideFormula bewirkt leider nichts.
Gruss
Lloyd

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #12 am: 31.08.11 - 16:03:46 »
... da sind immer noch unbekannte - ich habe es mir nachgestellt und es funktioniert - kannst du den Code posten - du kannst empfindliche Daten ja maskieren - OK?

Toni
Grüßle Toni :)

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #13 am: 31.08.11 - 18:35:58 »
Sub Click(Source As Button)
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView, view2 As NotesView
   Dim doc As NotesDocument, doc2 As NotesDocument
   Dim curdoc As NotesDocument
   Dim dc As NotesDocumentCollection
   
   Dim key As String
   
   Set uidoc = ws.CurrentDocument
   Set curdoc = uidoc.Document
   Set db = s.CurrentDatabase
   Set view = db.GetView("Stammdaten\Vertragspartner")
   key = uidoc.FieldGetText("vertrag_vertragspartner")
   
   If key = "" Then
      Msgbox "Sie zunächst eine Vertragspartner im Karteireiter 'Allgemein' auswählen.", 16, "Vertragspartner fehlt"
      Exit Sub      
   Else
      Set doc = view.GetDocumentByKey(key)   ' Vertragspartner auslesen
      
      If (Not doc Is Nothing) Then
         Set view2 = db.GetView("($adverarbeitung)")
         Set dc = ws.PickListCollection(PICKLIST_CUSTOM, True, db.Server, db.FilePath, view2.Name, "Dokumentauswahl", "Wählen Sie ein Dokument aus.", doc.UniversalID)
         
         If dc.Count = 0 Then                        '(3)
            ' Wenn Dokumentauswahl leer dann abbrechen            
            Exit Sub
         Else                                          '(3)
            Set doc2 = dc.GetFirstDocument
            If Not ( doc2 Is Nothing ) Then
               uidoc.EditMode = True
               Call uidoc.FieldSetText("vertrag_showbdsg","Ja")
               Call uidoc.FieldSetText("vertrag_TBDSG_1",doc2.GetItemValue("vertragspartner_adv_textfeld1")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_2",doc2.GetItemValue("vertragspartner_adv_textfeld2")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_3",doc2.GetItemValue("vertragspartner_adv_textfeld3")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_4",doc2.GetItemValue("vertragspartner_adv_textfeld4")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_5",doc2.GetItemValue("vertragspartner_adv_textfeld5")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_6",doc2.GetItemValue("vertragspartner_adv_textfeld6")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_7",doc2.GetItemValue("vertragspartner_adv_textfeld7")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_8",doc2.GetItemValue("vertragspartner_adv_textfeld8")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_9",doc2.GetItemValue("vertragspartner_adv_textfeld9")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_10",doc2.GetItemValue("vertragspartner_adv_textfeld10")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_11",doc2.GetItemValue("vertragspartner_adv_textfeld11")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_12",doc2.GetItemValue("vertragspartner_adv_textfeld12")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_13",doc2.GetItemValue("vertragspartner_adv_textfeld13")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_14",doc2.GetItemValue("vertragspartner_adv_textfeld14")(0))
               Call uidoc.FieldSetText("vertrag_TBDSG_15",doc2.GetItemValue("vertragspartner_adv_textfeld15")(0))
               
               Call uidoc.GotoField("vertrag_BDSG1")
               Call uidoc.Refresh
            End If
         End If
      Else
         Msgbox "Der Vertragspartner zum Vertrag wurde in den Stammdaten nicht gefunden. Bitte legen Sie diesen neu an.", 16, "Vertragspartner nicht gefunden"
      End If      
   End If
End Sub
Gruss
Lloyd

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #14 am: 01.09.11 - 07:29:37 »
... mach den Refresh vor dem uidoc.GoToField ...

Toni
Grüßle Toni :)

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #15 am: 01.09.11 - 14:07:31 »
Hi,
das nutzt leider auch nichts. Ich hab da alle Varianten schon durch.
Gruss
Lloyd

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #16 am: 01.09.11 - 16:12:44 »
...Ich hab da alle Varianten schon durch.

Auch die von Tode beschriebene mit replaceitemvalue "$Tabelle1" ... ? Kannte das zwar bislang nicht, aber es gefällt mir fast besser als ein gotofield.
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #17 am: 01.09.11 - 16:25:06 »
Den Beitrag habe ich glatt übersehen. Aber wie passt dann das uidoc mit ReplaceItemValue zusammen? Die Methode ReplaceItemValue hab ich doch nur im Backend.

Tode hat geschrieben call uidoc.ReplaceItemValue( "$Tabelle1" , "VersteckterTab" )
Gruss
Lloyd

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #18 am: 01.09.11 - 16:28:00 »
Das war ein Schreibfehler. Es müsste heissen: Call uidoc.Document.ReplaceItemValue( "$Tabelle1" , "VersteckterTab" )

Bernhard

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: automatischer Wechsel der Registerkarte in Tabellen
« Antwort #19 am: 01.09.11 - 16:49:19 »
... bist du ganz sicher? Das läuft seit Jahr und Tag - und ein Bug wäre mir nicht bekannt. Erst der Refresh - damit werden die Hide-When's neu berechnet - jetzt ist die Zeile sichtbar und jetzt kann auch gesprungen werden.

Bei den berechneten Tab's verschwinden die anderen Tab's - soll das so sein?

Toni
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz