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
说明: 远程调用后台服务器接口
strFunName 后台函数名称
strInputXML 以XML传入参数,如"<Input><TableName>表名称</TableName></Input>",Table传入的参数名称
strOutputXML 暂无用
返回值: XML字符串
数据库类
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>1或0</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>First或Previous或Next或Last</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参数:
返回值:如成功则返回1或0字符串,失败则返回错误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)
//再前端用DBEngine的BSTR ToDateString(double dDate)/BSTR ToTimeString(double dDate)
//BSTR ToDateTimeString(double dDate)可转为日期时间字符串
//not finish:请加时间类型参数
return System.DateTime.Now.ToOADate().ToString();
}