PB中表的修改對數據窗口和報表的影響的解決辦法
2024-07-21 02:10:03
供稿:網友
數據窗口(datawindow)是pb最強大的功能之一,datawindow是pb中獲取專利技術的控件,它對數據的處理方法相當簡潔,能處理各種顯示格式和快速的報表制作能力。 深受pb開發者的喜愛。但一件產品不可能十全十美,datawindow也有不少缺點,其中對datawindow的所關聯的數據表的一些變動,可能就會使辛辛苦苦做出的數據錄入、維護界面、報表得重新做,特別是復雜中國式的報表,是令許多開發人員頭痛的事情,而在其它開發語言如delphi就不會存在此類問題。現在采用原型模型的開發的不少,使得開發中表的修改變得比較平常,為了解決已做的報表、數據界面主體不必重做,下面提出一些解決的方法,希望能對碰到此類問題的開發人員有所幫助,同時也希望能起到拋磚引玉的作用。1、問題一:表的字段增減。此問題比較容易解決。表的字段增加,打開datawindow窗口,點擊data source 圖標,將新字段在datawindow窗口的selection list選中,然后新的字段就會在添加到原datawindow窗口中,問題也就解決了,不過值得提醒的是若在輸入數據datawindow中添加字段,記得在數據窗口的update properties屬性中,將新字段在updateable columns列表中選中,否則新字段值不能提交;表的字段刪除,打開datawindow窗口,點擊data source 圖標,先執行表的彈出菜單seselect all,再執行select all 即可。2、問題二:表中字段的數據長度的修改打開datawindow窗口,點擊data source 圖標,先執行表的彈出菜單seselect all,再執行select all 即可在數據窗口的column specification中看到修改長度的字段已為新的長度。不過別急,對于字符類型的字段,問題還未完全解決,選中已修改長度的字符類型字段,按鼠標右鍵,選擇properties,再選擇edit屬性中limit的值為新的長度值,問題才解決。3、問題三:表中字段的數據類型的修改打開datawindow窗口,點擊data source 圖標,先執行表的彈出菜單seselect all,再執行select all 即可。4、問題四:表的名稱改變字段不變4.1 點擊library庫畫板,選中要修改的數據窗口或報表。4.2 按鼠標右鍵,選擇彈出菜單項export,或選擇entry菜單的export項將數據窗口或報表到出后綴為.srd的文件,文件名默認為數據窗口或報表的名字。4.3 在powerbar工具條中選擇edit圖標,打開剛存的文件。4.4在file editor中使用replace替換按鈕,將被修改文件中的含有老的表名字符串全部替換成新的表名, 然后保存。4.5選擇entry菜單的import項,將剛修改過的文件導入,覆蓋原來的數據窗口或報表,問題解決。對于問題4,若原數據窗口有檢索參數(retrieval arguments)和where子句,應先將它們刪除,能后再進行操作,否則轉換會失敗, 使用數據窗口的previwe會報“select error 無效列名”。轉換成功后再手工增加檢索參數和where子句。對于一些稍微復雜的表的變動,可通過上述的方法組合解決。如改變了表名又增加了字段并修改了原有字段長度的數據表,則解決步驟可為:先建與原表一樣只是表名不同的過度表,然后采用方法4;在過度表增加了字段,然后采用方法1;修改過度表中的某些字段長度形成新表,最后采用方法2,問題解決。本人在用pb開發mis系統中使用以上方法,能比較快的復用開發原型中的報表和數據維護窗口,不過值得提醒大家的是,使用以上方法最好應先將原數據窗口進行備份,以防止誤操作破壞了報表和數據維護窗口。