「REF」在 CS版正常,轉換成網絡版過程中不報錯,但運行時會整句失效:

 

1. integer dwcontrol.GetChild (string name, REF DataWindowChild dwchildvariable ) 
2. f_to_uppser(ls_string, REF ls_result) 

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

PB2019Appeon 轉成網絡版,EditMask
Mask: yyyy-mm
MaskDataType: datemask!


文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

PB 有 Debug 功能,它讓你可以看着系統一句一句的執行,也能看到每個變量的值,有助程序猿檢查問題,找到報錯的位置。

在Debug 前要先定位,在最接近報錯點的位置插入breakpoint:
image

然後點「Debug」進入 Debug mode,再點「Start」以啓動系統:

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

單雙行不同背景色能令數據看起來更清晰,如何做到呢?

image

建個如下的 function(), windowdatawindow 的祖先中加入執行的代碼,最好還加個開關,需要時執行一下就可以了。至於 rgb 值,放到數據庫或 ini 就可以了。

// f_set_rowback_color(red1, green1, blue1, red2, green2, blue2, dw)

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

剛把一個 CS 系統署部成網上版,報了個陌生的錯,記錄一下。

以下寫法不管在 PB9, PB12,還是 PB2019,在 CS 環境下都能正常運行,但經 Appeon 部署成網上版就會報「列名 PIG 無效」:

select *
from t_user

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

Untitled.png

繼承是 PB 其中一個賣點,繼承就是控件能從祖先繼承代碼,相同的代碼不必重複寫了又寫,圖中 w_public_code 往上就有三層,代碼會從第一層 pfc_w_master 開始,一層一層的往下執行,最後才會到 w_public_code 內你剛寫的,如果不想用祖先的代碼,只要右按,取消勾選「Extend AncestorScript」就可以了。如果只想要「部份」代碼就要把需要的拷貝到當前層去執行了。

另外要取得祖先的 return value 的話就要樣寫:

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

PowerBuilder
‘ABC~r~nDEF’:
ABC
DEF

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

image

這裏按字面理解就沒什麼差錯了,但有一點想提醒一下,「where clause」部份,如果你的系統是會多人同時使用的話,選「Key and Updatable Columns」或「Key and Modified Columns」會有點風險。因為 A B 兩個用戶同時打開同一條數據,先更新者勝,後更新者就會報 Row changed between retrieve and update 了。至於選哪一個比較好就要看系統對數據更新的嚴謹性了。


文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

ini 就是設定檔,在前面 Powerbuilder(11) 中有提過一下,在手機版中, ini 變得有點不一樣。

部署後的 ini 轉化成手機上 config 文件夾中的 aws$ini$.xml,雖然變成了 xml,但 ProfileString()SetProfileString() 依然可用


文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

每個 APP 都會有自己的路徑,所有在程式中下載的檔案都會儲存在該路徑的 plugin 文件夾中,你可以用 AppeonGetCacheDir() 取得它的路徑。

想在畫面中打開檔案的話,要先在畫面上加入個叫 uo_webview 的控件,然後把檔案這樣交給它就可以了:uo_webview.of_loadlocalfile(ls_path),但 Android 上不支援以 webview 打開 pdf,Android 上看 pdf 要交給瀏覽器
ls_full_path = 'file://' + ls_full_path
GetContextService("Internet", iinet_base)

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()