当前位置: 首页 > article >正文

C# 打印模板设计-ACTIVEX打印控件-多模板加载

一、启动软件 

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Data;

namespace Print
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {

            //使用模板前必须开启模板功能|让模板初始化
            PrintThemp.EditTemplateInfo.LoadEdit = true;
            //单套打印
            PrintThemp.EditTemplateInfo.IsMuch = false;

            //给模板数据源|EditTemplateDataSource:单套或EditTemplateDSCollection:多套

            #region DataTable
            DataTable contract = new DataTable("Contract");
            contract.Columns.Add("buyEnterpriseZh", typeof(string));
            contract.Columns.Add("buyEnterpriseEn", typeof(string));
            contract.Columns.Add("contractNumEn", typeof(string));
            contract.Columns.Add("contractNum", typeof(string));
            contract.Columns.Add("sellEnterpriseZh", typeof(string));
            contract.Columns.Add("sellEnterpriseEn", typeof(string));
            contract.Columns.Add("originArea", typeof(string));
            contract.Columns.Add("originAreaEn", typeof(string));
            contract.Columns.Add("packEn", typeof(string));
            contract.Columns.Add("pack", typeof(string));
            contract.Columns.Add("shipDate", typeof(string));
            contract.Columns.Add("shipArea", typeof(string));
            contract.Columns.Add("destination", typeof(string));
            contract.Columns.Add("tradeLanguage", typeof(string));
            contract.Columns.Add("payment", typeof(string));
            contract.Columns.Add("contractDate", typeof(string));
            contract.Columns.Add("massRequrie", typeof(string));
            contract.Columns.Add("buyer", typeof(string));
            contract.Columns.Add("sheller", typeof(string));
            DataRow row = contract.NewRow();
            row["buyEnterpriseZh"] = "江苏南京红心集团";
            row["buyEnterpriseEn"] = "JianSuNanJingHongXinJiTuan";
            row["contractNumEn"] = "HTH29384848408504890";
            row["contractNum"] = "HTH29384848408504890";
            row["sellEnterpriseZh"] = "上海黄浦高科";
            row["sellEnterpriseEn"] = "ShangHaiHuangPuGaoKe";
            row["originArea"] = "江苏南京";
            row["originAreaEn"] = "JiangSuNanJing";
            row["packEn"] = "JingBao";
            row["pack"] = "精包";
            row["shipDate"] = "2010-7-1 10:55:50";
            row["shipArea"] = "南京路口机场";
            row["destination"] = "上海虹桥机场";
            row["tradeLanguage"] = "工厂交货";
            row["payment"] = "支票";
            row["contractDate"] = "2010-7-1 10:55:50";
            row["massRequrie"] = "GB/T23434345";
            row["buyer"] = "江苏南京红心集团";
            row["sheller"] = "上海黄浦高科";
            contract.Rows.Add(row);
            #endregion

            DataSet ds = new DataSet();
            ds.Tables.Add(contract);
            PrintThemp.EditTemplateDataSource odds = new PrintThemp.EditTemplateDataSource(ds);

            PrintThemp.EditTemplateInfo.EditDataSource = odds;











            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new PrintThemp.FrmEditMainPanel());
        }
    }
}

二、设计界面

