設計手冊
遇到問題了嗎?不用擔心,答案都在這。

資料拋轉

資料拋轉

設定了資料拋轉的動作按鈕後,使用者就能直接在來源表單按動作按鈕來將某一筆儲存的資料新增複製到另一張表單。 (你可以設計選擇複製全部的欄位資料或是只選擇某些欄位做資料拋轉)

資料拋轉這類型的連結方法又跟多版本表單不一樣。

資料拋轉的意義在於,當你拋轉某一筆資料的時候,其中的資料會被複製到另一張表單中,並存成一筆新資料,所以兩邊的資料會是不相關的。

因此,你可以改寫被拋轉的資料而且不會影響資料來源。

設定拋轉資料到另一張表單

想把表單中的一筆資料拋轉到另一張表單並另外存成一筆資料,你可以在來源表單的設計模式下,

點選工作連結表選擇資料拋轉

以下面的例子來說,我們要建立一張銷售訂單,不過內容是來自給客戶的報價單。

報價單這張表單中已經含有銷售訂單會需要的資料了,要不要下訂單是顧客的選擇,所以我們不想在這兩張表單中有連結,所以使用資料拋轉。

銷售訂單的表單架構與報價單的長得很像,雖然實際要設定資料拋轉時,表單之間並不需要有相似的設計或是要包含很多個可以拋轉資料的欄位,但這樣一致性的設計對於修改或是辨認很有幫助。

在來源表單進入設計模式,也就是我們範例中的報價單表單,我們要來設定將報價單中某些資料拋轉到銷售訂單中。

表單工具,在自訂按鈕下,選擇資料拋轉

選擇要將資料拋轉到哪張表單,這裡我們要選擇銷售訂單

接下來你就可以開始對應欄位,來決定要將這張表單中(報價單)哪個欄位的值拋轉到另一張表單(銷售訂單)的哪個欄位。

利用加號可以新增更多組對應的欄位。也可以點選右側的"自動選擇欄位",點選過後系統會將兩邊相同欄位名稱的欄位自動對應。

你可以將兩張表單的所有欄位都做對應來將資料拋轉,也可以只選擇部分欄位。

對應兩張表單的欄位時,兩邊的欄位名稱可能不同,所以在做對應時,要確認好是否對應正確。

沒有問題後,按建立資料拋轉動做按鈕

接下來就會跳出訊息讓你輸入這個動作按鈕的名稱。

在這邊我輸入"從報價單建立銷售訂單"

動作按鈕的名稱建議簡單明瞭,這樣其他使用者在使用資料庫時也會比較方便。

以上步驟完成後,動作按鈕就會被新增在表單內了。

你可以從表單設定中的動作按鈕看到。

記得按儲存設計,新增拋轉資料動作按鈕的步驟就完成了!

利用動作按鈕來拋轉資料

前面我們已經在報價單表單利用連結工具中的拋轉資料功能,建立了動作按鈕,所以我們在報價單儲存了一筆資料後,可以看到此動作按鈕。

使用者按了這個按鈕以後,就會把此筆報價單的內容,依據剛剛做的欄位對應設定,新增複製到銷售訂單中。

所以你會看到,銷售訂單有一筆新的資料,而且內容是從我們按動作按鈕的那一筆報價單資料拋轉過來的。

不僅一般的欄位資料可以被拋轉,連子表格中的產品項目資料也都被拋轉了。

在同一筆資料多次按這個動作按鈕的話,就會在另一張表單產生多筆新的資料,也就是說,我們如果在某一筆報價單資料按了多次的拋轉資料動作按鈕,那麼就會有很多筆都是根據這張報價單所產生的銷售訂單資料。

如要避免同一筆資料被多次拋轉,可以參考此篇說明.

之後如果有需要在此動作按鈕新增更多對應欄位的話,也可以回到設計模式下,在連結工作表中>資料拋轉下此組動作按鈕,點選名稱後就可以編輯或新增對應的欄位。

從子表格拋轉資料

除了將一般表格的資料拋轉到另一張表單的一般表格,你也可以將子表格的欄位資料拋轉到另一張表單,可以是子表格拋轉到子表格,也可以是子表格拋轉到一般表格。

請注意:子表格的一個欄位可能包含超過一個值(在子表格上顯示為多行資料),拋轉時,會全部一起拋轉,無法指定要拋轉哪一行,畢竟每一筆資料會包含的子表格資料都不同。

以下分別說明從子表格拋轉的兩種情形。

子表格拋轉到子表格:從前面「報價單拋轉建立銷售訂單」的案例示範中,我們已經可以看到「子表格拋轉到子表格」的例子,設定拋轉按鈕時,除了將報價單的「報價單號」、「報價對象」等一般欄位值拋到銷售訂單的一般欄位中,也將報價單的「項次」、「產品名稱」等子表格欄位拋到銷售訂單表單對應的子表格欄位,按一次按鈕,就會拋轉建立一筆資料。

