Esempio n. 1
0
    public static string getQueryXml(OleDbDataReader rst,
                                    string[] strDicFieldList,
                                    string[] strDicNameList,
                                    string[] strDateFieldList,
                                    int int_TotalRecords,
                                    int int_TotalPages,
                                    Boolean blnDicInSv,
                                    string strListName)
    {
      strListName = strListName==null ? Common.XDOC_ROW : strListName;

      ReturnDoc docReturn = new ReturnDoc();
        try
        {
          if (docReturn.getQueryInfo(rst, strListName))
          {  
            XmlDocument doc = docReturn.getDocument();
            XmlNodeList nodeList = doc.SelectNodes(Common.BAR2 + strListName);

            for (int k = 0; k < nodeList.Count;k++ )
            {
              XmlNode node = (XmlElement)nodeList.Item(k);

              XmlElement node_Temp;
              /// 处理字典的翻译
              DicCache obj_DicCache = DicCache.getInstance();
              if (strDicFieldList != null)
              {
                for (int i = 0; i < strDicFieldList.Length; i++)
                {
                  node_Temp = (XmlElement)node.SelectSingleNode(strDicFieldList[i]);
                  string str_Text = node_Temp.InnerText;

                  if (General.empty(str_Text)) continue;

                  string str_SV = obj_DicCache.getText(strDicNameList[i], str_Text);


                  if (!blnDicInSv)
                  {
                    if (str_SV != null) node_Temp.InnerText = str_SV;
                  }
                  else
                  {
                    if (str_SV != null)
                      node_Temp.SetAttribute(Common.XML_PROP_SV, str_SV);
                  }
                }
              }

              /// 处理日期类型的字段
              if (strDateFieldList != null)
              {
                for (int i = 0; i < strDateFieldList.Length; i++)
                {
                  node_Temp = (XmlElement)node.SelectSingleNode(strDateFieldList[i]);
                  string str_Text = node_Temp.InnerText;

                  if (General.empty(str_Text)) continue;

                  string str_SV = General.cDateStr(str_Text);
                  str_Text = General.strToDate(str_SV);
                  node_Temp.InnerText = str_Text;

                  if (blnDicInSv)
                  {

                    if (str_SV != null)
                      node_Temp.SetAttribute(Common.XML_PROP_SV, str_SV);
                  }
                }
              }
            }
	          docReturn.addErrorResult(Common.RT_QUERY_SUCCESS);
	        }
	        else
	        {
	          docReturn.addErrorResult(Common.RT_QUERY_NOTHING);
	        }
	        docReturn.addPropToQueryInfo(Common.XML_PROP_TOTALPAGES, int_TotalPages.ToString());
	        docReturn.addPropToQueryInfo(Common.XML_PROP_RECORDS, int_TotalRecords.ToString());
  	      
        }
        catch(Exception e)
        {
    	    
        }
        return docReturn.getXml();
    }
