天天看點

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

簡單的需求,點點滑鼠就可以了,那麼複雜的需求呢?還是要寫代碼,哈哈。

單表的增删改查

      我有一個夢想,那就是不用敲代碼,隻需要點點滑鼠,就可以實作客戶的需求。

      可能您會說這是不可能的,但是有個夢想總沒有錯吧。我就是想實作我的這個夢想,雖然可能一輩子都達不到,但是我還想努力一下子,不想讓自己後悔。如果不給自己找一個目标的話,那麼活着是不是太沒有意思了呢?編碼是一種樂趣,那麼怎麼做才能夠是一種樂趣,而不是應付差事呢?

      好在現在已經獲得了一點點成績——單表的增删改查,這種情況已經達到了點點滑鼠就可以完成的程度。獨樂樂不如衆樂樂,拿出來與大家分享。(有源碼下載下傳)

      我們舉一個用爛的例子吧,新聞表的增删改查。下面的功能都是給程式員用的,不是給客戶用的。

實作步驟:

1、 編寫資料庫文檔。Excel 格式的一個文檔,這個還是需要鍵盤的,隻用滑鼠有點困難。不過這個應該屬于設計階段,不屬于編碼階段。至于時間,那就可長可短了。

【表設計】

字段名

中文名

類型

大小

預設值

允許空

說明

News_Info

新聞表

 

NewsID

主鍵

int

4

主鍵,自增

NewsTitle

新聞名稱

nvarchar

30

_

Content

新聞内容

ntext

16

AddedDate

添加日期

datetime

8

GetDate()

AddedUser

添加人

10

Hits

人氣

2、 打開網頁,輸入網址,就是打開我的那個配置資訊維護程式,也就是大家可以下載下傳的Demo。使用者名:admin,密碼:123。(頁面很難看,沒有做任何的修飾)

【表1:登陸頁面】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

3、 進入“資料文檔、建表”節點,我們可以看到Excel裡面的記錄的表名,在這裡可以檢視文檔裡的表、字段的說明。也可以根據文檔裡的内容在SQL Server 裡面建立表,可以根據文檔裡的内容,添加配置資訊到 Manage_Table和Manage_Columns表。做好基礎工作,為後面的步驟做好準備。(1分鐘以内)

【表2:檢視表、字段】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

【表3:添加表的擴充資訊】(已經添加過的話,修改表資訊)

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

【表4:添加字段的擴充資訊】(已經添加過的不再添加,也不修改)

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

4、 打開“功能節點管理”節點,添加一個功能節點。不要看這裡的控件這麼多,就感覺很麻煩,其實隻需要添加“節點名稱”、“網址”即可,其他字段都是自動計算出來的,您看一看沒有問題就可以直接使用了。這個功能剛作出來不久,沒有經過長期的測試,是以有幾個控件沒有隐藏起來,不隐藏起來就可以直接看到内容是否正确。等确定沒有問題後,可以把幾個控件隐藏起來的。(1-2分鐘)

【表5:功能節點清單】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

【表6:添加節點】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

5、 打開“配置設定配置資訊”節點,這裡可以做各種設定。

【表7:清單】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

6、 單擊“添加清單資訊”按鈕,打開頁面,設定清單需要的資訊,比如檢視資料的表、視圖,标題名稱,排序字段、頁記錄數,添加、修改、删除用表等資訊。(1-2分鐘)

【表8:添加清單資訊】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

7、 單擊“功能按鈕維護”按鈕,打開“節點裡的功能按鈕”頁面,這裡可以添加、修改需要的功能按鈕。(1-2分鐘)

【表9:功能按鈕】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

8、 單擊“選擇清單、表單的字段”按鈕,打開選擇字段的頁面,選擇清單、表單、查詢裡面需要的字段。(1分鐘以内)

【表10:選擇字段】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

9、 設定清單、表單、查詢條件。單擊“清單字段維護”、“查詢字段維護”、“表單字段維護”按鈕,就可以進入相關的頁面,對清單、表單、查詢進行具體的調整。(0.5-3分鐘)

【表11:調整清單】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

【表12:修改查詢條件】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

【表13:調整表單布局】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

