以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  提取双引号内数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122976)

--  作者:zoyong
--  发布时间:2018/8/6 9:53:00
--  提取双引号内数据

{

   "expense_type": 5, 

  "reason": "乡镇介绍信报名(土建)",

   "item": []

}

 

我想提取:乡镇介绍信报名(土建)

            :5

请老师帮忙

[此贴子已经被作者于2018/8/6 9:58:49编辑过]

--  作者:有点甜
--  发布时间:2018/8/6 10:02:00
--  

看看

 

http://www.foxtable.com/mobilehelp/scr/0140.htm

 


--  作者:zoyong
--  发布时间:2018/8/6 14:33:00
--  

搞定了,谢谢提示


--  作者:zoyong
--  发布时间:2018/8/6 16:51:00
--  

错误提示

.NET Framework 版本:2.0.50727.8789
Foxtable 版本:2018.7.28.1
错误所在事件:表,微信审批表请假,DataColChanged
详细错误信息:
调用的目标发生了异常。
Error reading JObject from JsonReader. Path \'\', line 0, position 0.

DataColChanged代码

Dim json As String = e.DataRow("请假类型")
Dim jo As JObject = JObject.Parse(json)
e.DataRow("请假时间") = jo("timeunit").ToString() & "天" \'请假时间单位:0半天;1小时
e.DataRow("请假编码") = jo("leave_type").ToString()  \'请假类型:1年假;2事假;3病假;4调休假;5婚假;6产假;7陪产假;8其他
e.DataRow("请假名称")= jo("reason").ToString()  \'请假事由
e.DataRow("请假开始时间") = jo("start_time").ToString()
e.DataRow("请假结束时间") = jo("end_time").ToString()         \'报销明细

 


--  作者:有点甜
--  发布时间:2018/8/6 16:59:00
--  

msgbox(json)数据看一下,有可能是空值。

 

要判断是不是空值,是不是json字符串。


--  作者:zoyong
--  发布时间:2018/8/6 17:12:00
--  
老师厉害,果然是空值
--  作者:zoyong
--  发布时间:2018/8/9 11:26:00
--  
下面代码可用,但是已经下载的数据,不会更新审批状态和下载金额
请老老师忙修改一下代码

For i As Integer = 0 To ja.Count - 1
    If  ja(i)("spname").ToString() = "报销" Then       
        Dim spbh As String = ja(i)("sp_num").ToString()    \'判断是否存在相同的审批编号行
        Dim dr As DataRow = DataTables("微信审批表报销").Find("审批编号 = \'" & spbh & "\'")
        If dr Is Nothing Then             \'如果不存在想同审批编号
            
            Dim r As Row =Tables("微信审批表报销").AddNew()
            r("单据类型") = ja(i)("spname").ToString()   \'审批名称(请假,报销,自定义审批名称)
            r("审批编号") = ja(i)("sp_num").ToString()   \'审批单号
            r("申请部门")  = ja(i)("apply_org").ToString()   \'申请人部门
            r("申请人") = ja(i)("apply_name").ToString()     \'申请人姓名
            r("审批状态") = ja(i)("sp_status").ToString()    \'审批状态:1审批中;2 已通过;3已驳回;4已取消;6通过后撤销;10已支付
            r("审批人") = ja(i)("approval_name").ToString().Replace("""","").Replace("[","").Replace("]","").Replace(vblf,"")     \'审批人姓名
            r("提交时间") = ja(i)("apply_time").ToString()   \'审批单提交时间
            r("附件") = ja(i)("mediaids").ToString()         \'审批的附件media_id,可使用media/get获取附件
            r("报销类型") = ja(i)("expense").ToString()         \'报销类型
            r("userid") = ja(i)("apply_user_id").ToString()   \'审批单提交者的userid
            r("单据附件") = ja(i)("mediaids").ToString()         \'unix时间
            
            Dim csr As String
            csr = ja(i)("notify_name").ToString().Replace(vblf,"")
            If  len(csr) = 2 Then
                r("抄送人") = ""
            Else
                Dim s As String
                s = ""
                For Each v As JToken In JArray.Parse(csr)
                    s = s & "," & v.ToString
                Next
                r("抄送人") = s.TrimStart(",")
            End If
            hj = hj + 1
        End If
    End If
Next
\'\'-----合计同步--------------
MessageBox.Show("同步完成,合计同步了【 " & hj & " 】条记录!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)

--  作者:有点甜
--  发布时间:2018/8/9 11:31:00
--  
Dim ja
For i As Integer = 0 To ja.Count - 1
    If  ja(i)("spname").ToString() = "报销" Then
        Dim spbh As String = ja(i)("sp_num").ToString()    \'判断是否存在相同的审批编号行
        Dim dr As DataRow = DataTables("微信审批表报销").Find("审批编号 = \'" & spbh & "\'")
        Dim r As DataRow = dr
       
        If r Is Nothing Then r = DataTables("微信审批表报销").AddNew()
       
        r("单据类型") = ja(i)("spname").ToString()   \'审批名称(请假,报销,自定义审批名称)
        r("审批编号") = ja(i)("sp_num").ToString()   \'审批单号
        r("申请部门")  = ja(i)("apply_org").ToString()   \'申请人部门
        r("申请人") = ja(i)("apply_name").ToString()     \'申请人姓名
        r("审批状态") = ja(i)("sp_status").ToString()    \'审批状态:1审批中;2 已通过;3已驳回;4已取消;6通过后撤销;10已支付
        r("审批人") = ja(i)("approval_name").ToString().Replace("""","").Replace("[","").Replace("]","").Replace(vblf,"")     \'审批人姓名
        r("提交时间") = ja(i)("apply_time").ToString()   \'审批单提交时间
        r("附件") = ja(i)("mediaids").ToString()         \'审批的附件media_id,可使用media/get获取附件
        r("报销类型") = ja(i)("expense").ToString()         \'报销类型
        r("userid") = ja(i)("apply_user_id").ToString()   \'审批单提交者的userid
        r("单据附件") = ja(i)("mediaids").ToString()         \'unix时间
       
        Dim csr As String
        csr = ja(i)("notify_name").ToString().Replace(vblf,"")
        If  len(csr) = 2 Then
            r("抄送人") = ""
        Else
            Dim s As String
            s = ""
            For Each v As JToken In JArray.Parse(csr)
                s = s & "," & v.ToString
            Next
            r("抄送人") = s.TrimStart(",")
        End If
        hj = hj + 1
    End If
Next
\'\'-----合计同步--------------
MessageBox.Show("同步完成,合计同步了【 " & hj & " 】条记录!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)

--  作者:zoyong
--  发布时间:2018/8/9 11:39:00
--  
金额无法下载
sums无效,不知道什么原因

--  作者:有点甜
--  发布时间:2018/8/9 12:10:00
--  
以下是引用zoyong在2018/8/9 11:39:00的发言:
金额无法下载
sums无效,不知道什么原因

 

具体一点你的问题,或者做个可以测试的例子测试。