FineUI 官方论坛

标题: lodop打印程序:附件里有程序改成js这样程序 [打印本页]

作者: shouzhi2007    时间: 2014-9-29 10:02
标题: lodop打印程序:附件里有程序改成js这样程序
本帖最后由 shouzhi2007 于 2014-9-29 11:06 编辑

  1.   public static string GetPrintHtmlJS(string title, string strKacode, string strFixedCode, string strName, string strSpecification, string strMoney, string strDept, string strUseTime, string strPlace, string strNumber, string strListStatus, string strListUnit, string strUseUser, string strDes, int layout, string top, string left, string width, string height, string strHtml)
  2.         {
  3.             var sb = new StringBuilder();
  4.             sb.AppendLine("        function PrintTable(title,layout,strHtml) {");
  5.            
  6.             sb.AppendLine("            LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));");
  7.             sb.AppendLine("            LODOP.NewPage();");
  8.             sb.AppendLine("            LODOP.PRINT_INITA(0,0,378,186, '" + title + "');");

  9.             sb.AppendLine("            LODOP.ADD_PRINT_TEXT(2,41,300,33,"非生产用固定资产条");");
  10.             sb.AppendLine("            LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");");
  11.             sb.AppendLine("            LODOP.SET_PRINT_STYLEA(0,"FontSize",16);");
  12.             sb.AppendLine("            LODOP.SET_PRINT_STYLEA(0,"Alignment",2);");
  13.          
  14.             sb.AppendLine("            LODOP.ADD_PRINT_TEXT(77,196,65,17,"卡片编码");");
  15.             sb.AppendLine("            LODOP.ADD_PRINT_TEXT(96,196,65,17,"使用部门");");
  16.             sb.AppendLine("            LODOP.ADD_PRINT_TEXT(115,197,65,17,"启用日期");");
  17.             sb.AppendLine("            LODOP.ADD_PRINT_TEXT(134,196,65,17,"序号");");
  18.             sb.AppendLine("            LODOP.ADD_PRINT_RECT(151,6,70,20,0,1);");
  19.       
  20.             
  21.             sb.AppendLine("            LODOP.ADD_PRINT_TEXT(153,78,292,17,'" + strPlace + "');");
  22.             sb.AppendLine("            LODOP.ADD_PRINT_TEXT(133,265,105,17,'" + strNumber + "'+"-1");");

  23.             sb.AppendLine("            LODOP.PREVIEW();");
  24.             sb.AppendLine("        };");
  25.            
  26.             sb.AppendFormat("window.setTimeout(function(){{PrintTable('{0}',{1},'{2}');}},100);", title, strKacode, strFixedCode, strName, strSpecification, strMoney, strDept, strUseTime, strPlace, strNumber, strListStatus, strListUnit, strUseUser, strDes, layout, HttpUtility.JavaScriptStringEncode(strHtml));
  27.             return sb.ToString();
  28.         }



  29.         protected void btnPrint_Click(object sender, EventArgs e)
  30.         {
  31.             List<int> ids = GetSelectedDataKeyIDs(Grid1);

  32.             for (int i = 1; i < ids.Count; i++)
  33.             {

  34.                 Non_FixedAssets current = DB.Non_FixedAssetss.Where(eq => ids.Contains(eq.ID)).FirstOrDefault();
  35.                 if (current == null)
  36.                 {
  37.                     // 参数错误,首先弹出Alert对话框然后关闭弹出窗口
  38.                     Alert.Show("参数错误!", String.Empty, ActiveWindow.GetHideReference());
  39.                     return;
  40.                 }

  41.                 var title = "资产条";


  42.                 var strKacode = current.Non_KaCode;
  43.                 var strFixedCode = current.Non_FixedCode;
  44.                 var strName = current.Non_Name;
  45.                 var strSpecification = current.Non_Specification;
  46.                 var strDept = current.Non_Dept;
  47.             

  48.                 var strTable = "";
  49.                 PageContext.RegisterStartupScript(FixedAssets_non.GetPrintHtmlJS(title, strKacode, strFixedCode, strName, strSpecification, strMoney, strDept, strUseTime, strPlace, strNumber, strListStatus, strListUnit, strUseUser, strDes, 1, "10", "15", ""96%"", "88", strTable));
  50.             }
  51.      
  52.         }
