简单单据打印和列表打印开发

单据打印开发
在*UIModelActionExtend.cs里加代码
        private void PrintClick_Extend(object sender, UIActionEventArgs e)
  {
            IExportSettings settings = ExportServiceFactory.GetInstance().CreateExportSettingsObject();
            settings.PrintTemplateCatalogType = "UFIDA.U9.CBO.LW.BLWorkerInf0914";
            settings.UserDataCallBack = new DataCallBackHandle(this.GetPrintData);
            e.Tag = settings;
            //UFIDA.U9.UI.Commands.CommandFactory.DoCommand("OnPrint", this, sender, e);

   //调用模版定义的默认实现方法.如需扩展,请直接在此编程.   
this.PrintClick_DefaultImpl(sender,e);        
        }
然后扩展事件,选择打印模板参照ID
        public void GetPrintData(object sender, DataCallBackEventArgs args)
        {
            DataSet returnDS = null;
            switch (args.PrintTemplateID)
            {
                //打印参照ID
                case "2be726e2-1285-4a8f-a278-95880a4a2b0c":
                    {
                        returnDS = this.GetDataPrint();
                    }
                    break;
                default:
                    {
                        returnDS = this.GetDataPrint();
                    }
                    break;
            }
            args.ReturnData = returnDS;
        }
直接从UIModel里取数据,不用另select
private DataSet GetDataPrint()
        {
            DataSet returnDataSet = new DataSet();
            DataTable tableTest = new DataTable();
            tableTest.Columns.Add("BLWorkerInfo0914_WID");
            tableTest.Columns.Add("BLWorkerInfo0914_WName");
            tableTest.Columns.Add("BLWorkerInfo0914_Telephoto");
            tableTest.Columns.Add("BLWorkerInfo0914_Org_Name");
            tableTest.Columns.Add("BLWorkerInfo0914_InTime");
            tableTest.Columns.Add("BLWorkerInfo0914_OutTime");
            //BLWorkerInfo0914Record header = this.CurrentModel.BLWorkerInfo0914.FocusedRecord;
            foreach (BLWorkerInfo0914Record header in this.CurrentModel.BLWorkerInfo0914.Records)
            {
                DataRow row = tableTest.NewRow();
                row["BLWorkerInfo0914_WID"] = header.WID;
                row["BLWorkerInfo0914_WName"] = header.WName;
                row["BLWorkerInfo0914_Telephoto"] = header.Telephoto;
                row["BLWorkerInfo0914_Org_Name"] = header.Org_Name;
                row["BLWorkerInfo0914_InTime"] = header.InTime;
                row["BLWorkerInfo0914_OutTime"] = header.OutTime;
                tableTest.Rows.Add(row);
            }
            returnDataSet.Tables.Add(tableTest);
            return returnDataSet;
        }
之前必须在UIForm里启用打印事件

列表打印基本就和单据打印一样,只是取数据时,另外select出来,而不是直接在UIModel里取
private DataSet GetDataPrint()
        {
            #region 获取选择行id
            IList<IUIRecord> recs = null;
            recs = UIRuntimeHelper.Instance.GetSelectRecordFromCache(this.CurrentModel.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(record["ID"]);
            }
            #endregion
            DataSet returnDs = new DataSet();
            StringBuilder sb = new StringBuilder(200);
            //在UBF里找到实体后,切换视图,可以得到OQL查询代码,一段一段摘下来
            sb.Append(" select BLWorkerInfo0914.WID as BLWorkerInfo0914_WID, ");
            sb.Append("BLWorkerInfo0914.WName as BLWorkerInfo0914_WName, ");
            sb.Append("BLWorkerInfo0914.Telephoto as BLWorkerInfo0914_Telephoto, ");
            sb.Append("BLWorkerInfo0914.InTime as BLWorkerInfo0914_InTime, ");
            sb.Append("BLWorkerInfo0914.OutTime as BLWorkerInfo0914_OutTime, ");
            sb.Append("BLWorkerInfo0914.Org.Name as BLWorkerInfo0914_Org_Name ");
            sb.Append("from  UFIDA::U9::CBO::LW::BLWorkerInfo0914_MLProject::BLWorkerInfo0914 as BLWorkerInfo0914

");
            sb.Append("where BLWorkerInfo0914.ID in ( " + IDS + " ) ");

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值