2017-10-20 34 views
0

我需要將Clarion例程的名稱傳遞給變量並運行它。Clarion 9.1 - 使用變量作爲例程名稱

如:

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

RoutineName = 'CalculateSomething'

DO RoutineName!

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

它不會以這種形式工作,所以我也試過其他字符(括號,引用等)在變量之前和之後。沒有運氣。

請注意,常規「CalculateSomething」存在並運行良好的基本命令:

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

DO CalculateSomething

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

回答

0

如何使用一個case語句來做到這一點?

RoutineName='CalculateSomething' 

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

不幸的是參與程序的很多,我想避免硬編碼的名字。變量get通過「命令」行從其他應用程序發送到全局數據處理應用程序,因此最緊湊的解決方案將涉及使用收到的變量。 – SQLsavvy

0

我覺得沒有像Clarion編程語言那樣的選項。

,我建議這樣的CASE語句的唯一方法:

RoutineName='CalculateSomething' 

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

謝謝,請參閱下面的評論。 – SQLsavvy