程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 開源客戶關系管理系統SplendidCRM下的二次開發

開源客戶關系管理系統SplendidCRM下的二次開發

編輯:關於.NET

SplendidCRM是.net環境下比較優秀的開源客戶關系管理系統。目前有關中文的資料比較少,在官方網 站針對二次開發的內容也不多。結合網絡中查到的相關資料和自己的實踐,下面以一個新模塊的開發過程 為例,將SplendidCRM下的二次開發步驟及相關注意的地方描述如下,以供同行及感興趣的參考。

1、創建表,如需要定制字段,還要創建以_cstm結尾的表,如有多對多的關系,還要創建關系表。

表一般含有以下字段:ID(主鍵)、DELETED(是否刪除標志)、CREATED_BY(創建人)、 DATE_ENTERED(錄入時間)、MODIFIED_USER_ID(修改用戶的ID)、DATE_MODIFIED(修改時間)、 ASSIGNED_USER_ID(指定的用戶ID)、TEAM_ID(團隊ID)。

_cstm一般含有以下字段:ID_C(主鍵)。

2、創建用於更新及刪除數據的存儲過程。

存儲過程命名:sp模塊名_Update、sp模塊名_Delete。

然後調用_devtools/procedures.aspx可以自動產生調用存儲過程的代碼文件SqlProc.cs,此文件位於 _code下,然後將此文件覆蓋掉_code/DbLevel目錄下的SqlProc.cs文件。

3、創建視圖:至少要包括核心視圖、以_List和_Edit結尾的視圖,視圖一般以vw開頭。

4、調用存儲過程spMODULES_InsertOnly往系統中加入新模塊信息。此存儲過程參數說明:

Procedure dbo.spMODULES_InsertOnly
     ( @MODIFIED_USER_ID uniqueidentifier –修改有用戶ID
     , @MODULE_NAME    nvarchar(25) –模塊名稱
     , @DISPLAY_NAME   nvarchar(50) --模塊的顯示名稱,用術語來描述
     , @RELATIVE_PATH   nvarchar(50)  --模塊所處目錄的相對路徑
     , @MODULE_ENABLED  bit        --是否啟用此模塊,也可以通過系統管理->工

作室-> “配置模塊”功能來改變此屬性
     , @TAB_ENABLED    bit     --是否在菜單上顯示此模塊,也可以通過系統管理->

工作室-> “配置模塊”功能來改變此屬性
     , @TAB_ORDER     int     --菜單上顯示的次序,也可以通過系統管理->工作室

-> “配置模塊”功能來改變此屬性
     , @PORTAL_ENABLED  bit –是否顯示在門戶的標志
     , @CUSTOM_ENABLED  bit    --是否可以讓使用者來定制字段(需要用以_cstm結尾的表

)
     , @REPORT_ENABLED  bit –是否啟用報表的標志
     , @IMPORT_ENABLED  bit    -是否可以導入數據的標志
     , @IS_ADMIN     bit ----是否僅管理員使用標志
     , @TABLE_NAME    nvarchar(30) –模塊對應的表名
     )

5、調用存儲過程spSHORTCUTS_InsertOnly創建快捷方式。或通過系統管理->工作室->管理捷徑 ->創建快捷方式來創造快捷方式。此存儲過程參數說明:

    Procedure dbo.spSHORTCUTS_InsertOnly
     ( @MODIFIED_USER_ID uniqueidentifier --修改人的ID
     , @MODULE_NAME    nvarchar( 25)  --模塊名稱
     , @DISPLAY_NAME   nvarchar(150)  --顯示名稱,為術語名稱
     , @RELATIVE_PATH   nvarchar(255)   --快捷方式命令的相對路徑
     , @IMAGE_NAME    nvarchar( 50)  --圖片的名稱
     , @SHORTCUT_ENABLED bit       --是否啟用的標志
     , @SHORTCUT_ORDER  int       --快捷方式的顯示次序
     , @SHORTCUT_MODULE  nvarchar( 25)  --快捷方式權限控制的模塊
     , @SHORTCUT_ACLTYPE nvarchar(100)  --權限的類型
     )