Esempio n. 2
0
    public string getUserRightsByUserID()
    {
      /// 查询出该用户的权限信息
      string str_SQL = Common.SELECT + Common.DISTINCT + Common.ALL +
                       Common.S_FROM + Table.VW_USERRIGHTTREE +
                       Common.S_WHERE + Field.USERID + Common.EQUAL + General.addQuotes(this.getUserID()) +
                       Common.S_ORDER + Field.AFFAIRTYPEID + Common.COMMA + Field.EVENTTYPEID;


      OleDbDataReader rst_UserRight = null;
      try
      {
        string strRet = CommonQuery.qryRst(str_SQL,ref rst_UserRight);

        if (strRet != "0")
        {
          throw new Exception("获得用户权限失败");
        }

        string str_PreAffairTypeID = "";
        string str_PreEventTypeID = "";

        ReturnDoc doc_RightTree = new ReturnDoc();

        XmlDocument doc_tmp = doc_RightTree.getDocument();

        XmlElement ele_Root = null;
        XmlElement ele_Query = null;
        XmlElement ele_AffairType = null;

        /// 对结果集进行遍历,用来生成功能树
        while (rst_UserRight.Read())
        {
          /// 创建查询返回节点
          if (!doc_RightTree.createQueryInfoNode())
          {
            throw new Exception("UserCache.setUserRightsByUserID.创建查询返回节点时发生错误");
          } /// if (!doc_RightTree.createQueryInfoNode())

          ele_Root = ele_Root == null ? (XmlElement)doc_RightTree.getQueryInfoNode() : ele_Root;

          string str_AffairTypeID = rst_UserRight[Field.AFFAIRTYPEID].ToString();
          string str_AffairTypeName = rst_UserRight[Field.AFFAIRTYPENAME].ToString();
          string str_EventTypeID = rst_UserRight[Field.EVENTTYPEID].ToString();
          string str_EventTypeName = rst_UserRight[Field.EVENTTYPENAME].ToString();
          string str_OpURL = rst_UserRight[Field.OPURL].ToString();

          int int_AffairTypeID = Convert.ToInt32(str_AffairTypeID);

          XmlElement ele_EventType = null;

          /// 查询事务
          if (int_AffairTypeID == 4)
          {
            ele_AffairType = doc_tmp.CreateElement(Common.XDOC_OPERATION);
            ele_AffairType.SetAttribute(Common.XML_PROP_AFFAIRTYPEID, str_AffairTypeID);
            ele_AffairType.SetAttribute(Common.XML_PROP_NAME, str_AffairTypeName);

            ele_Query = ele_AffairType;
            ele_Root.AppendChild(ele_AffairType);
          } /// if (int_AffairTypeID==4)
          else
          {
            if (!str_PreAffairTypeID.EndsWith(str_AffairTypeID))
            {
              ele_AffairType = doc_tmp.CreateElement(Table.AFFAIRTYPE);
              ele_AffairType.SetAttribute(Common.XML_PROP_AFFAIRTYPEID, str_AffairTypeID);
              ele_AffairType.SetAttribute(Common.XML_PROP_TEXT, str_AffairTypeName);

              str_PreAffairTypeID = str_AffairTypeID;
              ele_Root.AppendChild(ele_AffairType);
            }
          }

          /// 相同的事件类型,则不用重复创建
          if (!str_PreEventTypeID.Equals(str_EventTypeID))
          {
            ele_EventType = doc_tmp.CreateElement(Table.EVENTTYPE);
            ele_EventType.SetAttribute(Common.XML_PROP_EVENTTYPEID, str_EventTypeID);
            ele_EventType.SetAttribute(Common.XML_PROP_TEXT, str_EventTypeName);
            ele_EventType.SetAttribute(Common.XML_PROP_OPURL, str_OpURL);
            ele_AffairType.AppendChild(ele_EventType);
            str_PreEventTypeID = str_EventTypeID;
          } /// if (!str_PreEventTypeID.equals(str_EventTypeID))
        } /// while (rst_UserRight.next())



        /// 将查询事务节点,追加到权限功能树的最后
        if (ele_Query != null)
        {
          XmlElement ele_TempQuery = (XmlElement)ele_Query.Clone();
          XmlElement ele_QueryInfo = (XmlElement)doc_RightTree.getQueryInfoNode();
          ele_QueryInfo.RemoveChild(ele_Query);
          ele_QueryInfo.AppendChild(ele_TempQuery);
        } /// if (ele_Query!=null)

        if (!doc_RightTree.addErrorResult(Common.RT_QUERY_SUCCESS))
        {
          throw new Exception("添加函数返回结果失败");
        } /// if (!doc_RightTree.addErrorResult(Common.RT_QUERY_SUCCESS))

        return doc_RightTree.getXml();
      }
      catch (Exception e)
      {
        return e.Message;
      }
      finally
      {
        rst_UserRight.Close();
      }
    }