• 如何用极致业务基础平台做一个通用企业ERP之六物料销售价格管理控制界面


    1.物料销售价格管理是方便企业为自己销售的产品进行价格管理控制的一个界面,界面如下:

    一览表:

    我先论述下要实现以下几个功能点:

    1.选择物料后,自动将物料的基本单位带出,显示到计量单位上,这里我们只需要界面上对计量单位的携带设置成物料,然后实体列选择单位,然后实体映射到物料销售价格表的单位即可实现。

    2.客户因为引用的是往来单位,往来单位中客户和供应商共同存在,所以这个地方我们不管是输入还是点客户控件的文本按钮,希望弹出的结果都是自动过滤出来的结果是客户。这里利用文本控件的AutoDropdownListFilter这个属性即可,在前面grid物料采购价格表里面,也有用到这个属性,这个属性就是为了实现自动过滤功能的。

    3.保存的时候,我们不能允许同一个物料,同一个客户,同一个最小订单量,同一个单位,同一个币别出现两个不一样的价格,所以我们自然而然想到要利用BeforSaveCheck事件。

    4.归档机制,如果客户还期望有历史价格保存,我们可以归档后当做历史价格数据,然后复制一份,填上该客户的新价格。再点保存即可。

    5.针对一览表我们还有一些高级属性比如表格固定列,表头过滤功能,单元格融合功能都可以利用JeezGrid对相应属性设置即可实现

      /// <summary>
        /// 销售价格管理
        /// </summary>
        class SalePrice : Jeez.Runtime.Base.General.BillUI
        {
            //控件声明定义
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txWLDW;//往来单位
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txMat;//物料
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txUnit;//计量单位
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txBibie;//币别
            private Jeez.Control.JeezNumberTextBox.JeezNumberTextBox txMany;//最小订单量
            /// <summary>
            /// 加载控件,以及控件相关事件定义
            /// </summary>
            /// <returns></returns>
            public override bool LoadUI()
            {
                bool b = base.LoadUI();
                if (b)
                {
                    txWLDW = base.GetControlByName("JeezTextBox1") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txMat = base.GetControlByName("JeezTextBox5") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txUnit = base.GetControlByName("JeezTextBox2") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txBibie = base.GetControlByName("JeezTextBox3") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox; 
                    txMany = base.GetControlByName("JeezNumberTextBox1") as Jeez.Control.JeezNumberTextBox.JeezNumberTextBox;
                   
                }
                return b;
            }
             
    
    
            /// <summary>
            /// 保存前检查事件
            /// </summary>
            /// <returns></returns>
            protected override bool BeforeSaveCheck()
            {
                bool b = base.BeforeSaveCheck();
                if (b)
                {
                    if (this.entityobject == null)
                    {
                        //新增的状态
                        int WLDWID = (int)txWLDW.Tag;
                        int MatID = (int)txMat.Tag;
                        int UnitID = (int)txUnit.Tag;
                        int BibieID = (int)txBibie.Tag;
                        decimal MinQty=(decimal)txMany.PropertyPage.Value;
    
                        //获取库存表
                        EntityObjectFactory eof = EntityObjectFactory.GetInstance(this.objContext, FolyerERP_SCM.EntityIDEnum.MatSalePrice);
                        EntityObject eo = eof.FindFirst("RefUnitID={0} and MatID={1} and JiliangdanweiID={2} and CurrencyID={3} and MinQty={4} and CheckID=0", WLDWID, MatID, UnitID,BibieID,MinQty);
                        if (eo != null)
                        {
                            Jeez.Common.UI.MsgBox.Show("已经录入过该物料该客户该单位该订单量的价格数据,请勿重新录入");
                            return false;
                        }
                        return b;
                    }
                    else
                    {
                        return b;
                    }
                }
                return b;
            }
            protected override void ShowUISelectedForm(object sender, int EntityID, ArrayList RunTimeFilter)
            {
                //如果是往来单位表
                if (EntityID == 1000000008)
                {
    
                        ArrayList ar = new ArrayList();
                   
                        //过滤只有客户的往来单位
                        Jeez.Runtime.Base.General.RunTimefilterDefine fd;
    
                        fd = new Jeez.Runtime.Base.General.RunTimefilterDefine("{jzRefUnit.IsCustomer}", 0, 0, Jeez.FormProperty.FilterDefineCompare.Equals, Jeez.FormProperty.FilterDefineLogic.NONE, 1);
    
                        ar.Add(fd);
    
                        base.ShowUISelectedForm(sender, EntityID, ar);
    
     
                }
                else
                {
                    base.ShowUISelectedForm(sender, EntityID, RunTimeFilter);
                }
            }
    
            protected override void BillUI_Load(object sender, EventArgs e)
            {
    
                base.BillUI_Load(sender, e);
                if (this.entityobject == null)
                {
                    //实现往来单位只能选择客户数据
                    txWLDW.AutoDropdownListFilter = string.Format("IsCustomer=1");
                }
    
            }
            /// <summary>
            /// 将实体数据banding到控件上的事件
            /// </summary>
            protected override void LoadEntityDataToControl()
            {
                base.LoadEntityDataToControl();
                if (this.entityobject != null)
                {//如果不是新增状态
                    InitByDefine();
                }
                 
            }
    
            void InitByDefine()
            {
                txWLDW.Enabled = false;
                txUnit.Enabled = false;
                txMat.Enabled = false;
                txMany.Enabled = false;
                txBibie.Enabled = false;
                //实现往来单位只能选择客户数据
                txWLDW.AutoDropdownListFilter = string.Format("IsCustomer=1");
    
            }
    
        }

     

    欢迎有兴趣的朋友下载我们平台,下载地址:http://www.jeez.com.cn/upfiles/jbfsetuppro.rar 体验我们平台快速开发的乐趣

    李先生 平台销售经理

    网站:www.jeez.com.cn 

    手机:18988763421 18129502059

    QQ:180315586  420977542(加我为好友在线为您演示) 

    快速开发,随需而变,将互联网时代的企业管理软件做到极致

    极致平台开发十大特点:

    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 (加我注明极致软件即可)

    平台销售经理:李先生 

    将互联网时代的管理软件做到极致!
    ==================================================================

  • 相关阅读:
    [leetcode] Rotate Image
    64位Ubuntu14.04搭建ADT开发环境
    Android开源框架之SwipeListView导入及模拟QQ侧滑
    [LeetCode] Compare Version Numbers
    Android平台之不预览获取照相机预览数据帧及精确时间截
    Android开发之打开闪光灯录制视频
    Android设置选项开发及自定义Preference样式
    Android平台上使用气压传感器计算海拔高度
    JAVA语言对比C++语言的几个优点和自身的关键特性
    数据结构二、线性表
  • 原文地址:https://www.cnblogs.com/Jeez_JBF/p/ERP7.html
Copyright © 2020-2023  润新知