SplendidCRM 是 .NET 平台優秀的開源 CRM 系統,但中文二次開發資料稀缺。本文結合官方文檔與實戰經驗,以「新增模組」為例,系統梳理資料庫、存儲過程、視圖、中繼資料、UI 控件的完整開發步驟。
ID (PK)、DELETED、CREATED_BY、DATE_ENTERED、MODIFIED_USER_ID、DATE_MODIFIED、ASSIGNED_USER_ID、TEAM_IDID_C (PK) 對應主表 ID,擴充使用者自訂欄位。sp模組名_Update、sp模組名_Delete。_devtools/procedures.aspx 自動生成 SqlProc.cs。_code/DbLevel/SqlProc.cs。vw模組名_List:列表頁資料源。vw模組名_Edit:編輯/詳情頁資料源。vw 開頭。exec spMODULES_InsertOnly
@MODIFIED_USER_ID=..., @MODULE_NAME='NewModule', @DISPLAY_NAME='新模組',
@RELATIVE_PATH='NewModule', @MODULE_ENABLED=1, @TAB_ENABLED=1, @TAB_ORDER=10,
@PORTAL_ENABLED=0, @CUSTOM_ENABLED=1, @REPORT_ENABLED=1, @IMPORT_ENABLED=1,
@IS_ADMIN=0, @TABLE_NAME='NewModule'
亦可透過「系統管理 → 工作室 → 配置模組」UI 設定。
exec spSHORTCUTS_InsertOnly
@MODIFIED_USER_ID=..., @MODULE_NAME='NewModule', @DISPLAY_NAME='新模組',
@RELATIVE_PATH='NewModule/ListView.aspx', @IMAGE_NAME='icon.png',
@SHORTCUT_ENABLED=1, @SHORTCUT_ORDER=1, @SHORTCUT_MODULE='NewModule',
@SHORTCUT_ACLTYPE='Module'
exec spDYNAMIC_BUTTONS_CopyDefault '.EditView', 'NewModule.EditView', 'NewModule';
exec spDYNAMIC_BUTTONS_CopyDefault '.DetailView', 'NewModule.DetailView', 'NewModule';
spGRIDVIEWS_InsertOnly 建立列表主記錄。spDETAILVIEWS_InsertOnly 建立詳情主記錄。spEDITVIEWS_InsertOnly 建立編輯主記錄。ListView.ascx、DetailView.ascx、EditView.ascx、NewRecord.ascx、MassUpdate.ascx。.ascx.cs 中 InitializeComponent、Page_Load、Page_Command 對應邏輯。SplendidCRM 採「資料庫優先、中繼資料驅動、UI 後綁」架構。二次開發核心在於:規範建表 → 存儲過程代碼生成 → 視圖定義 → 中繼資料註冊(模組/快捷方式/按鈕/列表/詳情/編輯) → UI 控件適配。熟悉此流程可高效擴充業務模組。