复制代码


这个C#代码,改成类似:以下JS代

  1. <script language="javascript" type="text/javascript">
  2.         var LODOP; //声明为全局变量
  3.         function MyPreview() {        
  4.                 LODOP=getLodop();  
  5.                 LODOP.PRINT_INIT("打印控件Lodop功能演示_多页预览");
  6.                 LODOP.SET_PRINT_PAGESIZE(1,500,508,"");        
  7.                 CreateAllPages();
  8.                 LODOP.PREVIEW();
  9.         };
  10.         function CreateAllPages(){        
  11.                 for (i = 1; i < 8; i++) {
  12.                         LODOP.NewPage();
  13.                         LODOP.ADD_PRINT_RECT(10,18,128,160,0,1);               
  14.                         LODOP.ADD_PRINT_TEXT(31,33,111,20,"商品编号:"+document.getElementById("BH"+i).value);               
  15.                         LODOP.ADD_PRINT_TEXT(69,33,111,20,"商品名称:"+document.getElementById("MC"+i).value);
  16.                         LODOP.ADD_PRINT_TEXT(107,33,111,20,"商品数量:"+document.getElementById("SL"+i).value);
  17.                         LODOP.ADD_PRINT_TEXT(146,33,111,20,"商品单价:"+document.getElementById("DJ"+i).value);                        
  18.                 }                        
  19.                
  20.         };        
  21. </script>
复制代码

图片效果




