C#项目--GridControl数据绑定及数据引入
创始人
2024-05-31 09:06:38
0

系列文章

C#项目–业务单据号生成器(定义规则、自动编号、流水号)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787

C#项目–开始日期结束日期范围计算(上周、本周、明年、前年等)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129040663

C#项目–数据实体类使用
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128816638

C#项目–单据审批流方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128972545

C#项目–二维码标签制作及打印(完整版)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126884228

C#项目–条码管理操作手册
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126589496

C#项目–WebAPI发布和IIS部署,及异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126539836

C#项目–提高编程效率,代码自动生成
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126890673

C#项目–提高编程效率,Excel数据导入工具
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126427323

C#项目–Windows服务(Service)安装及启停方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053794

C#项目–穿透Session隔离,服务调用外部程序(无窗体界面解决)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053033

C#项目–任务计划实现,使用Quartz类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/123667723

C#项目–《周计划管理关于产前准备模块》解决方案20200203
本文链接:https://blog.csdn.net/youcheng_ge/article/details/122919543

C#项目–项目中,源码解析的正则表达式
本文链接:https://blog.csdn.net/youcheng_ge/article/details/118337074

C#项目–如何获取文件版本和MD5值
本文链接:https://blog.csdn.net/youcheng_ge/article/details/112513871

C#项目–如何测试网络是否连通
本文链接:https://blog.csdn.net/youcheng_ge/article/details/110137288

C#项目–打印模板解决方案(自定义模板、条形码、二维码、图片)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129415723

C#项目–软件打包、安装包制作,我推荐Inno Setup
本文链接:https://blog.csdn.net/youcheng_ge/article/details/123665633


文章目录

  • 系列文章
  • 前言
  • 一、面临问题
  • 二、解决方案
  • 三、软件开发(源码展示)
    • 3.1 数据实体类
    • 3.2 引入事件
    • 3.3 引入窗体加载时,自动取数
    • 3.4 引入窗体,按钮事件
    • 3.5 新增窗体,保存数据
    • 3.6 窗体加载绑定数据
  • 四、运行效果
  • 五、资源链接


前言

我能抽象出整个世界,但是我不能抽象你。 想让你成为私有常量,这样外部函数就无法访问你。 又想让你成为全局常量,这样在我的整个生命周期都可以调用你。 可惜世上没有这样的常量,我也无法定义你,因为你在我心中是那么的具体。

哈喽大家好,本专栏为【项目实战】专栏,有别于【底层库】专栏,本专栏介绍项目开发过程中,遇到问题的解决方案,是我实际项目开发过程,相对成熟、可靠方法的提炼,我将这些问题的处理思路梳理,撰写本文分享给大家,大家遇到类似问题,可按本文方案处理。

本专栏会持续更新,不断完善,大家有任何问题,可以私信我。本专栏之间关联性较弱(文章之间依赖性较弱,没有阅读顺序区分)。如果您对本专栏感兴趣,欢迎关注吧,我将带你用最简洁的代码,实现最复杂的功能。

·提示:本专栏为项目实战篇,未接触项目开发的同学可能理解困难,不推荐阅读。


一、面临问题

我们已经确定了大致的方向,与业务部门沟通,进一步确定标签需要支持以下目标:
①公司存在保密要求,标签不便显示产品信息,但特定人员可以看懂。
②编号要可以人工复核,双重保障,防止识别不出可以人工干预。

二、解决方案

程序主页面如下所示,工具栏增加“引入”按钮,从新窗体引入数据。
在这里插入图片描述

三、软件开发(源码展示)

3.1 数据实体类

以下代码由【自动代码工具】生成,拷贝到项目中,可以直接使用。

using System;namespace MES_Client
{/// /// Model层 t_material_input_detail(以下代码由工具自动生成,有错误请反馈)/// public class T_material_input_detail{public T_material_input_detail() { }public  string 入库单号 { get; set; }public  int 序号 { get; set; }public  string 品名编码 { get; set; }public  string 品名 { get; set; }public  string 规格 { get; set; }public  float 重量 { get; set; }public  int 入库数量 { get; set; }public  string 单位 { get; set; }public  string 采购订单号 { get; set; }public  string 供应商编码 { get; set; }public  string 批次号 { get; set; }public  string 备注 { get; set; }public  int id { get; set; }}
}

3.2 引入事件

我这里进行封装,只要Bitmap对象就行了,传入的值是标签的编号。

