基础资料增加按钮,实现A4纸打印16个不同条码
金蝶云社区-菜鸟开发
菜鸟开发
0人赞赏了该文章 1,088次浏览 未经作者许可,禁止转载编辑于2016年05月06日 17:28:46

基础资料增加按钮,实现A4纸打印16个不同条码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS;
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.SqlBuilder;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Core.NotePrint;
using Kingdee.BOS.JSON;

namespace CloudDev
{
public class PrintCode : AbstractListPlugIn
{
///


/// 待打印的单据数据包
///

DynamicObjectCollection DC = null;
Context ctx = null;
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
String FID = "";
String sql;
string billFormId;
if (e.BarItemKey == "tbBarCode")
{
ListSelectedRowCollection select = this.ListView.SelectedRowsInfo;
if (select.Count == 0)
{
this.ListView.ShowErrMessage("请选择需要打印的序列号!");
return;
}
for (int i = 0; i < select.Count; i++)
{
FID = FID + Convert.ToString(select[i].PrimaryKeyValue) + ',';
}

SqlParam sqlPram1 = new SqlParam("@FID", KDDbType.String, FID);
List listParam = new List();
listParam.Add(sqlPram1);
sql = " exec P_DevBarCode @FID ";
DC = DBUtils.ExecuteDynamicObject(this.Context, sql, null, null, paramList: new SqlParam[] { new SqlParam("@FID", KDDbType.String, FID) });
billFormId = this.View.BillBusinessInfo.GetForm().Id;
string billId = "101002";//单据内码
ctx= this.Context;
FormMetadata meta = MetaDataServiceHelper.Load(
ctx, billFormId) as FormMetadata;
// 下达打印、预览指令
List<;PrintJobItem> printInfoList = new List<;PrintJobItem>();
PrintJobItem printInfoItem = new PrintJobItem();
printInfoItem.BillId = billId;
printInfoItem.FormId = billFormId;
printInfoItem.TemplateId = "f9240d12-d2c9-436d-b95d-33d0cd2d1ae3";//套打模版的ID
printInfoItem.SortString = "";
printInfoList.Add(printInfoItem);
string key = Guid.NewGuid().ToString();
this.View.Session[key] = printInfoList;
JSONObject jsonObj = new JSONObject();
jsonObj.Put("pageID", this.View.PageId);
jsonObj.Put("printJobId", key);
jsonObj.Put("action", "preview");//预览--printType赋值为"preview";打印--printType赋值为"print"
string action = "printPreview";
jsonObj.Put("printBarName", null);
this.View.AddAction(action, jsonObj);
}
}
public override void OnPrepareNotePrintQueryParam(PrepareNotePrintQueryParamEventArgs e)
{
base.OnPrepareNotePrintQueryParam(e);
}
//自定义的数据包
public override void OnPrepareNotePrintData(PreparePrintDataEventArgs e)
{
//构建新数据包并提供给系统
int Row =0;
if (e.DataSourceId.Equals("FBillHead", StringComparison.OrdinalIgnoreCase))
{
// 基于套打要求的ORM数据模型,构建数据包,取单据头的字段值
// 特别注意:e.DynamicObjectType,仅包含了套打会用到的单据头字段
Row=DC.Count;
//DynamicObject[] notePrintHeadObj=null ;
DynamicObject notePrintHeadObj = new DynamicObject(e.DynamicObjectType);
for (int i = 0; i < DC.Count; i++)
{
//notePrintHeadObj[i] = new DynamicObject(e.DynamicObjectType);
//notePrintHeadObj[i]["FBarCode0"] = DC[i].DynamicObjectType.Properties[0].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode1"] = DC[i].DynamicObjectType.Properties[2].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode2"] = DC[i].DynamicObjectType.Properties[4].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode3"] = DC[i].DynamicObjectType.Properties[6].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode4"] = DC[i].DynamicObjectType.Properties[8].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode5"] = DC[i].DynamicObjectType.Properties[10].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode6"] = DC[i].DynamicObjectType.Properties[12].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode7"] = DC[i].DynamicObjectType.Properties[14].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode8"] = DC[i].DynamicObjectType.Properties[16].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode9"] = DC[i].DynamicObjectType.Properties[18].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode10"] = DC[i].DynamicObjectType.Properties[20].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode11"] = DC[i].DynamicObjectType.Properties[22].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode12"] = DC[i].DynamicObjectType.Properties[24].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode13"] = DC[i].DynamicObjectType.Properties[26].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode14"] = DC[i].DynamicObjectType.Properties[28].GetValue(DC[i]);
//notePrintHeadObj[i]["FBarCode15"] = DC[i].DynamicObjectType.Properties[30].GetValue(DC[i]);
// 为字段赋值:本例仅演示给单据编号赋值
notePrintHeadObj["FBarCode0"] = DC[i].DynamicObjectType.Properties[0].GetValue(DC[i]);
notePrintHeadObj["FBarCode1"] = DC[i].DynamicObjectType.Properties[2].GetValue(DC[i]);
notePrintHeadObj["FBarCode2"] = DC[i].DynamicObjectType.Properties[4].GetValue(DC[i]);
notePrintHeadObj["FBarCode3"] = DC[i].DynamicObjectType.Properties[6].GetValue(DC[i]);
notePrintHeadObj["FBarCode4"] = DC[i].DynamicObjectType.Properties[8].GetValue(DC[i]);
notePrintHeadObj["FBarCode5"] = DC[i].DynamicObjectType.Properties[10].GetValue(DC[i]);
notePrintHeadObj["FBarCode6"] = DC[i].DynamicObjectType.Properties[12].GetValue(DC[i]);
notePrintHeadObj["FBarCode7"] = DC[i].DynamicObjectType.Properties[14].GetValue(DC[i]);
notePrintHeadObj["FBarCode8"] = DC[i].DynamicObjectType.Properties[16].GetValue(DC[i]);
notePrintHeadObj["FBarCode9"] = DC[i].DynamicObjectType.Properties[18].GetValue(DC[i]);
notePrintHeadObj["FBarCode10"] = DC[i].DynamicObjectType.Properties[20].GetValue(DC[i]);
notePrintHeadObj["FBarCode11"] = DC[i].DynamicObjectType.Properties[22].GetValue(DC[i]);
notePrintHeadObj["FBarCode12"] = DC[i].DynamicObjectType.Properties[24].GetValue(DC[i]);
notePrintHeadObj["FBarCode13"] = DC[i].DynamicObjectType.Properties[26].GetValue(DC[i]);
notePrintHeadObj["FBarCode14"] = DC[i].DynamicObjectType.Properties[28].GetValue(DC[i]);
notePrintHeadObj["FBarCode15"] = DC[i].DynamicObjectType.Properties[30].GetValue(DC[i]);
}
//e.DataObjects = notePrintHeadObj;
e.DataObjects = new DynamicObject[]{notePrintHeadObj};
}
}
}
}

[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]