作者: xxdddail    时间: 2014-9-29 12:10
支持一下!!顶!!
作者: shouzhi2007    时间: 2014-10-1 10:31
搞定了                             
作者: shouzhi2007    时间: 2014-10-1 10:32
  1. public static string GetPrintHtmlJS(List<int> ids)
  2.         {
  3.             var sb = new StringBuilder();
  4.             sb.AppendLine("        function PrintTable() {");

  5.             sb.AppendLine("            LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));");
  6.             sb.AppendLine("            LODOP.PRINT_INITA(0,0,378,186, "非生产用固定资产条");");
  7.             sb.AppendLine("           LODOP.SET_PRINT_PAGESIZE(0,1000,500,"");");
  8.             var fSumvalue = 0;
  9.             var PrintTime = 1;
  10.             //取到ids的批量值
  11.             for (int i = 0; i < ids.Count; i++)
  12.             {
  13.                 //从LIST里取值,并强制转化为int型
  14.                 int id = int.Parse(ids[i].ToString());
  15.                 //通过ID查询出值
  16.                 Non_FixedAssets current = DB.Non_FixedAssetss.Where(eq => eq.ID == id).FirstOrDefault();


  17.                 var strKacode = current.Non_KaCode;
  18.                 var strFixedCode = current.Non_FixedCode;
  19.                 var strName = current.Non_Name;
  20.                 var strSpecification = current.Non_Specification;
  21.                 var strDept = current.Non_Dept;
  22.                 var strUseTime = current.Non_UseTime;
  23.                 var strPlace = current.Non_Place;


  24.                 var strNumber = current.Non_Number;
  25.                 var strListStatus = current.Non_Status;
  26.                 var strListUnit = current.Non_Unit;
  27.                 var strUseUser = current.Non_UseUser;
  28.                 var strMoney = current.Non_Money;
  29.                 var strDes = current.Non_DES;
  30.                 fSumvalue = fSumvalue + int.Parse(strNumber);
  31.                 if (fSumvalue < 50)
  32.                 {
  33.                     for (int y = 1; y < int.Parse(strNumber)+1; y++)
  34.                     {
  35.                         //可以用NewPage函数直接强制在新一页的固定位置输出。
  36.                         sb.AppendLine("             LODOP.NewPage();");
  37.                         //以下都是设置
  38.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(2,41,300,33,"非生产用固定资产条");");
  39.                         sb.AppendLine("            LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");");
  40.                         sb.AppendLine("            LODOP.SET_PRINT_STYLEA(0,"FontSize",16);");
  41.                         sb.AppendLine("            LODOP.SET_PRINT_STYLEA(0,"Alignment",2);");
  42.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(56,6,70,20,0,1);");
  43.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(56,75,298,20,0,1);");
  44.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(37,6,70,20,0,1);");
  45.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(37,75,298,20,0,1);");
  46.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(75,263,110,20,0,1);");
  47.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(75,194,70,20,0,1);");
  48.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(75,75,120,20,0,1);");
  49.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(75,6,70,20,0,1);");
  50.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(94,263,110,20,0,1);");
  51.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(94,194,70,20,0,1);");
  52.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(94,75,120,20,0,1);");
  53.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(94,6,70,20,0,1);");
  54.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(113,263,110,20,0,1);");
  55.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(113,194,70,20,0,1);");
  56.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(113,75,120,20,0,1);");
  57.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(113,6,70,20,0,1);");
  58.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(132,263,110,20,0,1);");
  59.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(132,194,70,20,0,1);");
  60.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(132,75,120,20,0,1);");
  61.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(132,6,70,20,0,1);");
  62.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(152,8,65,17,"存放地点");");
  63.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(39,9,65,17,"资产名称");");
  64.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(77,9,65,17,"资产编码");");
  65.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(96,9,65,17,"资产原值");");
  66.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(115,9,65,17,"责任人");");
  67.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(134,9,65,17,"数量");");
  68.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(58,9,65,17,"规格型号");");
  69.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(77,196,65,17,"卡片编码");");
  70.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(96,196,65,17,"使用部门");");
  71.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(115,197,65,17,"启用日期");");
  72.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(134,196,65,17,"序号");");
  73.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(151,6,70,20,0,1);");
  74.                         sb.AppendLine("            LODOP.ADD_PRINT_RECT(151,75,298,20,0,1);");
  75.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(76,79,115,17,'" + strFixedCode + "');");
  76.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(39,79,291,17, '" + strName + "');");
  77.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(115,79,115,17,'" + strUseUser + "');");
  78.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(96,79,115,17,'" + strMoney + "');");
  79.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(134,79,115,17,'" + strNumber + "');");
  80.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(57,80,291,17,'" + strSpecification + "');");
  81.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(78,266,105,17,'" + strKacode + "');");
  82.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(97,265,105,17,'" + strDept + "');");
  83.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(116,265,105,17,'" + strUseTime + "');");
  84.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(153,78,292,17,'" + strPlace + "');");
  85.                         sb.AppendLine("            LODOP.ADD_PRINT_TEXT(133,265,105,17,'" + strNumber + "'+"-"+'"+y+"');");
  86.                     }
  87.                 }
  88.                 else {
  89.                     Alert.ShowInTop("大姐啊!你选择单条数据,数量已经达到:" + fSumvalue + ",所选择的数量大于50,暂时不会打印了!");
  90.                 }
  91.              //   Non_FixedAssets current1 = DB.Non_FixedAssetss.Where(eq => ids.Contains(eq.ID)).FirstOrDefault();
  92.                 //打印次数
  93.                 current.Non_PrintTimes += PrintTime;

  94.                 //更新打印次数
  95.                 DB.SaveChanges();
  96.             }
  97.             if (fSumvalue < 50) {
  98.                 //打印预览
  99.                 Alert.ShowInTop("你已经选择了:" + ids.Count + "条数量!会打印:" + fSumvalue + "次!");
  100.                 sb.AppendLine("            LODOP.PREVIEW();");
  101.             }
  102.             else
  103.             {
  104.                 Alert.ShowInTop("大姐啊!你选择了:" + ids.Count + "条数据,但数量已经达到:" + fSumvalue + ",所选择的数量大于50,暂时不会打印了!");
  105.             }
  106.                
  107.                 sb.AppendLine("        };");

  108.                 sb.AppendFormat("window.setTimeout(function(){{PrintTable();}},100);", ids);
  109.                 return sb.ToString();
  110.             
  111.         }


  112.         protected void btnPrint_Click(object sender, EventArgs e)
  113.         {
  114.          
  115.             //从表格里得到LIST的值
  116.             List<int> ids = GetSelectedDataKeyIDs(Grid1);
  117.          
  118.             PageContext.RegisterStartupScript(FixedAssets_non.GetPrintHtmlJS(ids));
  119.            
  120.          
  121.         }
复制代码





欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4