0

Name der Spalte in einer Variablen speichern

Hallo,

ich möchte den Namen einer Spalte in einer Variablen speichern damit ich den Wert dazu finde 

i ist der Name der Spalte der in einem Feld bei einer Tabelle als Text hinterlegt ist. Die Spalte gehört zur Tabelle KundenwertSAP

Nun möchte ich den Wert in der Spalte i auslesen

let i := 'Auswahl Ortschaften Anschluss Objekt'.'Lastprofil Ist Wert';
let a := Lastprofil;
first((select KundenwertSAP where Lastprofil = a).i)

leider gibt mir das Funktionsfeld jetzt nur den wert "i"(Also den Spaltennamen) aus und nicht den Tatsächlichen Wert in der Zelle.

wähle ich jedoch den Spaltennamen direkt aus in der select Anweisung dann funktioniert es

first((select KundenwertSAP where Lastprofil = a).'Ist Wert M107 HNVG')

ich brauche den Spaltennamen aber in der Variablen da ich hier je nach Auswahl in der aktuellen Tabelle erst schauen muss, was in der Verknüpften Tabelle Ortschaften dazu hinterlegt ist um in 'KundenwertSAP' dann die richtige Spalte zu finden.

Gruß

Andreas

4 Antworten

null
    • Andreas_Kappes
    • vor 1 Jahr
    • Gemeldet - anzeigen

    hier die Tabelle KundenwertSAP

    hier die Tabelle Ortschaft: mit dem Spalten Namen in der Spalte "Lastprofil Ist Wert"

    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hi Andreas. Das geht nur mit eval(). Grundprinzip:

    eval(---
     select { TABELLE }[ { BEDINGUNG } { OPERATOR } { WERT } ].{ FELD }
    ---, this)
    
    let fieldName := first('Auswahl Ortschaften Anschluss Objekt'.'Lastprofil Ist Wert');
    let a := Lastprofil;
    first((select KundenwertSAP[Lastprofil = a].eval(---
    { fieldName }
    ---, this))
    
      • Andreas_Kappes
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Mirko 

      Danke Mirko

      das hat geklappt musste jetzt nur noch den fieldName zwischen zwei ' setzen

      let fieldName := first('Auswahl Ortschaften Anschluss Objekt'.'Lastprofil Ist Wert');
      let a := Lastprofil;
      first((select KundenwertSAP)[Lastprofil = a].eval(---
      { "'" + fieldName + "'" }
      ---, this))
      

      Andreas

      • mirko3
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Andreas Kappes Schön, daß es geht. Im Grunde benötigst Du aber diese Schreibweise nicht, wenn der Variablen fieldName ein String zugewiesen wird. Ich würde es mit let fieldName := text(first(...)) versuchen und { fieldName } belassen. Du kannst probehalber das Script mit let fieldName := "'Ist Wert M107 HNVG'" versuchen, oder eben never change a running system;-)

Content aside

  • vor 1 JahrZuletzt aktiv
  • 4Antworten
  • 57Ansichten
  • 3 Folge bereits