Foxtable(狐表)用户栏目专家坐堂 → HBuider扫码与submitAjaxFileds


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

主题:HBuider扫码与submitAjaxFileds

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/10/20 15:26:00 [只看该作者]

Dim e As RequestEventArgs = args(0)
Dim path As String = "foxtableAppTest"
Dim fl As String = "d:\web\" & e.path
If filesys.FileExists(fl)
    Dim idx As Integer = fl.LastIndexOf(".")
    Dim ext As String  = fl.SubString(idx)
    Select Case ext
        Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".zip",".rar",".txt"
            e.WriteFile(fl)
            Return "" '这里必须返回
    End Select
End If

Select Case e.path
    Case "prod.htm"
        Dim wb As new weui
        wb.AppendHTML("<script type='text/javascript' src='/" & path & "/js/common.js'></script>", True)
        wb.AppendHTML("<link rel='stylesheet' href='/" & path & "/css/common.css' Type='text/css' charset='utf-8'/>", True)
        wb.AppendHTML("<script src='./lib/ajaxform.js'></script>") '引入脚本文件
        If e.PostValues.Count = 0 Then
            wb.AddForm("","form1","prod.htm")
            With wb.AddInputGroup("form1","ipg1","现场盘点")
                Dim UserName As String = e.Cookies("username")  '从cookie中获取用户名
                Dim Val1 As String = DecryptText(UserName,"123","123") '解密,两个密钥必须和加密的时候
                Dim Val2 As Date = Date.today
                .AddHiddenValue("统计员",Val1)
                .AddHiddenValue("日期",Val2)
                With .AddInput("图号","图号","")
                    .Attribute = "" '调用js函数
                End With
                .AddInput("名称","名称","Text")
                .AddInput("类别","类别","Text")
                .AddInput("数量","数量","Number")
                .AddInput("备注","备注","Text")
            End With
            
            With wb.AddButtonGroup("form1","btg1",False)
                .Add("btn1", "确定", "submit")
                .Add("btn1", "扫一扫", "button").Attribute = " & path & "/plus/barcode_scan.html',true,true);"""
                .Add("btn1", "返回", "button").Attribute = ""
            End With
            wb.InsertHTML("<script>function scaned( t, r, f ) {document.getElementById('图号').value=r;setCodes();}</script>")
            e.WriteString(wb.Build)
            ' msgbox(th) '这里弹出什么内容
        Else
            Dim nms() As String = {"图号","名称","类别","数量"} '不能为空的列名数组
            For Each nm As String In nms
                If e.PostValues.ContainsKey(nm) = False Then '生成错误提示页
                    With wb.AddMsgPage("","msgpage","增加失败", nm & "列不能为空!")
                        .icon = "Warn" '改变图标
                        .AddButton("btn1","返回").Attribute = ""
                    End With
                    e.WriteString(wb.Build)
                    Return "" '必须返回
                End If
            Next
            nms = New String() {"统计员","日期","图号","名称","类别","数量","备注"}   '重新定义了nms数组,增加了两列.
            Dim dr As DataRow = DataTables("生产盘点表").AddNew()
            For Each nm As String In nms
                If e.PostValues.ContainsKey(nm) Then
                    dr(nm) = e.PostValues(nm)
                End If
            Next
            '保存并生成增加成功提示页面
            dr.save()
            With wb.AddMsgPage("","msgpage","增加成功","谢谢!") '生成成功提示页
                .AddButton("btn1","继续增加","prod.htm")
            End With
            e.WriteString(wb.Build)
        End If
    Case "getCodes.htm" '根据输入的省和县,获取区号有邮编
        Dim y As Integer = Date.Today.Year
        Dim m As Integer = Date.Today.Month
        Dim mt As New Date(y, m, 1)
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        Dim cr As DataRow
        cmd.C
        cmd.CommandText = "Select * Fr om {期初表} Where 日期 = #" & mt & "# "
        dt = cmd.ExecuteReader
        Dim dr As DataRow = dt.Find("零件图号='" & e.Values("图号") & "'")
        If dr IsNot Nothing Then
            e.WriteString(dr("零件名称") & "|" & dr("备注"))
        End If
End Select

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/10/20 15:29:00 [只看该作者]

Dim e As RequestEventArgs = args(0)
Static UserTable As DataTable '定义一个变量,用于存储用户随机身份ID,以及最后一次活动时间.
Static ClearTime As Date
If UserTable Is Nothing Then '创建用于记录登录信息的临时表
    ClearTime = Date.Now()
    Dim dtb As New DataTableBuilder("UserInfos")
    dtb.AddDef("UserName", Gettype(String), 16)
    dtb.AddDef("UserID",Gettype(String),16)
    dtb.AddDef("ActiveTime",Gettype(Date))
    UserTable = dtb.Build(True)
End If
If (Date.Now - ClearTime).TotalMinutes >= 30 Then '清除超过30分钟没有操作的登录信息
    UserTable.DeleteFor("ActiveTime < #" & Date.Now.AddMinutes(-30) & "#")
    ClearTime = Date.Now()
