以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 计划管理 交叉执行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157509)

--  作者:zcgmxf
--  发布时间:2020/10/19 9:45:00
--  [求助] 计划管理 交叉执行
老师,我的计划管理有两个计划,一个是下企业微信打卡数据,一个是下载审批数据,连接到单位数据库没问题,连接到阿里云服务器上数据库后
下载打卡数据时通过msgbox 显示是审批数据,是不是我的注册码有问题?谢谢!


Dim st As New Date(1970,1,1,8,0,0)
Dim t1 As Integer = CInt((Date.Today.AddDays(-7)  - st).TotalSeconds()) \'时间戳开始时间
Dim t2 As Integer = CInt((Date.Now - st).TotalSeconds()) \'时间戳结束时间
Dim ur As String = "https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckindata?access_token={0}"
Dim hc As New HttpClient(CExp(ur,Functions.Execute("打卡GetQYAccessToken"),1))
Dim jo As New JObject
jo("opencheckindatatype") = 3 \' 是 打卡类型.1:上下班打卡;2:外出打卡;3:全部打卡
jo("starttime") = t1
jo("endtime") = t2

Dim ja As New Jarray \'定义数组
Dim dds As List(of DataRow) = DataTables("Users").Select("userid is not null")
For Each dd As DataRow In dds
    ja.Add(CStr(dd("userid")))
Next
jo("useridlist") =ja
hc.Content = jo.Tostring()
jo = JObject.Parse(hc.GetData)

If jo("checkindata") IsNot Nothing Then
    ja = jo("checkindata")
msgbox(jo("checkindata"))
    For i As Integer = 0 To ja.Count - 1

--  作者:有点酸
--  发布时间:2020/10/19 10:37:00
--  
你的执行条件是:
If jo("checkindata") IsNot Nothing Then

既然既然执行了,说明jo的checkindata有数据

jo的数据来自:
jo = JObject.Parse(hc.GetData)

hc提交的内容来自:
hc.Content = jo.Tostring()

jo的数据来自:
jo("useridlist") =ja

ja的数据来自数据表:
Dim ja As New Jarray \'定义数组
Dim dds As List(of DataRow) = DataTables("Users").Select("userid is not null")
For Each dd As DataRow In dds
    ja.Add(CStr(dd("userid")))
Next

说明你的结果和数据标的内容有关系,阿里云的数据和你公司的数据不一样而已,所以一点不奇怪啊。

自己设计的东西,其中的逻辑关系自己最清楚啊。

比较一下两次合成的ja有啥不同:
Messagebox.show(ja.Tostring)


[此贴子已经被作者于2020/10/19 10:38:03编辑过]

--  作者:zcgmxf
--  发布时间:2020/10/19 10:55:00
--  
老师,是有数据,但是显示是审批的数据,我只是两个数据库的位置不同而已啊,一个在本地,一个是阿里云的云服务器,都是在我的同一台电脑上运行的,获取数据的条件和环境是一样的啊。

[此贴子已经被作者于2020/10/19 10:57:54编辑过]

--  作者:有点酸
--  发布时间:2020/10/19 11:22:00
--  
2楼回复足够清楚了。
--  作者:有点蓝
--  发布时间:2020/10/19 19:37:00
--  
这样测试,看返回什么数据

……
Dim ja As New Jarray \'定义数组
Dim dds As List(of DataRow) = DataTables("Users").Select("userid is not null")
For Each dd As DataRow In dds
    ja.Add(CStr(dd("userid")))
Next
jo("useridlist") =ja
hc.Content = jo.Tostring()
dim res as string = hc.GetData
msgbox("checkindata = " & res)
jo = JObject.Parse(res)

If jo("checkindata") IsNot Nothing Then
msgbox("checkindata = " & jo("checkindata"))

--  作者:zcgmxf
--  发布时间:2020/10/20 7:53:00
--  
谢谢蓝老师,出现了 301023 的错误码,微信后台不允许一次提交超过100人数据下载。现在可以正常下载打卡数据了。