在Winform開發中,我們往往除了正常的單表資訊錄入外,有時候設計到多個主從表的資料顯示、編輯等界面,單表的資訊一般就是控件和對象實體一一對應,然後調用API儲存即可,主從表就需要另外特殊處理,本随筆介紹如何快速實作主從表編輯界面的處理,結合GridControl控件的GridView控件對象,實作資料在清單中的實時編輯,非常友善。
主從表一般涉及兩個以上的表,一個是主表,其他的是從表的,在實際情況下,一般包含兩個表較多,我們這裡以兩個表的主從表關系進行分析處理。
例如我們建立兩個報帳申請單表關系如下所示。
對于報帳的主從表資訊,我們可以在清單中進行展示,如下界面所示,分為兩部分:一部分是主表資訊,一部分是從表資訊,單擊主表資訊後,顯示對應從表的清單資訊。
那麼我們新增一條主表記錄的時候,那麼可以彈出一個新的界面進行資料的維護處理,友善我們錄入主從表的資訊,界面如下所示。
上面界面包括了主表資訊,以及從表的資訊(在GridView中實時錄入)兩部分,這樣填寫後統一進行送出處理。
2、主從表編輯界面的處理
這裡主要介紹一下主從表的編輯界面處理,也就是上面這個界面的實作處理。
其中初始化GridView的代碼如下所示。
<a>/// <summary></a>
上面代碼都有詳細的備注,主要就是我們根據資料庫表的關系,建立對應顯示的字段即可,其中有需要隐藏的那麼就不要顯示(友善擷取對應的值)
如果需要綁定下拉清單類似的字段,那麼建立對應的資料類型,然後調用綁定函數綁定即可,如下面代碼
如果是一些特殊的輸入需要設定格式顯示或者掩碼,那麼如下所示
另外有一個值得注意的就是我們新增一行從表記錄的時候,需要記錄一些主表的屬性,這樣的話,我們就是在行初始化的時候,指派給從表的隐藏列即可。
<a>//新增行的内容初始化</a>
在界面中如果我們需要顯示主表的資訊,那麼就根據條件擷取對應的主表記錄對象,然後顯示給界面控件即可。
而儲存的時候,我們把界面内容重新指派給對應的主表對象。
而我們需要擷取GridView明細輸入的時候,就通過一個函數周遊擷取GridView的行記錄,轉換為相應的對象即可,如下所示。
這樣處理完這些資訊後,我們就可以在主表儲存的時候,同時儲存明細表資訊即可。
其中代碼
可以對新增記錄儲存,也可以對存在的記錄進行更新。
通過上面的介紹,我們可以看到不同的主從表其實邏輯還是很通用的,我們可以把它們的邏輯抽取出來,通過代碼生成工具進行快速生成即可。