在 FORM 中的 PDF Export ,如果直接是 表單內容,可以依據表單格式輸出,然而,如果內含有 Master/Detail 的細項內容,就產生錯誤了。
看了 help 教學 Video,似乎要另外用 PDF Application來做才可以。
本網誌記錄網站設計的一些內容筆記。 網站設計需要整合很多工具與概念。 我畢業自淡江電子計算機科學學系,算是科班出身。但我們那個年代(50年代,唉!LKK了!),網路還只是剛開始,相關的技術都是出社會以後陸續接觸學習。 網站的建立與設計,牽涉的範圍真的很廣泛。 網站的目地是甚麼?銷售網頁、電子購物、廣告、社群經營、互動、教學、客戶服務、網站應用程式、...... 需要整合的人才,程式設計師、資料庫管理師、網頁美編、文字編輯、多媒體製作等等。 這裡將記錄一個LKK對網站系統重新學習與複習,還有教學使用的一些資料。
2015年8月7日 星期五
2015年8月6日 星期四
scriptcase 的 bugs
今天使用 ScriptCase 設計表單,表單日期欄位原本都是正常顯示的,但是當新增一個狀態欄位時,表單日期的顯現出現錯誤了!
原本日期顯示應該是: yyyy/mm/dd
增加一狀態欄位以後,變成: yyyy mm d
該狀態欄位為空白時,日期欄就是正常的;狀態欄位有值時,就變成錯誤格式!
將狀態欄位刪除,日期顯示格式就一切正常!
查看表單日期的資料庫內容,並沒有改變,沒有錯誤。顯示是 Scriptcase 在顯示該表單欄位資料時,由於Scriptcase內部程式的錯誤,某些變數或...相衝,導致顯示格式錯誤!
後來將狀態欄位加回去,將狀態欄位的型態改為 <select>,日期也就好了!
原本狀態欄位型態是 <integer>
註:2015/08/16 剛才又發生一次類似的錯誤。
錯誤的狀況是:一個 integer 欄位型態, 然後用 Lookup Setting 設定為另外顯示該ID的名稱值。但是這樣一來,日期欄位的格式就變了!
將該欄位型態由 Integer 改為 Select ,一樣用Lookup Setting,而 加Where 設定,這樣就只有單一值可以顯示,不會有選項可以選。這樣那個日期顯示就正常了!
原本日期顯示應該是: yyyy/mm/dd
增加一狀態欄位以後,變成: yyyy mm d
該狀態欄位為空白時,日期欄就是正常的;狀態欄位有值時,就變成錯誤格式!
將狀態欄位刪除,日期顯示格式就一切正常!
查看表單日期的資料庫內容,並沒有改變,沒有錯誤。顯示是 Scriptcase 在顯示該表單欄位資料時,由於Scriptcase內部程式的錯誤,某些變數或...相衝,導致顯示格式錯誤!
後來將狀態欄位加回去,將狀態欄位的型態改為 <select>,日期也就好了!
原本狀態欄位型態是 <integer>
註:2015/08/16 剛才又發生一次類似的錯誤。
錯誤的狀況是:一個 integer 欄位型態, 然後用 Lookup Setting 設定為另外顯示該ID的名稱值。但是這樣一來,日期欄位的格式就變了!
將該欄位型態由 Integer 改為 Select ,一樣用Lookup Setting,而 加Where 設定,這樣就只有單一值可以顯示,不會有選項可以選。這樣那個日期顯示就正常了!
2015年8月5日 星期三
ScriptCase master/detail,當Master的一個選項值改變,Detail 要跟著變動,怎麼做?
Master/Detail 是關聯式資料庫概念裡面,經常有的資料庫結構關係。例如:訂單及訂單明細。訂單是 MAster ,訂單明細是 Details
如果由於 訂單的 某個欄位(field1)改變時,而Detail 裡面的選項也要跟著改,那就使用 field1 改變時,整個Form Reload 選項,即可達成目的了。
如果反過來,是 Detail 裡面的值改變時,要更新 Master 的欄位值,則使用 sc_master_value('Object', Value)
如果由於 訂單的 某個欄位(field1)改變時,而Detail 裡面的選項也要跟著改,那就使用 field1 改變時,整個Form Reload 選項,即可達成目的了。
如果反過來,是 Detail 裡面的值改變時,要更新 Master 的欄位值,則使用 sc_master_value('Object', Value)
2015年8月1日 星期六
Scriptcase 不能編修了!
經過調查,原來是我的欄位中設了一個 radio 欄位,而其值必須由另一個table產生,只要把這個欄位改成 text 就可以了。
可見,是此欄位的問題。
看來,必需另想辦法了!
使用這種產生器的缺點,就是你最好使用他的功能就好,她畢竟不是萬事都能做的!
可見,是此欄位的問題。
看來,必需另想辦法了!
使用這種產生器的缺點,就是你最好使用他的功能就好,她畢竟不是萬事都能做的!
2015年7月24日 星期五
scriptcase upload file
中文檔名,不行!
英文檔名,size較小,可以成功,但檔案較大,就不行!
將 php.ini 裡面的
upload_max_filesize = 64M ==> 512M
upload_max_filesize,
memory_limit,
post_max_size
max_execution_time
放大後,就可以成功了!
上傳的位置放在 /_lib/file/ 裡面 docnn nn為id,設定在該form裡面。
他並沒有依照 form 裡面的 Application -> Settings->Document Path 裡的設定放置
如果選擇的是 field datatype -> images(file name),也不會放在 application -> settings -> Image Directory 裡面!
Scriptcase 裡面還是一堆 Bugs!
唉!究竟是我誤解了呢?還是 Bugs!
==============================
multi-upload 功能似乎僅能適用在 Document(database),也就是儲存在 mysql BLOB裡面才可以。用Filename 似乎不行ㄟ!
但是,我不想把附加的檔案文件放到BLOB中,那樣會讓 database太大,以後會麻煩的。
英文檔名,size較小,可以成功,但檔案較大,就不行!
將 php.ini 裡面的
upload_max_filesize = 64M ==> 512M
upload_max_filesize,
memory_limit,
post_max_size
max_execution_time
上傳的位置放在 /_lib/file/ 裡面 docnn nn為id,設定在該form裡面。
他並沒有依照 form 裡面的 Application -> Settings->Document Path 裡的設定放置
如果選擇的是 field datatype -> images(file name),也不會放在 application -> settings -> Image Directory 裡面!
Scriptcase 裡面還是一堆 Bugs!
==============================
multi-upload 功能似乎僅能適用在 Document(database),也就是儲存在 mysql BLOB裡面才可以。用Filename 似乎不行ㄟ!
但是,我不想把附加的檔案文件放到BLOB中,那樣會讓 database太大,以後會麻煩的。
2015年7月22日 星期三
用MySQL的Trigger 自動產生會員編號
想要自己編會員編號,不想用mysql 的 auto-increment自動編號功能。
而這個編號,可能會在不同的 AP 開放輸入,所以,最好的產生方式,是放在資料庫裡面自動產生,所以,就動了 Trigger 的念頭。
經過研究,寫了下面這段:
CREATE TRIGGER `get_ext_id` BEFORE INSERT ON `members`
FOR EACH ROW BEGIN
DECLARE v_last_id , v_new_id INT;
SELECT members_last_id INTO v_last_id FROM members_last_id;
SET v_new_id = v_last_id + 1;
UPDATE members_last_id SET members_last_id = v_new_id;
SET NEW.members_ext_id = LPAD(v_new_id,10,'0');
END
members_last_id 是另外建立的一個 table,裡面只有一個欄位,也叫做:members_last_id,而且只有一筆記錄,就是記錄著欲產生的會員編號的最後一號。
就這樣,可以自動從資料庫裡面,每當有新增時,就會自動產生會員編號。
而這個編號,可能會在不同的 AP 開放輸入,所以,最好的產生方式,是放在資料庫裡面自動產生,所以,就動了 Trigger 的念頭。
經過研究,寫了下面這段:
CREATE TRIGGER `get_ext_id` BEFORE INSERT ON `members`
FOR EACH ROW BEGIN
DECLARE v_last_id , v_new_id INT;
SELECT members_last_id INTO v_last_id FROM members_last_id;
SET v_new_id = v_last_id + 1;
UPDATE members_last_id SET members_last_id = v_new_id;
SET NEW.members_ext_id = LPAD(v_new_id,10,'0');
END
members_last_id 是另外建立的一個 table,裡面只有一個欄位,也叫做:members_last_id,而且只有一筆記錄,就是記錄著欲產生的會員編號的最後一號。
就這樣,可以自動從資料庫裡面,每當有新增時,就會自動產生會員編號。
2015年7月21日 星期二
Scriptcase 建立文字的會員編號
$tmp_str_id = str_pad({members_id}, 10, '0', STR_PAD_LEFT);
// SQL statement parameters
$update_table = 'members'; // Table name
$update_where = "members_id = {members_id}"; // Where clause
$update_fields = array( // Field list, add as many as needed
"members_ext_id = '$tmp_str_id'"
);
// Update record
$update_sql = 'UPDATE ' . $update_table
. ' SET ' . implode(', ', $update_fields)
. ' WHERE ' . $update_where;
sc_exec_sql($update_sql);
// SQL statement parameters
$update_table = 'members'; // Table name
$update_where = "members_id = {members_id}"; // Where clause
$update_fields = array( // Field list, add as many as needed
"members_ext_id = '$tmp_str_id'"
);
// Update record
$update_sql = 'UPDATE ' . $update_table
. ' SET ' . implode(', ', $update_fields)
. ' WHERE ' . $update_where;
sc_exec_sql($update_sql);
訂閱:
文章 (Atom)
如何判斷現在FORM是在 insert mode? 還是 update mode?
只要用 if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。
-
3-1 使用 Smarty 一、Smarty基本操作 大原則:和外觀有關的東西都放到.html或.tpl中,所需要的資料全由.php提供,簡單範例,index.php內容: <?php require_once 'smarty/lib...
-
分享:網站上 http://shuai.be/archives/php-undefined-index/ 平時用 $_GET[ ‘ xx ’ ] 取得參數值時,如果之前不加判斷在未傳進參數時會出現這樣的警告 : PHP Notice: undefined i...
-
只要用 if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。