程式開發質量檢查(五)

在一段PB源碼中,有看到如下一段代碼:

<!-- @page { margin: 2cm } -->

 

IF il_flow = 1 THEN

   dw_3.SetTransObject(Sqlca)

   dw_3.Retrieve(ls_no)

ELSE

   dw_3.SetTransObject(Sqlca)

   dw_3.Retrieve()

END IF

 

這個代碼之前有根據不同條件改變dw_3的DataObject值.

然后在提取資料時,也根據不同條件判斷是否需要傳入參數.

 

其實在PB中,Retrieve()的參數不一定需要與DataObject參數匹配的.

我們傳入的參數可以比資料提取定義的參數多,系統會自動取舍.

 

上面的代碼可以簡化為:

<!-- @page { margin: 2cm } -->

dw_3.SetTransObject(Sqlca)

dw_3.Retrieve(ls_no)

 

如果你的DataObject沒有定義過濾參數,則傳入的ls_no值會由系統自動忽略.

 

上面的寫法源於對PB系統函數基本知識掌握不夠.

 

你可能感兴趣的:(程式開發質量檢查(五))