Autor Thema: Felder einer anderen Maske anzeigen (@DocFields)  (Gelesen 3554 mal)

Offline FC

  • Aktives Mitglied
  • ***
  • Beiträge: 120
  • Geschlecht: Männlich
  • Auch ich liebe dieses Forum, welches sonst ;-)
Felder einer anderen Maske anzeigen (@DocFields)
« am: 01.08.05 - 13:32:07 »
Hallo Zusammen,
ich würde gerne in einem Auswahlfeld einer Maske a) alle Felder einer anderen Maske b) zur Auswahl anzeigen lassen.

Nach Möglichkeit in Formelsprache.

Mit @DocFields kann ich ja alle Felder der aktuellen Maske anzeigen, aber wie geht das mit Feldern einer anderen Maske ???

Oder besser scripten ?

Danke
Djahan
« Letzte Änderung: 04.08.05 - 07:42:04 von FC »
--------------------------------------------------
Wer arbeitet macht Fehler.
Wer viel arbeitet macht viele Fehler.
Manche Leute machen nie Fehler ......

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #1 am: 01.08.05 - 13:39:21 »
Nur mit Script.
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 FC

  • Aktives Mitglied
  • ***
  • Beiträge: 120
  • Geschlecht: Männlich
  • Auch ich liebe dieses Forum, welches sonst ;-)
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #2 am: 01.08.05 - 13:40:54 »
Dies hatte ich mir fast gedacht, schade auch.

Dann werde ich mal Dimmen  8)

Danke Thomas.
--------------------------------------------------
Wer arbeitet macht Fehler.
Wer viel arbeitet macht viele Fehler.
Manche Leute machen nie Fehler ......

Offline FC

  • Aktives Mitglied
  • ***
  • Beiträge: 120
  • Geschlecht: Männlich
  • Auch ich liebe dieses Forum, welches sonst ;-)
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #3 am: 01.08.05 - 15:09:21 »
Hmm komme trotzdem nicht weiter.

Ich habe jetzt die möglichen Felder der Maske b) in einem String.

Aber wie bekomme ich die einzelnen Werte aus dem String als Vorgabewerte in das Auswahlfeld?
Da komme ich ja nur mit Formelsprache ran ???


--------------------------------------------------
Wer arbeitet macht Fehler.
Wer viel arbeitet macht viele Fehler.
Manche Leute machen nie Fehler ......

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #4 am: 01.08.05 - 15:10:59 »
Deine Ergebnisse schreibst Du in ein Item, das als Feld nicht mal in der Maske erscheinen muss. Dein Auswahlfeld bezieht sich dann eben auf dieses Feld ("Formel für Auswahl verwenden").

HTH,
Bernhard

Offline FC

  • Aktives Mitglied
  • ***
  • Beiträge: 120
  • Geschlecht: Männlich
  • Auch ich liebe dieses Forum, welches sonst ;-)
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #5 am: 01.08.05 - 15:34:14 »
Danke Bernhard,
nimms mir nicht über, aber  kannst Du mir evtl noch verraten, mit welchem Formelbefehl ich dann das Item anspreche  :-:
--------------------------------------------------
Wer arbeitet macht Fehler.
Wer viel arbeitet macht viele Fehler.
Manche Leute machen nie Fehler ......

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #6 am: 01.08.05 - 15:38:45 »
Das ist ganz einfach der Feldname ...

Offline FC

  • Aktives Mitglied
  • ***
  • Beiträge: 120
  • Geschlecht: Männlich
  • Auch ich liebe dieses Forum, welches sonst ;-)
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #7 am: 01.08.05 - 15:55:43 »
Hmm, hatte ich fast befürchtet  :-[

Also ich habe folgendes Script, was mir mein Item füllt:
Sub Onload(Source As Notesuidocument)
   Dim session As New NotesSession
   Dim maske As Variant
   Dim msgString (40) As String
   Dim i As Integer
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Dim doc As NotesDocument
   Dim txt_Item As NotesItem
   
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   Set db = session.CurrentDatabase
   
   maske = "gefahrstoff"
   
   Forall form In db.Forms
      If Lcase(form.Name) = maske Then
         If Isempty(form.Fields) Then
            Messagebox form.Name & " hat keine Felder"
         Else
            i = 0
            msgString (i) = " "
            Forall field In form.Fields
               msgString (i)=  field
               i = i + 1
            End Forall
         End If
         Set txt_Item = New NotesItem (doc, "Felder",msgString)
         Exit Sub
      End If
   End Forall
   
End Sub


In der Auswahlbox beziehe ich mich dann als Vorgabewert auf : txt_Item oder Felder ???

Bekomme immer nur: "Fehler - Schlüsselwörter müssen aus Text bestehen"
--------------------------------------------------
Wer arbeitet macht Fehler.
Wer viel arbeitet macht viele Fehler.
Manche Leute machen nie Fehler ......

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #8 am: 01.08.05 - 16:24:15 »
Du musst dich auf "Felder" beziehen. Schließlich ist das der Name des Feldes das du intern erzeugt hast.
Aber wenn ich mir deinen Code so anschaue, dann hast du Das Feld zwar erzeugt, aber das UIDOC hat keine Ahnung das es das Feld gibt. Deswegen der Fehler.
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 koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #9 am: 01.08.05 - 16:27:39 »
Abgesehen davon: Warum dimensionierst Du das StringArray starr und nicht dynamisch ? Und warum so kompliziert ?
Mit NotesDatabase.GetForm holst Du Dir die Gefahrstoff-Maske. Mit Form.Fields holst Du Dir auf einen Schlag alle dortigen Feldnamen in ein Variant - und Du bist schon fertig.

Bernhard

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #10 am: 01.08.05 - 16:31:31 »
Bernhard, warum einfach wenn es kompliziert auch geht?
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 koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #11 am: 01.08.05 - 18:17:12 »
Stimmt auch wieder, Thomas  ;D

Aber dann hätte ich die Designelemente erstmal alle via API ausgelesen und dann nach dem Typ geschaut und dann nach der Herkunftsmaske ...

Bernhard

Offline FC

  • Aktives Mitglied
  • ***
  • Beiträge: 120
  • Geschlecht: Männlich
  • Auch ich liebe dieses Forum, welches sonst ;-)
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #12 am: 03.08.05 - 17:46:05 »
Abgesehen davon: Warum dimensionierst Du das StringArray starr und nicht dynamisch ? Und warum so kompliziert ?
Mit NotesDatabase.GetForm holst Du Dir die Gefahrstoff-Maske. Mit Form.Fields holst Du Dir auf einen Schlag alle dortigen Feldnamen in ein Variant - und Du bist schon fertig.

