From f61def9df2fc06930393e443bb50f002734318aa Mon Sep 17 00:00:00 2001
From: WYB <908761037@qq.com>
Date: 星期五, 23 四月 2021 17:31:35 +0800
Subject: [PATCH] 工序汇报单打印页面添加以及逻辑编写(50%)

---
 WebTM/App_Data/MssqlReportData.cs                              |  235 +++++++
 WebTM/views/CreateControl.js                                   |  158 ++++
 WebTM/Properties/PublishProfiles/LAYUI.pubxml.user             |   36 
 WebTM/views/生产工序管理/工序汇报单/xmlLBM_ProcessReport.aspx             |   28 
 WebTM/views/生产工序管理/工序汇报单/xmlLBM_ProcessReport.aspx.designer.cs |   25 
 WebTM/views/生产工序管理/工序汇报单/xmlLBM_ProcessReport.aspx.cs          |   17 
 WebTM/views/GRInstall.js                                       |   50 +
 WebTM/views/grf/汇报单.grf                                        |  712 ++++++++++++++++++++++
 WebTM/App_Data/ReportData.cs                                   |  239 +++++++
 WebTM/views/生产工序管理/工序汇报单/HBarPlanPrint.html                    |   76 ++
 WebTM/views/生产工序管理/工序汇报单/Sc_Add_ProcessReportList.html         |  177 ++--
 WebTM/views/GRUtility.js                                       |  109 +++
 WebTM/WebTM.csproj                                             |   15 
 13 files changed, 1,783 insertions(+), 94 deletions(-)

