DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

chnnovhandle

Hallo Kollegen,

 

hier ist der Befehl

call chnnovhandle("[1]/Nkw", "[1]/U_1","[1]/U_2", "delete", "X", false, true).

 

Wenn ich den Befehl so wie oben steht ausführen lasse, bekomme ich die

Fehlermeldung „Schlüsselwort „[1]/U_2/delete“ nicht in Schlüsselliste“.

 

Habe schon mit Minus Zeichen zwischen zwei U-Kanälen probiert und

mit unterschiedlichen Einführungszeichen. Kein Resultat.

                                                                                                                               

Was will Diadem von mir?

Die Gramma dieses Befehles ist auch nicht besonders …

 

Was soll ich tun, damit ich meine Novalues los bin?

 

Danke in Voraus,

a6a

0 Kudos
Message 1 of 9
(5,563 Views)
Hallo a6a
 
Wie du der Hilfe entnehmen kannst, bestimmt der dritte Parameter bestimmt was mit den Novalues passiert: Delete,Interpolate,SetValue
Du kannst also nur einen der Parameter verwenden
 
Die richtige Syntax ist:

call chnnovhandle("[1]/Nkw", "'[1]/U_1'-'[1]/U_2'", "Delete", "X", false, true)

Winfried

0 Kudos
Message 2 of 9
(5,553 Views)

ausprobiert.

da kommt die meldung: "type mismatch: '[string:"'[1]/U_1"']'...

 

0 Kudos
Message 3 of 9
(5,548 Views)
Bitte nochmal die Syntax überprüfen:
 
Die Kanalnamen müssen in einfache Anführungszeichen, verbunden mit einem Minuszeichen. Um diese Angabe kommen die doppelten Anführungzeichen.
 
Die Erklärung der Syntax finden Sie auch in der Hilfe als Link von jeder Variable oder unter den Indexbegriff "Kanalliste" und dann "Typen von Variablen".
 
Winfried
0 Kudos
Message 4 of 9
(5,542 Views)
Hallo,

ich hätte da auch einen kurzen Hinweis, nachdem ich fast einen Häkchen-Koller gekriegt habe... Ich verwende den Ausdruck mit Variablen. Aber gebe ich die Variablen als Zahlen ein, nimmt er meinen Bereich als Kanalnamen - den's natürlich nicht gibt!
Im Klartext:


For i = 1 To ChnListAnz_
   [...]
   LV1(i)=CNo(ResDruck_(i))
Next
L1=CNo(RefStrom_)


mit ChnListAnz_ = 2 (hier im Beispiel)
zur "Vorbereitung", dann habe ich folgende Möglichkeiten:

Call ChnNovHandle(L1, "LV1(1)-LV1(ChnListAnz_)","Delete","XY",TRUE,FALSE)
--> LV(1)=14 (Kanalnr, ist richtig) // Info vom Debugger
--> LV(ChnListAnz_) = 15 (ist auch richtig)
--> Fehlermeldung: Kanalname "LV1(1)-LV1(ChnListAnz_)" ist ungültig

Call ChnNovHandle(RefStrom_, "'ResDruck(1)'-'ResDruck_(ChnListAnz_)'","Delete","XY",TRUE,FALSE)
--> Fehlermeldung: "ResDruck_(1)" / "ResDruck_(2)" werden als Kanalnamen erkannt - sind aber Variablen

Call ChnNovHandle(RefStrom_, "'"&ResDruck_(1)&"'-'"&ResDruck_(ChnListAnz_)&"'","Delete","XY",TRUE,FALSE)
--> ES GEHT!!

Variablen müssen also via "& Variable &" in die Häkchen ' Kanalname ' substituiert werden....

Gibt's da nicht 'ne übersichtlichere Variante.....?
0 Kudos
Message 5 of 9
(5,299 Views)
Hallo!
 
Leider muss das so aussehen. Ich hab mir deshalb eine kleine Function gemacht, die das dann etwas übersichtlicher macht.
 
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 6 of 9
(5,297 Views)
Hallo Matthias,

Merci für die Antwort!
Hm, irgendwie mangelt's mir gerade an Vorstellungskraft... Wie soll das aussehen, durch eine Function vereinfacht...? Stellt sie Variablenausdrücke anders dar oder fügt sie die Ausdrücke in die Häkchen?

Viele Grüße
Yeti
0 Kudos
Message 7 of 9
(5,291 Views)
Hallo Yeti!
 
Ich meinte sowas schlichtes:
Call ChnNovHandle(RefStrom_, ChnList(ResDruck_(1),ResDruck_(ChnListAnz_)),"Delete","XY",TRUE,FALSE)
 
Function ChnList(ByRef nChnFrom, ByRef nChnTo)
  ChnList = "'" & nChnFrom & "'-'" & nChnTo & "'"
End Function
Macht das ganze ein wenig besser lesbar.
 
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 8 of 9
(5,287 Views)
Hallo Matthias,

großartig, DANKE!!!

Auf solche Ideen kommt ein "Sonntagsprogrammierer" wie meine Wenigkeit nicht - geschweige denn, daß ich gewußt hätte, daß es sowas überhaupt gibt.

Ich glaube, der Tag heute wird gut. 🙂

Viele Grüße
Yeti


...Hilfe sagt:
Nach Referenz ("by reference")

Eine Möglichkeit der Übergabe von Argumenten an Prozeduren. Dabei wird statt des Wertes die Adresse des Arguments übergeben. Dadurch kann die Prozedur auf die tatsächliche Variable zugreifen. Somit kann der tatsächliche Wert der Variablen durch die Prozedur, an die sie übergeben wurde, geändert werden.
0 Kudos
Message 9 of 9
(5,265 Views)