10、 修改表單裡的控件。因為根據文檔裡的内容自動生成的配置資訊可能不能滿足需求,比如“新聞内容字段”,隻能自動生成單行文本,這個用于添加新聞顯然是不适合的,那麼就需要做一下适當的變化,我們可以打開“修改配置資訊”節點,選擇“News_Info”表,單擊“檢視字段”按鈕。打開“修改字段的描述資訊”頁面,在這裡我們可以對字段的配置資訊進行修改。(1-3分鐘)

【表14:字段資訊清單】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

【表15:修改字段配置資訊】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

11、 OK,現在可以添加新聞了。重新整理左面的樹,我們就會看到剛剛添加的這個節點,點選進入,點選添加按鈕,看到表單了吧,填内容,然後儲存。看到新添加的記錄了沒?然後修改記錄,删除記錄。

【表16:新聞管理】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

12、 與角色的結合。添加了新的功能節點,又添加了按鈕,那麼角色管理會是什麼樣子的呢?添加新的功能節點、按鈕之後,在添加角色的頁面裡,這些新添加的就會自動的出現。您可以根據客戶的情況來修改角色,以便讓可以使用該功能的使用者可以使用新增加的功能。

【表17:添加角色】

【自然架構】之滑鼠點功能現(一):單表的增删改查(即上次5月23日活動的一個主題)【Demo、源碼下載下傳】

      從第四步開始(選擇字段的除外),表格都是MyGird(我的顯示資料的控件)繪制出來的,查詢都是查詢控件(MyFind)繪制出來的,表單也都是表單控件繪制出來的,當然也少不了QuickPager了。我隻需要拖拽這幾個控件就可以了。而且清單頁面大都是dataList.aspx,表單頁面有一半是dataForm.aspx 頁面。

FAQ

1、 字段名變了怎麼辦?

      這個簡單,我們可以用【表15:修改字段配置資訊】這裡的功能來修改字段名,這裡不僅會修改配置資訊裡的字段名,而且還會同時修改資料庫裡的表的字段名、資料庫說明文檔(Excel)裡面的字段名稱。這樣就可以“強制”三者的同步更新。

2、 添加字段了怎麼辦?

      這也簡單,我們可以【表2:檢視表、字段】在這裡面,添加資料庫裡的表裡的字段,然後在添加字段的配置資訊,在後面的步驟就都一樣了。

3、 删除字段了怎麼辦?

      隻要删除相關的配置資訊即可。

4、 為什麼不用實體類呢?

      這個……。我們可以看【表10:選擇字段】,當我們點了“選擇”之後,右面出現了表的字段,那麼這個和實體類是不是挺像的呢?這個是從表的角色來看的,表與字段。

      還可以看【表11:調整清單】、【表12:修改查詢條件】、【表13:調整表單布局】,這裡就是從另外的角度來看了。從清單的角度,看看清單裡面顯示的是那些字段;從查詢的角度,看看有哪些字段,都是什麼查詢方式;從表單的角度看,一個表單裡需要哪些字段。

      我覺得在一些情況下,這個比實體類好用多了,當然對于複雜的情況還是實體類好用。我也正在向如何讓表單傳回一個實體類出來。

5、 複雜的如何處理?

      這個就不好說了,因為複雜也有許多情況,比如一般複雜的,比較複雜的,很複雜的,超級複雜的。這個一句話是說不明白的。這裡說的就是一個最簡單的情況,以後還會說其他的情況。我的原則:簡單的情況,簡單處理;複雜情況特殊處理。

      如果您心急的話,可以下載下傳Demo,看一下我的這些管理配置資訊的寫法,就是上面的那些圖裡的功能。因為這些都是用的類似的方式實作的。都是表單控件,查詢控件等。

6、 你的權限通用嗎?

      這個我比較無語了,寫了這麼多,看到的回複最郁悶的就是這個。這裡示範了添加節點和按鈕的方式,添加完畢之後,在“添加角色”裡面也可以立即看到新添加的節點和按鈕。操作步驟也說了,Demo也提供下載下傳,也有源碼。大家自己看吧,如果你說這個是不通用的,那麼就不通用好了。