打印/输出按钮添加代码
// 输出
private void OutputClick_Extend(object sender, UIActionEventArgs e)
{
if (Print(sender, e))
{
//调用模版定义的默认实现方法.如需扩展,请直接在此编程.
this.OutputClick_DefaultImpl(sender, e);
}
}
// 打印
private void PrintClick_Extend(object sender, UIActionEventArgs e)
{
if (Print(sender, e))
{
//调用模版定义的默认实现方法.如需扩展,请直接在此编程.
this.PrintClick_DefaultImpl(sender, e);
}
}
// 打印设置
private IExportSettings settings = null;
private bool Print(object sender, UIActionEventArgs e)
{
this.CurrentModel.ClearErrorMessage();
POFeeCheckHeadRecord focusedRecord = this.CurrentModel.POFeeCheckHead.FocusedRecord;
if (focusedRecord == null || focusedRecord.ID <= 0) return false;
settings = ExportServiceFactory.GetInstance().CreateExportSettingsObject();
settings.PrintTemplateCatalogType = "Cust.POFeeCheckHead"; //打印模板类型 实体识别ID
settings.UserDataCallBack = new DataCallBackHandle(GetPrintData);
settings.AfterLoadPrintTemplate = new PrintTemplateLoadedHandle(AfterLoadPrintTemplate);
e.Tag = settings;
return true;
}
// 打印输出更改文件名
private void AfterLoadPrintTemplate(object sender, PrintTemplateLoadedArgs args)
{
if (settings == null) return;
POFeeCheckHeadRecord focusedRecord = this.CurrentModel.POFeeCheckHead.FocusedRecord;
if (focusedRecord == null || focusedRecord.ID <= 0) return;
DataParamList dataParams = new DataParamList
{
DataParamFactory.CreateInput("ID", focusedRecord.ID, System.Data.DbType.Int64),
DataParamFactory.CreateInput("PrintTemplateID", args.PrintTemplateID),
DataParamFactory.CreateInput("PrintTemplateCatalogType", settings.PrintTemplateCatalogType)
};
DataAccessor.RunSP(DataAccessor.GetConn(), "Proc_Cust_GetPrintFileName", dataParams, out object fileName);
if (fileName != null) settings.FileName = fileName.ToString();
}
// 获取打印数据
private void GetPrintData(object sender, DataCallBackEventArgs args)
{
POFeeCheckHeadRecord focusedRecord = this.CurrentModel.POFeeCheckHead.FocusedRecord;
if (focusedRecord == null || focusedRecord.ID <= 0) return;
DataParamList dpl = new DataParamList
{
DataParamFactory.CreateInput("ID", focusedRecord.ID, System.Data.DbType.Int64),
DataParamFactory.CreateInput("PrintTemplateID", args.PrintTemplateID)
};
// 调用自己的获取打印数据的存储过程
DataAccessor.RunSP("Proc_Cust_PrintData", dpl, out System.Data.DataSet retDS);
args.ReturnData = retDS;
}
Proc_Cust_GetPrintFileName存储过程
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: qxq
-- Create date: 2023年7月3日
-- Description: 打印输出获取文件名称Proc_Cust_GetPrintFileName
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Proc_Cust_GetPrintFileName
(
@ID bigint -- ID
,@PrintTemplateID nvarchar(50)=NULL -- 打印模板ID
,@PrintTemplateCatalogType nvarchar(50)=NULL
)
AS
BEGIN
SET NOCOUNT ON;
-- 采购对账单
if(@PrintTemplateCatalogType='Cust.POFeeCheckHead')
begin
declare @TemplateName nvarchar(500)
select @TemplateName=TemplateName from UBF_Print_Templates where TemplateID=@PrintTemplateID and CatalogType=@PrintTemplateCatalogType
declare @Prefix nvarchar(500)
select @Prefix=CONCAT(supl.[Name],N' ',FORMAT(head.BusinessDate,'M月'))
from dbo.Cust_POFeeCheckHead as head
join dbo.CBO_Supplier_Trl as supl on supl.ID=head.Supplier and supl.SysMLFlag='zh-CN'
where head.ID=@ID
return concat(@Prefix,@TemplateName)
end
END
GO
输出DataGrid
private void OutputClick_Extend(object sender, UIActionEventArgs e)
{
IExportSettings settings = ExportServiceFactory.GetInstance().CreateExportSettingsObject();
settings.UIDataGridName = "DataGrid1";
e.Tag = settings;
}
评论 (0)