绿豆.Net

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

//根据部件编号,从材料组成中把构成信息读出来
function readRanLiao(pid,xpath)
{
 
    var curNodeParent = XDocument.DOM.selectSingleNode(xpath).parentNode;
    var curNodes = XDocument.DOM.selectNodes(xpath);
    var curPcount = XDocument.DOM.selectSingleNode("/my:温州圣火/my:保存本次生产数量").text;

    curNodes.removeAll();
   
    var pidNodes = XDocument.GetDOM("材料组成-单张表").selectNodes("/dfs:myFields/dfs:dataFields/tns:GetDataResponse/tns:GetDataResult/my:温州圣火/my:模板结构[my:编号 = '" + pid + "']/my:组/my:构成组");
   
    var pidNodesLength,xmlStr = "",xslStr = "";
   
    pidNodesLength = pidNodes.length;
    //XDocument.UI.Alert(pidNodesLength);
   
    if (pidNodesLength > 0)
    {
       while(pidNodesLength > 0)
       {
          var sonpidNode = pidNodes.nextNode();
          xmlStr += sonpidNode.xml;
          pidNodesLength--;
       }
       //数据源
       xmlStr = '<?xml version="1.0" encoding="gb2312"?><根>' + xmlStr + "</根>";
       //XDocument.UI.Alert(xmlStr);
       //转换样式
       xslStr += '<?xml version="1.0" encoding="gb2312"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-05-23T07:44:28" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:fn="usercode"> ';
       xslStr += '<msxsl:script language="javascript" implements-prefix="fn">';
       xslStr += 'function getallcount(count,pcount){return parseFloat(count)*pcount;}</msxsl:script>';
       xslStr += '<xsl:template match="/"><my:结果><xsl:for-each select="根/my:构成组"><my:原料信息组>';
       xslStr += '<my:原料序号><xsl:value-of select="position()"/></my:原料序号>';
       xslStr += '<my:所属部件><xsl:value-of select="my:所属部件1"/></my:所属部件>';
       xslStr += '<my:原料名称><xsl:value-of select="my:名称1"/></my:原料名称>';
       xslStr += '<my:原料规格><xsl:value-of select="my:规格1"/></my:原料规格>';
       xslStr += '<my:原料备注><xsl:value-of select="my:备注1"/></my:原料备注>';
       xslStr += '<my:原料编号><xsl:value-of select="my:编号1"/></my:原料编号>';
       xslStr += '<my:原料单位><xsl:value-of select="my:单位1"/></my:原料单位>';
       xslStr += '<my:原料数量><xsl:value-of select="fn:getallcount(sum(my:数量1),' + curPcount + ')"/></my:原料数量>';
       xslStr += '<my:生产与外购>1</my:生产与外购>';
       xslStr += '<my:计算公式></my:计算公式>';
       xslStr += '</my:原料信息组></xsl:for-each></my:结果></xsl:template>';
       xslStr += '</xsl:stylesheet>';
      
       //XDocument.UI.Alert(xslStr);
      
       var xmlDOM,xslDOM,transDOM;
      
       xmlDOM = XDocument.CreateDOM();
       xmlDOM.loadXML(xmlStr);
       //XDocument.UI.Alert(xmlDOM.xml); 
      
       xslDOM = XDocument.CreateDOM();
       xslDOM.loadXML(xslStr);
       //XDocument.UI.Alert(xslDOM.xml);
      
       transDOM = XDocument.CreateDOM();
       transDOM.loadXML(xmlDOM.transformNode(xslDOM));
       transDOM.setProperty("SelectionNamespaces", 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-05-23T07:44:28" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003"');
       //XDocument.UI.Alert(transDOM.documentElement.xml);
      
       var childs = transDOM.documentElement.selectNodes("/my:结果/my:原料信息组");
      
       var childsLength = childs.length;
       while(childsLength > 0)
       {
          var sonChild = childs.nextNode();
         
          curNodeParent.appendChild(sonChild);
          childsLength--;
       }  
    }
}

posted on 2007-05-15 13:39  杜军  阅读(516)  评论(1编辑  收藏  举报