using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace PrintThemp
{
    /// <summary>
    /// 模板面板的主面板
    /// </summary>
    public partial class FrmEditMainPanel : Form
    {
        #region 窗体变量
        /// <summary>
        /// 每个可编辑模板都对应一个编辑模板实例对象
        /// </summary>
        FrmEditfrom editfrom;
        /// <summary>
        /// 控制非模式窗体的引用计数|当前只记录两个窗体
        /// </summary>
        Form[] FrmRefer = new Form[3];
        #endregion
        /// <summary>
        /// 默认构造函数|没有初始化任何对象
        /// </summary>
        public FrmEditMainPanel()
        {
            InitializeComponent();
            #region 验证用户是否开启模板开关|实用模板时必须开启模板开关加载全局模板数据
            if (!EditTemplateInfo.LoadEdit)
            {
                this.Close();
            }
            #endregion
            EditEventReferences.FacilityEditEvent += new EditEventReferences.FacilityEdit(EditEventReferences_FacilityEditEvent);
        }
        /// <summary>
        /// 其他菜单中编辑模板命令
        /// </summary>
        void EditEventReferences_FacilityEditEvent(string editname)
        {
            EditItem.SelectedIndex = EditItem.FindString(editname);
        }
        /// <summary>
        /// 窗体加载时|加载一些模板信息列表
        /// </summary>
        private void FrmPanel_Load(object sender, EventArgs e)
        {
            //设置选择模板下拉列表项
            for (int i = 0; i < EditTemplateInfo.ReturnEditItemName().Count; i++)
            {
                EditItem.Items.Add(EditTemplateInfo.ReturnEditItemName()[i].ToString());
            }
            EditItem.SelectedIndex = 0;
            //设置控件列表面板
            Controllist_Click(null, null);
            DockLeft();
        }
        /// <summary>
        /// 鹰眼
        /// </summary>
        private void minmap_Click(object sender, EventArgs e)
        {
            if (FrmRefer[0] == null)
            {
                FrmEagleLook look = new FrmEagleLook(EditItem.SelectedItem.ToString());
                look.FormClosing += new FormClosingEventHandler(look_FormClosing);
                look.Show();
                FrmRefer[0] = look;//增加引用计数
            }
            else
            {
                FrmRefer[0].Activate();
            }
        }
        /// <summary>
        /// 关闭非模式窗体事件|减少引用计数
        /// </summary>
        void look_FormClosing(object sender, FormClosingEventArgs e)
        {
            FrmRefer[0] = null;
        }
        /// <summary>
        /// 编辑模板
        /// </summary>
        private void EditItem_SelectedIndexChanged(object sender, EventArgs e)
        {
            editfrom = new FrmEditfrom(EditItem.SelectedItem.ToString());
            editfrom.Text = EditItem.SelectedItem.ToString();
            editfrom.ControlMouse += new FrmEditfrom.ActiveMouse(editfrom_ControlMouse);
            editfrom.ActiveEditMouse += new FrmEditfrom.EditMouse(editfrom_ActiveEditMouse);
            editfrom.Show(DP_dock);
        }
        /// <summary>
        /// 鼠标的位置
        /// </summary>
        void editfrom_ActiveEditMouse(MouseEventArgs e)
        {
            Tool_pointx.Text = e.X.ToString();
            Tool_pointy.Text = e.Y.ToString();
        }
        /// <summary>
        /// 移动控件时在主窗体中体现
        /// </summary>
        void editfrom_ControlMouse(string editname, object sender, Point po)
        {
            Tool_editname.Text = editname;
            Tool_objectname.Text = ((sender) as Control).Tag.ToString();
            Tool_x.Text = ((sender) as Control).Location.X.ToString();
            Tool_y.Text = ((sender) as Control).Location.Y.ToString();
        }
        /// <summary>
        /// 编辑模板控件列表
        /// </summary>
        private void Controllist_Click(object sender, EventArgs e)
        {
            if (FrmRefer[1] == null)
            {
                FrmEditControlList control = new FrmEditControlList(EditItem.SelectedItem.ToString());
                control.ProcessParChange += new EventHandler(control_ProcessParChange);
                control.FormClosing += new FormClosingEventHandler(control_FormClosing);
                control.Text = EditItem.SelectedItem.ToString() + "当前控件模板列表";
                control.Show(editfrom.DockPanel, DockState.DockBottomAutoHide);
                control.DockTo(DP_dock, DockStyle.Bottom);
                FrmRefer[1] = control;
            }
            else
            {
                FrmRefer[1].Activate();
            }
        }
        //控件列表窗体应用模板属性时发生的事件
        void control_ProcessParChange(object sender, EventArgs e)
        {
            Tool_par.Visible = true;
            for (int i = 0; i < 100; i++)
            {
                for (int j = 0; j < 100000; j++)
                {

                }
                Tool_par.Value = i;
            }
            Tool_par.Value = 0;
            Tool_par.Visible = false;

        }
        /// <summary>
        /// 关闭非模式窗体事件|减少引用计数
        /// </summary>
        void control_FormClosing(object sender, FormClosingEventArgs e)
        {
            FrmRefer[1] = null;
        }
        /// <summary>
        /// 退出应用程序
        /// </summary>
        private void FrmPanel_FormClosing(object sender, FormClosingEventArgs e)
        {
            DP_dock.SaveAsXml(Application.StartupPath + "\\DockPanel.config");
            //保存状态
            Application.ExitThread();//退出所有消息链,并关闭当前线程中的所有窗口
        }
        /// <summary>
        /// 设置当前窗体对象获取焦点方便用户滚动模板
        /// </summary>
        private void DP_dock_Click(object sender, EventArgs e)
        {
            this.Focus();
        }
        /// <summary>
        /// 左面板
        /// </summary>
        private void DockLeft()
        {
            if (FrmRefer[2] == null)
            {
                FrmEditLeftList left = new FrmEditLeftList();
                left.FormClosed += new FormClosedEventHandler(left_FormClosed);
                left.Show(DP_dock, DockState.DockLeft);
                FrmRefer[2] = left;
            }
            else
            {
                FrmRefer[2].Activate();
            }
        }

        void left_FormClosed(object sender, FormClosedEventArgs e)
        {
            FrmRefer[2] = null;
        }

        private void Tool_lefteditlist_Click(object sender, EventArgs e)
        {
            DockLeft();
        }
        /// <summary>
        /// 打印预览模板
        /// </summary>
        private void Tool_printview_Click(object sender, EventArgs e)
        {
            EditEventReferences.ActivePrintEditEvent();
        }
        //直接打印
        private void Tool_print_Click(object sender, EventArgs e)
        {
            EditEventReferences.ActivePrintDialogEvent();
        }
        //添加模板
        private void Tool_addedit_Click(object sender, EventArgs e)
        {
            new FrmEditAdd().ShowDialog();
        }

        #region 工具栏事件
        /// <summary>
        /// 复制控件
        /// </summary>
        private void Tool_copycontrol_Click(object sender, EventArgs e)
        {
            EditMainToolEventReferences.ActionMainCopyControlEvent();//触发复制控件事件,让编辑模板拷贝控件
        }
        /// <summary>
        /// 粘贴控件
        /// </summary>
        private void Tool_zt_Click(object sender, EventArgs e)
        {
            EditMainToolEventReferences.ActionMainParsteControlEvent();//触发粘贴控件事件,让编辑模板粘贴控件
        }
        /// <summary>
        /// 剪切控件
        /// </summary>
        private void Tool_jq_Click(object sender, EventArgs e)
        {
            EditMainToolEventReferences.ActionMainCutControlEvent();//触发剪切控件事件,让编辑模板剪切控件
        }
        //放大
        private void Tool_fd_Click(object sender, EventArgs e)
        {
            EditMainToolEventReferences.ActionMainZoomMaxControlEvent();
        }
        //缩小
        private void Tool_sx_Click(object sender, EventArgs e)
        {
            EditMainToolEventReferences.ActionMainZoomMinControlEvent();

        }
        //还原
        private void Tool_clearzoom_Click(object sender, EventArgs e)
        {

        }
        #endregion

    }
}


http://www.kler.cn/a/612415.html

相关文章:

  • 卷积神经网络 - 关于LeNet-5的若干问题的解释
  • 【新人系列】Golang 入门(九):defer 详解 - 下
  • FPGA_YOLO学习(一)
  • 【HTML】KaTeX 常用公式字符
  • 问题分析4
  • 数据结构与算法:双向广搜
  • 第六届 蓝桥杯 嵌入式 省赛
  • ​​SenseGlove与Aeon Robotics携手推出HEART项目,助力机器人培训迈向新台阶
  • uniapp自定义目录tree(支持多选、单选、父子联动、全选、取消、目录树过滤、异步懒加载节点、v-model)vue版本
  • 免费使用!OpenAI 全量开放 GPT-4o 图像生成能力!
  • QT记事本
  • RISC-V AIA学习3---APLIC 第二部分(APLIC 中断域的内存映射控制区域)
  • 【软测】AI助力测试用例
  • 快速入手-基于Django-rest-framework的ModelSerializer模型序列化器(三)
  • 华为、浪潮、华三链路聚合概述
  • python使用cookie、session、selenium实现网站登录(爬取信息)
  • 用 Python 也能做微服务?
  • Vue+SpringBoot:整合JasperReport作PDF报表,并解决中文不显示问题
  • OPENCV数字识别(非手写数字/采用模板匹配)
  • jEasyUI 创建自定义视图