private void TBTN_Import_Click(object sender, EventArgs e){PCForm_Store_MaterialInput_Import frm = new PCForm_Store_MaterialInput_Import();frm.StartPosition = FormStartPosition.CenterParent;if (frm.ShowDialog() == DialogResult.OK){DataTable l_dtDetail = frm.m_dtWuTiao;foreach (DataRow dataRow in l_dtDetail.Rows){T_material_input_detail t_detail = new T_material_input_detail();t_detail.序号 = m_listDetail.Count + 1;t_detail.入库单号 = baseDataInput_入库单号.StringValue;t_detail.品名编码 = dataRow["编号"].ToString();t_detail.品名 = dataRow["名称"].ToString();t_detail.规格 = dataRow["规格"].ToString();t_detail.重量 = 10;t_detail.入库数量 = 1;t_detail.单位 = "根";t_detail.采购订单号 = dataRow["采购订单号"].ToString();t_detail.供应商编码 = dataRow["供应商"].ToString();t_detail.批次号 = dataRow["批次号"].ToString();t_detail.备注 = "";m_listDetail.Add(t_detail);}GC_Detail.RefreshDataSource();}}

3.3 引入窗体加载时,自动取数

以下代码也是由【代码工具】自动生成,直接拷贝到项目中。

 private void 原材料入库_引入_Load(object sender, EventArgs e){BaseMySQLSheet 钨条打标 = new BaseMySQLSheet(){SheetName = "钨条打标纪录",SQLSelect = "SELECT * ",SQLFrom = " FROM dl_mes.t_wutiao",SQLWhere = " WHERE (1=1) ",SQLCondition = "",SQLOrderBy = "",};钨条打标.Add("编号", "t_wutiao.编号", MySQL数据类型.MySQL_varchar);钨条打标.Add("名称", "t_wutiao.名称", MySQL数据类型.MySQL_varchar);钨条打标.Add("规格", "t_wutiao.规格", MySQL数据类型.MySQL_varchar);钨条打标.Add("重量", "t_wutiao.重量", MySQL数据类型.MySQL_varchar);钨条打标.Add("采购订单号", "t_wutiao.采购订单号", MySQL数据类型.MySQL_varchar);钨条打标.Add("供应商", "t_wutiao.供应商", MySQL数据类型.MySQL_varchar);钨条打标.Add("批次号", "t_wutiao.批次号", MySQL数据类型.MySQL_varchar);钨条打标.Add("编辑人", "t_wutiao.编辑人", MySQL数据类型.MySQL_varchar);钨条打标.Add("编辑日期", "t_wutiao.编辑日期", MySQL数据类型.MySQL_datetime);钨条打标.Add("每批数量", "t_wutiao.每批数量", MySQL数据类型.MySQL_int);baseGridControl1.MySQLSheet = 钨条打标;}

3.4 引入窗体,按钮事件

