0

Trigger bei Mehrfachauswahlfeld funktioniert nicht

Hallo zusammen. 
Ich bin auf folgendes Problem gestoßen. 

Ich möchte ein dyn.Mehrfachauswahlfeld mit dem Namen "A.H.-Satz" in der Tabelle "Gefahrstoffe" nutzen. Dieses Feld verweist auf die Tabelle: H-Sätze.   Hier gibt es zwei Felder: H-Satz und H-Bezeichnung. 

Der Verweis funktioniert prima mit der Formel:

let myArt := 'A.H-Satz';
(select 'H-Sätze') order by 'H-Satz'

Nun möchte ich aber bei Auswahl eines H-Satzes den in der Tabelle "H-Sätze" hinterlegte H-Bezeichnung in dem Feld "A.Zus.H-Satz" ausgeben. 

Schwierig zu erklären. 

In der Tabelle H-Sätze steht

 In der Tabelle Gefahrstoffe 

Ist das dyn.Mehrfachauswahlfeld 

 Bei Klick auf H200 soll in der gleichen Tabelle "Gefahrstoffe" das Feld "A.Zus.H-Satz" gefüllt werden. Und zwar mit der H-Bezeichnung aus den H-Sätzen. Also sollte in A.Zus.H-Satz" dann geschrieben werden:

- Instabil, explosiv  

Wenn ich dann noch H201 im Auswahlfeld wähle soll darunter dann stehen:

- Explosiv, Gefahr der Massenexplosion usw. 

 Bislang habe ich in dem dyn. Mehrfachauswahlfeld folgenden Trigger. 

Funktioniert nur leider nicht. 

let myID := number('A.H-Satz');
if not 'A.Zus.H-Satz' then
    'A.Zus.H-Satz' := text('H-Sätze'.'H-Bezeichnung')
else
    'A.Zus.H-Satz' := 'A.Zus.H-Satz' +
        "
" +
        text('H-Sätze'.'H-Bezeichnung')
end;
let myID := number('A.H-Satz');
let myM := concat((select 'H-Sätze' where Nr = myID).'H-Bezeichnung');
'A.Zus.H-Satz' := myM

Bestimmt liege ich vollkommen falsch. 

Könnt ihr mir hierbei helfen? 

 

Herzlichen Dank. 

4 Antworten

null
    • Fred
    • vor 9 Tagen
    • Gemeldet - anzeigen

    If I understand you correctly:

    When you select a choice in 'A.H-Satz' then you want the text from the field 'H-Bezeichnung' from the record that was selected in the choice copied to 'A.Zus.H-Satz'.

    You should use the record() command whenever you have a single choice dynamic field.

    let selectedRec := record('H-Sets', number('A.H-Satz'));
    'A.Zus.H-Satz' := selectedRec.'H-Bezeichnung'

    I'm not sure what or when you want the if statement to happen. The way you wrote your code what ever happens in the if statement is forgotten cause the last line is what ends up in 'A.Zus.H-Satz'.

    Do you have a reference field called 'H-Satze'?

      • Jens_Waschwill
      • vor 9 Tagen
      • Gemeldet - anzeigen

      Hello Fred. I don't have a single choice dynamic field but a multiple choice dynamic field.

      I have two tables

      In Gefahrstoffe: A.H-Satz

       

       

      The Contents from A.H-.Satz should be in A.Zus.H-Satz1.

      But not the H-Satz field from the H-Sätze table, but the H-Bezeichnung field

       

      However, it is important that all H-Bezeichnung (multiple Choice) are transferred to the field when selecting several H-Satz.

      Sorry. My English is terrible.

    • Ninox-Professional
    • planoxpro
    • vor 8 Tagen
    • Gemeldet - anzeigen

    Hallo Jens versuch's mal so (Trigger "Nach Änderung" im DynMAF 'A.H-Satz'):

    'A.Zus.H-Satz' := join(for i in numbers('A.H-Satz') do
            record('H-Sätze',i).'H-Bezeichnung'
        end, "
    ")

    In "Dynamischer Wert" von 'A.H-Satz' müsste eigentlich nur stehen:

    (select 'H-Sätze') order by 'H-Satz'
      • Jens_Waschwill
      • vor 8 Tagen
      • Gemeldet - anzeigen

      Herzlichen Dank. Super.!