《智慧商贸系统 》项目研发总结

本文档详细总结了《智慧商贸系统》项目的研发过程,涵盖了系统设置、期初数据录入、商品信息录入和慧管客等功能的设计与实现。在系统设置中,涉及仓库、属性、单位和门店管理;期初数据录入包括商品库存、应收欠款等;慧管客功能包括客户和供应商管理。项目中重点介绍了登录注册、期初数据录入、系统设置以及商品信息录入的实现细节,涉及数据验证、模糊查询、业务表关系和经典代码示例。在项目总结部分,开发者反思了项目经验,指出初期的困难和后期的进步,表达了对未来项目更高的期望。
摘要由CSDN通过智能技术生成

1, 项目概要

(1)系统设置:主要包括仓库管理、属性设置、单位设置、门店设置的功能
(2)期初数据录入:主要包括期初查询、商品信息录入、期初应收欠款录入、期初应付欠款录入、期初账户余额录入的功能
(3)慧管客:主要包括客户管理、客户分类、供应商管理、供应商分类、客户关联供应商的功能。

2, 设计与实现

说明:把自己设计的模块分类进行截图展示、该模块用到的数据表和关系描述、界面层经 典代码截图描述。 经典代码定义:界面层控件的特殊使用、数据逻辑的特殊处理。

2.1 登录和注册

登录:主要包括数据验证,登录功能,注册账号的功能

(一):登录页面:通过项目文档要求知道登录页面的要求,运用了Grid布局完成(下图是开发工具中的页面布局)。
Visual Studio中的视图

(二):注册页面:若没有账号,可以通过点击[注册账号]按钮跳转到注册页面。

注册页面

进入软件注册页面,确认软件为智慧商贸进销存专业版,若不是请点击【重新选择】按钮,进行软件版本的选择,注册账号时,手机号要进行数据验证,完成验证后,软件注册成功。
注册成功
使用软件前,需用一个未在智慧商贸进销存软件注册过的能正常使用的手机号,智慧商贸进销存的免费版、专业版、连锁版及服装版为独立的四套系统,不支持账号通用。

2.2 期初数据录入

期初数据录入:查询期初商品库存、期初应收欠款、期初应付欠款以及期初账户余额。

2.2-1 功能实现

(一):期初商品库存:查询每一个仓库中的商品库存,也通过商品名,商品编号,属性搜索查询出商品。
期初商品库存页面
(二):期初应收欠款:查询出客户的期初应收欠款,也通过客户名称,客户编号搜索查询出客户的期初应收欠款。
期初应收欠款

(三):期初应付欠款:查询出供应商的期初应付欠款,也通过供应商名称,供应商编号搜索查询出供应商的期初应付欠款。
期初应付欠款

(四):期初应付欠款:查询结算账户,也通过账号名称搜索查询出结算账号的信息。

期初应付欠款
首次新增商品时,会有期初库存选项;
首次新增客户或供应商时,会有期初欠款选项;
首次新增结算账户时,会有期初账户余额选项;
期初数据即初始数据,期初数据录入越完整,后期在软件中查询数据也越精确。

(五):模糊查询(期初商品库存的模糊查询)

模糊查询
搜索文本框中输入一个“小”,就可以查询出商品带“小”的商品。同时仓库的选择也是可以筛选商品。

2.2-2 相关业务表关系

期初数据录入:
相关业务表关系

2.2-3 经典代码

(1)模糊筛选代码实现:

        /// <summary>
        /// 模糊筛选(商品编号,名称,规格,属性)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void txtWarehouse_SelectionChanged(object sender, RoutedEventArgs e)
        {
   
            string select = "";
            string strS = txtWarehouse.Text.Trim();
            if (strS != "")
            {
   
                select += "commodityNumber like '%" + strS + "%'" +
                    " or commodityName like '%" + strS + "%'" +
                    " or specs like '%" + strS + "%'" +
                    " or attribute like '%" + strS + "%'" +
                    " or unitName like '%" + strS + "%'";
                //根据条件筛选表格数据
            }
            DataTable dtselect = myClient.SelectTBOTPWarehouse().Tables[0];
            DataView dv = new DataView(dtselect);
            DataTable dt = new System.Data.DataTable();
            if (select != "")
            {
   
                dv.RowFilter = select;
                dt = dv.ToTable();
            }
            if (select == "")
            {
   
                dt = dv.ToTable();
            }
            dgWarehouse.ItemsSource = dt.DefaultView;
            ConsumptionPager.ShowPages(dgWarehouse, dt);
        }

(2)仓库的筛选代码:

        /// <summary>
        /// 仓库下拉框筛选数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ck_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
   
            try
            {
   
                //期初仓库库存(获取方法,拿数据)
                DataTable dtTBOTPWarehouse = myClient.SelectTBOTPWarehouse().Tables[0];

                if (Convert.ToInt32(ck.SelectedValue) >0)
                {
   
                    int WarehouseID = Convert.ToInt32(ck.SelectedValue);
                    DataTable dtEmployeeType = myClient.SelectTBOTPWarehouseMH(WarehouseID).Tables[0];
                    dgWarehouse.ItemsSource = dtEmployeeType.DefaultView;
                }
                else
                {
   
                    dgWarehouse.ItemsSource = dtTBOTPWarehouse.DefaultView;
                }
            }
            catch (Exception)
            {
   
                return;
            }
        }

