Foxtable(狐表)用户栏目专家坐堂 → [求助]如何将这两个网页写在一起?


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

主题:[求助]如何将这两个网页写在一起?

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


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
[求助]如何将这两个网页写在一起?  发帖心情 Post By:2017/3/9 14:53:00 [只看该作者]

这段代码是取得当前用户的userid
If e.host = "qwe.ngrok.cc" Then '需要授权才能访问的域名
    Dim UserId As String
    Dim UserName As String
    Dim sb As New StringBuilder
    sb.AppendLine("<meta name='viewport' c>")
    If e.GetValues.ContainsKey("code") Then '如果通过授权链接跳转而来,就根据传递过来的code参数调用接口,获取用户的UserId
        Dim ul As String  = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={0}&code={1}"
        ul = CExp(ul,Functions.Execute("GetQYAccessToken"),e.GetValues("code"))
        Dim hc As new HttpClient(ul)
        Dim jo As JObject = JObject.Parse(hc.GetData)
        If jo("UserId") IsNot Nothing Then
            UserId = jo("UserId")
        End If
    Else
        UserId = e.Cookies("userid") '否则从cookie中提取userid和username
    End If
    Dim Verified As Boolean
    Dim dr As DataRow = DataTables("统计").Find("userid ='" & UserId & "'") '根据openid找出对应的行
    If UserId  > "" AndAlso dr IsNot Nothing  '授权成功
        Verified  = True
        UserName = dr("姓名")
        e.AppendCookie("userid",UserId) '将userid和username存储在Cookie中
    ElseIf e.GetValues.ContainsKey("code") = False Then '如果授权失败,且不是通过授权链接跳转而来,那么就跳转到授权链接
        Dim ul As String = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=*************&redirect_uri=http%3a%2f%2fqwe.ngrok.cc&response_type=code&scope=snsapi_base&state=123#wechat_redirect"
        sb.Append("<meta http-equiv='Refresh' c>") '跳转到授权链接
        e.WriteString(sb.ToString)
        Return
    End If
    If Verified = False Then
        sb.AppendLine("你无权访问本系统")
    Else
        sb.AppendLine("欢迎" & UserName & " , <a href='http://qwe.ngrok.cc'>刷新页面</a>")
    End If
    e.WriteString(sb.ToString)
End If

这段是通过UserId 来筛选考勤数据!

Select Case e.Path
    Case "list.htm"
        Dim page As Integer = 0 '默认page为0,显示第一页
        Dim pageRows As Integer = 30 '每页10行
        If e.GetValues.ContainsKey("page") Then  '如果地址中有page参数
            Integer.TryParse(e.GetValues("page"), page) '提取page参数
        End If
        Dim StartRow As Integer = page * pageRows '此页第一行
        Dim EndRow As Integer = (page + 1) * pageRows - 1 '此页最后一行
        Dim lst As List(of DataRow) = DataTables("统计").Select("userid ='" & UserId & "'","日期 Desc") '按日期顺序显示
        If StartRow > lst.Count -1 Then
            e.WriteString("已经是最后一页!")
            Return
        End If
        EndRow = Math.Min(EndRow, lst.Count - 1) '这是必须的
        Dim sb As New StringBuilder
        Dim nms() As String = {"姓名","日期","星期","t1","t2","t3","t4","t6"}
        sb.AppendLine("<Table border='1'>")
        sb.AppendLine("<caption>考勤浏览<caption></br>")
        sb.Append("<tr>")
        For Each nm As String In nms
            sb.Append("<td>" & nm & "</td>")
        Next
        sb.AppendLine("</tr>")
        For r As Integer = StartRow To EndRow
            sb.Append("<tr>")
            For Each nm As String In nms
                sb.Append("<td>" & lst(r)(nm) & "</td>")
            Next
            sb.AppendLine("</tr>")
        Next
        sb.AppendLine("</Table></br></br>")
        If page > 0 Then
            sb.Append("<a href='list.htm?page=" & page - 1 & "'>上一页</a> ")
        End If
        If EndRow < lst.Count -1 Then
            sb.Append("<a href='list.htm?page=" & page + 1 & "'>下一页 </a>" )
        End If
        e.WriteString(sb.ToString)
End Select

