2020年5月13日 星期三

SC 奇怪的地方

這裡記錄一些用  SC 設計時,覺得奇怪的事情:


一、

我只要在 Form 裡面顯示單一筆紀錄,供修改。於是在 SQL 裡面加上一個 Where Condition 條件,出來的結果只有一筆結果。這個 Where Condition 搜尋條件並不是  Primary Key,而是另外唯一的 Alternative Key。

由於結果只會有一筆,所以,想說 表單下面 Tool Bar 的前一筆後一筆的瀏覽按鈕,可以不要,就把他刪除不顯示。結果,程式跑出來,卻要你檢查  Primary Key的變數值。這其實是不用的。再把這個  ToolBargea 加回去,就不用了!
這很奇怪?!

在表單的下面有第一筆、下一筆、上一筆、最後一筆的Toolbar按鈕
去除掉這個以後,Form就會自動加上 Primary Key的變數輸入

加上去以後,就不會檢查 Primary key的變數。

解決方案:
1.保留一個  last 按鈕。
2.使用 這個 sc_btn_display ("last","off"); 把這個按鈕看不見! 畫面就不會覺得奇怪!


二、建立一個 Control Register Form,要有語系,結果產生  Error


include (/nm/www/sistemas/v9/helpdesk/_lib/buttons//LTR.php): failed to open stream: No such file or directory
include (): Failed opening '/ nm / www / systems / v9 / helpdesk /_lib/buttons//LTR.php 'for inclusion (include_path ='.: / usr / share / php ')

https://forum.scriptcase.com.br/t/bug-em-exemplos-de-helpdesk/24731

發生跟這個網頁一樣的Error!

結果,我重新從零開始,建立一個新的 Control Form,名字當然要不一樣,內容引入的 HTML 一模一樣,結果一跑,就沒有 Error 了!?

結論:有時候,產生莫名奇妙的錯誤以後,查了半天都不知道何因,就乾脆從新重作一個。
以這次的經驗來說,也莫名其妙就好了!

我的判斷:因為程式產生器,在產生的過程中,產生器本身邏輯非常複雜,也許有些 Bug,我們再設計的過程中,程序會增增減減,某些網頁裡面的元件增加了,加了某些屬性、某些功能,產生器就會匯入某段程式,後來可能又被我們刪除了那個元件,不要了,可是,那個附加的程式段應該要刪除,但是發生了某些不一致的錯誤。
例如:剛才第一版的 Register Control 裡面的欄位,就被我新增、再刪除,後來產生Error,我查了裡面 application 的 Fields 裡面竟然還有已經被我刪除的欄位,我無法刪除。可見,系統內部已經產生了不一致現象,產生器的邏輯也許就出差錯了。
所以,我立即從零開頭,重新重作一個全新的,結果跑出來,正常無誤!

在這裡,紀錄一下,從新重頭的程序:
1. 建立新 Control application,選擇 using HTML
2. External Library 裡面的 register.html 由於之前已經都設計好了,就直接沿用,裡面有的欄位等都有了。所以,就直接設定引用
3. 他有個 Create Fields 的功能,就直接採用 HTML裡面設計好的欄位,建立起 Application 的欄位,不用自己手工建立!
(以後知道了,應該先用心,建立 HTML 樣板出來,再來SC裡面設計引用用他的功能自動建立,這樣最乾淨了!)
4. 完成!

唉,如果知道正確的程序,速度很快。


三、FORM Application 如果選擇 Multiple Records/Grid Edit/Grid view edit,翻頁以後,再翻回來,資料都亂了!
SC自己附的 Security 的 Group/Apps 功能示範的跑起來就錯了!
SC的隱藏 Bug 真多,害我不敢用來做正式的系統
只能自己玩玩!
唉,SC這樣是不行的!

沒有留言:

張貼留言

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

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