E-Label二次开发与项目集成 |
更新时间:2021-02-09 11:10:59 阅读次数 150571 |
E-Label采用模块化设计,可以很方便的进行二次开发。在最小的改动情况下将条码标签打印模块集成管理系统中(仅限于使用.NET开发的系统)。二次开发主要分为以下二个步骤。 一. 模板设计 1. 运行E-label.exe创建一个标签模板,在标签模板设计器上添加中添加如下图所示内容。
2. 双击条码起始值,设置条码数据源(条码结束值同样采用相同的设置方式),设置完成后保存模板文件(123.yncx),这样一个标签模板就设计完成了。
3. 如果需要在程序运行过程中动态的设置条码或是文本的值,需要将数据源类型设置为"文本"。 二. 创建二次开发项目 1.创建一个二次开发项目(可参照二次开发环境搭建),并设计如下较所示窗体,将123.yncx复制到Bin\Debug目录下 。 2. 在Load事件中加载设置的模板文件并初始化测试数据及打印机和相应button的事件
DataTable dataTable = new DataTable(); private void Form1_Load(object sender, EventArgs e) { //加载模板文件 designer1.Open(Application.StartupPath + "\\123.yncx"); designer1.CanSelectItem = true;
//手动产生数据源 dataTable.Columns.Add("StartBarcode"); dataTable.Columns.Add("EndBarcode"); DataRow dataRow = dataTable.NewRow(); dataRow[0] = "S0011"; dataRow[1] = "E0011"; dataTable.Rows.Add(dataRow); dataRow = dataTable.NewRow(); dataRow[0] = "S0012"; dataRow[1] = "E0012"; dataTable.Rows.Add(dataRow); dataRow = dataTable.NewRow(); dataRow[0] = "S0013"; dataRow[1] = "E0013"; dataTable.Rows.Add(dataRow); dataGridView1.DataSource = dataTable; //初始化打印机列表 for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++) { cbPrintName.Items.Add(PrinterSettings.InstalledPrinters[i]); } cbPrintName.SelectedIndex = 0; }
private void btnPrintPreview_Click(object sender, EventArgs e) { designer1.DataSource = dataTable; designer1.LabelConfigInstance.PrinterName = cbPrintName.SelectedItem.ToString(); designer1.IsCustomDataSource = true; //指定打印功能--如果不指定则预览打印功能无法使用 //designer1.OnPrintViewPrint += delegate //{ // btnPrint_Click(null, null); //}; designer1.PrintView(); }
private void btnPrint_Click(object sender, EventArgs e) { designer1.DataSource = dataTable;//指定数据源 //指定打印机 designer1.LabelConfigInstance.PrinterName = cbPrintName.SelectedItem.ToString(); designer1.IsCustomDataSource = true;//是否用指令的数据源打印 //是否使用打印机的驱动进行打印(默认为false,如果打印有问题可以设置true) designer1.UseDriverPrintLabel = false; designer1.PrintPage(2);//打印2张标签 }
private void btnGet_Click(object sender, EventArgs e) { txtValue.Text = designer1.GetObjectValue(txtKey.Text); }
private void btnSet_Click(object sender, EventArgs e) { //动态设置值的对像必须是文本 designer1.SetObjectValue(txtKey.Text, txtValue.Text); designer1.Refresh();
} 4. 运行检查结果【点击下载完整Demo项目】
|