Sorry, bin noch am lernen  :-[

Hatte ursprünglich aus der Hilfe nen Script genommen und an dem rumgeschraubt ........
... das kommt davon, ja ja .....  :-[

So habe mir die Sache durch den Kopft gehen lassen, dabei ist das rausgekommen:

Sub Onload(Source As Notesuidocument)
   Dim db As NotesDatabase
   Dim felder As Variant
   
   Set session = New NotesSession
   Set uidoc = Source.Document
   
   Set Db=Session.CurrentDatabase 'die aktuelle Datenbank
   Set doc = db.GetForm("gefahrstoff") 'holen der Maske, mit den Feldern
   
   Forall field In doc.Fields
      felder = felder + field & Chr(10)
   End Forall
   
   Set item = uidoc.ReplaceItemValue( "hilfsfeld", felder )   
   
End Sub

Ich beziehe mich jetzt in meinem Auswahlfeld auf "hilfsfeld", das klappt jetzt auch.
Ich habe hier nur noch das Problem, das ich nicht genau weis, wie ich den String so zusammenbaue,
dass dieser einzelne Werte im Auswahlfeld anzeigt, so wie oben wird nur das letzte Feld angezeigt ???

Gruß
Djahan
--------------------------------------------------
Wer arbeitet macht Fehler.
Wer viel arbeitet macht viele Fehler.
Manche Leute machen nie Fehler ......

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #13 am: 03.08.05 - 18:43:20 »
Jetzt weis ich worauf du raus willst und welchen Fehler du machst. Du musst ja deinem Auswahlfeld einen Auswahlwert zuweisen. Du willst diesen Wert aber im Onload Event anpassen(erzeugen) lassen. Dazu musst du hergehen und über ein zweites internes Feld erst einmal alle Werte die du brauchst sammeln und dann im Auswahlfeld eine Formel hinterlegen und die Listbox zu füllen. Tust du das nicht dann hast du einfach nur einen Textstring den das System anzeigt.

Sub Onload(Source As Notesuidocument)
   Dim db As NotesDatabase
   Dim felder As Variant
   Dim form As notesform
   
   Set session = New NotesSession
   Set uidoc = Source.Document
   
   Set Db=Session.CurrentDatabase 'die aktuelle Datenbank
   Set form = db.GetForm("frmDeadlineCalculation") 'holen der Maske, mit den Feldern
   

' Das hier gibt dir die Werte in ein Hilfsfeld zurück aus dem du dann wiederum deine Auswahl per formel mit @explode(IntHilfsfeld,"~~") füllst, wobei intHilfsfeld nur CFD sein muss, also nicht mit gespeichert wird.    
   Set item = uidoc.ReplaceItemValue( "IntHilfsfeld", join(form.fields,"~~")) 
' Das hier liefert dir das direkt zurück. Der Haken daran ist, das alle Werte ausgewählt sind und das im Feld bei der Auswahl mindestens ein "" eingetragen sein muss
   Set item = uidoc.replaceitemvalue("KeyHilfsfeld_1",form.Fields)
' und das hier ist das was du warscheinlich die ganze Zeit geliefert bekommst.
   Set item = uidoc.replaceitemvalue("KeyHilfsfeld_2",form.Fields)
   
End Sub


Hier ist eine Datenbank mit einer Testmaske wo du das Ergebnis der
unterschiedlichen Verfahrensweisen siehst.
« Letzte Änderung: 03.08.05 - 18:46:05 von Thomas Schulte »
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 FC

  • Aktives Mitglied
  • ***
  • Beiträge: 120
  • Geschlecht: Männlich
  • Auch ich liebe dieses Forum, welches sonst ;-)
Re: Felder einer anderen Maske anzeigen (@DocFields)
« Antwort #14 am: 04.08.05 - 07:13:30 »
Jetzt weis ich worauf du raus willst und welchen Fehler du machst.

Upps, hatte ich mich so mißverständlich ausgedrückt ? Werde mich bemühen in Zukunft deutlicher zu posten.

Auf jedem Fall vielen Dank Thomas jetzt funzt es natürlich, danke auch für die TestDB  ;D
Vielen Dank auch an Bernhard, du hast mir die richtigen Hinweise gegeben, eine fertige
Lösung hätte mich nicht so richtig (selber denkend) auf den Weg gebracht  ::)

Gruß
Djahan
--------------------------------------------------
Wer arbeitet macht Fehler.
Wer viel arbeitet macht viele Fehler.
Manche Leute machen nie Fehler ......

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz