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

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

    }
}

相关文章:

  • 案例:使用网络命名空间模拟多主机并通过网桥访问外部网络
  • CDN基本原理剖析与代码实现测试
  • 【语法】C++的vector
  • 芋道uniapp用户端
  • scNET:整合scRNA-seq和PPI用于学习基因和细胞的embedding
  • ecovadis评级的认可性
  • SpringBoot 开发入门—Springboot基础框架汇总
  • CI/CD(五) 安装helm
  • 【秣厉科技】LabVIEW工具包——OpenCV 教程(12):机器学习
  • 【一起学Rust | Tauri2.0框架】深入浅出 Tauri 2.0 应用调试:从新手到专家的蜕变
  • 企业建设——访问控制模型
  • python如何随机选取n个不同的数字
  • ESP32-C3物联网方案,智能设备创新升级,无线交互控制通信应用
  • Off-Road-Freespace-Detection配置pytorch2.0.0
  • 数据库概述
  • 合宙780E开发学习-Lua语法速查
  • vector和list区别
  • 个股场外期权参与条件有哪些要求?
  • Android 系统进程启动Activity方法说明
  • 一步部署FTP虚拟用户
  • 吕国范任河南省人民政府副省长
  • 又一名90后干部被查,已有多人倒在乡镇领导岗位上
  • 第六次“太空会师”,神舟二十号3名航天员顺利进驻中国空间站
  • 新华视点丨广西抗旱一线调查
  • 苗旋已任民航局空管局局长、党委副书记
  • 湃书单|澎湃新闻编辑们在读的19本书:在工作中迷失