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要求,发给客户会被驳回。
在这里插入图片描述
在这里插入图片描述

五、资源链接

相关内容

热门资讯

中考数学复习顺序(优选3篇) 中考数学复习顺序 篇一在备战中考数学复习时,确定一个合理的复习顺序对于学生来说非常重要。一个好的复习...
烦恼的暑假作文500字初二(... 烦恼的暑假作文500字初二 篇一:无聊的暑假生活暑假,对于许多初二的学生来说,是一个期待已久的假期。...
中考作文素材【精选6篇】 中考作文素材 篇一标题:青少年沉迷网络游戏随着科技的发展和互联网的普及,网络游戏已经成为了许多青少年...
中考数学知识点【优质3篇】 中考数学知识点 篇一在中考数学中,有一些重要的知识点需要我们掌握和理解。下面我将为大家介绍几个常见的...
惟独喜欢根之力中考作文(最新... 惟独喜欢根之力中考作文 篇一根之力,意味着源源不断的力量。它能够给予我们无穷的动力,让我们在困难面前...
栀子花开作文 栀子花开作文栀子花开六月的季节,栀子花又开了。阳光撒满了整个校园,支离破碎的挂在墙头树枝上,班驳得让...
中考数学知识点统计初步【优质... 中考数学知识点统计初步 篇一数学是中考的重要科目之一,对于学生来说,掌握好数学知识点是非常关键的。为...
历年淮南中考满分范文(实用6... 历年淮南中考满分范文 篇一如何培养良好的学习习惯学习习惯是一个人学习能力的基础,它决定了一个人在学习...
广州中考语文题型及对应分值【... 广州中考语文题型及对应分值 篇一广州中考语文题型及对应分值随着广州中考的临近,对于考生来说,了解各科...
中考语文一词多义整理【经典5... 中考语文一词多义整理 篇一在中考语文考试中,经常会涉及到一词多义的题目。一词多义是指一个词语有多种不...
中考半命题作文600字【经典... 中考半命题作文600字 篇一:我的梦想梦想是每个人内心深处最美好的愿望,它是我们前进的动力,给了我们...
广东中考最好的奖赏满分作文【... 广东中考最好的奖赏满分作文 篇一广东中考最好的奖赏满分作文在广东中考中获得满分是每个考生的梦想,因为...
吉林市中考语文满分作文赏析:... 吉林市中考语文满分作文赏析:春嫩不惧寒 篇一春嫩不惧寒春天是一个充满希望和生机的季节,它给人们带来了...
中考作文解析及范文读书【优秀... 中考作文解析及范文读书 篇一中考作文解析是中考前和中考后的重要环节之一。在考前,解析过去几年的中考作...
中考优秀作文画里宏村【精简3... 中考优秀作文画里宏村 篇一宏村,古朴宁静的江南水乡,又被誉为“画里的宏村”。宏村位于安徽省黄山市歙县...
安徽中考优秀作文:你是我最-... 安徽中考优秀作文:你是我最--的人 篇一我曾经遇到过很多重要的人,但是在我心中,你是我最重要的人。每...
中考语文阅读答题技巧【精彩3... 中考语文阅读答题技巧 篇一在中考语文阅读中,答题技巧的掌握对于提高阅读理解的准确性和速度至关重要。以...
中考优秀作文满分范文初中(实... 中考优秀作文满分范文初中 篇一:《我眼中的英雄》英雄,是每个人心中的梦想,也是我们学习的榜样。在我眼...
中考作文:山屋里的微感动(精... 中考作文:山屋里的微感动 篇一山屋里的微感动一年一度的寒假,我和父母来到了位于山区的一座山屋度假村。...
中考作文:从现在出发 中考作文:从现在出发  在平平淡淡的学习、工作、生活中,大家都接触过作文吧,作文是人们把记忆中所存储...