You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

260 lines
10 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>单据打印</title>
<link href="../Scripts/bootstrap/css/bootstrap.css" rel="stylesheet" />
<link href="../Scripts/bootstrap/css/components-rounded.css" rel="stylesheet" />
<link href="../Scripts/bootstrap/css/font-awesome.css" rel="stylesheet" />
<link href="../Scripts/bootstrap/css/themes/default/style.min.css" rel="stylesheet" />
<script type="text/javascript" src="../Scripts/QueryString.js"></script>
<script type="text/javascript" src="../Scripts/jquery-1.7.2.min.js"></script>
<!-- 导入配置文件. -->
<script type="text/javascript" src="../Scripts/config.js"></script>
<script type="text/javascript" src="../Comm/Gener.js"></script>
<script src="../CCForm/JS/wpslib/project.js"></script>
<script src="../CCForm/JS/wpslib/wpsjsrpcsdk.js"></script>
<script type="text/javascript">
var printType = 0;
var isFrameCross = GetQueryString("isFrameCross");
$(function () {
$("#Msg").html("<h3>正在加载请稍候....</h3>");
var fk_bill = GetQueryString("FK_Bill");
var nodeID = GetQueryString("FK_Node");
var workID = GetQueryString("WorkID");
var flowNo = GetQueryString("FK_Flow");
var fid = GetQueryString("FID");
printType = GetQueryString("PrintType");
//初始化页面信息
var handler = new HttpHandler("BP.WF.HttpHandler.WF_WorkOpt");
handler.AddUrlData();
var data = handler.DoMethodReturnString("PrintDoc_Init");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
if (data.indexOf("info@") == 0) {
data = data.replace("info@", "");
data = JSON.parse(data);
if (data.length == 0) {
alert("没有绑定表单,无需打印");
return;
}
var html = "";
html += "<fieldset>";
html += "<legend> 表单打印 </legend>";
html += "<ul>";
for (var i = 0; i < data.length; i++) {
if (data[i].FrmType == 3) //url
continue;
html += "<li><a href='javaScript:void(0)' target=_blank onclick=PrintSignleFormIt(" + flowNo + "," + nodeID + "," + workID + "," + fid + ",\"" + data[i].No + "\")><img src='../Img/FileType/doc.gif' />" + data[i].Name + ".doc</a><br/><br/></li>";
}
// html += "<li>说明点击上面的表单名称进行RTF进行打印</li>";
html += "</ul>";
html += "</fieldset>";
document.getElementById("Msg").innerHTML = html;
return;
}
//如果是一个url.
if (data.indexOf('url@') == 0) {
data = data.replace('url@', '');
if (data.indexOf('rtf@') != -1) {
window.location.href = filterXSS(data).replace('rtf@', '');
} else {
data = data.replace('word@', '');
if (plant == 'CCFlow') {
data += ",WSUrl=" + basePath + + "/WF/CCForm/CCFormAPI.asmx";
}
if (plant == "JFlow") {
alert('还没有翻译.');
return;
}
SetHref(data);
}
return;
}
var ens = JSON.parse(data);
//包含多模板
if (data.MainTable == undefined) {
var html = "<ul>";
for (var i = 0; i < ens.length; i++) {
var en = ens[i];
html += "<li><a href='javascript:void(0);' onclick=PrintIt(\"" + en.MyPK + "\",\"" + flowNo + "\"," + nodeID + "," + workID + "," + fid + ",\"" + en.FrmID + "\",\"" + en.TemplateFileModel + "\") >" + en.Name + "</li>";
}
html += "</ul>";
$("#Msg").html(html);
return;
}
//打印Wps模板文件
PrintDoc_WpsWord(data, fk_bill)
});
function PrintSignleFormIt(flowNo, nodeId, WorkID, FID, ccfromId) {
$("#rtf").html("");
var ens = new Entities("BP.WF.Template.Frm.FrmPrintTemplates");
ens.Retrieve("FrmID", ccfromId);
if (ens.length == 0) {
alert("当前节点上没有绑定单据模板");
return false;
}
if (ens.length == 1) {
PrintIt(ens[0].MyPK, flowNo, nodeId, WorkID, FID, ccfromId);
return;
}
var html = "<ul>";
for (var i = 0; i < ens.length; i++) {
var en = ens[i];
// html += "<li ><a href='?FK_Bill=" + en.No + "&FK_Flow=" + flowNo + "&FK_Node=" + nodeID + "&WorkID=" + workID + "'>" + en.Name + "</li>";
html += "<li><a href='javascript:void(0);' onclick=PrintIt(\"" + en.MyPK + "\",\"" + flowNo + "\"," + nodeId + "," + WorkID + "," + FID + ",\"" + ccfromId + "\",\"" + en.TemplateFileModel + "\") >" + en.Name + "</li>";
}
html += "</ul>";
$("#rtf").html(html);
}
//打印.
function PrintIt(billNo, flowNo, nodeID, workID, FID, ccfromId, printModal) {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_WorkOpt");
handler.AddPara("FK_Bill", billNo);
handler.AddPara("FK_Flow", flowNo);
handler.AddPara("FK_Node", nodeID);
handler.AddPara("WorkID", workID);
handler.AddPara("FID", FID);
handler.AddPara("CCFormID", ccfromId);
var data = handler.DoMethodReturnString("PrintDoc_Done");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
//如果是一个url.
if (data.indexOf('url@') == 0) {
data = data.replace('url@', '');
if (data.indexOf('rtf@') != -1) {
window.location.href = filterXSS(data).replace('rtf@', '');
return;
} else {
data = data.replace('word@', '');
if (plant == 'CCFlow' && printModal == 1) {
data += "?WSUrl=" + basePath + "/WF/CCForm/CCFormAPI.asmx";
}
if (plant == "JFlow") {
alert('还没有翻译.');
return;
}
SetHref(data);
return;
}
}
PrintDoc_WpsWord(JSON.parse(data), billNo)
}
function PrintDoc_WpsWord(frmData) {
var billTemp = frmData.Sys_FrmPrintTemplate[0];
var wpsTempURL = document.location.protocol + "//" + document.location.host + "/DataUser/CyclostyleFile/" + billTemp.TempFilePath;
var mainTable = frmData.MainTable[0];
var mapDtls = frmData.Sys_MapDtl;
var wpsData = [];
var childDatas = [];
if (mapDtls.length > 0) {
$.each(frmData.Sys_MapDtl, function (i, mapDtl) {
childDatas.push(frmData[mapDtl.No]);
})
}
for (var key in mainTable) {
var json =
{
"name": key,
"text": getFiledValue(frmData.Sys_MapAttr, key, mainTable[key]),
"type": "text"
};
wpsData.push(json);
}
var invokeParam = {
"fileName": wpsTempURL,
"templateDataUrl": wpsData,
"childDatas": childDatas
}; //根据需求任意定义
WpsInvoke.InvokeAsHttp(
projInfo.type,
projInfo.name, //wps加载项的名字在实际项目中写上对应的名字
"OpenDoc", //要调用的在wps加载项中的函数名
JSON.stringify(invokeParam), //调用的在wps加载项中的函数要传递的数据是一个json对象根据业务系统需求任意定义
callbackFunc, //回调函数wps加载项中InvokeFromSystemDemo这个函数的返回值作为这个函数的参数
true) //设置wps是否显示到最前面来
}
var callbackFunc = function (result) {
if (result.status == 0) {
//下面这行代码用来注册从wps加载项返回的消息的接收函数
WpsInvoke.RegWebNotify(projInfo.type, projInfo.name, function (messageText) {
var span = document.getElementById("webnotifyspan")
span.innerHTML = "(次数:" + ++WebNotifycount + ")" + messageText;
})
alert(result.response)
}
else
alert(result.message)
}
/* 处理值方法 */
function getFiledValue(Sys_MapAttr, filedName, rvalue) {
for (var i in Sys_MapAttr) {
if (filedName == Sys_MapAttr[i].KeyOfEn) {
if (Sys_MapAttr[i].MyDataType == "4") {//布尔
if (rvalue == "1") {//是
rvalue = "是";
} else if (rvalue == "0") {//否
rvalue = "否";
}
}
}
}
return rvalue;
}
//取消退回
function Close() {
if (isFrameCross == 0) {
if (window.parent != null && window.parent.returnWorkWindowClose != null) {
window.parent.returnWorkWindowClose("取消");
}
} else {
ChildrenPostMessage("取消", "returnWorkWindowClose");
}
}
</script>
<link href="../../DataUser/Style/ccbpm.css" rel="stylesheet" type="text/css" />
</head>
<body>
<center>
<div id="Msg">
</div>
</center>
<div id="rtf"></div>
</body>
</html>