以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  使用WeUI框架如何验证数据的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99102)

--  作者:bressernon
--  发布时间:2017/4/12 17:48:00
--  使用WeUI框架如何验证数据的问题
请教一下,使用WeUI框架做的Web页面,是在httpRequest时间中写代码,实现用手机访问网址后录入数据,而不是用之前电脑上运行Foxtable发布后的应用程序。

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

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

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



--  作者:有点色
--  发布时间:2017/4/12 17:53:00
--  

帮助里面,有相关内容

 

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

 

 


--  作者:有点色
--  发布时间:2017/4/12 17:55:00
--  

 整体验证也可以 http://www.foxtable.com/mobilehelp/scr/0101.htm

 


--  作者:bressernon
--  发布时间: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
--  发布时间:2017/4/12 20:16:00
--  

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

 

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

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

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


--  作者:有点色
--  发布时间:2017/4/12 21:15:00
--  

1、可以直接用addnew

 

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

 

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


--  作者:有点色
--  发布时间:2017/4/12 21:21:00
--  

回复5楼,foxtable的http还是挺稳定的,这个你不用担心。如果无法访问了,就需要重新启动程序。

 

foxtable的微信公众号,就是用foxtable做的,运行良好。


--  作者:bressernon
--  发布时间: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

 

 


--  作者:有点色
--  发布时间:2017/4/12 21:47:00
--  

 代码都不需要改。而且,你可以把以前的事件代码、窗口,都删除,如果只是手机使用,只需要编写httpRequest即可。


--  作者:bressernon
--  发布时间: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(),在服务器端数据应该不会自动刷新吧,这个时候如何保证手机端看到的数据是同步的?