2023年8月13日 星期日

SC的坑們!這裡蒐集SC的坑!.......GRID GRID/Summary 模組,EXPORT PDF無法產生 Summary

使用工具,總是會有一些坑!

碰到了坑,就只好想辦法轉彎、變通!

沒辦法,因為是使用別人設計的工具,而且SC是有名的反應慢!反應一個BUG,可能不會收到回應,沒有信息;縱使有回應,也要等個幾個月,才有改!上次,我反應的問題,就等了快一年吧!這也是我一直會遲疑使用SC的原因之一!但也不能總是在等,應該用他來賺錢了!所以,想好合約書上的條款,規避可能的坑!

今天就出現坑了!

要產生獎金報表的程式,GRID是獎金明細,而SUMMARY模組可以產生個別總和的總結報表,這是一個非常棒的功能,在螢幕上產生的結果都很好,輸出要到 PDF、PRINT,也正確!(在我的LOCAL 開發環境上正常)!

坑要來了!

佈署到服務主機以後,輸出 SUMMARY 的 PDF,就出問題了!應該是產生 SUMMARY,但卻輸出了明細內容!試了設定的幾種排列組合!都失敗!

最後,嘗試這樣:複製出一個新的APPLICATION,而只有 SUMMARY模組,然後輸出PDF看看,因為內容只有SUMMARY,還好,好哩家在!終於在服務主機上看到期待的結果!

所以,只好這樣來避開坑了:

1. 設計兩個GRID APP,一個只有 SUMMARY、一個只有 GRID DETAIL,然後,各自產生各自的輸出 PDF,

2. 在這兩個 APP 彼此之間,再另行設計一個切換的按鈕,相互切換,看起來就好像是同一支程式APP一樣!唉!其實是為了避開無法正確產生SUMMARY PDF的坑而這樣做的!

坑!搞了好久!記錄下來,供以後使用!



另一個坑!紀錄:

年月輸入表單(APP A),呼叫 子程式總結列表(APP S),然後在 APP S 裡,做一個按鈕連結到 明細列表子程式 APP D。

如果在 APP D,也做一個連結按鈕 連結到 總結列表子程式(APP S),在開發環境中測試是可以正常運作的,但是一佈署到服務主機上,就不行了!產生"無效的數據"的錯誤訊息,這個訊息是跟權限有關的!不知道為何會這樣!只好把 APP D上連到 APPS 的連結拿掉,然後修改 APP D的 退回按鈕,退回到 APP S,這樣就解決了!

這個在開發環境上跑可以,而佈署到服務主機上就掛了!這種坑!SC好像還不少喔!

在此紀錄一下!


再一個小坑: (2023/08/14)

產生GRID總結報表(單獨的 SUMMARY 模組),結果HEADR右上角的日期格式是:dd/mm/YYYY,跟我PROJECT設定的Locale 格式不一樣,這又是一個SC的不一致的地方!算一個小坑吧!正常的 GRID 模組都正確,目前看到就這個錯誤!只好自己在 HEADER 設定那裏的 DATE,改為 VALUE,然後自己在 EVENT onScriptInit 裡寫一段: [sys_date] = date("Y/m/d");然後在 APPLICATION 的 Global Value 中將 sys_date 設為 output,這樣就完成了!規避一個小坑!

在此紀錄一下。



==============

今天(2023/09/13) 有另一個坑,也搞了好久,終於解決了!

我將過去跑得順利的 sc_samples8 本來是要安裝在 VPS上面,可是一直解壓縮有問題,所以,見乾脆回來DEDICATE 主機這裡。以前有安裝,而且跑得順利,想說在安裝回去,應該很快!

結果,samples 一安裝完畢以後,一跑就 500 Internal Error,給你當了!

有些APPLICATION可以跑,有些無法跑!很奇怪。

我原本一直在 SERVER 主機的設定上去傷腦筋!extension? php.ini? .htaccess?試了很久,還是一樣!

搞到晚上了,查YOUTUBE視頻,有一個說明 Internal Error 500 怎麼處理?

1. 找 PHP 的 error LOG

2. 修改 php.ini 的 error display 為 On

然後,就看到 Error Message了!

竟然是 php 程式錯誤!

我在 Local 上跑得很正常呀!

查了一下,就是 php 8.1 版本不再支援的舊寫法

Fatal error: Unparenthesized `a ? b : c ? d : e` is not supported. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in /home/ddnews/domains/samples.alfredlin015.com/public_html/samples/new_data_entry/new_data_entry_apl.php on line 8060

再比對一下程式,samples 是 SC 公司做的,它裡面有了 internal library scwebsite.php 有改寫,所有就copy samples9 的版本到我整理用的 samples8 去,再重新  Generate、deployee ,就成功了!

唉!浪費了一整天的時間再解決這個問題,終於解決了!

紀錄一下!


====================

2023/10/23 周一

今天又一個坑!還無法解決!

合會出現的會員手機畫面,希望能窄一點

於是企圖修改 theme template

結果改了半天,都不能修改

改了 padding 為 0px 儲存以後,還是一樣!

真是夠了!

唉!

一個大坑!

-----------------------

解決方案:

----------------------

最後,只好,用右鍵點出檢查,查閱SC產生的 class/id 相對的CSS檔案,然後去copy出來,貼到onScriptInit Event 去進行修改,在這裡去蓋掉.ccs檔案的設定。

這一招,前面用過,目前也只能先這樣了!

在 WordPress 的 Theme 裡,也是有自訂 CSS 裡面,用這招來蓋掉WP所設定好的CSS!






沒有留言:

張貼留言

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

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