如何用极致业务基础平台做一个通用企业ERP系列之二一览表培训
接著上一篇博客,我們進行往來單位一覽表設計如下:
可以看到我們設計的時候,將客戶和供應商用兩個字段來解決,這樣基本可以解決那些往來單位有可能即是供應商又是客戶的情況。當然因為這里不是主要做客戶關系管理系統,所以可以這樣設計問題也不大,但如果要單獨還要增加客戶關系管理系統的話,我們建議是分開兩個表來設計。這里主要圍繞的是進銷存來設計,所以我們把往來單位做到一個表里面。
這樣就有以下幾個核心點我們要去解決:
1比如到時候系統分配權限的時候,采購進下面的往來單位一覽表只能看到往來單位是供應商的,銷售進來只能看到往來單位是客戶的。
2為了安全保密設置,有些人又不能讓他看到往來單位詳細聯系人信息(我們聯系人存儲在子表,防止不相關的人看到信息私下又去聯系)。
3出于常理自己錄入的往來單位信息,希望只有自己看到,別人要特別權限才能看到,而且如果自己是主管還能看到自己下屬錄入的客戶或者供應商。
4.采購進來默認是否客戶界面控件為不可編輯,銷售進來是否供應商控件不可編輯。
5.不同組織人進來只能看到他們自己組織內的往來單位.
具體實現過程:
1首先利用我們平臺的權限分配系統,創建相應的權限界面,如下所示即可。
2.對于第5點,利用組織機構數據授權即可解決。
3.其他代碼解決。代碼如下:
/// <summary>/// 往來單位一覽表/// </summary>class RefUnitList : Jeez.Runtime.Base.General.frmList{public override void RefreshList(){//設置一覽表的數據源base.ReportListData = new RefUnitListData();base.ReportListData.objContext = this.objContext;base.ReportListData.FormPropertyPage = this.FormPropertyPage;base.RefreshFilterGridData();}}/// <summary>/// 構建一覽表的數據源/// </summary>public class RefUnitListData : Jeez.Runtime.Data.ReportList{public RefUnitListData(): base(){}//獲取SQL on部分protected override void AddFromSqlBeforeONPart(StringBuilder sb, System.Collections.ArrayList aryTable, string tableName, string tableNameAs){base.AddFromSqlBeforeONPart(sb, aryTable, tableName, tableNameAs);}//獲取SQL where部分public override string GetRptListSQLWhere(){string strwhere = base.GetRptListSQLWhere();//獲取框架點擊過濾的時候設置的過濾條件//我們可以利用構建數據源的where部分來實現打開往來單位一覽表的數據源的數據隔離string filter = BaseFunc.GetEmpFilter(objContext);//獲取當前用戶的自己職員ID,以及他下屬的職員ID,職員表我們有個上級主管字段來決定員工上下級關系if (strwhere == ""){//如果點擊過濾沒有設置過濾條件,我們就添加自己的過濾條件,這里就可以直接where ,//如果點擊過濾沒有設置過濾條件,我們就添加自己的過濾條件,這里就可以直接where ,if (!Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_SeeAll")){ //如果沒有看所有往來單位的權限的話,就只能查看業務員自己以及業務員下屬錄入進來的往來單位數據strwhere += string.Format(" where jzRefUnit.EmployeeID in {0}", filter);if (!Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_SeeBoth")){//如果沒有查看兩者的權限if (Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_Customer")){//如果只有看客戶的權限strwhere += string.Format(" and jzRefUnit.IsCustomer=1");}if (Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_Supply")){//如果有查看供應商權限 strwhere += string.Format(" and jzRefUnit.IsSupply=1");}}}else{if (!Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_SeeBoth")){//如果沒有查看兩者的權限if (Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_Customer")){//如果只有看客戶的權限strwhere += string.Format(" where jzRefUnit.IsCustomer=1");}if (Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_Supply")){//如果有查看供應商權限 strwhere += string.Format(" where jzRefUnit.IsSupply=1");}}}}else{//如果點擊過濾沒有設置過濾條件,我們就添加自己的過濾條件,這里就可以直接where ,if (!Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_SeeAll")){ //如果沒有看所有往來單位的權限的話,就只能查看業務員自己以及業務員下屬錄入進來的往來單位數據strwhere += string.Format(" and jzRefUnit.EmployeeID in {0}", filter);if (!Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_SeeBoth")){ //如果沒有查看兩者的權限if (Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_Customer")){//如果只有看客戶的權限strwhere += string.Format(" and jzRefUnit.IsCustomer=1");}if (Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_Supply")){//如果有查看供應商權限 strwhere += string.Format(" and jzRefUnit.IsSupply=1");}}}else{if (!Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_SeeBoth")){//如果沒有查看兩者的權限if (Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_Customer")){//如果只有看客戶的權限strwhere += string.Format(" and jzRefUnit.IsCustomer=1");}if (Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_Supply")){//如果有查看供應商權限 strwhere += string.Format(" and jzRefUnit.IsSupply=1");}}}}return strwhere;}//獲取SQL order by部分public override string GetRptListSqlOrderBy(ref string strSQLGroupBy){return base.GetRptListSqlOrderBy(ref strSQLGroupBy);}}/// <summary>/// 往來單位新增界面/// </summary>class RefUnit : Jeez.Runtime.Base.General.BillUI{Jeez.Control.JeezUltraCheckBox.JeezUltraCheckBox ckIsCustomer;Jeez.Control.JeezUltraCheckBox.JeezUltraCheckBox ckIsSupplyer;public override bool LoadUI(){bool b = base.LoadUI();if (b){ckIsCustomer = base.GetControlByName("JeezCheckBox1") as Jeez.Control.JeezUltraCheckBox.JeezUltraCheckBox;ckIsSupplyer = base.GetControlByName("JeezCheckBox2") as Jeez.Control.JeezUltraCheckBox.JeezUltraCheckBox;}return b;}protected override void BillUI_Load(object sender, EventArgs e){base.BillUI_Load(sender, e);InitByDefine();}/// <summary>/// 根據角色設置價格單元格的可見隱藏/// </summary>void InitByDefine(){if (!Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_SeeChild")){//如果沒有看子表數據的權限,子表grid數據就隱藏起來this.CurrentGrid.Visible = false; }if (!Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_SeeBoth")){//如果沒有看子表數據的權限,子表grid數據就隱藏起來ckIsCustomer.Enabled = false;ckIsSupplyer.Enabled = false;if (Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_Customer")){//如果只有看客戶的權限 ckIsCustomer.Checked = true;}if (Jeez.Common.UI.AccessControl.CheckACLWithNoMsg("SCM_WLDW_Supply")){//如果有查看供應商權限 ckIsSupplyer.Checked = true;}}else{ckIsCustomer.Enabled = true;ckIsSupplyer.Enabled = true;}}protected override void LoadEntityDataToControl(){base.LoadEntityDataToControl();InitByDefine();}} View Code?
?總結:一覽表開發主要了解一覽表數據源的構建部分,比如我們代碼部分構建where部分,當然我們也可以設置一覽表數據源的排序部分。
?
極致平臺開發十大特點:
1. 一個數據庫下可以同時進行N套業務系統開發,開發出來的產品可以根據您客戶的需要按模塊界面組發布,客戶想要啥模塊就可以給啥模塊。而且一個數據庫下開發所有功能,當客戶需要從你的人力資源增加客戶關系管理模塊的時候,你只要做個升級包就可以了。解決企業多個業務系統信息孤島問題。
2. 智能升級功能,當客戶從A模塊增加B模塊的時候,您只需要做一個升級包即可,給客戶升級后,客戶原來錄入的數據不會有影響,而且所有客戶端都是智能感應智能升級,大大節省您的部署成本。
3. 工作流套打報表均可以運行時候自定義,比如費用報銷單,您100家客戶就有一百種費用報銷的流程,套打的格式,用我們平臺您只需要設計好這個費用報銷單,至于哪個客戶走什么流程,完全可以讓客戶自己去定義,而不需要像傳統開發那樣,提前在開發中設置好,100個客戶就維護100套代碼。套打也是如此。
4. 支持數據授權,當您開發多組織架構的系統的時候,我們只要業務單據引用組織機構即可,然后組織機構支持數據授權,這樣就可以不需要編寫任何一行代碼就可以做到,組織與組織之間數據彼此隔離,我想給哪個用戶看哪個組織的數據只要給這個用戶這個組織的數據權限即可。
5. 支持字段授權,對于一些表的核心字段對用戶進行屏蔽直接利用我們平臺的字段授權功能即可,比如職員薪酬字段進行字段授權,讓有的用戶在看職員信息的時候,自動隱藏薪酬的數據。這也是無需編寫任何一行代碼。
6. 單據界面自動生成,我們開發的時候只要設計好實體,也就是傳統開發所說的表結構即可,還可以設置哪些字段是必錄,可見,不允許重復,在界面生成的時候,會自動生成一個界面,而且這個界面的增刪改查是無需寫一行代碼的,您只要對您特有業務邏輯編碼即可,相對傳統開發,你代碼量可以節省2/3,開發周期縮短2/3
7.一次開發同時具有單機局域互聯網三個版本,客戶想要單機就給單機想要互聯網版就給互聯網版。?
8.強大的公式引擎,讓您可以靈活設計計算類的項目,比如工資,預算。
9.包含強大的各種控件,比如文本控件支持F8調用,編碼名稱自動帶出。Grid控件支持表頭過濾,單元格融合,固定列,表格列,表格行各種公式匯總,復合表頭,表格寬度可以自己隨意調整,而且關閉后會自動記錄之前的寬度。還支持表格列隨意調整順序。
10.平臺內置很多基礎功能,比如權限管理,用戶角色管理,還有實施的一些導入導出工具都能幫助客戶大大提高一個項目驗收進度。
?
官網:www.jeez.com.cn
平臺介紹:www.jeez.com.cn/jbf??
平臺下載地址:http://www.jeez.com.cn/upfiles/jbfsetuppro.rar
(下載即可有3個月免費試用)
聯系電話:13826519021 18988763421 QQ:180315586? 420977542?(加我注明極致軟件即可)
平臺銷售經理:李先生?
將互聯網時代的管理軟件做到極致!
==================================================================
?
?
?
轉載于:https://www.cnblogs.com/Jeez_JBF/p/ERP2.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的如何用极致业务基础平台做一个通用企业ERP系列之二一览表培训的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020下半年新机最新消息_三星小米华为
- 下一篇: loadrunner接口性能测试分享