DataWindow 數據源有四種:
1. External 這是只建個框,數據在代碼裏面拼湊,一般用於比較沒有關聯性的數據,用以展示或導出,
2. 在 DataWindow Painter 裏面從數據表裏面拼湊成的SQL
3. 在 DataWindow Painter 裏面從數據庫視圖(View)裏面拼湊成的SQL
4. 在 DataWindow Painter 裏面從數據庫 Stored Procedure 返饋的結果
第一種大多用於臨時顯示或導出作 EDI 之用,數據表之間多沒有直接關連,所以需要以代碼加工,從各個表或其他數據庫中抓取數據併在一塊。
第二種適用於沒有太多運算的報表,這種做起來最簡單,在 PowerBuilder 內點點點就可以完成了,但每一次改動都需要重新部署。
第三種是從 View 取數據,比前者有彈性,前端的DataWindow 數據源和格式都是固定的,但數據可以從後台調整 View 而改變,就是說你可以改變所取的欄位和算法而不用重新部署系統,只要在數據庫更新一下 View 就可以了。
第四種是從 Stored Procedure 取得數據,這適合用於需要大量運算的報表,跟View 一樣,可以後台部署而不用更新系統。
最後提醒一下,在數據庫的改動並不會自動同步到 DataWindow ,如果在 view 和 stored procedure 上有欄位類形、增多減少或移位,都需要回到PowerBuilder 調整 DataWindow,否則就會報錯或取不到數據。如要增加欄位的話,不管是 DataWindw、View,或者是Stored Procedure result set,建議都用「Append」,即加到最後位置的方式去加,中間插入會很容易導致出錯。