2017-10-20 6 views
0

Clarionルーチンの名前を変数に渡して実行する必要があります。Clarion 9.1 - ルーチン名に変数を使用

例:

************************

ROUTINENAME = 'CalculateSomething'

DO ROUTINENAME!

!************************

私も他の文字(ブラケットを試してみたので、それは、この形式では動作しません。 、引用符など)を指定します。運がない。

ルーチン「CalculateSomething」は存在し、基本的なコマンドを使用して、正常に動作することを注意してください。

************************!これを行うにはcase文を使用する方法について

DO CalculateSomething

!************************

答えて

0

どのように?

RoutineName='CalculateSomething' 

CASE RoutineName 
OF 'CalculateSomething' 
    DO CalculateSomethingRoutine 
OF 'SomethingElse' 
    DO SomethingElseRoutine 
ELSE 
    Stop('Unknown routine named: ' & RoutineName) 
END 
+0

は残念ながら関与ルーチンがたくさんありますし、私はハードコーディング名前を避けたいです。変数は「コマンドライン」を介して他のアプリケーションからグローバルデータ処理アプリケーションに送信されるため、最もコンパクトなソリューションは受け取った変数を使用することになります。 – SQLsavvy

0

クラリオンのプログラミング言語のようなオプションはないと思います。

私はそのようなCASE文に勧め唯一の方法:

RoutineName='CalculateSomething' 

    CASE UPPER(RoutineName) 
    OF 'CALCULATESOMETHING' 
     DO CalculateSomething 
    OF 'CALCULATESOMETHINGELSE' 
     DO CalculateSomethingElse 
    OF 'CALCULATENOTHING' 
     DO CalculateNothing 
    END 
+0

ありがとう、以下のコメントをご覧ください。 – SQLsavvy

関連する問題