插件打印

在列表的工具栏上添加打印按钮,实现打印

代码如下:

一,

using System;
using System.Collections.Generic;
using System.Text;
using UFSoft.UBF.UI.Custom;
using UFSoft.UBF.UI.IView;
using UFSoft.UBF.UI.ControlModel;
using UFSoft.UBF.UI.WebControlAdapter;
using System.Collections.Specialized;
using UFSoft.UBF.UI.MD.Runtime;
using UFSoft.UBF.UI.WebControls.Association;
using UFSoft.UBF.UI.Controls;
using UFSoft.UBF.UI.WebControls.ClientCallBack;
using UFSoft.UBF.UI.WebControls.Association.Adapter;

using UFSoft.UBF.UI.WebControls;
using System.Data;
using UFSoft.UBF.UI.ActionProcess;
using UFSoft.UBF.ExportService;
using System.Web.UI.WebControls.WebParts;

using UFSoft.UBF.Business;
using UFIDA.U9.SM.KENT.JR.ShipBListUIExpand;
using UFSoft.UBF.UI.Engine.Builder;
using UFIDA.U9.MFG.MO.BL.hduzh.BLPackageListBListUIModel;

namespace UFIDA.U9.MO.BL.LW.BLPackageListBListPrint
{
    public class BLPackageListBListPrint : UFSoft.UBF.UI.Custom.ExtendedPartBase
    {
        private IPart uiPart;
        BLPackageListBListUIFormWebPart BLPackageListBListWebPart;
        public override void AfterInit(IPart Part, EventArgs e)
        {
            base.AfterInit(Part, e);
            uiPart = Part;
            BLPackageListBListWebPart = (BLPackageListBListUIFormWebPart)Part;
            //功能区加按钮
            //IUFButton btnPrint = new UFWebButtonAdapter();
            //btnPrint.Text = "打印";
            //btnPrint.ID = "btnBLPackageListPrint";
            //btnPrint.AutoPostBack = true;
            //IUFCard card = (IUFCard)Part.GetUFControlByName(Part.TopLevelContainer, "Card0");
            //card.Controls.Add(btnPrint);
            //CommonFunction.Layout(card, btnPrint, 2, 0);
            //btnPrint.Click += new EventHandler(btnPrint_Click);

            //工具栏加按钮
            IUFButton btnBLPackageListBListPrint = new UFWebButtonAdapter();
            btnBLPackageListBListPrint.ID = "btnPackageListBListPrint";
            btnBLPackageListBListPrint.AutoPostBack = true;
            IUFToolbar _Toolbar = (IUFToolbar)BLPackageListBListWebPart.FindControl("Toolbar1");
            btnBLPackageListBListPrint = UIControlBuilder.BuilderToolbarButton(_Toolbar, "True", "btnPackageListBListPrint", "True", "True", 45, 28, "5", "", true, false, "36BA88E0-FC28-402e-B9BA-3745A6771687", "36BA88E0-FC28-402e-B9BA-3745A6771687", "9307E981-85AA-4f19-ADB7-340D159F4A01");
            UIControlBuilder.SetButtonAccessKey(btnBLPackageListBListPrint);
            btnBLPackageListBListPrint.UIModel = BLPackageListBListWebPart.Model.ElementID;
            btnBLPackageListBListPrint.Action = "";
            btnBLPackageListBListPrint.Text = "打印";
            ((UFWebToolbarAdapter)_Toolbar).Items.Add(btnBLPackageListBListPrint as System.Web.UI.WebControls.WebControl);
            btnBLPackageListBListPrint.Click += new EventHandler(btnPrint_Click);
        }
        /// <summary>
        /// 打印事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void btnPrint_Click(object sender, EventArgs e)
        {
            //数据收集,绑定,否则会没打印记录
            BLPackageListBListWebPart.DataCollect();
            BLPackageListBListWebPart.IsDataBinding = true;
            BLPackageListBListWebPart.IsConsuming = false;

            IExportSettings settings = ExportServiceFactory.GetInstance().CreateExportSettingsObject();

            //打印元数据管理的实体KEY,该目录下有多个打印模板
            settings.PrintTemplateCatalogType = "UFIDA.U9.MFG.MO.BL.LW.BLPackageListPrint";
            settings.UserDataCallBack = new DataCallBackHandle(this.GetPrintData);
            UIActionEventArgs ex = new UIActionEventArgs();
            ex.Tag = settings;
            UFIDA.U9.UI.Commands.CommandFactory.DoCommand("OnPrint", (BaseAction)uiPart.Action, sender, ex);
        }
        /// <summary>
        /// 打印模板
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void GetPrintData(object sender, DataCallBackEventArgs args)
        {
            DataSet ds = null;
            switch (args.PrintTemplateID)
            {
                case "83fc203c-e348-4585-9a44-ab7c667de496":
                    {
                        ds = this.GetDataPrint();
                    }
                    break;
                default:
                    ds = this.GetDataPrint();
                    break;
            }
            args.ReturnData = ds;
        }
        private DataSet GetDataPrint()
        {
            #region 获取选择行id

            IList<IUIRecord> recs = null;
            recs = UIRuntimeHelper.Instance.GetSelectRecordFromCache(this.uiPart.Model.Views[0]);
            if (recs.Count == 0 || recs == null)
            {
                throw new Exception("没有选中记录");
                return null;
            }
            //id串
            StringBuilder IDS = new StringBuilder(200);
            IDS.Append(" 0 ");

            foreach (IUIRecord record in recs)
            {
                IDS.Append(",");
                IDS.Append(Convert.ToInt64(record["MainID"]) + 1);
            }
            #endregion

            DataSet returnDs = new DataSet();
            StringBuilder sb = new StringBuilder(200);
            //在UBF里找到实体后,切换视图,可以得到OQL查询代码,一段一段摘下来
            sb.Append(" select BLPackageListLine.DocLineNo as BLPackageListLine_DocLineNo ");
            sb.Append(", BLPackageListLine.ItemMaster.Name as BLPackageListLine_ItemMaster_Name ");
            sb.Append(", BLPackageListLine.Type as BLPackageListLine_Type ");
            sb.Append(", BLPackageListLine.Spec as BLPackageListLine_Spec ");
            sb.Append(", BLPackageListLine.Color as BLPackageListLine_Color ");
            sb.Append(", BLPackageListLine.Uom.Name as BLPackageListLine_Uom_Name ");
            sb.Append(", BLPackageListLine.OrderQty as BLPackageListLine_OrderQty ");
            sb.Append(", BLPackageListLine.PackQty as BLPackageListLine_PackQty ");
            sb.Append(", BLPackageListLine.Packs as BLPackageListLine_Packs ");
            sb.Append(", BLPackageListLine.ItemDesc.Length as BLPackageListLine_ItemDesc_Length ");
            sb.Append(", BLPackageListLine.ItemDesc.Width as BLPackageListLine_ItemDesc_Width ");
            sb.Append(", BLPackageListLine.ItemDesc.Height as BLPackageListLine_ItemDesc_Height ");
            sb.Append(", BLPackageListLine.ItemDesc.PackVolume as BLPackageListLine_ItemDesc_PackVolume ");
            sb.Append(", BLPackageListLine.ItemDesc.TotalVolume as BLPackageListLine_ItemDesc_TotalVolume ");
            sb.Append(", BLPackageListLine.ItemDesc.PackNetWeight as BLPackageListLine_ItemDesc_PackNetWeight ");
            sb.Append(", BLPackageListLine.ItemDesc.TotalNetWeight as BLPackageListLine_ItemDesc_TotalNetWeight ");
            sb.Append(", BLPackageListLine.ItemDesc.PackGrossWeight as BLPackageListLine_ItemDesc_PackGrossWeight ");
            sb.Append(", BLPackageListLine.ItemDesc.TotalGrossWeight as BLPackageListLine_ItemDesc_TotalGrossWeight ");
            sb.Append(", BLPackageListLine.ItemDesc.ProductType as BLPackageListLine_ItemDesc_ProductType ");
            sb.Append(", BLPackageListLine.ItemDesc.PackDesc as BLPackageListLine_ItemDesc_PackDesc ");
            sb.Append("  from  UFIDA::U9::MO::BL::hduzh::BLPackageListBE::BLPackageListLine as BLPackageListLine ");
            sb.Append("  where BLPackageListLine.ID in (" + IDS + " ) ");

            UFSoft.UBF.Business.EntityViewQuery query = new EntityViewQuery();
            returnDs = query.ExecuteDataSet(query.CreateQuery(sb.ToString()), null);
            return returnDs;
        }
    }
}

二,添加的引用截图如附件

三,配置webpartextend.webconfig文件

<ExtendedPart parentPartFullName="UFIDA.U9.MFG.MO.BL.hduzh.BLPackageListBListUIModel.BLPackageListBListUIFormWebPart"
extendedPartFullName="UFIDA.U9.MO.BL.LW.BLPackageListBListPrint.BLPackageListBListPrint"
extendedPartAssemblyName="UFIDA.U9.MO.BL.LW.BLPackageListBListPrint">
</ExtendedPart>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值