4 Replies Latest reply on Apr 3, 2016 2:50 PM by erolst

    Feld nach Namen abfragen

    RobiF

      Grüss Euch

       

      Analog dem Befehl "FeldNachNamenEinstellen", bei dem sich das Feld nicht im aktuellen Layout befinden muss und man den Namen berechnen kann, möchte ich ein Feld abfragen können, welches ich per Berechnung bestimmen kann. Geht das?

       

      Hintergrund: Ich will an ein Textfeld einen Text anhängen, muss also wissen, was schon drin steht. Es ist ein Logfile. In mehreren Tabellen/Layouts ist ein solches Feld und ich möchte nur einen Script schreiben. Etwas einfach reinzuschreiben geht mit dem Befehl "Feld Nach..." aber ich will ja am bestehenden Text was anhängen..

       

      Vielen Dank für die Antwort

       

      Gruss

       

      Robert Freudenmann

        • 1. Re: Feld nach Namen abfragen
          arehkopf

          natürlich geht das.

          Einfach mit <tabellenName>::<Feldname>

          • 2. Re: Feld nach Namen abfragen
            RobiF

            ok, nachfolgende Beispiele funktionieren beide nicht..

             

            Wenn( Hole ( AktivesFeldTabellenName )::Log = ""; "" ; Hole ( AktivesFeldTabellenName )::Log  &  ¶) & Hole ( SystemDatum ) & ", " & Hole(ScriptParameter)

             

            Wenn( Hole ( AktivesFeldTabellenName )&"::Log" = ""; "" ; Hole ( AktivesFeldTabellenName )&"::Log"  &  ¶) & Hole ( SystemDatum ) & ", " & Hole(ScriptParameter)

            • 3. Re: Feld nach Namen abfragen
              erolst

              RobiF wrote:

               

              ok, nachfolgende Beispiele funktionieren beide nicht..

               

              Wenn( Hole ( AktivesFeldTabellenName )::Log = ""; "" ; Hole ( AktivesFeldTabellenName )::Log  &  ¶) & Hole ( SystemDatum ) & ", " & Hole(ScriptParameter)

               

              Wenn( Hole ( AktivesFeldTabellenName )&"::Log" = ""; "" ; Hole ( AktivesFeldTabellenName )&"::Log"  &  ¶) & Hole ( SystemDatum ) & ", " & Hole(ScriptParameter)

               

              Du brauchst entweder GetField() oder Evaluate(), um eine als String übergebene Feldreferenz aufzulösen (ansonsten ist das nur ein Stück Text); und mit Case() [Falls()] & Let() kann man das etwas eleganter erledigen.

               

              Let (

                myLog = GetField ( Get ( LayoutTableName ) & "::Log" ) ;

                Case (

                  not IsEmpty ( myLog ) ;

                  List ( myLog ; Get ( CurrentDate ) & ", " & Get ( ScriptParameter ) )

              )

              )

               

              Keine Ahnung, wie die Funktionen auf Deutsch heißen, aber englische Funktionsnamen funktionieren auch in der deutschen Version (werden postwendend übersetzt)

              • 4. Re: Feld nach Namen abfragen
                erolst

                RobiF wrote:

                Hintergrund: Ich will an ein Textfeld einen Text anhängen, muss also wissen, was schon drin steht.

                 

                Ganz vergessen in meiner vorherigen Erklärung: Musst du nicht, wenn du Liste() verwendest:

                 

                Liste ( Protokollfeld ; neuerEintrag ) fügt einen Zeilenumbruch ein, wenn Protokollfeld bereits Inhalt besitzt, ansonsten nicht.

                 

                Noch als Tip: Statt eine Liste in ein Feld zu verwenden, nimm eine Bezugstabelle. Damit kann man in bestimmten Feldern suchen, Kategorien angeben, nach Datum sortieren … alles Dinge, die mit einem Feld nicht funktionieren.