2022年5月27日 星期五

SC 裡面,直接開啟一個 Application 為新增模式 (sc_apl_conf()函數)

使用 sc_apl_conf("my_form", "start", "new"); 使用手冊以及 Youtube 的 說明中都是:這個必須被另一隻程式所呼叫 但,我直接測試放在該Form的 Events->onApplicationInit 裡面,一開啟,就直接進入 新增 模式 如果是另一隻程式呼叫的,在 Youtube 教學影片的示範是: 設計一隻 blank Application ,在 onExecute 中,直接寫兩行指令: sc_apl_conf("my_form", "start", "new"); sc_redir("my_form"); 然後,執行那隻 blank Application 就可以了! 另註:在 SC 所產生的 login 程式中,php Methods -> function sc_validate_success() 中 sc_apl_conf() 有被大量使用 用以定義權限 sc_apl_status($app, $perm['access']); sc_apl_conf($app, 'insert', $perm['insert']); sc_apl_conf($app, 'delete', $perm['delete']); sc_apl_conf($app, 'update', $perm['update']); sc_apl_conf($app, $perm['export'], 'xls'); sc_apl_conf($app, $perm['export'], 'word'); sc_apl_conf($app, $perm['export'], 'pdf'); sc_apl_conf($app, $perm['export'], 'xml'); sc_apl_conf($app, $perm['export'], 'csv'); sc_apl_conf($app, $perm['export'], 'rtf'); sc_apl_conf($app, $perm['export'], 'json'); sc_apl_conf($app, $perm['print'], 'print'); sc_apl_default('app1_Login', [sett_session_expire]);

2022年5月21日 星期六

SC - form application - layout裡面的block不對齊

如果 form application 裡面 layout有多個 block,且其中有50%-50%的block,就會發生不對齊的狀況。

使用 chrome 的檢查,查看產出的 html碼,發現產生的 table 的 align='center',如果改為 'left'就可以對齊!應該是因為 center 的設定,對於不同 block 的寬度來說,就會不一樣了。尤其是 一個橫列中藥有兩個block,分別 50%-50%,他們的 寬度就會產生不一樣的情形!

改善:盡量不要使用一列有兩個以上的block的設計!以免自找麻煩!



由Chrome的檢查中,找到 自定義 的 Application Theme 中,修改 CSS

方法:Layout -> Application Theme -> CSS Editor -> Form -> Table -> Others -> Width: 將95%改為100%

這樣,就不會因為align='center',由於寬度不同標準,而產生無法對齊的情形



2022年5月19日 星期四

SC-sc_format_num()應用在 sc_master_value('credit_amt', $value);

sc_lookup(result,"SELECT SUM(credit_amt) FROM gl_voucher_detail WHERE voucher_id = {voucher_id}");

//Using sc_format_num() to format the value that will be updated in the master application

//$value = sc_format_num({result[0][0]},",",".","2","N","1","");

//$value = {result[0][0]};

$value = number_format({result[0][0]},2);

sc_master_value('credit_amt', $value);

經過測試,使用 SC附的 sc_format_num(),出現在 master app上的都是空白!

如果不用 format,直接用SQL出來的值,會產生輸入格式不對!(master app 上的 credit_amt 欄位是 currency Type,小數點2位,我的資料庫欄位型態是 decimal(14,4))

最後使用 php 附的 number_format(value,2) 才解決問題!


這個是應用在 master-detail application 上,將 detail 的多筆加總,更新到 master 的總金額上。

sc_master_value() 這只是 更新 master application 的欄位,並沒有更新到 資料庫中,還需要操作者做儲存,才會更新到資料庫裡。

如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。