易标签软件(E-Label)采用模块化设计,可以很方便的进行二次开发。在最小的改动情况下将条码标签打印模块集成管理系统中(仅限于使用.NET开发的系统)。二次开发主要分为以下二个步骤。
1. 运行 E-label.exe 新建一个标签模板,在标签模板设计器中添加如下图所示内容:
2. 双击条码起始值,设置条码数据源(条码结束值同样采用相同的设置方式),设置完成后保存模板文件(123.yix),这样一个标签模板就设计完成了。
3. 如果需要在程序运行过程中动态的设置条码或是文本的值,需要将数据源类型设置为”文本”。
1. 下载E-Label 程序包【点击下载】并解压。
2. 新建一个测试项目Demo
3. 在Demo项目根目录创建一个Lib的目录,将yncTechControls.dll复制这个文件夹中
4. 打开工具箱,添加新的选项卡[E-Label]。
5. 右击E-Label选项卡并选择“选择项(I)…”打开“选择工具箱项”,选择第(3)步Lib中的dll。
6. 完成操作后,Designer将出现在E-Label中。
7. 拖动Designer到窗体上,到此二次开发环境搭建完成。
1.创建一个二次开发项目(可参照二次开发环境搭建),并设计如下较所示窗体,将123.yix复制到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();
}
3. 运行检查结果