子表格拋轉到一般表格:狀況略有不同,假設子表格有N列資料,按一次按鈕,會在對應的表單拋轉建立N筆資料。以下以一個案例來說明。

假設我們有一個「報價單」表單,和一個「商品報價紀錄」的表單,希望從「報價單」表單的子表格,拋轉資料到「報價紀錄」表單的一般表格。

「報價單」有報價單編號欄位,以及項次、產品名稱、單價、數量、金額等子表格欄位。

「報價紀錄」有報價單編號、項次、產品名稱、單價、數量、金額等欄位。

在「報價單」表單進入設計模式,在表單工具 > 連結工作表 > 資料拋轉,設定將資料拋轉到「報價紀錄」表單,建立一個「從報價單拋轉報價紀錄」的動作按鈕,儲存設計。

完成後,拋轉資料時,由於這張報價單的子表格包含3項商品報價,報價紀錄表單會自動建立3筆對應資料。

進階拋轉設定-套用子表格篩選條件

如果你的拋轉來源有子表格欄位時,你可以套用篩選條件來拋轉符合條件的子表格資料即可,例如報價單轉訂單時,或許客戶回簽的報價單中最後只選擇購買某幾個項目而非全部,而你的子表格中有欄位記錄"是否確定購買"的話,你就可以搭配此設定來套用篩選條件。

以下圖為例,報價單中原本報價了三個項目,但最後客戶只需要購買其中兩項,子表格中也有欄位記錄要購買的是哪兩個項目:

原本直接拋轉成訂單的話,會將全部的子表格資料一併拋轉過去,拋轉過去後你會需要"手動"刪除不需要的子表格項目,但你若在拋轉動作按鈕的進階設定套用子表格篩選條件,則可以將此自動化。

根據設定的條件,拋轉建立的訂單中,只會有符合條件的兩筆子表格資料:

進階拋轉設定-套用子表格分群條件

如果你的拋轉設定有對應子表格欄位拋到獨立欄位+子表格欄位拋到子表格欄位,意即子表格有N筆資料,就會拋轉成N筆獨立資料,並且每筆獨立資料中都有同樣的N筆子表格資料(詳細說明可以參考這個章節)但若你希望的是這些子表格資料,其實要根據某個欄位的值分成N群後,來決定產生N筆獨立資料,並且根據分群後的結果決定每筆資料中的子表格資料有多少筆的話,你可以搭配此設定來套用子表格分群條件。

當我的銷售訂單想要透過拋轉按鈕來建立採購單時,如果我設計的拋轉按鈕對應的是獨立欄位拋到獨立欄位+子表格欄位拋到子表格欄位,那我一筆銷售訂單只會拋成一筆採購單,但若你銷售訂單中的各個銷售項目其實是要向不同廠商採購的話,直接這樣拋轉會需要"手動"根據你總共要採購的廠商數量來執行拋轉N次,並逐筆手動選擇該筆採購單的廠商以及刪除不是屬於這個廠商的採購項目子表格資料。

以下圖為例,如果這張銷售訂單的多個銷售項目總共是來自兩家不同廠商:

透過拋轉按鈕的進階設定-套用子表格分群條件,根據子表格拋轉到獨立欄位的"廠商編號"來做為分群的條件:

我就可以直接拋轉成給兩家廠商的採購單,並且各自包含屬於該廠商的子表格項目:

備註

如果你設定為分群條件的欄位值在資料中是空值時,預設是不會被分群並進行拋轉,但若你希望沒有填寫的分群欄位值也要被拋轉(空值自成一群的話),可以勾選"分群欄位值為空值的子表格資料也可以被拋轉"。

子表格與一般表格的資料拋轉關係

子表格與一般表格的資料拋轉關係如下表。

拋轉來源 拋轉到一般表格 拋轉到子表格
從一般表格 可以(會建立對應的一筆資料) 不行
從子表格 可以(會建立對應的N筆資料,N為子表格列數) 可以(會建立對應的一筆資料)

說明:由於一般表格一個欄位只有一個值,而子表格一個欄位可能有超過一個值,因此你不能在Ragic將一般表格的資料,拋轉到子表格,系統會設定阻擋。

動作按鈕的移除及附加設定

關於移除動作按鈕可以參考這篇

或是要針對動作按鈕做附加設定的話,例如限制使用使用動作按鈕的權限等,可以參考這篇說明

回最上面 目錄
瞭解更多:
我們為什麼要開發Ragic?
免費課程
使用說明
Ragic定價
Ragic應用
最新訊息:
部落格
Facebook
YouTube
立即科技 Ragic, Inc.
02-7728-8692
台北市中正區南昌路二段81號9樓
info@ragic.com