要支持“拖拉多选”,可以按批引入数据,复制以下代码:

 private void simpleButton_OK_Click(object sender, EventArgs e){int[] l_intSelect = baseGridControl1.GridView_Main.GetSelectedRows();if (l_intSelect.Length > 0){DataTable l_dtSelect = new DataTable();l_dtSelect = baseGridControl1.DtDataAll.Clone();//复制表结构,否则插入不进去数据foreach (int item in l_intSelect){DataRow dataRow = baseGridControl1.GridView_Main.GetDataRow(item);l_dtSelect.ImportRow(dataRow);}m_dtWuTiao = l_dtSelect;DialogResult = DialogResult.OK;}}

3.5 新增窗体,保存数据

//保存private void TBTN_Save_Click(object sender, EventArgs e){T_material_input_master t_Master = new T_material_input_master();t_Master.入库单号 = baseDataInput_入库单号.StringValue;t_Master.入库类型 = "钨条入库";t_Master.入库日期 = baseDataInput_制单日期.DateTimeValue;t_Master.总重量 = 100;t_Master.仓库 = baseDataInput_仓库.StringValue;t_Master.货位 = baseDataInput_货位.StringValue;t_Master.批次号 = baseDataInput_批次号.StringValue;t_Master.编辑人 = baseDataInput_制单人.StringValue;t_Master.编辑日期 = baseDataInput_制单日期.DateTimeValue;m_listMaster.Add(t_Master);//主表m_RetSaveDataMaster = ConvertJson.SerializeObject(m_listMaster);//明细m_RetSaveDataDetail = ConvertJson.SerializeObject(m_listDetail);DialogResult = DialogResult.OK;}//引入private void TBTN_Import_Click(object sender, EventArgs e){PCForm_Store_MaterialInput_Import frm = new PCForm_Store_MaterialInput_Import();frm.StartPosition = FormStartPosition.CenterParent;if (frm.ShowDialog() == DialogResult.OK){DataTable l_dtDetail = frm.m_dtWuTiao;foreach (DataRow dataRow in l_dtDetail.Rows){T_material_input_detail t_detail = new T_material_input_detail();t_detail.序号 = m_listDetail.Count + 1;t_detail.入库单号 = baseDataInput_入库单号.StringValue;t_detail.品名编码 = dataRow["编号"].ToString();t_detail.品名 = dataRow["名称"].ToString();t_detail.规格 = dataRow["规格"].ToString();t_detail.重量 = 10;t_detail.入库数量 = 1;t_detail.单位 = "根";t_detail.采购订单号 = dataRow["采购订单号"].ToString();t_detail.供应商编码 = dataRow["供应商"].ToString();t_detail.批次号 = dataRow["批次号"].ToString();t_detail.备注 = "";m_listDetail.Add(t_detail);}GC_Detail.RefreshDataSource();}}

3.6 窗体加载绑定数据

        private void PCForm_Store_MaterialOutput_Edit_Load(object sender, EventArgs e){baseDataInput_出库单号.StringValue = AutoCodeClient.GetAutoCode(编号规则.材料领用出库单号规则,"t_material_output_master", "出库单号");baseDataInput_制单人.StringValue = "花北城";baseDataInput_制单日期.DateTimeValue = DateTime.Now;GC_Detail.DataSource = m_listDetail;}

四、运行效果

以下演示仅仅我的测试程序,非正式项目,这界面不符合我的UI要求,发给客户会被驳回。
在这里插入图片描述
在这里插入图片描述

五、资源链接

相关内容

热门资讯

杭州西湖导游词 杭州西湖导游词500字范文  杭州西湖的导游词怎么写好呢?下面是由应届毕业生小编为大家带来的关于杭州...
平遥古城导游词 平遥古城导游词平遥古城,历史悠久。据载:西周时期周宣工为抵御北方游牧民族的侵扰,曾派兵北伐萨犹,并修...
云南民族村的导游词 云南民族村的导游词  作为一名乐于为游客排忧解难的导游,有必要进行细致的导游词准备工作,导游词是讲解...
京北第一草原的导游词 京北第一草原的导游词  导读:京北第一草原是距首都北京最近的天然草原,故名“京北第一草原”,因其美丽...
秦皇岛联峰山导游词 秦皇岛联峰山导游词3篇  作为一位杰出的导游,通常会被要求编写导游词,导游词具有极强的实用性,涉及的...
车溪民俗导游词 车溪民俗导游词4篇  作为一名优秀的导游,时常需要编写导游词,导游词由引言、主体和结语三部分构成。那...
石宝寨导游词 石宝寨导游词范文  坐落在重庆市忠县长江北岸,西距县城40公里,东距万县52公里。此处临江有一俯高十...
长江三峡大瀑布的导游词 长江三峡大瀑布的导游词  关于三峡大瀑布导游词篇一  大家好,一路辛苦了,欢迎来到水电之都——宜昌,...
汉中武侯祠导游词 汉中武侯祠导游词  作为一位兢兢业业的旅游从业人员,编写导游词是必不可少的,一篇完整的导游词,其结构...
泰州国清寺导游词 泰州国清寺导游词(精选6篇)  作为一无名无私奉献的导游,有必要进行细致的导游词准备工作,导游词的主...
天津独乐寺导游词参考 天津独乐寺导游词参考  独乐寺位于蓟县城武定北侧,它始建于天宝十一年,辽代重建。关于独乐寺的得名,这...
清远英西峰林走廊导游词 清远英西峰林走廊导游词  英西峰林走廊位于英德市区西南60多公里的九龙、明迳、岩背三镇一带,这里密集...
家乡南京导游词-导游词 家乡南京导游词-导游词范文  作为一名尽职尽责的导游,就不得不需要编写导游词,导游词一般是根据实际的...
古漪园的导游词 古漪园的导游词范文  各位游客,大家好,欢迎大家来到古漪园参观,我是金凤旅游公司的66号导游,我叫刘...
颐和园景点导游词 颐和园景点导游词(精选6篇)  作为一位杰出的导游,时常需要编写导游词,导游词是我们引导游览时使用的...
天水南郭寺导游词 天水南郭寺导游词  南郭寺位于甘肃天水市秦州区南两公里处龙王沟东侧的慧音山坳,被誉为“天水第一名刹”...
山东崂山东麓华严寺导游词 山东崂山东麓华严寺导游词  作为一位兢兢业业的旅游从业人员,通常需要准备好一份导游词,导游词具有形象...
西安古城墙简单导游词 西安古城墙简单导游词  西安明城墙位于陕西省西安市中心区,墙高12米,顶宽12—14米,底宽15—1...
介绍贵州百里杜鹃的导游词 关于介绍贵州百里杜鹃的导游词范文(精选7篇)  作为一名专门为游客提供帮助的导游,通常需要用到导游词...
太原汾河公园导游词资料 太原汾河公园导游词资料  在公园两岸带状绿化平台上分布着4个主题广场、6个自然景区和7个观光景点。沿...