要实现效果是通过企业号的微信id来查询每个员工自己的考勤数据!代码我已经分开测试成功!就是不知道怎么合在一起了!惭愧啊!图片点击可在新窗口打开查看

[此贴子已经被作者于2017/3/9 14:53:59编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/9 15:02:00 [只看该作者]

直接写在一起,再判断一下。

 

第一段     e.WriteString(sb.ToString)

 

改成

 

If e.path = "登陆验证页" OrElse Verified = False Then

    e.WriteString(sb.ToString)

    Return   

End If

[此贴子已经被作者于2017/3/9 15:04:38编辑过]

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


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2017/3/9 15:10:00 [只看该作者]

还是不太明白你的意思!在Else 后面加上第二段代码?
[此贴子已经被作者于2017/3/9 15:10:17编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/9 15:11:00 [只看该作者]

直接写两段。然后改一下

 

If e.path = "登陆验证页" OrElse Verified = False Then

    e.WriteString(sb.ToString)

    Return   

End If


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


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2017/3/9 15:26:00 [只看该作者]

        e.AppendCookie("userid",UserId) '将userid和username存储在Cookie中
    ElseIf e.GetValues.ContainsKey("code") = False Then '如果授权失败,且不是通过授权链接跳转而来,那么就跳转到授权链接
        Dim ul As String = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=*************&redirect_uri=http%3a%2f%2fqwe.ngrok.cc&response_type=code&scope=snsapi_base&state=123#wechat_redirect"
        sb.Append("<meta http-equiv='Refresh' c>")     
Select Case e.Path
    Case "list.htm"
        Dim page As Integer = 0
        Dim pageRows As Integer = 30
        If e.GetValues.ContainsKey("page") Then
            Integer.TryParse(e.GetValues("page"), page)
        End If
        Dim StartRow As Integer = page * pageRows 
        Dim EndRow As Integer = (page + 1) * pageRows - 1 
        Dim lst As List(of DataRow) = DataTables("统计").Select("userid ='" & UserId & "'","日期 Desc") 
        If StartRow > lst.Count -1 Then
            e.WriteString("已经是最后一页!")
            Return
        End If
        EndRow = Math.Min(EndRow, lst.Count - 1) '这是必须的
        Dim sb As New StringBuilder
        Dim nms() As String = {"姓名","日期","星期","t1","t2","t3","t4","t6"}
        sb.AppendLine("<Table border='1'>")
        sb.AppendLine("<caption>考勤浏览<caption></br>")
        sb.Append("<tr>")
        For Each nm As String In nms
            sb.Append("<td>" & nm & "</td>")
        Next
        sb.AppendLine("</tr>")
        For r As Integer = StartRow To EndRow
            sb.Append("<tr>")
            For Each nm As String In nms
                sb.Append("<td>" & lst(r)(nm) & "</td>")
            Next
            sb.AppendLine("</tr>")
        Next
        sb.AppendLine("</Table></br></br>")
        If page > 0 Then
            sb.Append("<a href='list.htm?page=" & page - 1 & "'>上一页</a> ")
        End If
        If EndRow < lst.Count -1 Then
            sb.Append("<a href='list.htm?page=" & page + 1 & "'>下一页 </a>" )
        End If
        e.WriteString(sb.ToString)
End Select

If e.path = "登陆验证页" OrElse Verified = False Then

    e.WriteString(sb.ToString)

    Return   

End If


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


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2017/3/9 15:27:00 [只看该作者]

字节限制我把第一段前面的给删除了!这样改?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/9 15:31:00 [只看该作者]

第一段

 

    If Verified = False Then
        sb.AppendLine("你无权访问本系统")
    Else
        sb.AppendLine("欢迎" & UserName & " , <a href='http://qwe.ngrok.cc'>刷新页面</a>")
    End If
    e.WriteString(sb.ToString)
End If

 

红色改成

 

If e.path = "登陆验证页" OrElse Verified = False Then

    e.WriteString(sb.ToString)

    Return   

End If


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


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2017/3/9 16:07:00 [只看该作者]

第二段代码应该放在哪里?刚刚试了一下不行呢!图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/9 16:48:00 [只看该作者]

第二段代码放在下面。不可能不行。请加入msgbox调试你的代码。


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


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2017/3/10 11:05:00 [只看该作者]

已经改好!谢谢你的指点!图片点击可在新窗口打开查看

 回到顶部