diff --git a/WebTM/App_Data/MssqlReportData.cs b/WebTM/App_Data/MssqlReportData.cs
new file mode 100644
index 0000000..c598472
--- /dev/null
+++ b/WebTM/App_Data/MssqlReportData.cs
@@ -0,0 +1,235 @@
+锘縰sing System;
+using System.Collections;
+using System.Data;
+using System.Data.SqlClient;
+using System.Configuration;
+using System.IO;
+using System.IO.Compression;
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+//class  SqlReportData 浜х敓鎻愪緵缁欐姤琛ㄧ敓鎴愰渶瑕佺殑 鎴� JSON 鏁版嵁
+public class SqlReportData
+{
+    //鈽呯壒鍒彁绀衡槄锛�
+    //杩炴帴SQL Server鏁版嵁搴撶殑杩炴帴涓诧紝搴旇淇敼涓轰笌瀹為檯涓�鑷淬�傚鏋滄槸杩愯Grid++Report鏈韩鐨勪緥瀛愶紝搴旇棣栧厛闄勫姞渚嬪瓙鏁版嵁搴撳埌
+    //SQL Server2000/2005鏁版嵁搴撲笂銆�
+    //public const string SqlConnStr = "Data Source=(local);Initial Catalog=gridreport;Persist Security Info=True;User ID=sa;Password=;";
+
+    //public const string SqlConnStr = "Data Source=10.0.2.9;Initial Catalog=HX_LimsSys;Persist Security Info=True;User ID=HX_USER;Password=lc@841022;";
+    public const string SqlConnStr = "Data Source=.;Initial Catalog=HX_LMESsys;Persist Security Info=True;User ID=HX_USER;Password=lc@841022;";
+
+    //public string sServer;
+    //public string sDataBase;
+    //public string sUser;
+    //public string sPassword;
+    //public const string SqlConnStr="";
+    //protected void Page_Load(object sender, EventArgs e)
+    //{
+    //    sServer = Pub_Class.ClsIni.ReadIni("Erp", "Server", Pub_Class.ClsPub.AppPath + @"\" + "HXErp.ini");
+    //    sDataBase = Pub_Class.ClsIni.ReadIni("Erp", "DataBase", Pub_Class.ClsPub.AppPath + @"\" + "HXErp.ini");
+    //    sUser = Pub_Class.ClsIni.ReadIni("Erp", "UserName", Pub_Class.ClsPub.AppPath + @"\" + "HXErp.ini");
+    //    sPassword = Pub_Class.ClsIni.ReadIni("Erp", "PassWord", Pub_Class.ClsPub.AppPath + @"\" + "HXErp.ini"); 
+    //    SqlConnStr = "Data Source=" + sServer +
+    //                                ";Initial Catalog=" + sDataBase +
+    //                                ";Persist Security Info=True;"+
+    //                                "User ID=" + sUser +
+    //                                ";Password=" + sPassword + ";";
+    //}
+
+    //瀹氫箟鍦⊿QL涓〃绀烘棩鏈熷�肩殑鍖呭洿绗﹀彿锛孉ccess鐢ㄢ��#鈥�, 鑰孧S SQl Server鐢ㄢ��'鈥濓紝涓轰簡鐢熸垚涓よ�呴兘鍙敤鐨勬煡璇QL璇彞锛屽皢鍏跺弬鏁板寲瀹氫箟鍑烘潵銆傝繖鏍峰鐞嗗彧鏄负浜嗘紨绀轰緥瀛愭柟渚�
+    public const char DateSqlBracketChar = '\'';
+
+    //鏍规嵁鏌ヨSQL,浜х敓鎻愪緵缁欐姤琛ㄧ敓鎴愰渶瑕佺殑 XML 鏁版嵁锛屽瓧娈靛�间负绌轰篃浜х敓鏁版嵁
+    public static void FullGenNodeXmlData(System.Web.UI.Page DataPage, string QuerySQL, bool ToCompress)
+    {
+        SqlConnection ReportConn = new SqlConnection(SqlConnStr);
+        SqlCommand ReportDataCommand = new SqlCommand(QuerySQL, ReportConn);
+        ReportConn.Open();
+        SqlDataReader ReportDataReader = ReportDataCommand.ExecuteReader();
+        XMLReportData.GenNodeXmlDataFromReader(DataPage, ReportDataReader, ToCompress ? ResponseDataType.ZipBinary : ResponseDataType.PlainText);
+        ReportDataReader.Close();
+        ReportConn.Close();
+    }
+
+    //鑾峰彇 Count(*) SQL 鏌ヨ鍒扮殑鏁版嵁琛屾暟銆傚弬鏁� QuerySQL 鎸囧畾鑾峰彇鎶ヨ〃鏁版嵁鐨勬煡璇QL
+    public static int BatchGetDataCount(string QuerySQL)
+    {
+        int Total = 0;
+
+        SqlConnection ReportConn = new SqlConnection(SqlConnStr);
+        SqlCommand ReportDataCommand = new SqlCommand(QuerySQL, ReportConn);
+        ReportConn.Open();
+        SqlDataReader ReportDataReader = ReportDataCommand.ExecuteReader();
+        if (ReportDataReader.Read())
+            Total = ReportDataReader.GetInt32(0);
+        ReportDataReader.Close();
+        ReportConn.Close();
+
+        return Total;
+    }
+
+    //<<protected function
+    //鏍规嵁鏌ヨSQL,浜х敓鎻愪緵缁欐姤琛ㄧ敓鎴愰渶瑕佺殑 XML 鎴� JSON 鏁版嵁
+    protected static void DoGenDetailData(System.Web.UI.Page DataPage, string QuerySQL, ResponseDataType DataType, bool IsJSON)
+    {
+        SqlConnection ReportConn = new SqlConnection(SqlConnStr);
+        SqlDataAdapter ReportDataAdapter = new SqlDataAdapter(QuerySQL, ReportConn);
+        DataSet ReportDataSet = new DataSet();
+        ReportConn.Open();
+        ReportDataAdapter.Fill(ReportDataSet);
+        ReportConn.Close();
+
+        if (IsJSON)
+            JSONReportData.GenDataSet(DataPage, ReportDataSet, DataType);
+        else
+            XMLReportData.GenDataSet(DataPage, ReportDataSet, DataType);
+    }
+    //>>protected function
+
+    //鐗瑰埆鎻愮ず锛氫互涓嬪嚱鏁颁负鍏煎浠ュ墠鐗堟湰鑰屼繚鐣欙紝璇峰嬁鍐嶇敤涔嬶紝鏃犻』鍏煎鑰冭檻鍙垹闄や箣
+    //<<淇濈暀鍓嶉潰鐗堟湰鐨勫嚱鏁帮紝鍏煎浠ュ墠鐗堟湰鎵�鍐欑▼搴�
+    //鏍规嵁鏌ヨSQL,浜х敓鎻愪緵缁欐姤琛ㄧ敓鎴愰渶瑕佺殑 XML 鏁版嵁锛岄噰鐢� Sql 鏁版嵁寮曟搸
+    public static void GenNodeXmlData(System.Web.UI.Page DataPage, string QuerySQL, bool ToCompress)
+    {
+        DoGenDetailData(DataPage, QuerySQL, ToCompress ? ResponseDataType.ZipBinary : ResponseDataType.PlainText, false);
+    }
+
+    //鏍规嵁鏌ヨSQL,浜х敓鎻愪緵缁欐姤琛ㄧ敓鎴愰渶瑕佺殑 XML 鏁版嵁锛岄噰鐢� Sql 鏁版嵁寮曟搸, 杩欓噷鍙骇鐢熸姤琛ㄥ弬鏁版暟鎹�
+    //褰撴姤琛ㄦ病鏈夋槑缁嗘椂锛岃皟鐢ㄦ湰鏂规硶鐢熸垚鏁版嵁锛屾煡璇QL搴旇鍙兘鏌ヨ鍑轰竴鏉¤褰�
+    public static void GenParameterReportData(System.Web.UI.Page DataPage, string ParameterQuerySQL)
+    {
+        DoGenDetailData(DataPage, ParameterQuerySQL, ResponseDataType.PlainText, false);
+    }
+
+    //鏍规嵁鏌ヨSQL,浜х敓鎻愪緵缁欐姤琛ㄧ敓鎴愰渶瑕佺殑 XML 鏁版嵁锛岄噰鐢� Sql 鏁版嵁寮曟搸, 鏍规嵁RecordsetQuerySQL鑾峰彇鎶ヨ〃鏄庣粏鏁版嵁锛屾牴鎹甈arameterQuerySQL鑾峰彇鎶ヨ〃鍙傛暟鏁版嵁
+    public static void GenEntireReportData(System.Web.UI.Page DataPage, string RecordsetQuerySQL, string ParameterQuerySQL, bool ToCompress)
+    {
+        SqlConnection ReportConn = new SqlConnection(SqlConnStr);
+        DataSet ReportDataSet = new DataSet();
+        ReportConn.Open();
+        SqlDataAdapter DataAdapter1 = new SqlDataAdapter(RecordsetQuerySQL, ReportConn);
+        DataAdapter1.Fill(ReportDataSet, "Detail");
+        SqlDataAdapter DataAdapter2 = new SqlDataAdapter(ParameterQuerySQL, ReportConn);
+        DataAdapter2.Fill(ReportDataSet, "Master");
+        ReportConn.Close();
+        XMLReportData.GenDataSet(DataPage, ReportDataSet, ReportDataBase.DefaultDataType);
+    }
+    //>>淇濈暀鍓嶉潰鐗堟湰鐨勫嚱鏁帮紝鍏煎浠ュ墠鐗堟湰鎵�鍐欑▼搴�
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+//class  SqlXMLReportData 鏍规嵁SQL浜х敓鎶ヨ〃闇�瑕佺殑 XML 鏁版嵁锛岄噰鐢� Sql 鏁版嵁寮曟搸
+public class SqlXMLReportData : SqlReportData
+{
+    public static void GenOneRecordset(System.Web.UI.Page DataPage, string QuerySQL)
+    {
+        SqlReportData.DoGenDetailData(DataPage, QuerySQL, ReportDataBase.DefaultDataType, false);
+    }
+
+    public static void GenMultiRecordset(System.Web.UI.Page DataPage, ArrayList QueryList)
+    {
+        SqlConnection ReportConn = new SqlConnection(SqlConnStr);
+        DataSet ReportDataSet = new DataSet();
+
+        ReportConn.Open();
+
+        foreach (ReportQueryItem item in QueryList)
+        {
+            SqlDataAdapter DataAdapter = new SqlDataAdapter(item.QuerySQL, ReportConn);
+            DataAdapter.Fill(ReportDataSet, item.RecordsetName);
+        }
+
+        ReportConn.Close();
+
+        XMLReportData.GenDataSet(DataPage, ReportDataSet, ReportDataBase.DefaultDataType);
+    }
+
+    //鐗瑰埆鎻愮ず锛氫互涓嬪嚱鏁颁负鍏煎浠ュ墠鐗堟湰鑰屼繚鐣欙紝璇峰嬁鍐嶇敤涔嬶紝鏃犻』鍏煎鑰冭檻鍙垹闄や箣
+    //<<淇濈暀鍓嶉潰鐗堟湰鐨勫嚱鏁帮紝鍏煎浠ュ墠鐗堟湰鎵�鍐欑▼搴�
+    //浜х敓鎶ヨ〃鏄庣粏璁板綍鏁版嵁锛屾暟鎹皢琚姞杞藉埌鏄庣粏缃戞牸鐨勮褰曢泦涓�
+    public static void GenDetailData(System.Web.UI.Page DataPage, string QuerySQL)
+    {
+        GenOneRecordset(DataPage, QuerySQL);
+    }
+
+    //杩欓噷鍙骇鐢熸姤琛ㄥ弬鏁版暟鎹紝鏁版嵁鍔犺浇鍒版姤琛ㄥ弬鏁般�侀潪鏄庣粏缃戞牸涓殑閮ㄤ欢妗嗕腑
+    //褰撴姤琛ㄦ病鏈夋槑缁嗘椂锛岃皟鐢ㄦ湰鏂规硶鐢熸垚鏁版嵁锛屾煡璇QL搴旇鍙兘鏌ヨ鍑轰竴鏉¤褰�
+    public static void GenParameterData(System.Web.UI.Page DataPage, string ParameterQuerySQL)
+    {
+        GenOneRecordset(DataPage, ParameterQuerySQL);
+    }
+
+    //鏍规嵁RecordsetQuerySQL鑾峰彇鎶ヨ〃鏄庣粏鏁版嵁锛屽搴旀暟鎹姞杞藉埌鎶ヨ〃鐨勬槑缁嗙綉鏍肩殑璁板綍闆嗕腑
+    //鏍规嵁ParameterQuerySQL鑾峰彇鎶ヨ〃鍙傛暟鏁版嵁锛屽搴旀暟鎹姞杞藉埌鎶ヨ〃鍙傛暟銆侀潪鏄庣粏缃戞牸涓殑閮ㄤ欢妗嗕腑
+    public static void GenEntireData(System.Web.UI.Page DataPage, string RecordsetQuerySQL, string ParameterQuerySQL, ResponseDataType DataType)
+    {
+        ArrayList QueryList = new ArrayList();
+        QueryList.Add(new ReportQueryItem(RecordsetQuerySQL, "Detail"));
+        QueryList.Add(new ReportQueryItem(ParameterQuerySQL, "Master"));
+        GenMultiRecordset(DataPage, QueryList);
+    }
+    public static void GenEntireData(System.Web.UI.Page DataPage, string RecordsetQuerySQL, string ParameterQuerySQL)
+    {
+        GenEntireData(DataPage, RecordsetQuerySQL, ParameterQuerySQL, ReportDataBase.DefaultDataType);
+    }
+    //>>淇濈暀鍓嶉潰鐗堟湰鐨勫嚱鏁帮紝鍏煎浠ュ墠鐗堟湰鎵�鍐欑▼搴�
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+//class  SqlJsonReportData 鏍规嵁SQL浜х敓鎶ヨ〃闇�瑕佺殑 JSON 鏁版嵁锛岄噰鐢� Sql 鏁版嵁寮曟搸
+public class SqlJsonReportData : SqlReportData
+{
+    public static void GenOneRecordset(System.Web.UI.Page DataPage, string QuerySQL)
+    {
+        SqlReportData.DoGenDetailData(DataPage, QuerySQL, ReportDataBase.DefaultDataType, true);
+    }
+
+    public static void GenMultiRecordset(System.Web.UI.Page DataPage, ArrayList QueryList)
+    {
+        SqlConnection ReportConn = new SqlConnection(SqlConnStr);
+        DataSet ReportDataSet = new DataSet();
+
+        ReportConn.Open();
+
+        foreach (ReportQueryItem item in QueryList)
+        {
+            SqlDataAdapter DataAdapter = new SqlDataAdapter(item.QuerySQL, ReportConn);
+            DataAdapter.Fill(ReportDataSet, item.RecordsetName);
+        }
+
+        ReportConn.Close();
+
+        JSONReportData.GenDataSet(DataPage, ReportDataSet, ReportDataBase.DefaultDataType);
+    }
+
+
+    //鐗瑰埆鎻愮ず锛氫互涓嬪嚱鏁颁负鍏煎浠ュ墠鐗堟湰鑰屼繚鐣欙紝璇峰嬁鍐嶇敤涔嬶紝鏃犻』鍏煎鑰冭檻鍙垹闄や箣
+    //<<淇濈暀鍓嶉潰鐗堟湰鐨勫嚱鏁帮紝鍏煎浠ュ墠鐗堟湰鎵�鍐欑▼搴�
+    //浜х敓鎶ヨ〃鏄庣粏璁板綍鏁版嵁锛屾暟鎹皢琚姞杞藉埌鏄庣粏缃戞牸鐨勮褰曢泦涓�
+    public static void GenDetailData(System.Web.UI.Page DataPage, string QuerySQL)
+    {
+        GenOneRecordset(DataPage, QuerySQL);
+    }
+
+    //杩欓噷鍙骇鐢熸姤琛ㄥ弬鏁版暟鎹紝鏁版嵁灏嗗姞杞藉埌鎶ヨ〃鍙傛暟銆侀潪鏄庣粏缃戞牸涓殑閮ㄤ欢妗嗕腑
+    //褰撴姤琛ㄦ病鏈夋槑缁嗘椂锛岃皟鐢ㄦ湰鏂规硶鐢熸垚鏁版嵁锛屾煡璇QL搴旇鍙兘鏌ヨ鍑轰竴鏉¤褰�
+    public static void GenParameterData(System.Web.UI.Page DataPage, string ParameterQuerySQL)
+    {
+        GenOneRecordset(DataPage, ParameterQuerySQL);
+    }
+
+    //鏍规嵁RecordsetQuerySQL鑾峰彇鎶ヨ〃鏄庣粏鏁版嵁锛屽搴旀暟鎹姞杞藉埌鎶ヨ〃鐨勬槑缁嗙綉鏍肩殑璁板綍闆嗕腑
+    //鏍规嵁ParameterQuerySQL鑾峰彇鎶ヨ〃鍙傛暟鏁版嵁锛屽搴旀暟鎹姞杞藉埌鎶ヨ〃鍙傛暟銆侀潪鏄庣粏缃戞牸涓殑閮ㄤ欢妗嗕腑
+    public static void GenEntireData(System.Web.UI.Page DataPage, string RecordsetQuerySQL, string ParameterQuerySQL, ResponseDataType DataType)
+    {
+        ArrayList QueryList = new ArrayList();
+        QueryList.Add(new ReportQueryItem(RecordsetQuerySQL, "Detail"));
+        QueryList.Add(new ReportQueryItem(ParameterQuerySQL, "Master"));
+        GenMultiRecordset(DataPage, QueryList);
+    }
+    public static void GenEntireData(System.Web.UI.Page DataPage, string RecordsetQuerySQL, string ParameterQuerySQL)
+    {
+        GenEntireData(DataPage, RecordsetQuerySQL, ParameterQuerySQL, ReportDataBase.DefaultDataType);
+    }
+    //>>淇濈暀鍓嶉潰鐗堟湰鐨勫嚱鏁帮紝鍏煎浠ュ墠鐗堟湰鎵�鍐欑▼搴�
+}
\ No newline at end of file
diff --git a/WebTM/App_Data/ReportData.cs b/WebTM/App_Data/ReportData.cs
new file mode 100644
index 0000000..90d9ec9
--- /dev/null
+++ b/WebTM/App_Data/ReportData.cs
@@ -0,0 +1,239 @@
+锘縰sing System;
+//using System.Collections;
+using System.Text;
+using System.Data;
+using System.Configuration;
+using System.IO;
+using System.IO.Compression;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+//浠ヤ笅鏋氫妇鎸囧畾鎶ヨ〃鏁版嵁鐨勬牸寮忕被鍨�
+public enum ResponseDataType
+{
+    PlainText, //鎶ヨ〃鏁版嵁涓篨ML鎴朖SON鏂囨湰锛屽湪璋冭瘯鏃跺彲浠ユ煡鐪嬫姤琛ㄦ暟鎹�傛暟鎹湭缁忓帇缂╋紝澶ф暟鎹噺鎶ヨ〃閲囩敤姝ょ鏂瑰紡涓嶅悎閫�
+    ZipBinary, //鎶ヨ〃鏁版嵁涓篨ML鎴朖SON鏂囨湰缁忚繃鍘嬬缉寰楀埌鐨勪簩杩涘埗鏁版嵁銆傛绉嶆柟寮忔暟鎹噺鏈�灏�(绾︿负鍘熷鏁版嵁鐨�1/10)锛屼絾鐢ˋjax鏂瑰紡鍔犺浇鎶ヨ〃鏁版嵁鏃朵笉鑳戒负姝ょ鏂瑰紡
+    ZipBase64, //鎶ヨ〃鏁版嵁涓哄皢 ZipBinary 鏂瑰紡寰楀埌鐨勬暟鎹啀杩涜 BASE64 缂栫爜鐨勬暟鎹�傛绉嶆柟寮忛�傚悎鐢ˋjax鏂瑰紡鍔犺浇鎶ヨ〃鏁版嵁
+};
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+// ReportQueryItem
+public class ReportQueryItem
+{
+    public string QuerySQL;
+    public string RecordsetName;
+
+    public ReportQueryItem(string AQuerySQL, string ARecordsetName)
+    {
+        QuerySQL = AQuerySQL;
+        RecordsetName = ARecordsetName;
+    }
+};
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+// ReportDataBase
+public class ReportDataBase
+{
+    //鎸囧畾鎶ヨ〃鐨勯粯璁ゆ暟鎹被鍨嬶紝渚夸簬缁熶竴瀹氫箟鏁翠釜鎶ヨ〃绯荤粺鐨勬暟鎹被鍨�
+    //鍦ㄦ姤琛ㄥ紑鍙戣皟璇曢樁娈碉紝閫氬父鎸囧畾涓� ResponseDataType.PlainText, 浠ヤ究鍦ㄦ祻瑙堝櫒涓煡鐪嬪搷搴旂殑婧愭枃浠舵椂鑳界湅鍒板彲璇荤殑鏂囨湰鏁版嵁
+    //鍦ㄩ」鐩儴缃叉椂锛岄�氬父鎸囧畾涓� ResponseDataType.ZipBinary 鎴� ResponseDataType.ZipBase64锛岃繖鏍峰彲浠ユ瀬澶у噺灏戞暟鎹噺锛屾彁渚涙姤琛ㄥ搷搴旈�熷害
+    public const ResponseDataType DefaultDataType = ResponseDataType.PlainText; //PlainText ZipBinary ZipBase64 
+
+    //灏嗘姤琛╔ML鏁版嵁鏂囨湰杈撳嚭鍒癏TTP璇锋眰
+    public static void ResponseData(System.Web.UI.Page DataPage, ref string DataText, ResponseDataType DataType)
+    {
+        //鎶ヨ〃XML鏁版嵁鐨勫墠鍚庝笉鑳介檮鍔犱换浣曞叾瀹冩暟鎹紝鍚﹀垯XML鏁版嵁灏嗕笉鑳芥垚鍔熻В鏋愶紝鎵�浠ヨ皟鐢–learContent鏂规硶娓呯悊缃戦〉涓墠闈㈠浣欑殑鏁版嵁
+        DataPage.Response.ClearContent();
+
+        if (ResponseDataType.PlainText == DataType)
+        {
+            // 鎶妜ml瀵硅薄鍙戦�佺粰瀹㈡埛绔�
+            //DataPage.Response.ContentType = "text/xml";
+            DataPage.Response.Write(DataText);
+        }
+        else
+        {
+            //灏唖tring鏁版嵁杞崲涓篵yte[]锛屼互渚胯繘琛屽帇缂�
+            System.Text.UTF8Encoding converter = new System.Text.UTF8Encoding();
+            byte[] XmlBytes = converter.GetBytes(DataText);
+
+            //鍦� HTTP 澶翠俊鎭腑鍐欏叆鎶ヨ〃鏁版嵁鍘嬬缉淇℃伅
+            DataPage.Response.AppendHeader("gr_zip_type", "deflate");                  //鎸囧畾鍘嬬缉鏂规硶
+            DataPage.Response.AppendHeader("gr_zip_size", XmlBytes.Length.ToString()); //鎸囧畾鏁版嵁鐨勫師濮嬮暱搴�
+            DataPage.Response.AppendHeader("gr_zip_encode", converter.HeaderName);     //鎸囧畾鏁版嵁鐨勭紪鐮佹柟寮� utf-8 utf-16 ...
+
+            // 鎶婂帇缂╁悗鐨剎ml鏁版嵁鍙戦�佺粰瀹㈡埛绔�
+            if (ResponseDataType.ZipBinary == DataType)
+            {
+                DeflateStream compressedzipStream = new DeflateStream(DataPage.Response.OutputStream, CompressionMode.Compress, true);
+                compressedzipStream.Write(XmlBytes, 0, XmlBytes.Length);
+                compressedzipStream.Close();
+            }
+            else //ResponseDataType.ZipBase64
+            {
+                MemoryStream memStream = new MemoryStream();
+                DeflateStream compressedzipStream = new DeflateStream(memStream, CompressionMode.Compress, true);
+                compressedzipStream.Write(XmlBytes, 0, XmlBytes.Length);
+                compressedzipStream.Close(); //杩欏彞寰堥噸瑕侊紝杩欐牱鏁版嵁鎵嶈兘鍏ㄩ儴鍐欏叆 MemoryStream
+
+                // Read bytes from the stream.
+                memStream.Seek(0, SeekOrigin.Begin); // Set the position to the beginning of the stream.
+                int count = (int)memStream.Length;
+                byte[] byteArray = new byte[count];
+                count = memStream.Read(byteArray, 0, count);
+
+                string Base64Text = Convert.ToBase64String(byteArray);
+                DataPage.Response.Write(Base64Text);
+            }
+        }
+
+        //鎶ヨ〃XML鏁版嵁鐨勫墠鍚庝笉鑳介檮鍔犱换浣曞叾瀹冩暟鎹紝鍚﹀垯XML鏁版嵁灏嗕笉鑳芥垚鍔熻В鏋愶紝鎵�浠ヨ皟鐢‥nd鏂规硶鏀惧純缃戦〉涓悗闈笉蹇呰鐨勬暟鎹�
+        DataPage.Response.End();
+    }
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+//class XMLReportData 浜х敓鎶ヨ〃闇�瑕佺殑xml鏁版嵁
+public class XMLReportData
+{
+    //鏍规嵁 DataSet 浜х敓鎻愪緵缁欐姤琛ㄩ渶瑕佺殑XML鏁版嵁锛屽弬鏁癉ataType鎸囧畾鍘嬬缉缂栫爜鏁版嵁鐨勫舰寮�
+    public static void GenDataSet(System.Web.UI.Page DataPage, DataSet ReportDataSet, ResponseDataType DataType)
+    {
+        string XMLText = ReportDataSet.GetXml();
+        ReportDataBase.ResponseData(DataPage, ref XMLText, DataType);
+    }
+
+    //鏍规嵁 DataTable 浜х敓鎻愪緵缁欐姤琛ㄩ渶瑕佺殑XML鏁版嵁锛屽弬鏁癉ataType鎸囧畾鍘嬬缉缂栫爜鏁版嵁鐨勫舰寮�
+    public static void GenDataTable(System.Web.UI.Page DataPage, DataTable mydt, ResponseDataType DataType)
+    {
+        DataSet ds = new DataSet();
+        ds.Tables.Add(mydt);
+        GenDataSet(DataPage, ds, DataType);
+    }
+
+    //鏍规嵁IDataReader, 浜х敓鎻愪緵缁欐姤琛ㄩ渶瑕佺殑XML鏁版嵁锛屽叾涓殑绌哄�煎瓧娈典篃浼氫骇鐢焁ML鑺傜偣锛屽弬鏁癉ataType鎸囧畾鍘嬬缉缂栫爜鏁版嵁鐨勫舰寮�
+    public static void GenNodeXmlDataFromReader(System.Web.UI.Page DataPage, IDataReader dr, ResponseDataType DataType)
+    {
+        string XMLText = "<xml>\n";
+        while (dr.Read())
+        {
+            XMLText += "<row>";
+            for (int i = 0; i < dr.FieldCount; ++i)
+            {
+                string FldName = dr.GetName(i);
+                if (FldName == "")
+                    FldName = "Fld" + i;
+                XMLText += String.Format("<{0}>{1}</{0}>", FldName, HttpUtility.HtmlEncode(dr.GetValue(i).ToString()));
+            }
+            XMLText += "</row>\n";
+        }
+        XMLText += "</xml>\n";
+
+        ReportDataBase.ResponseData(DataPage, ref XMLText, DataType);
+    }
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+//class JSONReportData 浜х敓鎶ヨ〃闇�瑕佺殑 JSON 鏍煎紡鏁版嵁
+public class JSONReportData
+{
+    //鏍规嵁 DataSet 浜х敓鎻愪緵缁欐姤琛ㄩ渶瑕佺殑JSON鏁版嵁锛屽弬鏁癉ataType鎸囧畾鍘嬬缉缂栫爜鏁版嵁鐨勫舰寮�
+    public static void GenDataSet(System.Web.UI.Page DataPage, DataSet ReportDataSet, ResponseDataType DataType)
+    {
+        string Out = GenDetailText(ReportDataSet);
+        ReportDataBase.ResponseData(DataPage, ref Out, DataType);
+    }
+
+    //鏍规嵁 DataTable 浜х敓鎻愪緵缁欐姤琛ㄩ渶瑕佺殑JSON鏁版嵁锛屽弬鏁癉ataType鎸囧畾鍘嬬缉缂栫爜鏁版嵁鐨勫舰寮�
+    public static void GenDataTable(System.Web.UI.Page DataPage, DataTable dt, ResponseDataType DataType)
+    {
+        DataSet ds = new DataSet();
+        ds.Tables.Add(dt);
+        GenDataSet(DataPage, ds, DataType);
+    }
+
+    //鏍规嵁 DataSet 浜х敓鎻愪緵缁欐姤琛ㄩ渶瑕佺殑JSON鏂囨湰鏁版嵁
+    public static string GenDetailText(DataSet ds)
+    {
+        StringBuilder sbJSONText = new StringBuilder("{\n");
+        foreach (DataTable dt in ds.Tables)
+        {
+            //"recordset":[
+            sbJSONText.Append('"');
+            sbJSONText.Append(dt.TableName); 
+            sbJSONText.Append("\":[\n");
+            foreach (DataRow dr in dt.Rows)
+            {
+                sbJSONText.Append('{');
+                for (int i = 0; i < dt.Columns.Count; ++i)
+                {
+                    if (!dr.IsNull(i))
+                    {
+                        string Value;
+                        if (dt.Columns[i].DataType.IsArray)
+                        {
+                            Value = Convert.ToBase64String((byte[])dr[i]);
+                        }
+                        else
+                        {
+                            Value = dr[i].ToString();
+                            PrepareValueText(ref Value);
+                        }
+                        sbJSONText.AppendFormat("\"{0}\":\"{1}\",", dt.Columns[i].ColumnName, Value);
+                    }
+                }
+                sbJSONText.Remove(sbJSONText.Length - 1, 1); //鍘绘帀姣忕瑪璁板綍鏈�鍚庝竴涓瓧娈靛悗闈㈢殑","
+                sbJSONText.Append("},\n");
+            }
+            sbJSONText.Remove(sbJSONText.Length - 2, 1); //鍘绘帀鏈�鍚庝竴鏉¤褰曞悗闈㈢殑","
+            sbJSONText.Append("],\n");
+        }
+        sbJSONText.Remove(sbJSONText.Length - 2, 1); //鍘绘帀鏈�鍚庝竴璁板綍闆嗗悗闈㈢殑","
+        sbJSONText.Append("}");
+
+        return sbJSONText.ToString();
+    }
+
+    //濡傛灉鏁版嵁涓寘鍚湁JSON瑙勮寖涓殑鐗规畩瀛楃(" \ \r \n \t)锛屽鐗规畩瀛楃鍔� \ 缂栫爜
+    public static void PrepareValueText(ref string ValueText)
+    {
+        bool HasSpecialChar = false;
+        foreach(char ch in ValueText)
+        {
+            if (ch == '"' || ch == '\\' || ch == '\r' || ch == '\n' || ch == '\t')
+            {
+                HasSpecialChar = true;
+                break;
+            }
+        }
+        if (HasSpecialChar)
+        {
+            StringBuilder NewValueText = new StringBuilder();
+            foreach (char ch in ValueText)
+            {
+                if (ch == '"' || ch == '\\' || ch == '\r' || ch == '\n' || ch == '\t')
+                {
+                    NewValueText.Append( '\\');
+                    if (ch == '"' || ch == '\\')
+                        NewValueText.Append( ch  );
+                    else if (ch == '\r')
+                        NewValueText.Append( 'r' );
+                    else if (ch == '\n')
+                        NewValueText.Append( 'n' );
+                    else if (ch == '\t')
+                        NewValueText.Append( 't' );
+                }
+                else
+                {
+                    NewValueText.Append( ch  );
+                }
+            }
+            ValueText = NewValueText.ToString();
+        }
+    }
+}
\ No newline at end of file
diff --git a/WebTM/Properties/PublishProfiles/LAYUI.pubxml.user b/WebTM/Properties/PublishProfiles/LAYUI.pubxml.user
index 9eacd91..346e5a1 100644
--- a/WebTM/Properties/PublishProfiles/LAYUI.pubxml.user
+++ b/WebTM/Properties/PublishProfiles/LAYUI.pubxml.user
@@ -18,10 +18,10 @@
       <publishTime>03/23/2021 16:57:43</publishTime>
     </File>
     <File Include="bin/WebTM.dll">
-      <publishTime>04/22/2021 18:32:43</publishTime>
+      <publishTime>04/23/2021 17:24:02</publishTime>
     </File>
     <File Include="bin/WebTM.pdb">
-      <publishTime>04/22/2021 18:32:43</publishTime>
+      <publishTime>04/23/2021 17:24:02</publishTime>
     </File>
     <File Include="layuiadmin/config.js">
       <publishTime>03/23/2021 16:57:43</publishTime>
@@ -941,6 +941,18 @@
     <File Include="views/component/璇存槑.txt">
       <publishTime>03/23/2021 16:57:43</publishTime>
     </File>
+    <File Include="views/CreateControl.js">
+      <publishTime>04/23/2021 17:23:49</publishTime>
+    </File>
+    <File Include="views/grf/姹囨姤鍗�.grf">
+      <publishTime>04/23/2021 17:05:55</publishTime>
+    </File>
+    <File Include="views/GRInstall.js">
+      <publishTime>04/23/2021 17:23:49</publishTime>
+    </File>
+    <File Include="views/GRUtility.js">
+      <publishTime>04/23/2021 17:23:49</publishTime>
+    </File>
     <File Include="views/home/console.html">
       <publishTime>04/09/2021 09:06:20</publishTime>
     </File>
@@ -954,7 +966,7 @@
       <publishTime>03/23/2021 16:57:43</publishTime>
     </File>
     <File Include="views/index.html">
-      <publishTime>04/21/2021 09:39:21</publishTime>
+      <publishTime>04/22/2021 20:02:50</publishTime>
     </File>
     <File Include="views/senior/echarts/bar.html">
       <publishTime>03/23/2021 16:57:43</publishTime>
@@ -1202,11 +1214,17 @@
     <File Include="views/鐢熶骇宸ュ簭绠$悊/濮斿宸ュ簭姹囨姤鍗�/Sc_StationOutBillMainList.html">
       <publishTime>03/29/2021 19:54:57</publishTime>
     </File>
+    <File Include="views/鐢熶骇宸ュ簭绠$悊/宸ュ簭姹囨姤鍗�/HBarPlanPrint.html">
+      <publishTime>04/23/2021 16:56:48</publishTime>
+    </File>
     <File Include="views/鐢熶骇宸ュ簭绠$悊/宸ュ簭姹囨姤鍗�/Sc_Add_ProcessReportList.html">
-      <publishTime>04/22/2021 19:52:57</publishTime>
+      <publishTime>04/23/2021 16:59:42</publishTime>
     </File>
     <File Include="views/鐢熶骇宸ュ簭绠$悊/宸ュ簭姹囨姤鍗�/Sc_ProcessReport_PDA.html">
       <publishTime>04/09/2021 17:56:11</publishTime>
+    </File>
+    <File Include="views/鐢熶骇宸ュ簭绠$悊/宸ュ簭姹囨姤鍗�/xmlLBM_ProcessReport.aspx">
+      <publishTime>04/23/2021 16:41:10</publishTime>
     </File>
     <File Include="views/鐢熶骇宸ュ簭绠$悊/宸ュ簭娲惧伐鍗�/Sc_Add_ProcessSendWork.html">
       <publishTime>04/21/2021 16:40:38</publishTime>
@@ -1257,7 +1275,7 @@
       <publishTime>04/09/2021 09:06:20</publishTime>
     </File>
     <File Include="views/杞﹂棿绠$悊/濮斿宸ュ簭鎺ユ敹鍗�/Cj_StationEntrustOutBill.html">
-      <publishTime>04/21/2021 09:39:21</publishTime>
+      <publishTime>04/22/2021 20:02:50</publishTime>
     </File>
     <File Include="views/杞﹂棿绠$悊/濮斿宸ュ簭鎺ユ敹鍗�/Cj_StationEntrustOutBillList.html">
       <publishTime>04/08/2021 10:57:44</publishTime>
@@ -1272,10 +1290,10 @@
       <publishTime>04/08/2021 10:57:44</publishTime>
     </File>
     <File Include="views/杞﹂棿绠$悊/宸ュ簭鍑虹珯鍙戝嚭鍗�/Cj_StationOutBill.html">
-      <publishTime>04/22/2021 17:01:48</publishTime>
+      <publishTime>04/22/2021 20:02:50</publishTime>
     </File>
     <File Include="views/杞﹂棿绠$悊/宸ュ簭鍑虹珯鍙戝嚭鍗�/Cj_StationOutBillList.html">
-      <publishTime>04/22/2021 17:08:14</publishTime>
+      <publishTime>04/22/2021 20:02:50</publishTime>
     </File>
     <File Include="views/杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill.html">
       <publishTime>03/29/2021 20:16:17</publishTime>
@@ -1302,10 +1320,10 @@
       <publishTime>03/23/2021 16:57:43</publishTime>
     </File>
     <File Include="views/杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Cj_StationInBill.html">
-      <publishTime>04/21/2021 09:39:21</publishTime>
+      <publishTime>04/22/2021 20:02:50</publishTime>
     </File>
     <File Include="views/杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Cj_StationInBillList.html">
-      <publishTime>04/21/2021 09:39:21</publishTime>
+      <publishTime>04/22/2021 20:02:51</publishTime>
     </File>
     <File Include="views/杞﹂棿绠$悊/鎶ヨ〃鍒嗘瀽/Qk_OutProcessList.html">
       <publishTime>03/23/2021 16:57:43</publishTime>
diff --git a/WebTM/WebTM.csproj b/WebTM/WebTM.csproj
index 935915f..114f63d 100644
--- a/WebTM/WebTM.csproj
+++ b/WebTM/WebTM.csproj
@@ -64,6 +64,8 @@
     <Content Include="layuiadmin\layui\font\iconfont.ttf" />
     <Content Include="layuiadmin\layui\font\iconfont.woff" />
     <None Include="Properties\PublishProfiles\JFTM.pubxml" />
+    <Content Include="views\CreateControl.js" />
+    <Content Include="views\grf\姹囨姤鍗�.grf" />
     <None Include="Web.Debug.config">
       <DependentUpon>Web.config</DependentUpon>
     </None>
@@ -378,6 +380,8 @@
     <Content Include="views\component\upload\index.html" />
     <Content Include="views\component\util\index.html" />
     <Content Include="views\component\璇存槑.txt" />
+    <Content Include="views\GRInstall.js" />
+    <Content Include="views\GRUtility.js" />
     <Content Include="views\home\console.html" />
     <Content Include="views\home\homepage1.html" />
     <Content Include="views\home\homepage2.html" />
@@ -442,6 +446,8 @@
     <Content Include="views\鍩虹璧勬枡\閲囪喘鍩虹璧勬枡\Gy_Supplier.html" />
     <Content Include="views\妯℃不鍏风鐞哱妯℃不鍏风鐞哱Gy_CheckToolsFileMainList.html" />
     <Content Include="views\妯℃不鍏风鐞哱妯℃不鍏风鐞哱Gy_Mould.html" />
+    <Content Include="views\鐢熶骇宸ュ簭绠$悊\宸ュ簭姹囨姤鍗昞HBarPlanPrint.html" />
+    <Content Include="views\鐢熶骇宸ュ簭绠$悊\宸ュ簭姹囨姤鍗昞xmlLBM_ProcessReport.aspx" />
     <Content Include="views\杞﹂棿绠$悊\宸ュ簭鍑虹珯鍙戝嚭鍗昞Cj_StationOutBill.html" />
     <Content Include="views\杞﹂棿绠$悊\宸ュ簭鍑虹珯鍙戝嚭鍗昞Cj_StationOutBillList.html" />
     <Content Include="views\杞﹂棿绠$悊\宸ュ簭杩涚珯鎺ユ敹鍗昞Cj_StationInBill.html" />
@@ -547,7 +553,16 @@
     <None Include="Properties\PublishProfiles\Web.pubxml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="App_Data\MssqlReportData.cs" />
+    <Compile Include="App_Data\ReportData.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="views\鐢熶骇宸ュ簭绠$悊\宸ュ簭姹囨姤鍗昞xmlLBM_ProcessReport.aspx.cs">
+      <DependentUpon>xmlLBM_ProcessReport.aspx</DependentUpon>
+      <SubType>ASPXCodeBehind</SubType>
+    </Compile>
+    <Compile Include="views\鐢熶骇宸ュ簭绠$悊\宸ュ簭姹囨姤鍗昞xmlLBM_ProcessReport.aspx.designer.cs">
+      <DependentUpon>xmlLBM_ProcessReport.aspx</DependentUpon>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
     <Folder Include="views\浠撳瓨绠$悊\璋冩嫧鍗曟牳瀵筡" />
diff --git a/WebTM/views/CreateControl.js b/WebTM/views/CreateControl.js
new file mode 100644
index 0000000..0722fcc
--- /dev/null
+++ b/WebTM/views/CreateControl.js
@@ -0,0 +1,158 @@
+锘�//1銆佸彉閲� gr_InstallPath 绛夊彿鍚庨潰鐨勫弬鏁版槸鎻掍欢瀹夎鏂囦欢鐨勬墍鍦ㄧ殑缃戠珯鐩綍锛屼竴鑸粠缃戠珯鐨勬牴鐩�
+//   褰曞紑濮嬪鍧�锛屾彃浠跺畨瑁呮枃浠朵竴瀹氳瀛樺湪浜庢寚瀹氱洰褰曚笅銆�
+//2銆乬r_Version 绛夊彿鍚庨潰鐨勫弬鏁版槸鎻掍欢瀹夎鍖呯殑鐗堟湰鍙凤紝濡傛灉鏈夋柊鐗堟湰鎻掍欢瀹夎鍖咃紝搴斾笂浼犳柊鐗�
+//   鏈彃浠跺畨瑁呮枃浠跺埌缃戠珯瀵瑰簲鐩綍锛屽苟鏇存柊杩欓噷鐨勭増鏈彿銆�
+//3銆佹洿澶氳缁嗕俊鎭鍙傝�冨府鍔╀腑鈥滄姤琛ㄦ彃浠�(WEB鎶ヨ〃)->鍦ㄦ湇鍔″櫒閮ㄧ讲鎻掍欢瀹夎鍖呪�濋儴鍒�
+var gr_InstallPath = "grinstall"; //瀹為檯椤圭洰涓簲璇ュ啓浠庢牴鐩綍瀵诲潃鐨勭洰褰曪紝濡俫r_InstallPath="/myapp/report/grinstall"; 
+var gr_Version = "6,0,15,0819";
+
+//浠ヤ笅娉ㄥ唽鍙蜂负鏈満寮�鍙戞祴璇曟敞鍐屽彿锛屾姤琛ㄨ闂湴鍧�涓簂ocalhost鏃跺彲浠ュ幓鎺夎瘯鐢ㄦ爣蹇�
+//璐拱娉ㄥ唽鍚庯紝璇风敤鎮ㄧ殑娉ㄥ唽鐢ㄦ埛鍚嶄笌娉ㄥ唽鍙锋浛鎹笅闈㈠彉閲忎腑鍊�
+var gr_UserName = '閿愭氮鎶ヨ〃鎻掍欢鏈満寮�鍙戞祴璇曟敞鍐�';
+var gr_SerialNo = '8PJH495VA61FLI5TG0L4KB2337F1G7AKLD6LNNA9F9T28IKRU6N33P8Z6XX4BUYB5E9NZ6INMD5T8EN47IX63VV7F9BJHB5ZJQQ6MX3J3V12C4XDHU97SXX6X3VA57KCB6';
+
+//鎶ヨ〃鎻掍欢鐩墠鍙兘鍦�32浣嶆祻瑙堝櫒涓娇鐢�
+var _gr_platform = window.navigator.platform;
+if (_gr_platform.indexOf("64") > 0)
+    alert("閿愭氮Grid++Report鎶ヨ〃鎻掍欢涓嶈兘杩愯鍦�64浣嶆祻瑙堝櫒涓紝鐩稿叧鎶ヨ〃涓庢墦鍗板姛鑳藉皢鏃犳硶姝e父杩愭柊锛岃鏀圭敤32浣嶆祻瑙堝櫒锛�");
+
+//鍖哄垎娴忚鍣�(IE or not)
+var _gr_agent = navigator.userAgent.toLowerCase();
+var _gr_isIE = (_gr_agent.indexOf("msie")>0)? true : false;
+
+var gr_CodeBase;
+if( _gr_isIE )
+    gr_CodeBase = 'codebase="' + gr_InstallPath + '/grbsctl6.cab#Version=' + gr_Version + '"';
+else
+    gr_CodeBase = '';
+
+//鍒涘缓鎶ヨ〃瀵硅薄锛屾姤琛ㄥ璞℃槸涓嶅彲瑙佺殑瀵硅薄锛岃缁嗚鏌ョ湅甯姪涓殑 IGridppReport
+//Name - 鎸囧畾鎻掍欢瀵硅薄鐨処D锛屽彲浠ョ敤js浠g爜 document.getElementById("%Name%") 鑾峰彇鎶ヨ〃瀵硅薄
+//EventParams - 鎸囧畾鎶ヨ〃瀵硅薄鐨勯渶瑕佸搷搴旂殑浜嬩欢锛屽锛�"<param name='OnInitialize' value=OnInitialize> <param name='OnProcessBegin' value=OnProcessBegin>"褰㈠紡锛屽彲浠ユ寚瀹氬涓簨浠�
+function CreateReport(PluginID, EventParams)
+{
+    var typeid;
+    if( _gr_isIE )
+        typeid = 'classid="clsid:396841CC-FC0F-4989-8182-EBA06AA8CA2F" ';
+    else
+        typeid = 'type="application/x-grplugin6-report" ';
+    typeid += gr_CodeBase;
+	document.write('<object id="' + PluginID + '" ' + typeid);
+	document.write(' width="0" height="0" VIEWASTEXT>');
+	if (EventParams != undefined)
+	    document.write(EventParams);
+	document.write('</object>');
+	
+	document.write('<script type="text/javascript">');
+	    document.write(PluginID + '.Register("' + gr_UserName + '", "' + gr_SerialNo + '");');
+	document.write('</script>');
+}
+
+//鐢ㄦ洿澶氱殑鍙傛暟鍒涘缓鎶ヨ〃鎵撳嵃鏄剧ず鎻掍欢锛岃缁嗚鏌ョ湅甯姪涓殑 IGRPrintViewer
+//PluginID - 鎻掍欢鐨処D锛屽彲浠ラ�氳繃 var ReportViewer = document.getElementById("%PluginID%"); 杩欐牱鐨勬柟寮忚幏鍙栨彃浠跺紩鐢ㄥ彉閲�
+//Width - 鎻掍欢鐨勬樉绀哄搴︼紝"100%"涓烘暣涓樉绀哄尯鍩熷搴︼紝"500"琛ㄧず500涓睆骞曞儚绱犵偣
+//Height - 鎻掍欢鐨勬樉绀洪珮搴︼紝"100%"涓烘暣涓樉绀哄尯鍩熼珮搴︼紝"500"琛ㄧず500涓睆骞曞儚绱犵偣
+//ReportURL - 鑾峰彇鎶ヨ〃妯℃澘鐨刄RL
+//DataURL - 鑾峰彇鎶ヨ〃鏁版嵁鐨刄RL
+//AutoRun - 鎸囧畾鎻掍欢鍦ㄥ垱寤轰箣鍚庢槸鍚﹁嚜鍔ㄧ敓鎴愬苟灞曠幇鎶ヨ〃,鍊间负false鎴杢rue
+//ExParams - 鎸囧畾鏇村鐨勬彃浠跺睘鎬ч槓杩�,褰㈠: "<param name="%ParamName%" value="%Value%">"杩欐牱鐨勫弬鏁颁覆
+function CreatePrintViewerEx2(PluginID, Width, Height, ReportURL, DataURL, AutoRun, ExParams)
+{
+    var typeid;
+    if( _gr_isIE )
+        typeid = 'classid="clsid:ABB64AAC-D7E8-4733-B052-1B141C92F3CE" ' + gr_CodeBase;
+    else
+        typeid = 'type="application/x-grplugin6-printviewer"';
+	document.write('<object id="' + PluginID + '" ' + typeid);
+	document.write(' width="' + Width + '" height="' + Height + '">');
+	document.write('<param name="ReportURL" value="' + ReportURL + '">');
+	document.write('<param name="DataURL" value="' + DataURL + '">');
+	document.write('<param name="AutoRun" value=' + AutoRun + '>');
+	document.write('<param name="SerialNo" value="' + gr_SerialNo + '">');
+	document.write('<param name="UserName" value="' + gr_UserName + '">');
+	document.write(ExParams);
+	document.write('</object>');
+}
+
+//鐢ㄦ洿澶氱殑鍙傛暟鍒涘缓鎶ヨ〃鎵撳嵃鏄剧ず鎻掍欢锛岃缁嗚鏌ョ湅甯姪涓殑 IGRDisplayViewer
+//PluginID - 鎻掍欢鐨処D锛屽彲浠ラ�氳繃 var ReportViewer = document.getElementById("%PluginID%"); 杩欐牱鐨勬柟寮忚幏鍙栨彃浠跺紩鐢ㄥ彉閲�
+//Width - 鎻掍欢鐨勬樉绀哄搴︼紝"100%"涓烘暣涓樉绀哄尯鍩熷搴︼紝"500"琛ㄧず500涓睆骞曞儚绱犵偣
+//Height - 鎻掍欢鐨勬樉绀洪珮搴︼紝"100%"涓烘暣涓樉绀哄尯鍩熼珮搴︼紝"500"琛ㄧず500涓睆骞曞儚绱犵偣
+//ReportURL - 鑾峰彇鎶ヨ〃妯℃澘鐨刄RL
+//DataURL - 鑾峰彇鎶ヨ〃鏁版嵁鐨刄RL
+//AutoRun - 鎸囧畾鎻掍欢鍦ㄥ垱寤轰箣鍚庢槸鍚﹁嚜鍔ㄧ敓鎴愬苟灞曠幇鎶ヨ〃,鍊间负false鎴杢rue
+//ExParams - 鎸囧畾鏇村鐨勬彃浠跺睘鎬ч槓杩�,褰㈠: "<param name="%ParamName%" value="%Value%">"杩欐牱鐨勫弬鏁颁覆
+function CreateDisplayViewerEx2(PluginID, Width, Height, ReportURL, DataURL, AutoRun, ExParams)
+{
+    var typeid;
+    if( _gr_isIE )
+        typeid = 'classid="clsid:600CD6D9-EBE1-42cb-B8DF-DFB81977122E" ' + gr_CodeBase;
+    else
+        typeid = 'type="application/x-grplugin6-displayviewer"';
+	document.write('<object id="' + PluginID + '" ' + typeid);
+	document.write(' width="' + Width + '" height="' + Height + '">');
+	document.write('<param name="ReportURL" value="' + ReportURL + '">');
+	document.write('<param name="DataURL" value="' + DataURL + '">');
+	document.write('<param name="AutoRun" value=' + AutoRun + '>');
+	document.write('<param name="SerialNo" value="' + gr_SerialNo + '">');
+	document.write('<param name="UserName" value="' + gr_UserName + '">');
+	document.write(ExParams);
+	document.write('</object>');
+}
+
+//浠� ReportDesigner 涓� ID 鍒涘缓鎶ヨ〃璁捐鍣ㄦ彃浠�(Designer)锛岃缁嗚鏌ョ湅甯姪涓殑 IGRDesigner
+//Width - 鎻掍欢鐨勬樉绀哄搴︼紝"100%"涓烘暣涓樉绀哄尯鍩熷搴︼紝"500"琛ㄧず500涓睆骞曞儚绱犵偣
+//Height - 鎻掍欢鐨勬樉绀洪珮搴︼紝"100%"涓烘暣涓樉绀哄尯鍩熼珮搴︼紝"500"琛ㄧず500涓睆骞曞儚绱犵偣
+//LoadReportURL - 璇诲彇鎶ヨ〃妯℃澘鐨刄RL锛岃繍琛屾椂浠庢URL璇诲叆鎶ヨ〃妯℃澘鏁版嵁骞跺姞杞藉埌璁捐鍣ㄦ彃浠�
+//SaveReportURL - 淇濆瓨鎶ヨ〃妯℃澘鐨刄RL锛屼繚瀛樿璁″悗鐨勭粨鏋滄暟鎹紝鐢辨URL鐨勬湇鍔″湪WEB鏈嶅姟绔皢鎶ヨ〃妯℃澘鎸佷箙淇濆瓨
+//DataURL - 鑾峰彇鎶ヨ〃杩愯鏃舵暟鎹殑URL锛屽湪璁捐鍣ㄤ腑杩涘叆鎵撳嵃瑙嗗浘涓庢煡璇㈣鍥炬椂浠庢URL鑾峰彇鎶ヨ〃鏁版嵁
+//ExParams - 鎸囧畾鏇村鐨勬彃浠跺睘鎬ч槓杩�,褰㈠: "<param name="%ParamName%" value="%Value%">"杩欐牱鐨勫弬鏁颁覆
+function CreateDesignerEx(Width, Height, LoadReportURL, SaveReportURL, DataURL, ExParams)
+{
+    var typeid;
+    if( _gr_isIE )
+        typeid = 'classid="clsid:CE666189-5D7C-42ee-AAA4-E5CB375ED3C7" ' + gr_CodeBase;
+    else
+        typeid = 'type="application/x-grplugin6-designer"';
+
+
+	document.write('<object id="ReportDesigner" ' + typeid);
+	document.write(' width="' + Width + '" height="' + Height + '">');
+	document.write('<param name="LoadReportURL" value="' + LoadReportURL + '">');
+	document.write('<param name="SaveReportURL" value="' + SaveReportURL + '">');
+	document.write('<param name="DataURL" value="' + DataURL + '">');
+	document.write('<param name="SerialNo" value="' + gr_SerialNo + '">');
+	document.write('<param name="UserName" value="' + gr_UserName + '">');
+	document.write(ExParams);
+	document.write('</object>');
+}
+
+//浠� ReportViewer 涓� ID 鍒涘缓鎶ヨ〃鎵撳嵃鏄剧ず鍣ㄦ彃浠�(PrintViewer)锛屽弬鏁拌鏄庡弬鑰� CreatePrintViewerEx2
+function CreatePrintViewerEx(Width, Height, ReportURL, DataURL, AutoRun, ExParams)
+{
+    CreatePrintViewerEx2("ReportViewer", Width, Height, ReportURL, DataURL, AutoRun, ExParams)
+}
+
+//浠� ReportViewer 涓� ID 鍒涘缓鎶ヨ〃鏌ヨ鏄剧ず鍣ㄦ彃浠�(DisplayViewer)锛屽弬鏁拌鏄庡弬鑰� CreateDisplayViewerEx2
+function CreateDisplayViewerEx(Width, Height, ReportURL, DataURL, AutoRun, ExParams)
+{
+    CreateDisplayViewerEx2("ReportViewer", Width, Height, ReportURL, DataURL, AutoRun, ExParams)
+}
+
+//浠� ReportViewer 涓� ID 鍒涘缓鎶ヨ〃鎵撳嵃鏄剧ず鍣ㄦ彃浠�(PrintViewer)锛屾彃浠跺ぇ灏忎负100%鍏呮弧浣嶇疆鍖哄煙锛屾彃浠跺垱寤哄悗浼氳嚜鍔ㄨ繍琛岋紝鍙傛暟璇存槑鍙傝�� CreatePrintViewerEx2
+function CreatePrintViewer(ReportURL, DataURL)
+{
+    CreatePrintViewerEx("100%", "100%", ReportURL, DataURL, true, "");
+}
+
+//浠� ReportViewer 涓� ID 鍒涘缓鎶ヨ〃鏌ヨ鏄剧ず鍣ㄦ彃浠�(DisplayViewer)锛屾彃浠跺ぇ灏忎负100%鍏呮弧浣嶇疆鍖哄煙锛屾彃浠跺垱寤哄悗浼氳嚜鍔ㄨ繍琛岋紝鍙傛暟璇存槑鍙傝�� CreateDisplayViewerEx2
+function CreateDisplayViewer(ReportURL, DataURL)
+{
+    CreateDisplayViewerEx("100%", "100%", ReportURL, DataURL, true, "");
+}
+
+//浠� ReportDesigner 涓� ID 鍒涘缓鎶ヨ〃璁捐鍣ㄦ彃浠�(Designer)锛屾彃浠跺ぇ灏忎负100%鍏呮弧浣嶇疆鍖哄煙锛屽弬鏁拌鏄庡弬鑰� CreateDesignerEx
+function CreateDesigner(LoadReportURL, SaveReportURL, DataURL)
+{
+    CreateDesignerEx("100%", "100%", LoadReportURL, SaveReportURL, DataURL, "");
+}
\ No newline at end of file
diff --git a/WebTM/views/GRInstall.js b/WebTM/views/GRInstall.js
new file mode 100644
index 0000000..74b7a95
--- /dev/null
+++ b/WebTM/views/GRInstall.js
@@ -0,0 +1,50 @@
+锘�//鍦ㄧ綉椤典腑寮曠敤姝ゆ枃浠朵箣鍓嶏紝搴旇鍏堝紩鐢–reateControl.js
+//document.write("<script type='text/javascript' src='CreateControl.js'></script>");
+
+//鎻掑叆涓�涓姤琛ㄥ璞★紝鐢ㄦ潵鍒ゆ柇鎻掍欢鏄惁宸茬粡瀹夎锛屾垨鏄惁闇�瑕佸畨瑁呮洿鏂扮増鏈�
+//姝ゅ嚱鏁板簲璇ュ湪缃戦〉鐨�<head>涓皟鐢紝鍏蜂綋璇风湅渚嬪瓙 ReportHome.htm 涓殑鐢ㄦ硶
+function Install_InsertReport()
+{
+    var typeid;
+    if( _gr_isIE )
+        typeid = 'classid="clsid:396841CC-FC0F-4989-8182-EBA06AA8CA2F" ';
+    else
+        typeid = 'type="application/x-grplugin6-report" ';
+    typeid += gr_CodeBase;
+	document.write('<object id="_ReportOK" ' + typeid);
+	document.write(' width="0" height="0" VIEWASTEXT>');
+	document.write('</object>');
+}
+
+//鐢ㄦ潵鍒ゆ柇鎻掍欢鏄惁宸茬粡瀹夎锛屾垨鏄惁闇�瑕佸畨瑁呮洿鏂扮増鏈�傚鏋滈渶瑕佸畨瑁咃紝鍒欏湪缃戦〉涓彃鍏ュ畨瑁呯浉鍏崇殑鏂囧瓧鍐呭
+//濡傛灉鎻掍欢宸茬粡瀹夎涓斾篃涓嶈鏇存柊锛屽垯杩斿洖 true锛屽弽涔嬩负 false銆�
+//姝ゅ嚱鏁板簲璇ュ湪缃戦〉鐨�<body>寮�濮嬩綅缃璋冪敤锛屽叿浣撹鐪嬩緥瀛� ReportHome.htm 涓殑鐢ㄦ硶
+function Install_Detect()
+{
+    var _ReportOK = document.getElementById("_ReportOK");
+    if (_ReportOK.Register == undefined) //if ((_ReportOK == null) || (_ReportOK.Register == undefined))
+    {
+        document.write('<div style="width: 100%; background-color: #fff8dc; text-align: center; vertical-align: middle; line-height: 20pt; padding-bottom: 12px; padding-top: 12px;">');
+            document.write('<strong> 姝ょ綉绔欓渶瑕佸畨瑁� 閿愭氮鎶ヨ〃鎻掍欢 鎵嶈兘淇濊瘉鍏舵甯歌繍琛�<br /></strong>');
+            
+        if( _gr_isIE )
+            document.write('<strong><span style="color: #ff0000"> 濡傛祻瑙堝櫒鐨勯《閮ㄦ垨搴曢儴鍑虹幇鎻愮ず鏉★紝宸﹂敭鐐瑰嚮鎻愮ず鏉″苟杩愯鍔犺浇椤癸紝鎸夋鏂瑰紡瀹夎鏈�绠�渚�</span><br /></strong>');
+            
+            document.write('<a href="' + gr_InstallPath + '/grbsctl6.exe"><span style="color: #ff0000"><strong>鐐瑰嚮姝ゅ涓嬭浇閿愭氮鎶ヨ〃鎻掍欢瀹夎鍖�<br /></strong></span></a>');
+            document.write('閿愭氮鎶ヨ〃鎻掍欢瀹夎鍚庯紝<a href="#" onclick="javascript:document.location.reload();">鐐瑰嚮姝ゅ</a> 閲嶆柊鍔犺浇姝ょ綉绔�');
+        document.write('</div>');
+        return false;
+    }
+    else if ((_ReportOK.Utility.ShouldUpdatePlugin == undefined) || _ReportOK.Utility.ShouldUpdatePlugin(gr_Version) == true)  //妫�鏌ユ槸鍚﹀簲璇ヤ笅杞芥柊鐗堟湰绋嬪簭
+    {
+        document.write('<div style="width: 100%; background-color: #fff8dc; text-align: center; vertical-align: middle; line-height: 20pt; padding-bottom: 12px; padding-top: 12px;">');
+            document.write('<strong> 姝ょ綉绔欓渶瑕佸崌绾у畨瑁� 閿愭氮鎶ヨ〃鎻掍欢 鎵嶈兘淇濊瘉鍏舵甯歌繍琛�<br /></strong>');
+            document.write('<a href="' + gr_InstallPath + '/grbsctl6.exe"><span style="color: #ff0000"><strong>鐐瑰嚮姝ゅ涓嬭浇閿愭氮鎶ヨ〃鎻掍欢瀹夎鍖�<br /></strong></span></a>');
+            document.write('鎻掍欢瀹夎鏃跺繀椤诲叧闂綉椤电獥鍙o紝鐐瑰嚮鏈綉椤电獥鍙g殑鍏抽棴鎸夐挳杩涜鍏抽棴锛屽畨瑁呭畬鎴愬悗鍐嶉噸鏂版墦寮�鏈綉椤�<br />');
+            document.write('濡傚畨瑁呬腑鍑虹幇鈥滀笉鑳芥墦寮�瑕佸啓鍏ョ殑鏂囦欢...鈥濈殑鎻愮ず鏃讹紝璇峰皢缃戦〉绐楀彛鍏抽棴锛岀劧鍚庣偣鍑烩�滈噸璇曗�濇寜閽户缁畨瑁�');
+        document.write('</div>');
+        return false;
+    }
+    
+    return true;
+}
diff --git a/WebTM/views/GRUtility.js b/WebTM/views/GRUtility.js
new file mode 100644
index 0000000..78c9c20
--- /dev/null
+++ b/WebTM/views/GRUtility.js
@@ -0,0 +1,109 @@
+锘�//鐢变笁鍘熻壊鍊煎悎鎴愰鑹叉暣鏁板��
+function ColorFromRGB(red, green, blue)
+{
+    return red + green*256 + blue*256*256;
+}
+
+//鑾峰彇棰滆壊涓殑绾㈣壊鍊硷紝浼犲叆鍙傛暟涓烘暣鏁拌〃绀虹殑RGB鍊�
+function ColorGetR(intColor)
+{
+    return intColor & 255;
+}
+
+//鑾峰彇棰滆壊涓殑缁胯壊鍊硷紝浼犲叆鍙傛暟涓烘暣鏁拌〃绀虹殑RGB鍊�
+function ColorGetG(intColor)
+{
+    return (intColor>>8) & 255;
+}
+
+//鑾峰彇棰滆壊涓殑钃濊壊鍊硷紝浼犲叆鍙傛暟涓烘暣鏁拌〃绀虹殑RGB鍊�
+function ColorGetB(intColor)
+{
+    return (intColor>>16) & 255;
+}
+
+//鍒涘缓 XMLHttpRequest 瀵硅薄
+function CreateXMLHttpRequest() 
+{
+    var xmlhttp;
+    if (window.XMLHttpRequest)
+        xmlhttp = new XMLHttpRequest(); // code for IE7+, Firefox, Chrome, Opera, Safari
+    else
+        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
+    return xmlhttp;
+}
+
+//鎸夊紓姝ユ柟寮忚姹傛姤琛ㄦ暟鎹紝鍦ㄥ搷搴斾簨浠朵腑灏嗘暟鎹姞杞借繘鎶ヨ〃锛岀劧鍚庢墽琛屽悗缁换鍔″嚱鏁�
+function AjaxReportRun(Report, DataUrl, RunFun) 
+{
+    var xmlhttp = CreateXMLHttpRequest();
+    xmlhttp.onreadystatechange = function()
+    {
+        if (xmlhttp.readyState==4 && xmlhttp.status==200)
+        {
+            Report.LoadDataFromAjaxRequest(xmlhttp.responseText, xmlhttp.getAllResponseHeaders()); //鍔犺浇鎶ヨ〃鏁版嵁
+            RunFun(); //鏁版嵁鍔犺浇鍚庨渶瑕佹墽琛岀殑浠诲姟
+        }
+    }
+    xmlhttp.open("POST", encodeURI(DataUrl), true);
+    xmlhttp.send();
+}
+
+//鎸夊紓姝ユ柟寮忚姹傛姤琛ㄦ暟鎹紝鍦ㄥ搷搴斾簨浠朵腑灏嗘暟鎹姞杞借繘鎶ヨ〃锛屽苟鍚姩鎶ヨ〃鏌ョ湅鍣ㄧ殑杩愯
+function AjaxReportViewerStart(ReportViewer, DataUrl) 
+{
+    ReportViewer.Stop(); //棣栧厛鍋滄鎶ヨ〃鐨勮繍琛�
+
+    var xmlhttp = CreateXMLHttpRequest();
+    xmlhttp.onreadystatechange = function()
+    {
+        if (xmlhttp.readyState==4 && xmlhttp.status==200)
+        {
+            ReportViewer.Report.LoadDataFromAjaxRequest(xmlhttp.responseText, xmlhttp.getAllResponseHeaders()); //鍔犺浇鎶ヨ〃鏁版嵁
+            ReportViewer.Start(); //鍚姩鎶ヨ〃杩愯
+        }
+    }
+    xmlhttp.open("POST", encodeURI(DataUrl), true);
+    xmlhttp.send();
+}
+
+//鎸夊紓姝ユ柟寮忚姹傛姤琛ㄦā鏉夸笌鎶ヨ〃鏁版嵁锛屽湪鍝嶅簲浜嬩欢涓皢妯℃澘涓庢暟鎹姞杞借繘鎶ヨ〃锛屽苟鍚姩鎶ヨ〃鏌ョ湅鍣ㄧ殑杩愯
+function AjaxReportViewerStart2(ReportViewer, ReportUrl, DataUrl, ReportUrlMethod) 
+{
+    var xmlhttp = CreateXMLHttpRequest();
+    xmlhttp.onreadystatechange = function()
+    {
+        if (xmlhttp.readyState==4 && xmlhttp.status==200)
+        {
+            ReportViewer.Report.LoadFromStr(xmlhttp.responseText);
+            
+            AjaxReportViewerStart(ReportViewer, DataUrl);
+        }
+    }
+    xmlhttp.open(ReportUrlMethod, encodeURI(ReportUrl), true);
+    xmlhttp.send();
+}
+
+//鎸夊紓姝ユ柟寮忚姹傛姤琛ㄦā鏉匡紝鍦ㄥ搷搴斾簨浠朵腑灏嗘ā鏉垮姞杞�
+function AjaxReportLoad(Report, ReportUrl, ReportUrlMethod) 
+{
+    var xmlhttp = CreateXMLHttpRequest();
+    xmlhttp.onreadystatechange = function()
+    {
+        if (xmlhttp.readyState==4 && xmlhttp.status==200)
+            Report.LoadFromStr(xmlhttp.responseText);
+    }
+    xmlhttp.open(ReportUrlMethod, encodeURI(ReportUrl), true);
+    xmlhttp.send();
+}
+
+
+//鎸夊悓姝ユ柟寮忚姹傛姤琛ㄦ暟鎹紝鏁版嵁璇锋眰鏂规硶璋冪敤鍚庣揣鎺ョ潃璋冪敤鎶ヨ〃杞藉叆鏁版嵁鐨勬柟娉�
+//鐢� Ajax 杞藉叆瀛愭姤琛ㄦ暟鎹繀椤荤敤 HTTP 鍚屾鏁版嵁璇锋眰锛屽嵆閲囩敤鏈嚱鏁�
+function AjaxSyncLoadReportData(Report, DataUrl) 
+{
+    var xmlhttp = CreateXMLHttpRequest();
+    xmlhttp.open("POST", encodeURI(DataUrl), false);
+    xmlhttp.send();
+    Report.LoadDataFromAjaxRequest(xmlhttp.responseText, xmlhttp.getAllResponseHeaders()); //鍔犺浇鎶ヨ〃鏁版嵁
+}
\ No newline at end of file
diff --git "a/WebTM/views/grf/\346\261\207\346\212\245\345\215\225.grf" "b/WebTM/views/grf/\346\261\207\346\212\245\345\215\225.grf"
new file mode 100644
index 0000000..a706b74
--- /dev/null
+++ "b/WebTM/views/grf/\346\261\207\346\212\245\345\215\225.grf"
@@ -0,0 +1,712 @@
+锘縊bject Report
+	Version='6.0.0.6'
+	Object Font
+		Name='瀹嬩綋'
+		Size=105000,0
+		Weight=400
+		Charset=134
+	End
+	Object Printer
+		Height=29.7
+		Oriention=Landscape
+		LeftMargin=1.5
+		TopMargin=0.5
+		RightMargin=1.5
+		BottomMargin=0.5
+	End
+	Object DetailGrid
+		Object Recordset
+			Items Field
+				Item
+					Name='鍗曟嵁鍙�'
+				End
+				Item
+					Name='鏃ユ湡'
+					Type=DateTime
+					Format='yyyy//MM//dd'
+				End
+				Item
+					Name='渚涘簲鍟�'
+				End
+				Item
+					Name='鐗╂枡浠g爜'
+				End
+				Item
+					Name='鐗╂枡鍚嶇О'
+				End
+				Item
+					Name='瑙勬牸鍨嬪彿'
+				End
+				Item
+					Name='璁¢噺鍗曚綅'
+				End
+				Item
+					Name='鏁伴噺'
+					Type=Integer
+				End
+				Item
+					Name='鍗曚环'
+					Type=Currency
+				End
+				Item
+					Name='閲戦'
+					Type=Currency
+				End
+				Item
+					Name='鍚◣鍗曚环'
+					Type=Currency
+				End
+				Item
+					Name='浜よ揣鏃ユ湡'
+					Type=DateTime
+					Format='yyyy//MM//dd'
+				End
+				Item
+					Name='涓氬姟鍛�'
+				End
+				Item
+					Name='琛屽彿'
+				End
+				Item
+					Name='鎵规'
+				End
+				Item
+					Name='璁╂鎺ユ敹'
+				End
+				Item
+					Name='鐢熶骇鏃ユ湡'
+				End
+				Item
+					Name='鍚堟牸鏁伴噺'
+				End
+				Item
+					Name='璁″垝璺熻釜鍗曞彿'
+				End
+				Item
+					Name='閫佽揣鍗曞彿'
+				End
+				Item
+					Name='閲囪喘璁㈠崟鍙�'
+				End
+				Item
+					Name='婧愬崟鍗曞彿'
+				End
+				Item
+					Name='琛ㄥご澶囨敞'
+				End
+				Item
+					Name='棰勮鍒拌揣鏃ユ湡'
+				End
+				Item
+					Name='渚涘簲鍟嗕唬鐮�'
+				End
+				Item
+					Name='Field3'
+				End
+				Item
+					Name='琛ㄤ綋澶囨敞'
+				End
+			End
+		End
+		Items Column
+			Item
+				Name='搴忓彿'
+				Width=0.767292
+			End
+			Item
+				Name='璁″垝璺熻釜鍗曞彿'
+				Width=2.80458
+			End
+			Item
+				Name='鐗╂枡浠g爜'
+				Width=3.20146
+			End
+			Item
+				Name='鐗╂枡'
+				Width=2.98979
+			End
+			Item
+				Name='瑙勬牸鍨嬪彿'
+				Width=3.01625
+			End
+			Item
+				Name='璁¢噺鍗曚綅'
+				Width=1.79917
+			End
+			Item
+				Name='鏁伴噺'
+				Width=1.98438
+			End
+			Item
+				Name='Column2'
+				Width=0.899583
+			End
+			Item
+				Name='Column3'
+				Width=1.905
+			End
+			Item
+				Name='Column4'
+				Width=2.01083
+			End
+			Item
+				Name='Column5'
+				Width=1.98438
+			End
+			Item
+				Name='Column6'
+				Width=3.20146
+			End
+		End
+		Object ColumnContent
+			Height=1.00542
+			Items ColumnContentCell
+				Item
+					Column='搴忓彿'
+					FreeCell=T
+					Items Control
+						Item
+							Type=SystemVarBox
+							Name='SystemVarBox1'
+							Dock=Fill
+							Object Font
+								Name='瀹嬩綋'
+								Weight=400
+								Charset=134
+							End
+							SystemVar=RowNo
+						End
+					End
+				End
+				Item
+					Column='璁″垝璺熻釜鍗曞彿'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					ShrinkFontToFit=T
+					DataField='婧愬崟鍗曞彿'
+				End
+				Item
+					Column='鐗╂枡浠g爜'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					ShrinkFontToFit=T
+					DataField='鐗╂枡浠g爜'
+				End
+				Item
+					Column='鐗╂枡'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					ShrinkFontToFit=T
+					DataField='鐗╂枡鍚嶇О'
+				End
+				Item
+					Column='瑙勬牸鍨嬪彿'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					ShrinkFontToFit=T
+					DataField='瑙勬牸鍨嬪彿'
+				End
+				Item
+					Column='璁¢噺鍗曚綅'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					ShrinkFontToFit=T
+					DataField='鎵规'
+				End
+				Item
+					Column='鏁伴噺'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					ShrinkFontToFit=T
+					DataField='鐢熶骇鏃ユ湡'
+				End
+				Item
+					Column='Column2'
+					FreeCell=T
+					Items Control
+						Item
+							Type=FieldBox
+							Name='FieldBox1'
+							Dock=Fill
+							Object Font
+								Name='瀹嬩綋'
+								Weight=400
+								Charset=134
+							End
+							TextAlign=MiddleCenter
+							DataField='璁¢噺鍗曚綅'
+						End
+					End
+				End
+				Item
+					Column='Column3'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=MiddleCenter
+					DataField='鏁伴噺'
+				End
+				Item
+					Column='Column4'
+					TextAlign=MiddleCenter
+				End
+				Item
+					Column='Column5'
+				End
+				Item
+					Column='Column6'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					FreeCell=T
+					Items Control
+						Item
+							Type=FieldBox
+							Name='FieldBox2'
+							Dock=Fill
+							DataField='琛ㄤ綋澶囨敞'
+						End
+					End
+				End
+			End
+		End
+		Object ColumnTitle
+			Height=1.00542
+			RepeatStyle=OnPage
+			Items ColumnTitleCell
+				Item
+					GroupTitle=F
+					Column='搴忓彿'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=MiddleCenter
+					Text='搴忓彿'
+				End
+				Item
+					GroupTitle=F
+					Column='璁″垝璺熻釜鍗曞彿'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=MiddleCenter
+					Text='璁㈠崟鍙�'
+				End
+				Item
+					GroupTitle=F
+					Column='鐗╂枡浠g爜'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					Text='鐗╂枡浠g爜'
+				End
+				Item
+					GroupTitle=F
+					Column='鐗╂枡'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					Text='鐗╂枡鍚嶇О'
+				End
+				Item
+					GroupTitle=F
+					Column='瑙勬牸鍨嬪彿'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					Text='瑙勬牸鍨嬪彿'
+				End
+				Item
+					GroupTitle=F
+					Column='璁¢噺鍗曚綅'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					Text='鎵规鍙�'
+				End
+				Item
+					GroupTitle=F
+					Column='鏁伴噺'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					Text='鐢熶骇鏃ユ湡'
+				End
+				Item
+					GroupTitle=F
+					Column='Column2'
+					Object Font
+						Name='瀹嬩綋'
+						Size=82500,0
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					Text='璁¢噺鍗曚綅'
+				End
+				Item
+					GroupTitle=F
+					Column='Column3'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=MiddleCenter
+					Text='閫佽揣鏁伴噺'
+				End
+				Item
+					GroupTitle=F
+					Column='Column4'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=MiddleCenter
+					Text='鍖呰鏁�*瀹氶噺'
+				End
+				Item
+					GroupTitle=F
+					Column='Column5'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=MiddleCenter
+					Text='绛炬敹鏁伴噺'
+				End
+				Item
+					GroupTitle=F
+					Column='Column6'
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					WordWrap=T
+					TextAlign=MiddleCenter
+					Text='澶囨敞'
+				End
+			End
+		End
+	End
+	Items ReportHeader
+		Item
+			Name='ReportHeader1'
+			Height=5.60917
+			Items Control
+				Item
+					Type=MemoBox
+					Name='MemoBox3'
+					Left=7.59354
+					Top=1.5875
+					Width=11.6152
+					Height=0.873125
+					Object Border
+						Styles=[DrawBottom]
+					End
+					Object Font
+						Name='瀹嬩綋'
+						Size=180000,0
+						Bold=T
+						Charset=134
+					End
+					TextAlign=TopCenter
+					Text='閫�     璐�    娓�    鍗昞r\n'
+				End
+				Item
+					Type=Barcode
+					Name='Barcode1'
+					Left=21.0079
+					Top=0.608542
+					Width=3.59833
+					Height=2.80458
+					BarcodeType=QRCode
+					Text='[#鍗曟嵁鍙�#]'
+					Object Font
+						Name='瀹嬩綋'
+						Size=82500,0
+						Weight=400
+						Charset=134
+					End
+				End
+				Item
+					Type=MemoBox
+					Name='MemoBox4'
+					Left=0.396875
+					Top=0.740833
+					Width=15.0019
+					Height=0.79375
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					Text='渚涘簲鍟�:[#渚涘簲鍟�#]'
+				End
+				Item
+					Type=MemoBox
+					Name='MemoBox6'
+					Left=0.396875
+					Top=2.51354
+					Width=14.605
+					Height=0.6
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=TopLeft
+					Text='鍘熼�佽揣鍗曞彿:[#閫佽揣鍗曞彿#]'
+				End
+				Item
+					Type=MemoBox
+					Name='MemoBox7'
+					Left=0.396875
+					Top=3.09563
+					Width=8.20208
+					Height=0.6
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=TopLeft
+					Text='鍗曟嵁鍙�:[#鍗曟嵁鍙�#]'
+				End
+				Item
+					Type=MemoBox
+					Name='MemoBox10'
+					Left=0.396875
+					Top=3.70417
+					Width=14.605
+					Height=0.6
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=TopLeft
+					Text='鏀惰揣鍦板潃锛氭禉姹熺渷鍙板窞甯傛姹熷尯寮�鍙戝ぇ閬撲笢娈�818鍙穃r'
+				End
+				Item
+					Type=MemoBox
+					Name='MemoBox11'
+					Left=12.7
+					Top=3.09563
+					Width=6.40292
+					Height=0.6
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					Text='渚涘簲鍟嗙紪鐮侊細[#渚涘簲鍟嗕唬鐮�#]'
+				End
+				Item
+					Type=MemoBox
+					Name='MemoBox12'
+					Left=0.396875
+					Top=4.31271
+					Width=8.20208
+					Height=0.6
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=TopLeft
+					Text='閫佽揣鏃ユ湡锛歔#鏃ユ湡#]'
+				End
+				Item
+					Type=MemoBox
+					Name='MemoBox13'
+					Left=0.396875
+					Top=4.92125
+					Width=8.20208
+					Height=0.6
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=TopLeft
+					Text='鏀惰揣鑱旂郴浜猴細榛勫缓'
+				End
+				Item
+					Type=MemoBox
+					Name='MemoBox14'
+					Left=12.7
+					Top=4.92125
+					Width=8.20208
+					Height=0.6
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=TopLeft
+					Text='鐢佃瘽锛�13185687491'
+				End
+				Item
+					Type=PictureBox
+					Name='PictureBox1'
+					Left=0.396875
+					Top=0.211667
+					Width=2.80458
+					Height=0.582083
+					Picture=-2055
+iVBORw0KGgoAAAANSUhEUgAAAEwAAAAbCAYAAADWHGlkAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAecSURBVGhD7Vlr
+bFRFFJ5uCxgkgcTE3/pDfxjjD02MGAx9v0tEEjX6S4yAUUGiiRA0RhRE+tjubktLy0MNAgqFBugD2/IKpQ+00G5LKWxpaUsLbdFS+6KPPZ4zc27v3b23tDUgkPAlX27v
+uefMnfl27syZU1Hd5QFPRw/0DNwCDbXtLVDXot8PDXfDpRt/Q3Pvdbbo6B/thbOtHVB77Rq4Day96obW7r/YS8dQXx+cbz8Gde3FJha3V8Ch1mr08ipnAyraPOBuu34H
+drCnQlPbTWjq7uS7O8PrHQVPYx1c6qjHN5vfbYQQ89NARCVCjruNTWiMcIF47Xu+AzjdPIg2ByzfkcMWHU8t2wMiLBlEqN2XYekwb/EO9tJRPzqGz7OR2yyYCbbwDAhL
+L2VvHSKSntN7iElmhiSxp4IITUSm8N3kEBGZIIKz+G5iCBGSDAGxLiiob2cTQECcEwIMHai42g8iLhW+zCpmi8K1zk4ciANscQ6McfnQhhQxDrDnn2ZvhSvDo2CLN/vr
+dIIITzX90gEx2+Rzatccg8QxGCEiU0HEOvhucohQ7G/U5P6PBGNMXTCcutTJPINgslPh+nSuaO7HDjlg9a5ytig8s/RHGWuLTYMAEsFAEtFGz+Kz2Vvheu+Aaj8+Vfcn
+wWUM/lDy3gWO8gqOUAiK5ndpPvF0NRDbMEJE4bIQ6+S7ySFCUeDIyT9hFCxJdsRXMPyVI/wFc8Kne8rYAjDqpbXILjsqIvBl4+uLRvzF6Fm0HS40XeQogK4ebAsHKKKt
+YnAtwraoP08kbOEIhVnRO6V93M+fIYnsqTB9wVJQMDvfTYz/LJinpRMHjoLEuGDlznxYe6gaeR7WHkbidVNBCXZ4C7btgo+SjnCUEiwQhXx+5c/K38B1edUQnHoc28TB
+hvh2XgqGIq/LP8f+dGXmKhoxfcFQ9HspWFbORTlTYtebd04NB6pKpWBPv/8bW5Rg1P4nGSfZ4ovRsVGMycABp8LAyBBblWAiIpnvJscDJ9jqnQW4djmhqqWRLWZ4vV4p
+6uxFGWzRBVvhOsYWM15Yk4OzzAmdV1rYwoJFPsyCZW5HPxd0D1GcVbKnbDTDRPg2+TdhXLC0iQVbmoyC4SbT1a5vMlIwzPf64TbgRgu3LWjEA7eGPRJsmoIty96Dfg48
+/uhHKCuQYDbMxzRMRbB3NxRKwS6160exWXGYh2E7r3y9FxauOQyvrTniwwVf6BsLYfqCUVpxDwVbzoI1dQ6yxRokWGCsvvZMRbC3NxyVgtW19LAFYCYJRv3CXEkyCtML
+IyP9jkbTFgz9/w/Bmrv62WINJZje1nQEu9CqH95lWoFxcsbGU8avkthx+okzfcFI9LskWHnzwH0RrLZN/9w1wUgEEUvHHj9i7mbE9AW7i7tkFX4aSjB9EV6WvXvqgsXp
+HZmKYG99U4SDdcDlJr1kowRzwdxFKTAvgWj34dw4vb+E+ypYQ3cNCpYGn/9SxBaAVRm7ceY4obvTtw7lDxpk0GL9PDklwTYXyMH2lJ9li1r0KXFtHByB2mEz3UgjHgn2
+8AjmhYMNx3FRdcFn+/RPcsVPp+RC6+64c1WT2p7zRhrf6YJ9eAfBXvyuWJaGOj16pj8zPhsH9ABl+sWeG2xiwQzlnZe+Ooo+aXDYXcMWgPW5NSASXPDOtjNsMaOsxS1n
+2JPv7WWLLtiq7eaqqoY5r6M40Q4YGBxgC86wmAflLBmShANwwLKsEsitbIQjf1yRAtLh13H4LPxw9Dg2lCYH3tHXxWEAZ1qapS0A/Tbuq4XkA5WQcqBinN8WnoLZCRTn
+hMWbfuUoXbD56/ZDSk65T0zK78WwOvecnF0iLBXPohyEkJk+vst+phLsOYYYA43QBEvZX2rpm3jwT/ZUIMEowT5SVgWZqENWpceHGeUe5acJRp8g1ZSIgSiETdas8KWh
+VOyjop5THqY1DI8N4KBUsU9WN2OIVO5Rf9tQZIGfMe12ha0NHKULJn3xmeZP9wEUE041NicELdnKEQpyl6T8C4VUaYSKGY+PTmVPBRKM2lHv0PwM/lF+uyp9adi+zPhZ
+Bx++ulH50RkqIF6rmOoVTEoO6Uq1Kymo4RPV8NjiTLm2kbjGWBWvEkoR6oQx7xhHANzoxZxOJp7mqqmqxOLf+CzlYC5HKMyUFVeKwf74xakY389PE8wWl272RYo43wIl
+Ja6B6G9ZzSX/CPW5ChGGs4jEkc4GB75KsaKd8OwHvqVm2gyKMBOnX9B68HhFfrz9BPsrNI5QTV9v30SasdjmyIBvfjcjCo9G/NwUQ8QYI6Rg8tkEAkSls6eCCLX206ht
+go8EY0xdsJc3gwjGc1QwrmFWDLHD40vS4Z8R3zxHK9/MoMZoXQnG9ScYB0uken0Ufq549Ro+R0L9bS8+x3bJx4ox6fDcm+b/DwaFZlj7a0SBjBAh3I+JuNDvfwALaGJY
++GkM3qz89p2vgRK3B4rdly1Zgs9vDtH2bq550b/CWvv7oKisFvbXnYaculLJzLwLcKiwEMqu6qmKhlu4WWwtqLNkVr4bcopPQdewuWSUdaLBMmaceXXsqbDvZJG1H3NL
+/kXDiLywq+SEpZ/GjIJ69AP4F1sn4ukxmV+HAAAAAElFTkSuQmCC
+				End
+				Item
+					Type=MemoBox
+					Name='MemoBox15'
+					Left=12.7
+					Top=4.33917
+					Width=8.20208
+					Height=0.6
+					Object Font
+						Name='瀹嬩綋'
+						Weight=400
+						Charset=134
+					End
+					TextAlign=TopLeft
+					Text='棰勮鍒拌揣鏃ユ湡锛歔#棰勮鍒拌揣鏃ユ湡#]'
+				End
+			End
+			RepeatOnPage=T
+		End
+	End
+	Items ReportFooter
+		Item
+			Name='ReportFooter1'
+			Height=3.41313
+			Items Control
+				Item
+					Type=ShapeBox
+					Name='ShapeBox1'
+					Left=0.132292
+					Top=0.396875
+					Width=26.4054
+					Height=1.19063
+				End
+				Item
+					Type=StaticBox
+					Name='StaticBox3'
+					Left=0.211667
+					Top=2.40771
+					Width=3.38667
+					Height=0.582083
+					Text='閫佽揣浜猴細'
+				End
+				Item
+					Type=StaticBox
+					Name='StaticBox4'
+					Left=16.4042
+					Top=2.40771
+					Width=3.20146
+					Height=0.582083
+					Text='鏀惰揣浜猴細'
+				End
+				Item
+					Type=MemoBox
+					Name='MemoBox16'
+					Left=0.211667
+					Top=0.502708
+					Width=26.1938
+					Height=0.978958
+					Object Font
+						Name='瀹嬩綋'
+						Size=120000,0
+						Weight=400
+						Charset=134
+					End
+					Text='澶囨敞锛歔#琛ㄥご澶囨敞#]'
+				End
+			End
+			RepeatOnPage=T
+		End
+	End
+End
diff --git "a/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/HBarPlanPrint.html" "b/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/HBarPlanPrint.html"
new file mode 100644
index 0000000..0f5a41b
--- /dev/null
+++ "b/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/HBarPlanPrint.html"
@@ -0,0 +1,76 @@
+锘�<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <title>鎵撳嵃</title>
+    <script src="../CreateControl.js"></script>
+    <script src="../GRInstall.js"></script>
+    <script src="../GRUtility.js"></script>
+    <style type="text/css">
+        html, body {
+            margin: 0;
+            height: 100%;
+        }
+    </style>
+    <script type="text/javascript">
+
+    function getUrlVars() {
+        var vars = [], hash;
+        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
+        for (var i = 0; i < hashes.length; i++) {
+            hash = hashes[i].split('=');
+            vars.push(hash[0]);
+            vars[hash[0]] = hash[1];
+        }
+        return vars;
+    }
+    //鍦ㄧ綉椤靛垵濮嬪姞杞芥椂鍚戞姤琛ㄦ彁渚涙暟鎹�
+    function window_onload() {
+        var ReportViewer = document.getElementById("ReportViewer");
+        // ReportViewer.Stop();
+        var Report = ReportViewer.Report;
+        //寮�鍚姤琛ㄧ敓鎴愯繘搴︽潯鏄剧ず
+        //ReportViewer.Report.ShowProgressUI = true;
+        Report.OnPrintBegin = OnPrintBegin;
+        Report.OnPrintEnd = OnPrintEnd;
+
+        ReportViewer.Start();
+    }
+    //function OnPrintEnd() {
+    //    if (PrintCount == 0) {
+    //        var LCStatus = sessionStorage.getItem("LCStatus");
+    //        if (LCStatus == "Print")//鎵撳嵃鐘舵��
+    //        {
+    //            SaveLabelPrint(sessionStorage.getItem("LabelJson"));
+    //            PrintCount = 1;
+    //        }
+    //    }
+
+    //}
+    //function OnPrintBegin() {
+
+    //}
+    </script>
+</head>
+<body>
+    <script type="text/javascript">
+        var PrintCount = 0;
+        var params = getUrlVars();
+        var value = params[params[0]];
+        var Type = params[params[1]];
+        var OpenTmp = params[params[2]];
+        switch (Type) {
+            //case "HBarCodePrint"://鐗╂枡鏉$爜鎵撳嵃
+            //    //CreateDisplayViewerEx("100%", "100%", "../../views/grf/" + OpenTmp + ".grf", "../../views/SRM/xmlSRM_Web_BarCodeBillList.aspx?linterid=" + value, true, "");
+            //    CreateDisplayViewerEx("100%", "100%", "../../views/grf/" + OpenTmp + ".grf", "xmlSRM_Web_BarCodeBillList.aspx?linterid=" + value, true, "");
+            //     break;
+            case "HProcessReport"://宸ュ簭姹囨姤鍗曟墦鍗�
+                CreateDisplayViewerEx("100%", "100%", "../../views/grf/" + OpenTmp + ".grf", "xmlLBM_ProcessReport.aspx?linterid=" + value, true, "");
+                break;
+            //case "HPOOrderBill"://閲囪喘璁㈠崟鍗曟墦鍗�
+            //    CreateDisplayViewerEx("100%", "100%", "../../views/grf/" + OpenTmp + ".grf", "xmlSRM_POInStockBill.aspx?linterid=" + value, true, "");
+            //    break;
+        }
+    </script>
+</body>
+</html>
diff --git "a/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/Sc_Add_ProcessReportList.html" "b/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/Sc_Add_ProcessReportList.html"
index f73381c..74b6155 100644
--- "a/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/Sc_Add_ProcessReportList.html"
+++ "b/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/Sc_Add_ProcessReportList.html"
@@ -21,11 +21,12 @@
 
                                 <button type="button" id="add-btn" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Saver">淇濆瓨</button>
                                 <button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Exit">閫�鍑�</button>
-                                   <button type="button" id="Closeing" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Closeing">鍏抽棴</button>
-                                  <button type="button" id="BackClose" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="BackClose">鍙嶅叧闂�</button>
-                                  <button type="button" id="Auditing" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Auditing">瀹℃牳</button>
-                                  <button type="button" id="BackAudit" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="BackAudit">鍙嶅鏍�</button>
+                                <button type="button" id="Closeing" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Closeing">鍏抽棴</button>
+                                <button type="button" id="BackClose" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="BackClose">鍙嶅叧闂�</button>
+                                <button type="button" id="Auditing" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Auditing">瀹℃牳</button>
+                                <button type="button" id="BackAudit" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="BackAudit">鍙嶅鏍�</button>
                                 <button type="button" id="Printing" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Printing">鎵撳嵃</button>
+
                             </div>
 
                         </div>
@@ -55,14 +56,14 @@
                                                 <div class="layui-col-xs3">
                                                     <label class="layui-form-label">浠诲姟鍗曞彿锛�</label>
                                                     <div class="layui-input-inline">
-                                                        <input class="layui-input" name="HICMOBillNo" id="HICMOBillNo"  autocomplete="off" disabled>
+                                                        <input class="layui-input" name="HICMOBillNo" id="HICMOBillNo" autocomplete="off" disabled>
                                                         <!--<input id="HICMOInterID" name="HICMOInterID" type="hidden" />-->
                                                     </div>
                                                 </div>
                                                 <div class="layui-col-xs3">
                                                     <label class="layui-form-label">杞﹂棿浠g爜锛�</label>
                                                     <div class="layui-input-inline">
-                                                         <input type="text" name="HDeptNumber" id="HDeptNumber" lay-verify="HDeptID" readonly="readonly"  autocomplete="off" class="layui-input">
+                                                        <input type="text" name="HDeptNumber" id="HDeptNumber" lay-verify="HDeptID" readonly="readonly" autocomplete="off" class="layui-input">
                                                     </div>
                                                 </div>
                                             </div>
@@ -74,41 +75,41 @@
                                                     <label class="layui-form-label">杞﹂棿锛�</label>
                                                     <div class="layui-input-inline">
                                                         <input type="text" name="HDeptName" id="HDeptName" lay-verify="HDeptName" autocomplete="off" class="layui-input">
-                                                       
-                                                            <button type="button" id="HDeptID-BT" lay-submit="" class="layui-btn" lay-filter="HDeptID-BT">
-                                                           <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
-                                                              </button>
-                                                   <input id="HDeptID" name="HDeptID" type="hidden" />
-                                                  
+
+                                                        <button type="button" id="HDeptID-BT" lay-submit="" class="layui-btn" lay-filter="HDeptID-BT">
+                                                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+                                                        </button>
+                                                        <input id="HDeptID" name="HDeptID" type="hidden" />
+
                                                     </div>
                                                 </div>
 
-                                                  <!--<div class="layui-col-xs3">
-                                                    <label class="layui-form-label"> 瑙勬牸鍨嬪彿锛�</label>
-                                                    <div class="layui-input-inline">
-                                                        <input class="layui-input" name="HDHDate" lay-verify="HDHDate" id="HDHDate">
-                                                    </div>
-                                                </div>-->
-                                                    <div class="layui-col-xs3">
+                                                <!--<div class="layui-col-xs3">
+                                <label class="layui-form-label"> 瑙勬牸鍨嬪彿锛�</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" name="HDHDate" lay-verify="HDHDate" id="HDHDate">
+                                </div>
+                            </div>-->
+                                                <div class="layui-col-xs3">
                                                     <label class="layui-form-label"> 璁″垝寮�宸ユ棩鏈燂細</label>
                                                     <div class="layui-input-inline">
-                                                        <input class="layui-input" name="HPlanBeginDate" lay-verify="HPlanBeginDate" id="HPlanBeginDate"  autocomplete="off">
-                                           
+                                                        <input class="layui-input" name="HPlanBeginDate" lay-verify="HPlanBeginDate" id="HPlanBeginDate" autocomplete="off">
+
                                                     </div>
                                                 </div>
 
                                                 <div class="layui-col-xs3">
                                                     <label class="layui-form-label"> 璁″垝瀹屽伐鏃ユ湡锛�</label>
                                                     <div class="layui-input-inline">
-                                                        <input class="layui-input" name="HPlanEndDate" lay-verify="HPlanEndDate" id="HPlanEndDate"  autocomplete="off">
-                                                 
+                                                        <input class="layui-input" name="HPlanEndDate" lay-verify="HPlanEndDate" id="HPlanEndDate" autocomplete="off">
+
                                                     </div>
                                                 </div>
 
-                                                  <div class="layui-col-xs3">
+                                                <div class="layui-col-xs3">
                                                     <label class="layui-form-label"> 姹囨姤鏁伴噺锛�</label>
                                                     <div class="layui-input-inline">
-                                                        <input class="layui-input" name="HPlanQty" lay-verify="HPlanQty" id="HPlanQty"  autocomplete="off">
+                                                        <input class="layui-input" name="HPlanQty" lay-verify="HPlanQty" id="HPlanQty" autocomplete="off">
                                                     </div>
                                                 </div>
 
@@ -117,7 +118,7 @@
 
                                         <div class="layui-form-item">
                                             <div class="layui-row">
-                                           
+
                                                 <div class="layui-col-xs8">
                                                     <label class="layui-form-label"> 澶�    娉細</label>
                                                     <div class="layui-input-block">
@@ -127,79 +128,80 @@
                                             </div>
                                         </div>
                                     </div>
-                                            <div class="layui-tab-item">
-                                                <div class="layui-form-item">
-                                                    <div class="layui-row">
-                                                        <div class="layui-col-xs3">
-                                                            <label class="layui-form-label">鍒� 鍗� 浜猴細</label>
-                                                            <div class="layui-input-inline">
-                                                                <input class="layui-input" name="HMaker" id="HMaker" readonly="readonly" autocomplete="off">
-                                                                 <input type="hidden" name="HEmpID" id="HEmpID"  autocomplete="off" class="layui-input">
+                                    <div class="layui-tab-item">
+                                        <div class="layui-form-item">
+                                            <div class="layui-row">
+                                                <div class="layui-col-xs3">
+                                                    <label class="layui-form-label">鍒� 鍗� 浜猴細</label>
+                                                    <div class="layui-input-inline">
+                                                        <input class="layui-input" name="HMaker" id="HMaker" readonly="readonly" autocomplete="off">
+                                                        <input type="hidden" name="HEmpID" id="HEmpID" autocomplete="off" class="layui-input">
 
-                                                            </div>
-                                                        </div>
-                                                        <div class="layui-col-xs3">
-                                                            <label class="layui-form-label">瀹� 鏍� 浜猴細</label>
-                                                            <div class="layui-input-inline">
-                                                                <input class="layui-input" name="HChecker" id="HChecker" readonly="readonly" autocomplete="off">
-                                                            </div>
-                                                        </div>
-                                                        <div class="layui-col-xs3">
-                                                            <label class="layui-form-label">淇敼浜猴細</label>
-                                                            <div class="layui-input-inline">
-                                                                <input class="layui-input" name="HUpDater" id="HUpDater" readonly="readonly" autocomplete="off">
-                                                            </div>
-                                                        </div>
-                                                         <div class="layui-col-xs3">
-                                                            <label class="layui-form-label">鍏抽棴浜猴細</label>
-                                                            <div class="layui-input-inline">
-                                                                <input class="layui-input" name="HCloseMan" id="HCloseMan" readonly="readonly" autocomplete="off">
-                                                            </div>
-                                                        </div>
                                                     </div>
                                                 </div>
-                                                <div class="layui-form-item">
-                                                    <div class="layui-row">
-                                                        <div class="layui-col-xs3">
-                                                            <label class="layui-form-label">鍒跺崟鏃ユ湡锛�</label>
-                                                            <div class="layui-input-inline">
-                                                                <input class="layui-input" name="HMakeDate" id="HMakeDate" readonly="readonly" autocomplete="off">
-                                                            </div>
-                                                        </div>
-                                                        <div class="layui-col-xs3">
-                                                            <label class="layui-form-label">瀹℃牳鏃ユ湡锛�</label>
-                                                            <div class="layui-input-inline">
-                                                                <input class="layui-input" name="HCheckDate" id="HCheckDate" readonly="readonly" autocomplete="off">
-                                                            </div>
-                                                        </div>
-                                                        <div class="layui-col-xs3">
-                                                            <label class="layui-form-label">淇敼鏃ユ湡锛�</label>
-                                                            <div class="layui-input-inline">
-                                                                <input class="layui-input" name="HUpDateDate" id="HUpDateDate" readonly="readonly" autocomplete="off">
-                                                            </div>
-                                                        </div>
-                                                        <div class="layui-col-xs3">
-                                                            <label class="layui-form-label">鍏抽棴鏃ユ湡锛�</label>
-                                                            <div class="layui-input-inline">
-                                                                <input class="layui-input" name="HCloseDate" id="HCloseDate" readonly="readonly" autocomplete="off">
-                                                            </div>
-                                                        </div>
+                                                <div class="layui-col-xs3">
+                                                    <label class="layui-form-label">瀹� 鏍� 浜猴細</label>
+                                                    <div class="layui-input-inline">
+                                                        <input class="layui-input" name="HChecker" id="HChecker" readonly="readonly" autocomplete="off">
+                                                    </div>
+                                                </div>
+                                                <div class="layui-col-xs3">
+                                                    <label class="layui-form-label">淇敼浜猴細</label>
+                                                    <div class="layui-input-inline">
+                                                        <input class="layui-input" name="HUpDater" id="HUpDater" readonly="readonly" autocomplete="off">
+                                                    </div>
+                                                </div>
+                                                <div class="layui-col-xs3">
+                                                    <label class="layui-form-label">鍏抽棴浜猴細</label>
+                                                    <div class="layui-input-inline">
+                                                        <input class="layui-input" name="HCloseMan" id="HCloseMan" readonly="readonly" autocomplete="off">
                                                     </div>
                                                 </div>
                                             </div>
-
+                                        </div>
+                                        <div class="layui-form-item">
+                                            <div class="layui-row">
+                                                <div class="layui-col-xs3">
+                                                    <label class="layui-form-label">鍒跺崟鏃ユ湡锛�</label>
+                                                    <div class="layui-input-inline">
+                                                        <input class="layui-input" name="HMakeDate" id="HMakeDate" readonly="readonly" autocomplete="off">
+                                                    </div>
+                                                </div>
+                                                <div class="layui-col-xs3">
+                                                    <label class="layui-form-label">瀹℃牳鏃ユ湡锛�</label>
+                                                    <div class="layui-input-inline">
+                                                        <input class="layui-input" name="HCheckDate" id="HCheckDate" readonly="readonly" autocomplete="off">
+                                                    </div>
+                                                </div>
+                                                <div class="layui-col-xs3">
+                                                    <label class="layui-form-label">淇敼鏃ユ湡锛�</label>
+                                                    <div class="layui-input-inline">
+                                                        <input class="layui-input" name="HUpDateDate" id="HUpDateDate" readonly="readonly" autocomplete="off">
+                                                    </div>
+                                                </div>
+                                                <div class="layui-col-xs3">
+                                                    <label class="layui-form-label">鍏抽棴鏃ユ湡锛�</label>
+                                                    <div class="layui-input-inline">
+                                                        <input class="layui-input" name="HCloseDate" id="HCloseDate" readonly="readonly" autocomplete="off">
+                                                    </div>
+                                                </div>
+                                            </div>
                                         </div>
                                     </div>
+
+                                </div>
+                            </div>
                         </div>
                         <blockquote class="layui-elem-quote">宸ュ簭娲惧伐鍗�</blockquote>
                         <table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
                         <script type="text/html" id="toolbarDemo">
                             <div class="layui-btn-container">
                                 <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-add"><i class="layui-icon layui-icon-addition"></i>鎷嗗垎</button>
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-del"><i class="layui-icon layui-icon-subtraction"></i>鍒犺</button>-->
+            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-del"><i class="layui-icon layui-icon-subtraction"></i>鍒犺</button>-->
                             </div>
                         </script>
-                        
+
+
                     </form>
                 </div>
                         </div>
@@ -210,6 +212,7 @@
     <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
     <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
     <script>
+      
             function getUrlVars() {
             var vars = [], hash;
             var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
@@ -608,8 +611,12 @@
 
             });
 
-             //鎵撳嵃Printing
-            form.on("submit(Printing)", function (data) { layer.alert("鎴戞槸鎵撳嵃鎸夐挳锛�");});
+            //鎵撳嵃Printing
+            form.on("submit(Printing)", function (data) {
+                layer.alert("鎴戞槸鎵撳嵃鎸夐挳锛佸崟鎹富ID鏄細" + HInterID);
+                window.open("../../views/鐢熶骇宸ュ簭绠$悊/宸ュ簭姹囨姤鍗�/HBarPlanPrint.html?linterid=" + HInterID + "&Type=HProcessReport"+"&OpenTmp=姹囨姤鍗�");
+
+            });
 
             function f_alert(sMsg) {
                 layer.alert(sMsg, { icon: 5 });
diff --git "a/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/xmlLBM_ProcessReport.aspx" "b/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/xmlLBM_ProcessReport.aspx"
new file mode 100644
index 0000000..977170a
--- /dev/null
+++ "b/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/xmlLBM_ProcessReport.aspx"
@@ -0,0 +1,28 @@
+锘�<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="xmlLBM_ProcessReport.aspx.cs" Inherits="WebTM.views.鐢熶骇宸ュ簭绠$悊.宸ュ簭姹囨姤鍗�.xmlLBM_ProcessReport" %>
+
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head runat="server">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <title></title>
+    <script runat="server"> 
+    protected void Page_Load(object sender, EventArgs e)
+    {
+        //鈽呯壒鍒彁绀衡槄锛�
+        //涓嶅悓鐨勬暟鎹簱搴旇閫夌敤涓嶅悓鐨勬姤琛╔ML鏁版嵁鐢熸垚绫伙紝SQL Server鏁版嵁搴撶敤SqlXMLReportData锛孫racle鏁版嵁搴撶敤OracleXMLReportData
+        //OledbXMLReportData閫傚悎浜嶢ccess绛夋湰鍦版暟鎹簱锛屼负浜嗘紨绀烘柟渚匡紝杩欓噷浠嶨rid++Report鐨凙ccess渚嬪瓙鏁版嵁搴撲腑鑾峰彇鎶ヨ〃鏁版嵁
+
+        //OledbXMLReportData.GenOneRecordset(this, "select * from Customers order by CustomerID");
+        //SqlXMLReportData.GenOneRecordset(this, "select * from h_v_Kf_POStockInBillList_K3 where hmainid=1781");
+        SqlXMLReportData.GenOneRecordset(this, "select * from h_v_Sc_ProcessReportList where hmainid=" + Request.Params["linterid"]+ " order by 鐗╂枡浠g爜");
+    }
+</script>
+</head>
+<body>
+    <form id="form1" runat="server">
+        <div>
+        </div>
+    </form>
+</body>
+</html>
diff --git "a/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/xmlLBM_ProcessReport.aspx.cs" "b/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/xmlLBM_ProcessReport.aspx.cs"
new file mode 100644
index 0000000..6d07c7d
--- /dev/null
+++ "b/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/xmlLBM_ProcessReport.aspx.cs"
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace WebTM.views.鐢熶骇宸ュ簭绠$悊.宸ュ簭姹囨姤鍗�
+{
+    public partial class xmlLBM_ProcessReport : System.Web.UI.Page
+    {
+        protected void Page_Load(object sender, EventArgs e)
+        {
+
+        }
+    }
+}
\ No newline at end of file
diff --git "a/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/xmlLBM_ProcessReport.aspx.designer.cs" "b/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/xmlLBM_ProcessReport.aspx.designer.cs"
new file mode 100644
index 0000000..c5c51e0
--- /dev/null
+++ "b/WebTM/views/\347\224\237\344\272\247\345\267\245\345\272\217\347\256\241\347\220\206/\345\267\245\345\272\217\346\261\207\346\212\245\345\215\225/xmlLBM_ProcessReport.aspx.designer.cs"
@@ -0,0 +1,25 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+//     姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+//
+//     瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+//     閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便��
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+
+namespace WebTM.views.鐢熶骇宸ュ簭绠$悊.宸ュ簭姹囨姤鍗�
+{
+    public partial class xmlLBM_ProcessReport
+    {
+
+        /// <summary>
+        /// form1 鎺т欢銆�
+        /// </summary>
+        /// <remarks>
+        /// 鑷姩鐢熸垚鐨勫瓧娈点��
+        /// 鑻ヨ杩涜淇敼锛岃灏嗗瓧娈靛0鏄庝粠璁捐鍣ㄦ枃浠剁Щ鍒颁唬鐮侀殣钘忔枃浠躲��
+        /// </remarks>
+        protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+    }
+}

--
Gitblit v1.9.1