你知道嗎?PowerBuilder 開發環境內代碼是可以隨意更改的,我比較喜歡字母佔比都是一樣的字形,這會讓代碼排縮看起來會比整齊。設定一個舒服的環境,工作起來才會順手嘛 ~
Arial ,這是佔比不一樣的,「f」跟「m」佔的空間不一。
你知道嗎?PowerBuilder 開發環境內代碼是可以隨意更改的,我比較喜歡字母佔比都是一樣的字形,這會讓代碼排縮看起來會比整齊。設定一個舒服的環境,工作起來才會順手嘛 ~
Arial ,這是佔比不一樣的,「f」跟「m」佔的空間不一。
DataWindow 預設只能更新一個表,如果你的 DataWindow 是由多個表關聯出來,而你又想更新其他表的話,這時候要怎麼做?
這時候就可以以 Modify() 在執行環境修改 DataWindow 的屬性,把可更新的表、欄位都改成新的表,改多少次都行,但注意最後要還原設定,否則用戶再次點更新的時候就可能亂套了。
// 關閉原有的更新
dw_1.Modify("class_id.Key=No") // 把原來的主鍵關閉
跟前一篇的 Datastore 類似,但有時候我們並不需要對 datastore 內的數據作改動,只要能取到值就可以了,那我們就可以使用 PB 內的 cursor。對比 datastore ,cursor 會使用到更少的資源,速度更快,也不必單純為了後台運算而多建一個 datawindow,也避開了別人以為沒用而誤把你的 Datawindow 刪掉或修改的風險。
// 定義變量
String ls_student_id, ls_class
Integer li_year
Datastore 就是隠形的 Datawindow,大部份 Datawindow 的功能它都擁有,GetItem(), SetItem(), Sorting, Insert, Delete, Update … 它全都有。有時候會想把批量的數據取出來,然後逐條處理,這個時候就可以用上 Datastore 了。
比方說,把高中某班的學生取出來,再按學號到不同的表中取各科目的考試成績、課外活動記錄、各種奬項等等,匯總出來生成年度記錄或成績單,由於過程中用戶沒必要看到實際數據,只要看到進度和結果就可以了,這時候就可以把學生名單取到 datastore 中,再以 for loop把學號逐個取出來處理。
DataWindow 過濾方法有三:
1. 在 PB\Rows\Fillter 裏面設
2. 在代碼裏以 SetFilter()設
3. 在代碼裏以 DataWindow Syntax 設,這太煩了,往後只要有 PB Function 能代替的我都不說這個了。
做程式開發的,每天都在跟用戶打交道,跟數據打交道,各種級別的用戶和數據都有,別說打印或下載了,就算是哪些東西可以說,哪些東西不可以說也要用心拿揑,所以呢,什麼都不說是最簡單的,共同開發同一個程式還好一點,同部門不同組的,或者是其他部門的,不管他職位是什麼,在沒得到直屬上司「白紙黑字」的同意或要求之前,你還是什麼都不能透露,這是在保護自己、守護制度,也是在保護公司。
所謂「白紙黑字」,在現代來說,電子郵件算是最好的了,一封郵件代表收發雙方都有記錄,收發雙方公司的郵件伺服也有記錄和備份,你收到,做完之後再 quote 上對方的原郵件作為附件去回應,最算比較安全了。別相信單向的溝通,有case 是員工發短訊向上司請假,假放完了,然後上司說沒收到,最後被炒了…… 如果是電訊公司的短訊,你還能花錢讓她給你弄個詳細的清單,但最多也只能證明你有發過而已,對方有沒有收到,還是他說了算。如果是 Line、WhatsApp 之類的軟件,你要找出證明就幾乎是不可能了。
至於程式的版權,如果你是打工仔,在僱傭合約下受薪開發的話,版權是歸公所有的。曾經聽過有人會把代碼拷走,在新公司面試時作為個人賣點,或者貪方便把前公司的程序直接拿到新公司去用,這是不道德,也是違法。曾經聽過另一個case,開發員離職直接把代碼帶走,要公司付鈔買回,這種情況啊,我也是大開眼界,遠遠超出我的想像了,最後好像是報警處理了。
在這個行業裏,操守比技術重要。有些事情,儘管沒有人,或根本不會有人發現,但你還是會知道:是你做的。
DataWindow 排序方法有:
1. 在 DataWindow 內的 SQL 設 Sort,PB 就會把 Order by 加到 SQL 的最後,不勾上「Ascending」就是「遞減」的意思,這是第一重排序。
2. 在 DataWindow Painter 的 PB\Rows\Sort 內設,這是第二重排序,設了這個的話,前面的SQL 排序就失效了。
3. 在代碼裏以 SetSort() 排序,這算是在 Runtime 時以代碼整前面的 Row\Sort 設定,彈性最大,可即時回應用戶操作,比如點擊欄名。
2020 聖誕快樂
DataWindow 在程式運行的時候還是可以調整的,就好像勾上了的就全行變顏色,或者在打印前調一下行高欄闊,又或者是更新哪個表、哪個欄位之類,所有東西都能在這裏查到:New\Tool\DataWindow Syntax。
明天就是平安夜了,各位萬事小心,別一不小心就升級為父母1.0 哦~
OpenWithParm() 用於打開窗體的時候,把變量也傳給它,只能傳一個,但你可以把多個拼成一串的傳進去,例如「公司名|單號|SOXXXXXX」,然後在目的窗體的 open event 裏面做分拆處理。
// 用於一般窗體