在 form 裡模擬 fnd_org.choose_org
實現類似標準功能的FND_ORG.CHOOSE_ORG;的LOV選擇功能
其中一個解決方法(用SHOW_LOV):
1 在Form新建一個LOV,LOV返回的值是幾個需要的Global參數。例如:GLOBAL.INV_TEMPLATE_CODE
2 在When New Form Instance Trigger加上:TEMPLAT_chosen := Show_Lov(‘LV_TEMPLATE’);
就可以實現進入Form的時候,挑選這個LOV的一個值,然後賦值給這些Global參數。類似標準的選擇ORG的樣子。
當然實際寫的沒那麼簡單,基本是完全仿照標準的FND_ORG.CHOOSE_ORG;寫的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | -- -- CHANGE_LOCAL_ORG -- Change local org parameters in the current form. -- Do not reset global defaults. -- Returns: False if change cancelled or failed. -- FUNCTION CHANGE_LOCAL_ORG RETURN BOOLEAN IS BEGIN -- Open org LOV copy('N', 'GLOBAL.FND_CANCEL'); copy('', 'GLOBAL.ORG_ID'); copy('', 'GLOBAL.ORG_NAME'); copy('', 'GLOBAL.ORG_CODE'); copy('', 'GLOBAL.CHART_OF_ACCOUNTS_ID'); user_exit('FND ORG'); -- Abort if LOV cancelled IF ((NOT form_success) OR (name_in('GLOBAL.FND_CANCEL') = 'Y')) THEN RETURN (FALSE); END IF; -- Copy returned org values to parameters copy(name_in('GLOBAL.ORG_ID'), 'PARAMETER.ORG_ID'); copy(name_in('GLOBAL.ORG_NAME'), 'PARAMETER.ORG_NAME'); copy(name_in('GLOBAL.ORG_CODE'), 'PARAMETER.ORG_CODE'); copy(name_in('GLOBAL.CHART_OF_ACCOUNTS_ID'), 'PARAMETER.CHART_OF_ACCOUNTS_ID'); RETURN(TRUE); END CHANGE_LOCAL_ORG; |