6、調用存儲過程spDYNAMIC_BUTTONS_CopyDefault創建動態按鈕,需要調用二次分別創建EditView和 DetailView的動態按鈕。或通過系統管理->工作室->管理動態按鈕->創建動態按鈕來創造動態 按鈕。

一般需要調用以下語句:

exec dbo.spDYNAMIC_BUTTONS_CopyDefault '.EditView', ‘模塊名.EditView', '模塊名';

exec dbo.spDYNAMIC_BUTTONS_CopyDefault '.DetailView', '模塊名.DetailView', '模塊名';

此存儲過程參數說明:

    Procedure dbo.spDYNAMIC_BUTTONS_CopyDefault
     ( @SOURCE_VIEW_NAME  nvarchar(50) –系統存在的默認的動態按鈕名
     , @NEW_VIEW_NAME    nvarchar(50) –新的模塊視圖的名稱
     , @MODULE_NAME     nvarchar(25) –模塊名
     )

7、創建列表的列的信息。

涉及到GRIDVIEWS與GRIDVIEWS_COLUMNS表。是主細表結構,插入列的信息與列的類型有關,分別調用 spGRIDVIEWS_COLUMNS_InsBound、spGRIDVIEWS_COLUMNS_InsBoundDate、 spGRIDVIEWS_COLUMNS_InsBoundList、spGRIDVIEWS_COLUMNS_InsField、 spGRIDVIEWS_COLUMNS_InsHyperLink。這個可以通過界面來配置。

調用存儲過程spGRIDVIEWS_InsertOnly創建列表的主表信息。

exec dbo.spGRIDVIEWS_InsertOnly '模塊名.L名稱istView', '模塊名', '獲取數據的視圖(一般以 _List結尾)';

然後調用系統管理->頁面布局->網格的布局來創建列表的列的信息。

8、創建查看的列的信息。

涉及到三個表DETAILVIEWS、DETAILVIEWS_FIELDS、DETAILVIEWS_RELATIONSHIPS。一個主表,兩個細 表。一個是查看的列的信息表,一個是查看對象的關系表。列的信息根據類型不同,分別調用 spDETAILVIEWS_FIELDS_InsBlank、spDETAILVIEWS_FIELDS_InsBound、 spDETAILVIEWS_FIELDS_InsBoundList、spDETAILVIEWS_FIELDS_InsButton、 spDETAILVIEWS_FIELDS_InsCheckBox、spDETAILVIEWS_FIELDS_InsertOnly、 spDETAILVIEWS_FIELDS_InsHyperLink。

調用存儲過程spDETAILVIEWS_InsertOnly插入查看的主表信息。

exec dbo.spDETAILVIEWS_InsertOnly '模塊名.DetailView', '模塊名', '獲取數據的視圖名稱(一 般以_Edit結尾)', '15%', '35%';

然後調用系統管理->頁面布局->查看的布局來創建查看的列的信息。

9、創建編輯的列的信息。

涉及到兩個表EDITVIEWS、EDITVIEWS_FIELDS。

調用存儲過程spEDITVIEWS_InsertOnly插入編輯的主表信息。

exec dbo.spEDITVIEWS_InsertOnly '模塊名.EditView', '模塊名', ''獲取數據的視圖名稱(一般以 _Edit結尾)', '15%', '35%';

然後調用系統管理->頁面布局->編輯的布局來創建編輯的列的信息。

10、在web site目錄下創建模塊的文件夾,將相似模塊的文件夾下的文件拷貝到新的模塊的文件夾下 。重命名文件中的命名空間、文件及相關的類名。文件夾下的主要文件如下:

ListView.ascx 顯示數據網格的控件。

DetailView.ascx顯示數據的詳細信息的控件。

EditView.ascx編輯數據的控件。

NewRecord.ascx創建新紀錄的控件。

MassUpdate.ascx批量更新的控件。

必須要修改ListView.asc.cs、DetailView.ascx.cs、EditView.ascx.cs文件中InitializeComponent ()、Page_Load()、Page_Command()函數中相應的地方,讀一下代碼就知道了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved