Foxtable(狐表)用户栏目专家坐堂 → [求助]金蝶返回数据表时如何读出来


  共有108人关注过本帖树形打印复制链接

主题:[求助]金蝶返回数据表时如何读出来

帅哥哟,离线,有人找我吗?
ajie5211
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:726 积分:4945 威望:0 精华:0 注册:2015/11/28 14:00:00
[求助]金蝶返回数据表时如何读出来  发帖心情 Post By:2021/10/13 15:14:00 [只看该作者]

金蝶帮助文档

HttpClient httpClient = new HttpClient();

 httpClient.Url = "http://192.168.66.60/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc";

 List<object> Parameters = new List<object>();

  //Json字串

  string data = "{\"FormId\":\"PUR_PurchaseOrder\",\"TopRowCount\":0,\"Limit\":10,\"StartRow\":0,\"FilterString\":\"FMaterialId.FNumber='HG_TEST'\",\"OrderString\":\"FID ASC\",\"FieldKeys\":\"FID,FSupplierId,FMaterialId,FMaterialId.FNumber,FMaterialName\"}";

  Parameters.Add(data);

  httpClient.Content = JsonConvert.SerializeObject(Parameters);

  var result = httpClient.AsyncRequest();

金蝶内调试结果


此主题相关图片如下:2.png
按此在新窗口浏览图片

有返回数据,返回格式是

[[615685,615685,"杜敬涛","13858305057","塑件仓库",true,"否"]]

狐表里这个结果如何输出?


此主题相关图片如下:1.png
按此在新窗口浏览图片

代码

Dim client As new Kingdee.BOS.WebApi.Client.K3CloudApiClient("http://192.168.1.235/k3cloud/")
Dim loginResult = client.ValidateLogin("60b69d07649920","赵东旭","123456",2052)
Dim resultType As Integer = JObject.Parse(loginResult)("LoginResultType").Tostring
Dim jo As New JObject
jo("FormId") = "BD_NEWSTAFF"
jo("FieldKeys") = "FSTAFFID,FMASTERID,FName,FPMobile,FDept.FName,FIsFirstPost,FForbidStatus.FCaption"

Dim ja1 As New Jarray '定义数组
Dim jo1 As new JObject
jo1("Left") = "("
jo1("FieldName") = "FPMobile"
jo1("Compare") = "="
jo1("Value") = "13858305057"
jo1("Right") = ")"
jo1("Logic") = "AND"
Dim jo2 As new JObject
jo2("Left") = "("
jo2("FieldName") = "FForbidStatus"
jo2("Compare") = "StatusEqualto"
jo2("Value") = "A"
jo2("Right") = ")"
jo2("Logic") = "AND"

ja1.Add(jo1)
ja1.Add(jo2)
jo("FilterString") = ja1
'Output.Show(jo.Tostring)
If resultType = 1 Then
    Dim csjg As String = client.ExecuteBillQuery(CompressJson(jo)).Tostring
    Output.Show(csjg)
End If


 


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:76067 积分:385907 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/13 15:46:00 [只看该作者]

人家返回的是一个对象集合,不是字符串。金蝶帮助文档发上来看看

 回到顶部
帅哥哟,离线,有人找我吗?
ajie5211
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:726 积分:4945 威望:0 精华:0 注册:2015/11/28 14:00:00
  发帖心情 Post By:2021/10/13 15:57:00 [只看该作者]

请看附件

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:net.rar

[此贴子已经被作者于2021/10/13 15:57:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:76067 积分:385907 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/13 16:44:00 [只看该作者]

文档里根本找不到Kingdee.BOS.WebApi.Client.K3CloudApiClient这个类型的说明

去咨询金蝶客服吧,看是怎么获取返回值

或者试试
If resultType = 1 Then
    Dim csjg As String = Newtonsoft.Json.JsonConvert. SerializeObject(client.ExecuteBillQuery(CompressJson(jo)))
    Output.Show(csjg)
End If

 回到顶部
帅哥哟,离线,有人找我吗?
ajie5211
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:726 积分:4945 威望:0 精华:0 注册:2015/11/28 14:00:00
  发帖心情 Post By:2021/10/13 16:57:00 [只看该作者]

谢谢版本,出来了,可以用!

If resultType = 1 Then
    Dim csjg As String = Newtonsoft.Json.JsonConvert. SerializeObject(client.ExecuteBillQuery(CompressJson(jo)))
    Dim jas As JArray = JArray.Parse(csjg)
    For i As Integer = 0 To jas.Count - 1
        Dim j1 As JArray = jas(i)
        For j As Integer = 0 To j1.Count - 1
            Output.show(j1(j))
        Next
    Next
End If


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

这样解出来是json的形式,我自己试了一下,也可以用下面的方法解,直接解到具体的值

If resultType = 1 Then
    Dim csjgs As List(of List(of object)) = client.ExecuteBillQuery(CompressJson(jo))
    For Each szs As List(of object) In csjgs
        For Each sz As object In szs
            Output.Show(sz.Tostring)
        Next
    Next
End If

 


[此贴子已经被作者于2021/10/13 16:59:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zcl
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:244 积分:1945 威望:0 精华:0 注册:2014/9/12 16:35:00
  发帖心情 Post By:2021/10/14 16:06:00 [只看该作者]

多谢楼主分享

 回到顶部