/// <summary> /// 获得字典条目列表 /// </summary> /// <param name="Request"></param> /// <param name="Response"></param> /// <returns></returns> public string QryDicDataList(HttpRequest Request, HttpResponse Response) { string strXML = Request["txtXML"]; string strDicName = XmlFun.getNodeValue(strXML, "//QUERYCONDITION/@dicname"); return(Dic.dicDataList(strXML, strDicName)); }
/// <summary> /// 获得数据节点下指定节点的内容 /// </summary> /// <param name="strNodeName">节点名称</param> /// <returns>数据节点下指定节点的内容</returns> public string getDataValue(string strNodeName) { return(XmlFun.getNodeValue(m_doc_Self, Common.XDOC_ROOT + Common.BAR + Common.XDOC_DATAINFO + Common.BAR + strNodeName)); }
public string getErrorValue(string strNodeName) { return(XmlFun.getNodeValue(m_doc_Self, Common.XDOC_ROOT + Common.BAR + Common.XDOC_ERRORINFO + Common.BAR + strNodeName)); }
/// <summary> /// 根据 XML 文档解析得到T-SQL查询Where语句 /// </summary> /// <param name="ele">XmlElement节点对象</param> /// <returns>解析好的T-SQL查询Where语句</returns> private string parseConditions(XmlElement ele) { XmlNodeList it_Condition = ele.SelectNodes(Common.BAR2 + Common.XDOC_CONDITION); XmlNodeList it_Conditions = ele.SelectNodes(Common.BAR2 + Common.XDOC_CONDITIONS); string str_Where = ""; string str_Type = ""; for (int k = 0; k < it_Condition.Count; k++) { if (k > 0) { str_Type = XmlFun.getNodeValue(it_Conditions.Item(k - 1), Common.XDOC_TYPE); str_Type = General.empty(str_Type) ? "" : str_Type.Trim().ToUpper(); } /// 获得查询节点 if (!General.empty(str_Where)) { if (General.empty(str_Type)) { throw new Exception("QueryDoc.parseConditions.77.未提供类型"); } str_Where += Common.SPACE + str_Type + Common.SPACE; } XmlNode ele_Condition = it_Condition.Item(k); string str_Alias = XmlFun.getAttributValue(ele_Condition, Common.XML_PROP_ALIAS); string str_DataType = XmlFun.getAttributValue(ele_Condition, Common.XML_PROP_DATATYPE); int int_DataType = General.empty(str_DataType) ? 0 : Convert.ToInt32(str_DataType); string str_FieldName = XmlFun.getNodeValue(ele_Condition, Common.XDOC_FIELDNAME); str_FieldName = General.empty(str_Alias) ? str_FieldName : str_Alias + Common.DOT + str_FieldName; /// + /// 如果是查询出生日期,则获得该字典的 sv 属性,用来确定是否是按照年龄来查询的 /// 如果是 AGERANGE 则说明是按照年龄来查询 /// 如果是 空,则说明是按照出生日期来查询 string str_Sv = XmlFun.getNodeValue(ele_Condition, Common.XDOC_FIELDNAME + Common.BAR + "@" + Common.XML_PROP_SV); string str_Operation = XmlFun.getNodeValue(ele_Condition, Common.XDOC_OPERATION); string str_DataValue = XmlFun.getNodeValue(ele_Condition, Common.XDOC_VALUE); str_Operation = str_Operation.Trim().ToUpper(); /// 单独处理日期类型的字段 if (int_DataType == 3) { /// 按年龄来进行查询 if (str_Sv.Equals(Common.XML_AGERANGE)) { str_Where += General.opYearDate(str_FieldName, str_DataValue, str_Operation); } else { str_Where += General.opDate(str_FieldName, str_DataValue, str_Operation); } } else { if (int_DataType == Common.IDT_BINARY) { throw new Exception("QueryDoc.parseConditions.函数不能处理二进制类型的数据"); } if (str_Operation.ToUpper().Equals("NOT IN") || str_Operation.ToUpper().Equals("IS") || str_Operation.ToUpper().Equals("IS NOT")) { str_Where += str_FieldName + Common.SPACE + str_Operation + Common.SPACE + str_DataValue; } else { str_Where += str_FieldName + Common.SPACE + str_Operation + Common.SPACE + General.converType(int_DataType, str_DataValue, str_FieldName); } } } return(str_Where); }