2023年8月27日 星期日

發現很好的SC sniplets 參考網站 https://asdw.de/en/category/scriptcase-sniplets-en/

https://asdw.de/en/category/scriptcase-sniplets-en/


今天紀錄一篇:

一、如何將[儲存]按鈕,複製一個放在 FORM 的任何位置。

https://asdw.de/en/add-new-save-button-anywhere-on-scriptcase-form/

1. 建立一個 Label 的新欄位{save_it},然後將他放在自己希望的位置。

2. 在 OnLoad Event 中,寫上下面這段程式碼:

{save_it} = '<a href="javascript: nm_atualiza (\'alterar\');" id="sc_b_upd_t" onclick="nm_atualiza (\'alterar\');; return false;" class="scButton_default" title="Update record" style="vertical-align: middle; display:inline-block;">Click to save</a>';


這樣就好了。


二、Place Button at any place of Scriptcase Form / Grid

https://asdw.de/en/place-button-at-any-place-of-scriptcase-form-grid/
要在FORM/GRID 的上面、下面 TOOLBAR 的位置,建立一個按鈕,是很簡單的事情。
但有時候,我們會希望將按鈕放在 FORM 裡面 / GRID的 ROW 裡面。
怎麼做?

1. 建立一個 動作的 LINK(如果點擊這個按鈕)

最簡單的方法是,用 SC 的 Macro:

sc_make_link(Application, Parameters)

example:

$string_link = sc_make_link(grid_images, ref_object_type='contact';ref_object_id={id});


2. 建立一個 Label 欄位

例如:名稱為: {edit_picture}

3. 在 OnLoad Event 中設定值給該欄位:

{edit_pictures} = '<a href="' . $string_link . '" class="scButton_small" title="Edit the picture" style="vertical-align: middle; display:inline-block;">' . {lang_contact_edit_pictures} . '</a>';


三、Save the data of a Scriptcase form via Ajax Event or PHP

https://asdw.de/en/save-the-data-of-a-scriptcase-form-via-ajax-event-or-php/


有時候,需要儲存紀錄,而不要讓用戶去按儲存或加入等按鈕。怎麼辦?

1. 建立一個小小的 Javascript Method 在 SC 的FORM:

Programming > Javascript Methods > New Method

The name of that method in our sample is:  ‘speichere’

The code of the method is only one line:

nm_atualiza ('alterar');


2. 設定使用者執行儲存的情境,例如用戶離開某一個欄位:

To save the content use the Ajax-event OnBlur or OnChange.

Sample: Save the data of the form when the user exits the field CityName:

在該AJAX EVENT 的定義中,使用這個程式碼:

sc_ajax_javascript('speochere', array());

這是 SC 的 macro,在 PHP 程式中呼叫 Javascript 的 method ,來儲存資料。

(我正在傷腦筋,如何在 Dashboard 中,一個 左邊的 Widget 執行程式完畢,然後呼叫讓右邊的 Widget 自動 reload,這個好像可以用。試試

哇!sc_ajax_javascript()只用在 FORM/CONTROL/CALANDAR,我的是 GRID!!不能用!哀!)



沒有留言:

張貼留言

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

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