經過多年的搜索,我相當確定這是不可能的,但我仍然會問。AS400 RPGLE /操作中的空閒動態變量
問題是,如果您不知道字段名稱,是否可以在操作中使用動態變量。例如,我有一個包含幾百個字段的數據結構。操作員選擇其中一個字段,程序需要從傳遞的數據結構中知道數據駐留在字段中。所以我們會說有100個字段,字段50是操作員選擇操作的字段。該程序將在FLDNAM變量中的字段名稱(即字段50)中傳遞。該程序會讀取像這樣的正常方式:
/free
if field50 = 'XXX'
// do something
endif;
/end-free
問題是,我將不得不爲每個操作代碼這100次。例如:
/free
if fldnam = 'field1';
// do something
elseif fldnam = 'field2';
// do something
..
elseif fldnam = 'field50';
// do something
endif;
是否有任何可能的方式對未知的字段執行操作? (即IF FLDNAM(指針數據)='XXX'然後做點什麼)
RPG是一種強類型語言。字段必須預先定義,並且字段的名稱永遠不會被程序以您可以檢索或動態指定的方式獲知。你可以使用數組,還是所有的字段都不一樣? – jmarkmurphy
嗨。感謝您的迴應。我想如果需要使用數組,只是爲了更快的處理。我將加載一個數據區域以及一個字段名稱數組,然後是一個位置數組。代碼可能會變得非常複雜,但是如果您不能使用動態變量,那是我的備份計劃。所有的字段都是不同的長度,有些是十進制的,等等。我知道可以通過數組來工作,但是我想知道是否有其他選項。 – user1420914
絕對可以這樣做。想想一個查詢。它在開始之前是否知道你想要的領域?它可以幫助你選擇字段嗎? – danny117