End If
Dim wb As New weui
'身份验证
Dim UserName As String
Dim Password As String
Dim UserID As String
Dim UID As String
If e.Path = "logon.htm" '验证用户名和密码
    If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password")  Then
        Dim Verified As Boolean '用于标记用户是否通过了身份验证
        UserName = e.PostValues("username")
        Password = e.PostValues("password")
        '验证用户身份
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        cmd.C
        cmd.CommandText = "Select * Fr om {员工表} Where [员工姓名] = '" & UserName & "' And  [密码] = '" & Password & "'"
        dt = cmd.ExecuteReader
        If dt.DataRows.Count = 1 Then
            Verified  = True
            Dim dr0 As DataRow = dt.DataRows(0)
            UID = dr0("员工编号")
        End If
        If Verified Then
            UserID = Rand.NextString(16) '生成随机用户ID
            UserName = EncryptText(UserName,"123","123") '将用户名加密.
            Dim dr As DataRow = UserTable.Find("UserName = '" & UserName & "'")
            If  dr IsNot Nothing Then '如果是重复登录,删除以前的登录信息
                dr.Delete()
            End If
            dr = UserTable.AddNew()
            dr("UserName") = UserName
            dr("UserID") = UserId
            dr("ActiveTime") = Date.Now '记录登录时间
            wb.AppendCookie("username",UserName) '将用户名和密码写入cookie
            wb.AppendCookie("userid",UserID)
            wb.AppendCookie("uid",UID)
            wb.InsertHTML("<meta http-equiv='Refresh' c>") '直接跳转到首页
            e.WriteString(wb.Build) '生成网页
            Return "" '必须的
        End If
    End If
Else '其它页面从Cookie提取登录信息进行验证
    UserName = e.Cookies("username")  '从cookie中获取用户名
    UserID = e.Cookies("userid")  '从cookie中获取 随机ID
    Dim dr As DataRow = UserTable.Find("UserName = '" & UserName & "'")
    If dr IsNot Nothing AndAlso dr("UserID") = UserID Then  '如果通过验证,更新活动时候,继续访问其它页面.
        dr("ActiveTime") = Date.Now '更新活动时间
    Else '如果验证失败
        wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面
        e.WriteString(wb.Build) '生成网页
        Return "" '必须的
    End If
End If
'开始生成网页
Select Case e.path
    Case "logon.htm" '登录页面
        wb.AddPageTitle("","pageheader","管理系统","")
        If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password")  Then '判断是否是验证失败后的重新登录
            wb.AddTopTips("","toptip1","用户名或密码错误!").msec = 2000 '如果用户通过登录按钮访问,则给用户一个2秒的提示.
        End If
        wb.AddForm("","form1","logon.htm")
        With wb.AddInputGroup("form1","ipg1")
            .AddInput("username","户名","text")
            .AddInput("password","密码","password")
        End With
        With wb.AddButtonGroup("form1","btg1",True)
            .Add("btn1", "登录", "submit")
        End With
    Case "exit.htm" '退出登录
        wb.DeleteCookie("username") '清除cookie中原来的用户名和密码
        wb.DeleteCookie("password")
        wb.DeleteCookie("uid")
        wb.InsertHTML("<meta http-equiv='Refresh' c>") '然后直接跳转到登录页面
    Case "car.htm"
        Functions.Execute("车辆管理",e)
        Return "" '必须的
    Case "drive.htm"
        Functions.Execute("用车登记",e)
        Return "" '必须的
    Case "gas.html"
        Functions.Execute("油卡登记",e)
        Return "" '必须的
    Case "prod.htm"
        Functions.Execute("盘点sc",e)
        Return "" '必须的
    Case "", "default.html" '首页
        With wb.AddTabBar("", "tb1", 1)
            ' .AddButton("bt1","返回","./images/button.png").Attribute = ""
            .AddPage("page1","","./images/button.png")
            .AddButton("bt2","盘点","./images/cell.png","/prod.htm")
            .AddButton("bt3","退出系统","./images/cell.png","/exit.htm")
            .AddButton("bt4","车辆管理","./images/cell.png","/car.htm")
        End With
        With wb.AddGrid("page1","g1")
            UID = e.Cookies("uid")  '从cookie中获取用户ID
            Dim cmd1 As New SQLCommand
            Dim dt1 As DataTable
            cmd1.C
            cmd1.CommandText = "Select * Fr om {权限明细} Where [用户ID] = '"& UID &"'"
            dt1 = cmd1.ExecuteReader
            For Each dr As DataRow In dt1.datarows
                .Add(dr("序号"),dr("模块名称"),dr("模块图标"),"")
            Next
        End With
    Case "filter.htm"
        Functions.Execute("Filter",e)
        Return "" '必须的
    Case "list.htm"
        Functions.Execute("List",e)
        Return "" '必须的
    Case "tongji.htm"
        Functions.Execute("Statistics",e)
        Return "" '必须的
    
End Select
e.WriteString(wb.Build) '生成网页

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


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

看不出什么问题,用浏览器打开,然后按f12,看看有没有什么错误

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/10/20 15:46:00 [只看该作者]

有一个warning

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


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


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

wb.InsertHTML("<script>function scaned( t, r, f ) {document.getElementById('图号').value=r;alert(1);setCodes();}</script>")

setCodes函数里面也加上alert看能不能弹出来

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/10/22 9:43:00 [只看该作者]

弹不出

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/22 9:48:00 [只看该作者]

1、扫一扫的测试,你要在手机上测试才有效的,不能在浏览器里面测试;

 

2、测试的时候,多加入alert弹出信息看看,定位出错位置;

 

3、如果还是不会,做个实例发上来测试。


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/10/22 10:53:00 [只看该作者]

手机扫码没影响,但是setCodes()不生效。
我另外做个实例看看。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/22 10:58:00 [只看该作者]

以下是引用石四在2018/10/22 10:53:00的发言:
手机扫码没影响,但是setCodes()不生效。
我另外做个实例看看。

 

1、扫码能返回到文本框吗?

 

2、在返回文本框后面,加入alert,能否弹出?

 

3、在setCodes里面加入alert能否弹出?在setCodes的那个js文件的最顶部,加入alert能否弹出?


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/10/22 15:24:00 [只看该作者]

重新做了实例,还是同样的问题。版主给看看呗
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.rar


 回到顶部
总数 30 上一页 1 2 3 下一页