不管是PB還是C#,看到一長串的「if」判斷式,總是給人很難維護的fu;
而且沒有IT人的精神(嘿..嘿..嘿..)
像下面這一段
IF NOT (gstr_main.s_employee_dept_id = "5300" or gstr_main.s_employee_dept_id = "2000" or gstr_main.s_employee_dept_id='8200' or gstr_main.s_employee_id = "2085" or gstr_main.s_employee_id = "2939" or gstr_main.s_employee_id = "2393" or gstr_main.s_employee_id = "7591" ) THEN
Messagebox("注意","您無使用權限")
RETURN
END IF
Messagebox("注意","您無使用權限")
RETURN
END IF
如果這類的權限管控,能透過一組完整的「系統」、「模組」或「函式庫」都可,再搭配資料庫, 不是很棒嗎?
但通常事與願違,資料庫不是開發人員負責維護管理,連異動欄位都要走一堆流程.... 看了這一段程式碼,僅針對s_employee_dept_id與s_employee_id進行驗證,故調整如下
Boolean lb_Auth = false
Integer li_x = 1
String ls_EmpID[] = {"2085","2393", "2939", "7591"}
String ls_SpecificDepID[] = {"2000", "5300", "8200"}
FOR li_x = 1 to UpperBound(ls_EmpID)
IF gstr_main.s_employee_id = ls_EmpID[li_x] THEN
lb_Auth = true
END IF
Next
FOR li_x = 1 to UpperBound(ls_SpecificDepID)
IF gstr_main.s_employee_dept_id = ls_SpecificDepID[li_x] THEN
lb_Auth = true
END IF
Next
IF NOT lb_Auth THEN
Messagebox("注意","您無使用權限")
RETURN
END IF
未來有人事異動,只要簡單維護陣列值即可;Integer li_x = 1
String ls_EmpID[] = {"2085","2393", "2939", "7591"}
String ls_SpecificDepID[] = {"2000", "5300", "8200"}
FOR li_x = 1 to UpperBound(ls_EmpID)
IF gstr_main.s_employee_id = ls_EmpID[li_x] THEN
lb_Auth = true
END IF
Next
FOR li_x = 1 to UpperBound(ls_SpecificDepID)
IF gstr_main.s_employee_dept_id = ls_SpecificDepID[li_x] THEN
lb_Auth = true
END IF
Next
IF NOT lb_Auth THEN
Messagebox("注意","您無使用權限")
RETURN
END IF
但要重新compile
我已經分不清楚 這些 if , for , while....的語法到底是屬於哪一種程式語言了
回覆刪除