2.3 系统设置

系统设置:先创建了门店才能创建仓库,在新增仓库时要先选择所属门店,新增商品时需要用到基础数据单位表

2.3-1 功能实现

(一)门店管理:在[系统管理]模块——门店管理
新增门店:增加门店信息,其他信息包括门店编号,联系人,联系人电话。
修改门店:修改门店信息,其他信息包括门店编号,联系人,联系人电话。
删除门店:删除门店信息,其他信息包括门店编号,联系人,联系人电话。
门店详情:查看门店信息,其他信息包括门店编号,联系人,联系人电话。
门店页面
(二)仓库管理:在[系统管理]模块——仓库管理。仓库即商品存放的地方,期初商品录入前需添加仓库,新增仓库并完善仓库基本信息(名称、编号、联系人、电话等),有利于仓库快速搜索及管理。
新增仓库:新增仓库时,要选择所属门店,仓库的编号是自动生成。
修改仓库:修改仓库基本信息(名称、编号、联系人、电话等)
删除仓库:仓库被引用后,则无法删除,只可停用。当仓库商品存在待入库或待出库,需完成出入库后才能停用。
仓库详情:查询仓库基本信息(名称、编号、联系人、电话等)
仓库页面
(三)单位管理:在[系统管理]模块下——单位管理。新增商品时需要用到基础数据单位表。
新增单位:新增单位,单位可以选择有小数或非小数。
修改单位:修改是否能有小数、单位名。
删除单位:删除时,如单位启用中、被商品引用中是无法删除。
禁用/启用:禁用后,新增商品时就无法选择到已禁用的单位。
单位页面

2.3-2 经典代码

(1)邮箱的验证如下:

        /// <summary>
        /// 验证邮箱
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void eMail_LostFocus(object sender, RoutedEventArgs e)
        {
   
            try
            {
   
                string strEmail = eMail.Text.Trim();
                if (strEmail.Length > 0)
                {
   
                    使用正则表达式判断是否匹配               
                    if (!Regex.IsMatch(strEmail, @"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"))
                    {
   
                        MessageBox.Show("Email地址有误,请重新输入!", "系统提示", MessageBoxButton.OKCancel, MessageBoxImage.Error);
                        eMail.Text = string.Empty;
                    }
                }
            }
            catch (Exception)
            {
   

                return;
            }
        }

(2)邮编的验证如下图:

        /// <summary>
        /// 验证邮编
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Postcode_LostFocus(object sender, RoutedEventArgs e)
        {
   
            string strPostcode = Postcode.Text.Trim();
            if (strPostcode.Length > 0)
            {
   
                使用正则表达式判断是否匹配               
                if (!Regex.IsMatch(strPostcode, @"[1-9]\d{5}(?!\d)"))
                {
   
                    MessageBox.Show("邮编有误,请重新输入!", "系统提示", MessageBoxButton.OKCancel, MessageBoxImage.Error);
                    Postcode.Text = string.Empty;
                }
            }
        }

邮箱和邮编的验证主要通过LostFocus事件完成。
(3)新增仓库:

        /// <summary>
        /// 保存按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
   
            try
            {
   
                if (!string.IsNullOrEmpty(warehouseName.Text) && !string.IsNullOrEmpty(numbering.Text))
                {
   
                    string strwarehouseName = warehouseName.Text.ToString();
                    string strnumbering = numbering.Text.ToString();
                    string strNotes = Notes.Text.ToString();
                    bool bldefaultWarehouse = (bool)defaultWarehouse.IsChecked;
                    string strContact = Contact.Text.ToString();
                    string strphoneNumber = phoneNumber.Text.ToString();
                    string streMail = eMail.Text.ToString();
                    string strPostcode = Postcode.Text.ToString();
                    string strstaffAddress = staffAddress.Text.ToString();
                    bool blWarehouseState = (bool)WarehouseState.IsChecked;
                    int intStoresID = Convert.ToInt32(cbo_StoresID.SelectedValue);
                    DataTable dataTable = myClient.InsertWarehouse(strwarehouseName, strnumbering, strNotes, bldefaultWarehouse, strContact, strphoneNumber, streMail, strPostcode, strstaffAddress, blWarehouseState, intStoresID).Tables[0];
                    if (dataTable.Rows.Count > 0)
                    {
   
                        //获取单元格(站点ID)
                        int intWarehouseID = Convert.ToInt32(dataTable.Rows[0][0].ToString());
                        int Icount = myClient.InsertTBOTPWarehouse(intWarehouseID);
                        if (Icount > 0)
                        {
   
                            MessageBoxResult dr = MessageBox.Show("新增仓库成功!", "系统提示", MessageBoxButton.OKCancel,
                               MessageBoxImage.Information); //弹出确定对话框
                            if (dr == MessageBoxResult.OK) //如果点了确定按钮
                            {
   
                                //关闭当前窗口                  
                                this.Close();
                            }
                        }
                        else if (Icount == -1)
                        {
   
                            MessageBox.Show("仓库重复!", "系统提示"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值