DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

von der ChnComboBox ins Script und da verrechnen

Solved!
Go to solution

Hallo zusammen,

ich würde gerne in einem Script einen Dialog öffnen, dort soll dann in zwei Dropboxen (chncombobox) jeweils ein Kanal aus dem Datenportal gewählt werden

und dann weiter im Script verrechnet werden.

 

Ich habe im Dialog bei den Dropboxen Variablen vergeben (t1 und t2).

 

Ich habe im Script den Variablen Namen zugeordnet:

Dim Soll, Ist
Soll = t1
Ist = t2

 

Jetzt müssen die Kanäle noch ins Script geladen werden (denke ich) und da weiß ich nicht wie das geht.

 

Danach müssen die Kanäle noch in eine Verarbeitungsformel eingesetzt werden (z.B. t1 - t2) und da weiß ich ebenfalls nicht wie das geht.

 

Wäre super wenn jemand einen Rat hätte

 

Gruß,

verscripted

0 Kudos
Message 1 of 4
(284 Views)

Hey!

 

Ohne gleich die Lösung vorzulegen, ein paar Hinweise:

  • t1 und t2 (und weitere t's) sind interne Variablen, als String. Dadurch kannst du sie zwar überall nutzen, aber das ist nicht immer so gut. Zudem als String übergibst du ja nur den Namen...
  • Definierst du Variablen im Code, und willst diese im Dialog verwenden, müssen sie m.M.n. als globale deklariert werden (schaue nach GlobalDim). Im Dialog wäre als Typ Variant vermutlich besser.
  • Im Script kannst du als erstes checken, ob der Auswahl überhaupt korrekt abläuft.
    Angenommen, du bleibst bei T1. Dann wäre z.B. Kan1 der "link" zu deinem Kanal:

    Dim Kan1 : Set Kan1 = Data.GetChannel(T1)
    Call MsgBox (Kan1.Name)

Try & Error funktioniert aus meiner Sicht immer am einprägsamsten 🙂

 

Grüße,

Vassili

0 Kudos
Message 2 of 4
(211 Views)
Solution
Accepted by topic author verscripted

Hallo,

 

vielen Dank für die Hilfe.

 

Ich habe noch etwas in der DIAdem-Hilfe gestöbert und mir dann folgende Lösung zusammen gestellt:

 

Dim N_Formula, mm_Formula, aSymbol(2), aValues(2)
mm_Formula = "Ch(""ABW_mm"") = B - A"
N_Formula = "Ch(""ABW_%N"") = (100/120) * Ch(""ABW_mm"")"
aSymbol(1) = "A"
aSymbol(2) = "B"
Set aValues(1) = Data.GetChannel(O1)
Set aValues(2) = Data.GetChannel(O2)
Call Calculate (mm_Formula, aSymbol, aValues)
Call Calculate (N_Formula, aSymbol, aValues)

 

O1 und O2 sind die Variablen der zwei ChnComboBoxen. Für mich funktioniert das so.

0 Kudos
Message 3 of 4
(200 Views)

Hallo,

ich hätte noch eine Ergänzung zum Beitrag von Vassili. Es ist auch möglich Dialogen Übergabeparameter im Funktionsaufruf zu übermitteln. Das ist eigentlich ganz gut in der Hilfe (GetArgument/SetArgument) beschrieben. Es ist etwas aufwendiger als die t1, t2 Diademvariablen, bzw. die Verwendung von globalen Variablen, bietet aber den Vorteil, dass man mehr Kontrolle (auch schon im Dialog) erhält durch die Verwendung von Settern und Gettern.

0 Kudos
Message 4 of 4
(77 Views)