Foxtable(狐表)用户栏目专家坐堂 → 使用WeUI框架如何验证数据的问题


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

主题:使用WeUI框架如何验证数据的问题

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


加好友 发短信
等级:幼狐 帖子:86 积分:876 威望:0 精华:0 注册:2014/7/25 23:20:00
使用WeUI框架如何验证数据的问题  发帖心情 Post By:2017/4/12 17:48:00 [显示全部帖子]

请教一下,使用WeUI框架做的Web页面,是在httpRequest时间中写代码,实现用手机访问网址后录入数据,而不是用之前电脑上运行Foxtable发布后的应用程序。

例如生成页面以及接收数据后用Datatables.addnew()进行数据写入

原来用Foxtable做的时候,需要对录入的数据进行验证等操作,例如
1. 输入的零件编码是不是系统已经存在的(不能随意录入错误的编码)。
2. 记录加工数据时,需要判断后面工序加工的数量不能超过前面工序的加工数量,如果超出报错并用e.cancel取消录入。

类似于上面的这些数据验证,如果在手机端输入,如何进行验证,以及如何在手机上显示出报错信息?
看了一下帮助文件好像没有这方面的内容,谢谢。



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


加好友 发短信
等级:幼狐 帖子:86 积分:876 威望:0 精华:0 注册:2014/7/25 23:20:00
  发帖心情 Post By:2017/4/12 20:12:00 [显示全部帖子]

还有一个问题,在“submitAjaxForm”这个帮助里面。

 

    Case "handle.htm"
        Dim nms() As String = {"客户","日期","产品","数量","单价"}
       
For Each nm As String In nms
           
If e.PostValues.ContainsKey(nm) = False Then
               
e.WriteString("
请输入" & nm & "!") '返回错误消息
                Return
'
必须返回
            End If
        Next
        Dim dr As DataRow = DataTables(
"
订单").AddNew()
        For Each nm As String In nms
            dr(nm) = e.PostValues(nm)
        Next
        dr.Save()
        e.WriteString("OK")
'
返回增加成功消息

 

----------------

有2个问题:

1,如果Foxtable的数据库用的SQLserver,并且服务器上没有全部载入“订单”的表格,是否可以使用Datatables().Addnew()这个方法。

还是只能使用datatables().SQLupdate()这个方法。

2,即使开始全部载入了数据,但是随着数据的提交,新提交的数据,在服务器端的foxtable会自动更新到当前的datatables里面吗?

 

也就是我之前用foxtable所写的那些逻辑判断语句,是否需要都更改掉?

 

 


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


加好友 发短信
等级:幼狐 帖子:86 积分:876 威望:0 精华:0 注册:2014/7/25 23:20:00
  发帖心情 Post By:2017/4/12 20:16:00 [显示全部帖子]

另外关于服务器端数据的接收,我的理解是用原有的foxtable编译生成了客户端文件,用户只要运行这个就可以把数据更新到SQLserver里面。

 

现在如果客户端用web方式来更新数据,服务器端就需要一直运行一个foxtable编译后的可执行文件,用来接收数据和更新?

这样会不会导致服务器上的程序运行一段时间后由于内存等原因出错(windows下这种情况还是比较多的)。

那出错以后是不是就会存在数据无法及时更新到服务器里面,需要重新启动这个可执行文件?


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


加好友 发短信
等级:幼狐 帖子:86 积分:876 威望:0 精华:0 注册:2014/7/25 23:20:00
  发帖心情 Post By:2017/4/12 21:30:00 [显示全部帖子]

以下是引用有点色在2017/4/12 21:15:00的发言:

1、可以直接用addnew

 

2、如果你执行了save代码,就会保存到sqlserver数据库

 

你之前写的逻辑判断都不需要去掉。

 

那再问一下,之前写的一些 datatables().find和 datatables().compute,例如下面的:

 

                Dim phtotle, llsl As Integer

                Dim drr As DataRow

                drr = DataTables("外星轮类生产汇总表").Find("[生产批号] = '" & e.DataRow("生产批号") &"'")

                phtotle = drr("计划生产数量")

 

                llsl = DataTables("外星轮类生产点检记录").Compute("Sum(加工数量)", "生产批号 = '" & e.DataRow("生产批号") & "' And 道序编码 = '005'")

 

以及类似于这种生成目录树的语句都不需要更改吗?

 

                tb.SourceTable = DataTables("外星轮类毛坯数据表") '指定目录树表

                tb.TreeCols = "毛坯生产批号|毛坯炉号" '指定用于生成目录树的列

                tb.SourceCols = "毛坯生产批号|毛坯炉号" '指定数据来源列

                tb.ReceiveCols = "毛坯生产批号|毛坯炉号" '指定数据接收列

                tb.TreeFilter = "[库存状态] = True And " & "[毛坯规格] = '" & mpge & "'"

                Tables("外星轮类生产汇总表").Cols("毛坯生产批号").DropTree = tb.Build()

                    End If

                Else

                    MessageBox.Show("输入的生产批号有误,该项号零件不存在", "提示")

                    e.Cancel = True

                End If

 

 


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


加好友 发短信
等级:幼狐 帖子:86 积分:876 威望:0 精华:0 注册:2014/7/25 23:20:00
  发帖心情 Post By:2017/4/12 22:39:00 [显示全部帖子]

1. 如果只是用web方式进行操作,手机+电脑的浏览器,datachanging的那些事件判断应该在哪里加?重新写一个htm文件,在里面进行判断?

像在“submitAjaxForm”这个帮助里面,增加一个handle.htm,在这里面进行datatables的判断?

 

    Case "handle.htm"
        Dim nms() As String = {"客户","日期","产品","数量","单价"}
       
For Each nm As String In nms
           
If e.PostValues.ContainsKey(nm) = False Then
               
e.WriteString("
请输入" & nm & "!") '返回错误消息
                Return
'
必须返回
            End If
        Next
        Dim dr As DataRow = DataTables(
"
订单").AddNew()
        For Each nm As String In nms
            dr(nm) = e.PostValues(nm)
        Next
        dr.Save()
        e.WriteString("OK")
'
返回增加成功消息

 

2. 还有一个问题,如果有的电脑是用编译生成的客户端操作,录入的数据即使用了dr.save(),在服务器端数据应该不会自动刷新吧,这个时候如何保证手机端看到的数据是同步的?

 


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


加好友 发短信
等级:幼狐 帖子:86 积分:876 威望:0 精华:0 注册:2014/7/25 23:20:00
  发帖心情 Post By:2017/4/13 16:00:00 [显示全部帖子]

谢谢各位的答疑。

当初选择Foxtable就看中他对数据读写权限的控制功能很强大,编程简单。
目前手机端可以增加录入的灵活性,我还是希望录入的数据可以借助Foxtable原有那种判断逻辑来验证数据。

不过目前客户端最大的一个问题就是多人操作的时候偶尔会发生丢数据的情况,这是一个很头大的问题。

 回到顶部