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

服务器端函数WebFunction 详细手册

Posted on 2006-04-14 18:19  智岛软件  阅读(725)  评论(0编辑  收藏  举报

WebFunction的用法

BSTR WebFunction(LPCTSTR strFunName, LPCTSTR strInputXML, LPCTSTR strOutputXML) 
说明: 远程调用后台服务器接口
strFunName
后台函数名称
strInputXML
XML传入参数,"<Input><TableName>表名称</TableName></Input>",Table传入的参数名称
strOutputXML
暂无用
返回值: XML字符串

举例:

要调用一存储过程,使用函数 DoProcedure

   strInputXML= "<Input><ProcName>获取物料基本资料</ProcName>" &_

               "<InputList><Cond>" + EditBox1.Text + "</Cond>" &_

               "</InputList><OutputList><OutputTable>1</OutputTable>" &_

               "<OutputName>RetValue</OutputName></OutputList></Input>"

   strRetXML = DBEngine.WebFunction("DoProcedure", strInputXML, "")

   strError = DBEngine.GetNodeText(strRetXML, "Error")

   If strError <> "" then '如返回字符串包含了Error节点,则表明出错了

      DBEngine.MsgBox(strError)

   End if

数据库类

CreateDataBase

说明:生成数据库

InputXML参数:

<Input>

       <DBName>数据库文件名称</DBName>

       <SysName>业务系统名称</SysName>

</Input>

返回值:如成功则返回空字符串,如失败则返回描述错误的XML字符串

 

GetTableDataXML 

说明:返回网格专用的数据表XML数据,包含了表结构和数据

InputXML参数:

<Input>

       <TableName>表名</TableName>

       <FieldNames>显示字段</FieldNames>

       <SQLWhere>SQL定位语句</SQLWhere>

       <RecordIndex>返回指定记录号</RecordIndex>

       <PageSize>每分页数据行数</PageSize>

       <Page>指定返回数据分页</Page>

       <SQL>SQL语句</SQL>

       <Flag>GetStruct,只返回表结构</Flag>

</Input>

返回值:如成功则返回网格专用的数据表XML数据,如失败则返回描述错误的XML字符串

 

GetTableRowsXML

说明:返回网格专用的记录行XML数据

InputXML参数:

<Input>

       <TableName>表名</TableName>

       <FieldNames>显示字段</FieldNames>

       <SQLWhere>SQL定位语句</SQLWhere>

       <RecordIndex>返回指定记录号</RecordIndex>

       <PageSize>每分页数据行数</PageSize>

       <Page>指定返回数据分页</Page>

       <SQL>SQL语句</SQL>

       <Flag>GetStruct,只返回表结构</Flag>

</Input>

返回值:如成功则网格专用的数据表XML数据,如失败则返回描述错误的XML字符串

 

GetGroupXML

说明:返回分组窗口的XML数据

InputXML参数:

<Input>

       <TableName>表名</TableName>

</Input>

返回值:如成功则返回分组窗口的XML数据,如失败则返回描述错误的XML字符串

 

GetTableProValueText

说明:返回数据表的属性字符串

InputXML参数:

<Input>

       <TableName>表名</TableName>

       <ProName>属性名称</ProName>

</Input>

返回值:如成功则返回数据表属性(见网格XML格式),如失败则返回描述错误的XML字符串

 

GetPrimaryKey

说明:返回指定表的主键名称

InputXML参数:

<Input>

       <TableName>表名</TableName>

</Input>

返回值:如成功则返回主键名称,如失败则返回描述错误的XML字符串

 

GetAllProcName

说明:返回数据库里所有存储过程的名称,格式为:|存储过程A|存储过程B|存储过程C|

参数:

返回值:存储过程的名称

 

GetTableInfoXMLInDB

说明:返回保存在sysTableInfo数据表里的数据表结构XML字符串

InputXML参数:

<Input>

       <TableName>表名</TableName>

</Input>

返回值:保存在sysTableInfo数据表里的数据表结构XML字符串

 

GetAllFieldName

说明:根据表名称返回所有字段名称(格式:A|B|C|)

InputXML参数:

<Input>

       <TableName>表名</TableName>

</Input>

返回值:

 

GetAllTableName

说明:返回数据库里的所有数据表名称(系统表除外),格式:|1|2|3|

InputXML参数:

返回值:

 

DoFormula

说明:执行字段计算公式

InputXML参数:

<Input>

       <TableName>表名</TableName>

</Input>

返回值:

 

如下:将根据当前表字段间的计算公式(计算公式在设计模式下设计)计算完后保存到 strRet 中,再通过FillData恢复到窗体控件中。

strSQLWhere = DBEngine.GetSQLWhere()

    strInput = "<Input><TableName>"&strTableName&"</TableName><SQLWhere>"&strSQLWhere&"</SQLWhere></Input>"

    '执行计算

    strRet = DBEngine.WebFunction("DoFormula", strInput, "")

    strError = DBEngine.GetElemData(strRet, "Error")

    if strError <> "" then '是否有错误返回

DBEngine.MsgBox strError

Else

  DBEngine.FillData(strRet)

    end if

 

GetFieldValue

说明:返回字段值

InputXML参数:

<Input>

       <TableName>表名</TableName>

       <FieldName>字段名称</FieldName>

       <SQLWhere>SQL定位语句</SQLWhere>

       <RecordIndex>第几条记录,0开始</RecordIndex>

</Input>

返回值:返回字段值字符串

 

DoProcedure

说明:执行储存过程

InputXML参数:

<Input>

       <ProcName>存储过程名称</ProcName>

       <InputList><!--输入参数列表-->

              <参数名称>参数值</参数名称>

              <参数名称>参数值</参数名称>

              ...

       </InputList>

       <OutputList><!--输出参数列表-->

              <OutputName>输出参数名称1<OutputName>

              <OutputName>输出参数名称2<OutputName>

              ...

              <OutputTable>10</OutputTable><!--如要返回数据集,OutputTable设置为1-->

       <OutputList>

</Input>

返回值:如成功则返回结果XML字符串,如失败则返回描述错误的XML字符串

例如:以下便是调用存储过程获取物料基本资料”,并将返回的XML字符串赋给表格以及返回总记录数。

Sub Button1_Click()

   strInputXML= "<Input><ProcName>获取物料基本资料</ProcName>" &_

               "<InputList><Cond>" + EditBox1.Text + "</Cond>" &_

               "</InputList><OutputList><OutputTable>1</OutputTable>" &_

               "<OutputName>RetValue</OutputName></OutputList></Input>"

   strRetXML = DBEngine.WebFunction("DoProcedure", strInputXML, "")

   strError = DBEngine.GetNodeText(strRetXML, "Error")

   if strError <> "" then '如返回字符串包含了Error节点,则表明出错了

      DBEngine.MsgBox(strError)

   else

      '返回数据表XML字符串

      strTableXML = DBEngine.GetNodeXml(strRetXML, "Table")

      if strTableXML <> "" then

         MainGrid.SetTableXML(strTableXML)

         MainGrid.AutoSizeColumns()

      end if

      '取出返回值 RetValue

      Lable2.Caption = "记录总数:" + DBEngine.GetNodeText(strRetXML, "RetValue")

   end if

End Sub

 

SqlQuery

说明:执行SQL语句查询,返回单值

InputXML参数:SQL查询语句

返回值:一个数值字符串

 

例如:SqlNonQuery主要运行插入和删除的SQL语句,而SqlQuery运行选择SQL语句。

  strInitdata = "DELETE FROM _SysRight"

  strRet = DBEngine.WebFunction("SqlNonQuery", strInitData, "") 

  strError = DBEngine.GetNodeText(strRet, "Error")

   If strError <> "" then '如返回字符串包含了Error节点,则表明出错了

      DBEngine.MsgBox(strError)

      Exit Sub

   End if

  strInitdata = "INSERT INTO _SysRight" &_

                " SELECT -1 as No,0 as level,FatherName,NodeName,ID,RightDepartment,RightUser FROM SysCatalog"

  strRet = DBEngine.WebFunction("SqlNonQuery", strInitData, "") 

  strError = DBEngine.GetNodeText(strRet, "Error")

   If strError <> "" then '如返回字符串包含了Error节点,则表明出错了

      DBEngine.MsgBox(strError)

      Exit Sub

   End if

 

  strInitdata = " select * from _SysRight "

  strRet = DBEngine.WebFunction("SqlQuery", strInitData, "") 

  strError = DBEngine.GetNodeText(strRet, "Error")

   If strError <> "" then '如返回字符串包含了Error节点,则表明出错了

      DBEngine.MsgBox(strError)

      Exit Sub

   End if

 

SqlNonQuery

说明:执行SQL语句,成功返回受影响行数,失败返回错误信息

InputXML参数:SQL查询语句

返回值:成功返回受影响行数,失败返回错误信息.

 

例如:SqlNonQuery主要运行插入和删除的SQL语句,而SqlQuery运行选择SQL语句。

  strInitdata = "DELETE FROM _SysRight"

  strRet = DBEngine.WebFunction("SqlNonQuery", strInitData, "") 

  strError = DBEngine.GetNodeText(strRet, "Error")

   If strError <> "" then '如返回字符串包含了Error节点,则表明出错了

      DBEngine.MsgBox(strError)

      Exit Sub

   End if

  strInitdata = "INSERT INTO _SysRight" &_

                " SELECT -1 as No,0 as level,FatherName,NodeName,ID,RightDepartment,RightUser FROM SysCatalog"

  strRet = DBEngine.WebFunction("SqlNonQuery", strInitData, "") 

  strError = DBEngine.GetNodeText(strRet, "Error")

   If strError <> "" then '如返回字符串包含了Error节点,则表明出错了

      DBEngine.MsgBox(strError)

      Exit Sub

   End if

 

  strInitdata = " select * from _SysRight "

  strRet = DBEngine.WebFunction("SqlQuery", strInitData, "") 

  strError = DBEngine.GetNodeText(strRet, "Error")

   If strError <> "" then '如返回字符串包含了Error节点,则表明出错了

      DBEngine.MsgBox(strError)

      Exit Sub

   End if

 

XMLAddNewFieldData

说明:通过XML方式往数据库里添加数据

InputXML参数:

<XMLSQL>

       <TableName>数据表名称</TableName>

       <FieldValue><!--字段值列表-->

              <FieldName>FieldValue</FieldName>

              <姓名>张三</姓名>

              <性别>1</性别>

              ...

       </FieldValue>

       <ReturnField><!--插入后,返回指定字段值-->

              <AutoNumber>自动编号字段名称</AutoNumber>

              <FieldName>有默认值字段名称</FieldName>

              <FieldName></FieldName>

              ...

       </ReturnField>

</XMLSQL>

返回值:如成功则返回指定字段值或空,失败则返回错误XML信息

 

XMLUpdateFieldData

说明:通过XML方式更新数据

InputXML参数:

<XMLSQL>

       <TableName>员工表</TableName><!--数据表名称-->

       <SQLWhere>[姓名]='张三'</SQLWhere><!--定位记录的SQL条件语句-->

       <FieldValue>

              <FieldName>FieldValue</FieldName><!--字段列表-->

              <姓名>张三</姓名><!--字段列表-->

              <性别>1</性别><!--字段列表-->

              ...

       </FieldValue>

       <ReturnField>

              <FieldName></FieldName>

       </ReturnField>

</XMLSQL>

返回值:如成功则返回字符串1,失败则返回错误XML信息

 

SetFieldPro

说明:设置自定义字段属性

InputXML参数:

<Input>

       <TableName>表名称</TableName>

       <FieldName>字段名称</FieldName>

       <ProName>属性名称</ProName>

       <ProValue>属性值字符</ProValue>

</Input>

返回值:如成功则返回空字符串,失败则返回错误XML信息

 

GetSumFieldValue

说明:返回字段值的总和,可加条件

InputXML参数:

<Input>

       <TableName>表名称</TableName>

       <FieldName>字段名称</FieldName>                                   

       <SQLWhere>SQL条件语句</SQLWhere>

</Input>

返回值:如成功则返回符合条件的字段值总和,失败则返回错误XML信息

 

GetAvgFieldValue

说明:返回字段的平均值,可加条件

InputXML参数:

<Input>

       <TableName>表名称</TableName>

       <FieldName>字段名称</FieldName>                                   

       <SQLWhere>SQL条件语句</SQLWhere>

</Input>

返回值:如成功则返回符合条件的字段平均值,失败则返回错误XML信息

 

例如:参考 GetMaxFieldValue

 

GetMaxFieldValue

说明:返回字段最大值,可加条件

InputXML参数:

<Input>

       <TableName>表名称</TableName>

       <FieldName>字段名称</FieldName>                                   

       <SQLWhere>SQL条件语句</SQLWhere>

</Input>

返回值:如成功则返回符合条件的字段最大值,失败则返回错误XML信息

 

例如:见此函数的用法。

Function btnOK()

    DBEngine.SaveRecord   

    strSQLWhere = DBEngine.GetSQLWhere()

    strInput = "<Input><TableName>"&strTableName&"</TableName><SQLWhere>"&strSQLWhere&"</SQLWhere></Input>"

    '执行计算

    strRet = DBEngine.WebFunction("DoFormula", strInput, "")

    strError = DBEngine.GetElemData(strRet, "Error")

    if strError <> "" then '是否有错误返回

      DBEngine.MsgBox strError

    else

      UpdateAll()

    end if

 

    If DBEngine.GetElemData(DBEngine.InitType, "Action") = "NewRecord" Then '继续新增记录

        ret = DBEngine.MsgBox1("请问是否继续新增?",1)

        if ret = 2 then

          DBEngine.CloseWindow(1)  

        end if

 

        DBEngine.NewRecord

 

        strSave = True    '改变开关值

 

        DBEngine.FillData (DBEngine.InitData)

        '提取定单号

        strKeyField = DBEngine.GetElemData(DBEngine.InitType, "KeyField")

        strLineField = DBEngine.GetElemData(DBEngine.InitType, "LineField")

        strNumber = DBEngine.GetElemData(DBEngine.InitData, strKeyField)

        strInputXML= "<Input><TableName>"&strTableName&"</TableName><FieldName>"&strLineField&"</FieldName><SQLWhere>["&strKeyField&"]='"&strNumber&"'</SQLWhere></Input>"

        '返回属于指定单据号的最大单据行的值

        strMaxValue = DBEngine.WebFunction("GetMaxFieldValue", strInputXML, "")

        strError = DBEngine.GetElemData(strMaxValue, "Error")

        If strError <> "" Then

           DBEngine.MsgBox strError

        Else

           If strMaxValue = "" Then

              strMaxValue = "0"

           End If

           strMaxValue = CStr(CLng(strMaxValue) + 1) '新订单行

           strRow="<Row><"& strKeyField &">" &strNumber& "</"& strKeyField &"><"&strLineField&">"&strMaxValue&"</"&strLineField&"></Row>"

           DBEngine.FillData(strRow)

        End If

        eb_ShouHuo.Text = "0"

        eb_TuiHuo.Text = "0"

    Else

        DBEngine.CloseWindow(1)  

    End If

End Function

 

GetMinFieldValue

说明:返回字段最小值,可加条件

InputXML参数:

<Input>

       <TableName>表名称</TableName>

       <FieldName>字段名称</FieldName>                                   

       <SQLWhere>SQL条件语句</SQLWhere>

</Input>

返回值:如成功则返回符合条件的字段最小值,失败则返回错误XML信息.

 

例如:参考 GetMaxFieldValue.

 

GetRecordCount

说明:返回记录行数目,可加条件

InputXML参数:

<Input>

       <TableName>表名称</TableName>

       <SQLWhere>SQL条件语句</SQLWhere>

</Input>

返回值:如成功则返回符合条件的记录行数目,失败则返回错误XML信息.

例如:如下便是在表 strTableName 中取条件满足 ["&strKeyField&"]='"&strNumber 的记录总数。

    strInputXML = "<Input><TableName>"&strTableName&"</TableName><SQLWhere>["&strKeyField&"]='"&strNumber&"'</SQLWhere></Input>"

    strMaxValue = DBEngine.WebFunction("GetMaxFieldValue", strInputXML, "")

 

GetSameFieldNameFromTwoTable

说明:从两表中提取名称相同的字段

InputXML参数:

<Input>

       <TableName1>1名称</TableName1>

       <TableName2>2名称</TableName2>

</Input>

返回值:如成功则返回格式为"|字段1|字段2|"的字符串,失败则返回错误XML信息

 

CopyTable

说明:复制数据表

InputXML参数:

<Input>

       <ScrTable>源表名</ScrTable>

       <DesTable>新表名</DesTable>

       <FieldNames>需要复制的字段</FieldNames>

       <SQLWhere>复制条件SQL语句</SQLWhere>

</Input>

返回值:如成功则返回受影响行数,失败则返回错误XML信息

 

GetSQLWhereByRecordIndex

说明:根据记录索引号返回记录的条件定位语句

InputXML参数:

       <Input>

              <TableName>表名称</TableName>

              <SQLWhere>SQL筛选条件语句</SQLWhere>

              <RecordIndex>记录索引号</RecordIndex>

       </Input>

返回值:如成功则返回条件定位语句,失败则返回错误XML信息

 

CopyRecordToOtherTable

说明:复制数据到其它表

InputXML参数:

       <Input>

              <ScrTable>源表名称</ScrTable>

              <ScrFields>源字段(字段1,字段2,...)</ScrFields>

              <SQLWhere>SQL复制条件</SQLWhere>

              <DesTable>目标表名称</DesTable>

              <DesFields>目标字段(字段1,字段2,...)</DesFields>    

       </Input>

返回值:如成功则返回空字符串,失败则返回错误XML信息

 

RenameTable

       说明:修改表名称

       InputXML参数: = 新表名称

       OutputXML参数: = 旧表名称

       返回值:如成功则返回空字符串,失败则返回错误XML信息

       举例:

       DBEngine.WebFunction("ReNameTable", "新表名称", "旧表名称")


新增:

case "TwoDimenStat":

 

case "CrossStat":

       {     /*

              说明:交叉表统计(二维统计)

              InputXML参数:

                     <Input>

                            <TableName>表名称</TableName>

                            <GroupField>分组字段名称</GroupField>

                            <HeaderField>标题字段名称</HeaderField>

                            <StatField>统计字段名称</StatField>

                            <StatType>统计类型</StatType>

                            <SQLWhere>统计条件</SQLWhere>

                     </Input>

              返回值:如成功则返回XML表格,失败则返回错误XML信息

              */                        

              return CrossStat(strInputXML);

       }

 

case "GroupStat":

       {     /*

              说明:分组统计

              InputXML参数:

                     <Input>

                            <TableName>表名称</TableName>

                            <GroupField>分组字段,格式:字段1,字段2,...</GroupField>

                            <StatFieldSQL>统计字段SQL语句,格式:Sum(金额) As 金额,Count(金额) As 次数,...</StatFieldSQL>

                            <SQLWhere>统计条件</SQLWhere>

                            <SortField>排序字段,格式:字段1[ASC/DESC],字段2[ASC/DESC],...</SortField>

                     </Input>

              返回值:如成功则返回XML表格,失败则返回错误XML信息

              */

              return GroupStat(strInputXML);

       }

 

case "GetStatResult":

       {     /*

              说明:根据统计名称返回统计结构

              InputXML参数:

                     <Input>

                            <StatName>表名称</StatName>

                     </Input>

              返回值:如成功则返回XML表格,失败则返回错误XML信息

              */

              return GetStatResult(strInputXML);

       }

 

case "DeleteRecord":

       {     /*

              说明:删除记录行

              InputXML参数:

                     <Input>

                            <TableName>表名称</TableName>

                            <SQLWhere>SQL条件语句</SQLWhere>

                     </Input>

              返回值:如成功则返回删除函数,失败则返回错误XML信息

              */

              string strTableName = GetInputParamValue(strInputXML, "TableName");

              string strSQLWhere = GetInputParamValue(strInputXML, "SQLWhere");

              if(strTableName == "")

                     return "<Error>DeleteRecord:表名称参数不能为空!</Error>";

 

              string strSQL = "Delete From "+strTableName;

              if(strSQLWhere != "")

                     strSQL += " Where "+strSQLWhere;

 

              DBLib objDBLib = new DBLib(m_strConnection);

              int nCount = objDBLib.SqlNonQuery(strSQL);

              if(this.LastError != "")

                     return "<Error>"+this.LastError+"</Error>";

 

              return nCount.ToString();

       }

 

case "GetAllFieldDefaultValue":

       {     /*

              说明:返回所有字段默认值

              InputXML参数:

                     <Input>

                            <TableName>表名称</TableName>

                     </Input>

              返回值:返回XML字符串<Row><姓名>张三</姓名>...</Row>

              */

              string strTableName = GetInputParamValue(strInputXML, "TableName");

              if(strTableName == "")

                     return "<Error>数据表参数不能为空。</Error>";

 

              DBLib objDBLib = new DBLib();

              string strRet = objDBLib.GetAllFieldDefaultValue(strTableName);

              if(objDBLib.LastError != "")

                     return "<Error>"+objDBLib.LastError+"</Error>";

 

              return strRet;

       }

 

case "SetTableSortField":

       {    

             /*说明:设置数据表排序字段

              InputXML参数:

                     <Input>

                            <TableName>表名称</TableName>

                            <FieldName>排序字段</FieldName>

                            <SortType>排序类型 升序:ASC,降序:DESC</SortType>

                     </Input>

                     返回值:如成功则返回空字符串,如失败则返回描述错误的XML字符串

              */

case "JudgeUserPermission":

       {

             /*说明:传入用户ID和权限ID,判断用户是否有相应权限

              InputXML参数:

                     <Input>

                            <UserID>用户ID</UserID>

                            <PermissionID>权限ID</PermissionID>

                     </Input>

                     返回值:返回"1"代表有权限, 返回"0"代表没权限

              */

       }

 

case "GetTableInfoText":

       {

             /*说明:返回TableInfoXML里的数据表属性节点的文本值

              InputXML参数:

                     <Input>

                            <TableName>表名称</TableName>

                            <ProName>属性名称</ProName>

                     </Input>

                     返回值:

              */

       }

 

case "GetSunTableNames":

       {    

             /*说明:根据表名称取回子()表名称,格式:|工作简历|家庭成员及重要社会关系|

              InputXML参数:

                     <Input>

                            <TableName>表名称</TableName>

                     </Input>

                     返回值:

              */

       }

 

 case "ExistTable":

       {    

             /*说明:判断数据表是否存在

              InputXML参数:

                     <Input>

                            <TableName>表名称</TableName>

                     </Input>

                     返回值:

              */

       }



 

业务窗体类

 

GetTableNameByFormName

说明:根据窗体名称返回所属表格的名称

InputXML参数:

<Input>

       <FormName>窗体名称</FormName>

</Input>

返回值:如成功则返回表格名称,如失败则返回描述错误的XML字符串

 

GetFormData

说明:返回定义窗体的XML字符串

InputXML参数:

<Input>

       <TableName>表名</TableName>

      

       <FormName>窗体名称</FormName>

</Input>

返回值:如成功则返回窗体的XML字符串,如失败则返回描述错误的XML字符串

 

SetRowHeight

说明:设置行高

InputXML参数:

<Input>

       <TableName>表名称</TableName>

       <SQLWhere>条件语句</SQLWhere>

       <RowHeight>行高</RowHeight>

</Input>

返回值:如成功则返回空字符串,失败则返回错误XML信息

 

GetSingleRowXML

说明:返回单行记录XML字符串

InputXML参数:

<Input>

       <TableName>表名称</TableName>

       <FieldNames>需要输出的字段名称</FieldNames>

       <SQLWhere>SQL条件语句</SQLWhere>

</Input>

返回值:如成功则返回符合XML字符串,失败则返回错误XML信息

XML字符串格式:

       <Row>

              <字段名称>字段值</字段名称>

              <姓名>张三</姓名>

              <姓别>1</姓别>

              ...

       </Row>        

 

例如:

    下面从表 strTableName 中取出符合条件strSQLWhere的记录.并赋给当前窗体。

'更新所有字段值

Sub UpdateAll()

    strInput = "<Input><TableName>"&strTableName&"</TableName><SQLWhere>"&strSQLWhere&"</SQLWhere></Input>"

    strRet = DBEngine.WebFunction("GetSingleRowXML", strInput, "")

    strError = DBEngine.GetElemData(strRet, "Error")

    if strErro <> "" then '是否有错误返回

      DBEngine.MsgBox strError

    else

      'DBEngine.MsgBox strRet

      DBEngine.FillData(strRet)

    end if

End Sub

 

GetAllFormName

说明:返回所有窗体名称,格式:|Form1|Form2|Form2|

InputXML参数:

返回值:如成功则返回所有窗体名称,失败则返回错误XML信息

 

GetGroupFieldValue

说明:返回指定字段的分组值,格式:A|B|C|

InputXML参数:

       <Input>

              <TableName>表名称</TableName>

              <FieldName>字段名称</FieldName>

              <SQLWhere>SQL条件语句</SQLWhere>

       </Input>

返回值:如成功则返回指定字段的分组值,失败则返回错误XML信息


新增:

case "GetTreeDataXml":

       {     //根据树形数据表返回树形XML字符串

             /*说明:根据树形数据表返回树形XML字符串

              InputXML参数:

                     <Input>

                            <TableName>数据表名称</TableName>

                            <FieldNames>指定输出字段</FieldNames>

                            <ItemID>指定从那个节点开始输出</ItemID>

                            <SQLWhere>输出条件</SQLWhere>

                            <IDKey>指定哪个字段为ID字段</IDKey>

                            <FatherIDKey>指定哪个字段为父ID字段</FatherIDKey>

                            <NameKey>指定哪个字段为标签名称字段</NameKey>

                            <Level>返回几级数据?-1:全部,N:N(N>=1)</Level>

                     </Input>

                     返回值:XML字符串

                     范例:

                     var strInput = "<Input><TableName>sysTableFavorite</TableName><FieldNames>ID,FatherID,NodeName,NodeData,NodeImage</FieldNames><NameKey>NodeName</NameKey><IDKey>ID</IDKey><FatherIDKey>FatherID</FatherIDKey></Input>";

                     var strXML = WebFunction("GetTreeDataXml", strInput, "");

                     返回值:

                            <?xml version="1.0" encoding="gb2312"?>

                            <TreeXml IDKey="ID" NameKey="NodeName">

                                   <TreeItem  ID="1" FatherID="0" NodeName="收藏夹" NodeData="" NodeImage="0">

                                          <TreeItem  ID="2" FatherID="1" NodeName="数据表1" NodeData="Table" NodeImage="4"></TreeItem>

                                          <TreeItem  ID="3" FatherID="1" NodeName="邮编区号" NodeData="Table" NodeImage="4"></TreeItem>

                                   </TreeItem>

                            </TreeXml>                                       

              */

       }

 

case "GetOrganizationTreeXml":

       {    

             /*说明:根据机构ID返回树形XML字符串

              InputXML参数:

                     <Input>

                            <OrganizationID>机构ID</OrganizationID>

                            <Level>返回几级数据?-1:全部,N:N(N>=1)</Level>

                     </Input>

                     返回值:XML字符串

              */

       }



报表类

 

GetOReportTemplate

说明:返回报表模板XML数据

InputXML参数:

       <Input>

              <ReportName>报表名称</ReportName>

       <Input>

返回值:如成功则返回报表模板XML数据,失败则返回错误XML信息

 

GetAllOReportName

说明:返回全部区域式报表名称,形式为 A|B|C|

InputXML参数:

返回值:如成功则返回全部区域式报表名称,失败则返回错误XML信息

 

GetAllOStarRepName

说明:返回全部排版式报表名称,形式为 A|B|C|

InputXML参数:

返回值:如成功则返回全部排版式报表名称,失败则返回错误XML信息

 

GetReportResult

说明:返回多记录报表结果

InputXML参数:

       <Input>

              <ReportName>报表名称</ReportName>

              <StartPage>开始页索引号</StartPage>

              <PageFlag>FirstPreviousNextLast</PageFlag>

       </Input>

返回值:如成功则返回多记录报表结果,失败则返回错误XML信息

新增:

case "GetAllOReportNameAndTableName":

       {     /*

              说明:返回全部区域式报表名称和对应表名称,形式为:报表名称1,数据表名称1|报表名称2,数据表名称2|报表名称3,数据表名称3|

              InputXML参数:

              返回值:如成功则返回全部区域式报表名称和对应表名称,失败则返回错误XML信息

              */

              string strSQLWhere = GetInputParamValue(strInputXML, "SQLWhere");

              return GetAllOReportNameAndTableName(strSQLWhere);

       }

 

case "GetAllOStarRepNameAndTableName":

       {     /*

              说明:返回全部排版式报表名称和对应表名称,形式为:报表名称1,数据表名称1|报表名称2,数据表名称2|报表名称3,数据表名称3|

              InputXML参数:

              返回值:如成功则返回全部排版式报表名称和对应表名称,失败则返回错误XML信息

              */

              string strSQLWhere = GetInputParamValue(strInputXML, "SQLWhere");

              return GetAllOStarRepNameAndTableName(strSQLWhere);

       }    

用户权限类

GetCurUserName

说明:返回当前登陆用户的名称

InputXML参数:

返回值:当前登陆用户的名称

例如:将当前用户赋给变量gUserID.

  gUserID = DBEngine.WebFunction("GetCurUserName","", "")

 

GetAllDepartmentName

说明:获取所有部门名称的数组字符串,返回形式为 A|B|C|

InputXML参数:

返回值:如成功则返回所有部门名称,失败则返回错误XML信息

 

GetAllUserName

说明:全部用户名称的数组字符串,返回形式为 A|B|C|

InputXML参数:

返回值:如成功则返回全部用户名称,失败则返回错误XML信息

 

IsDesignOnlyForAdmin

说明:是否只有管理员才能进入设计模式?1/0

InputXML参数:

返回值:如成功则返回10字符串,失败则返回错误XML信息

 

GetUserOfDepartment

说明:返回指定部门所有员工名字的字符串数组,返回形式为 A|B|C|

InputXML参数:

       <Input>

              <Department>部门名称</Department>

       </Input>

返回值:如成功则返回部门的员工姓名,失败则返回错误XML信息

 

新增:

case "IsUserBelongToRoleName":

       {

             /*说明:传入用户ID和角色名称,判断用户是否属于指定角色

              InputXML参数:

                     <Input>

                            <UserID>用户ID</UserID>

                            <RoleName>角色名称</RoleName>

                     </Input>

                     返回值:返回"1"代表属于, 返回"0"代表不属于

              */

       }    

case "GetOrganizationIDOfUser":

       {

             /*说明:返回UserID所负责机构的第一个机构ID(OrganizationID)

              InputXML参数:

                     <Input>

                            <UserID>用户ID</UserID>

                            <OrgSort>机构类别</OrgSort>

                     </Input>

                     返回值:机构ID

              */

       }    

 

case "GetRoleName":

       {

             /*说明:根据角色ID返回角色名称

              InputXML参数:

                     <Input>

                            <RoleID>角色ID</RoleID>

                     </Input>

                     返回值:

              */

       }


 

其它类

 

GetNaviXML

说明:返回导航窗口XML字符串

InputXML参数:

返回值:导航窗口XML字符串

 

GetMenuXMLByMenuName

说明:根据菜单名称返回定义菜单的XML字符串

InputXML参数:

<Input>

       <MenuName>菜单名称</MenuName>

</Input>

返回值:如成功则返回定义菜单的XML字符串,如失败则返回描述错误的XML字符串

 

SendInform

说明:发送通知

InputXML参数:

       <Input>

              <SendGroup>发送组别(1:全部,2:部门,3:员工,4,员工)</SendGroup>

              <UserOrDepartment>接收用户或部门(用户1,用户2,...或部门1,部门2,..)</UserOrDepartment>

              <Type>通知类型(0:重要,1:一般)</Type>

              <Title>通知标题</Title>

              <Content>通知内容</Content>

       </Input>

返回值:如成功则返回1,失败则返回错误XML信息

 

SendShortMessage

说明:发送短消息

InputXML参数:

       <Input>

              <Receiver>收件人(用户1,用户2,...)</Receiver>

              <Title>标题</Title>

              <Content>内容</Content>

       </Input>

返回值:如成功则返回空字符,失败则返回错误XML信息

 

SendEmail

说明:发送邮件

InputXML参数:

       <Input>

              <ToEmail>接收人邮件地址</ToEmail>

              <Title>邮件标题</Title>

              <Content>邮件内容</Content>

              <HtmlEmail>是否Html邮件(1/0)</HtmlEmail>

              <Attach>保存在服务上的附件全名</Attach>

       </Input>

返回值:如成功则返回空字符,失败则返回错误XML信息


新增:

case "GetHardDiskSerialNumber":

       {     /*

              说明:返回硬盘序列号

              InputXML参数:

                     <Input>

                            <DrvName>盘符</DrvName>

                     </Input>

              */

 

              string strDrvName = GetInputParamValue(strInputXML, "DrvName");

              CFileLib objFileLib = new CFileLib();

              string strRet = objFileLib.GetHardDiskSerialNumber(strDrvName);

              if(objFileLib.LastError != "")

                     return "<Error>"+objFileLib.LastError +"</Error>";

 

              return strRet;

       }

 

case "GetServerDateTime":

       {     //返回服务的当前时间(double)

              //再前端用DBEngineBSTR ToDateString(double dDate)/BSTR ToTimeString(double dDate)

              //BSTR ToDateTimeString(double dDate)可转为日期时间字符串

              //not finish:请加时间类型参数

              return System.DateTime.Now.ToOADate().ToString();

       }