Foxtable(狐表)用户栏目专家坐堂 → 几个小问题


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

主题:几个小问题

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


加好友 发短信
等级:幼狐 帖子:167 积分:1624 威望:0 精华:0 注册:2018/3/12 9:22:00
几个小问题  发帖心情 Post By:2020/4/18 19:33:00 [只看该作者]

一个窗体里的代码,有几处不同的小问题。


1、窗口AAA里的afterload事件(行定位问题)


If  Ztm="sgxiugai"  Then
    '进入数据更新状态
    '将已填数据从数据库读出到界面中
    Dim rread As Row = Tables("car_accident").current
    e.Form.Controls("车号").value =    rread("sg_carname") 
    e.Form.Controls("肇事日期").value =    rread("sg_rq")  
    ..........................
Else
    '如果状态为非修改,则新增行
    Dim r As Row = Tables("car_accident").AddNew
 End If

在其他窗体代码中使用了全局变量ztm。  

窗口BBB,ztm = “sgadd”
窗口CCC,ztm=“sgxiugai”

如果先使用窗口CCC打开窗口AAA,不进行任何操作,直接关闭窗口AAA.然后通过窗口BBB打开窗口AAA,则程序会定位数据到的打开窗口CCC时的记录,而不是执行新增功能。此时需要关闭窗口AAA,在从窗口BBB打开窗口AAA才正常。

窗口CCC代码:

Ztm="sgxiugai" 
Dim dr As DataRow = Tables("事故查询").Current.DataRow
Dim wz As Integer = Tables("accident").FindRow(dr)
If wz >=0 Then
      Tables("accident").Position = wz
End If

 


2、year问题
Dim sgs As Integer  '今年总数量
sgs =  DataTables("accident").Compute("Count(rq)","  Year(rq)= Year(GetDate())  ")

报错内容:表达式包含未定义的函数调用 Year().   year不是系统内部自带函数吗,为什么不能使用


Dim y As Integer = Date.Today.Year
Dim y1 As New Date(y, 1, 1)
Dim y2 As New Date(y, 12, 31)
sgs= DataTables("accident").Compute("Count([rq])", "sg_rq >= # " & y1 & " # And rq < # " & y2 & " #  " )
这种方式可以执行。



3、统计数据不正确
Dim sfz  As String = e.Form.Controls("身份证号码").value
Dim y As Integer = Date.Today.Year
Dim y1 As New Date(y, 1, 1)
Dim y2 As New Date(y, 12, 31)
Dim sgs As Integer  '今年事故数
‘该语句执行后,无论后台是否有数据,都是0
sgs= DataTables("accident").Compute("Count([rq])", "rq >= # " & y1 & " # And rq < # " & y2 & " #  And sfz = '& sfz &' " )



[此贴子已经被作者于2020/4/18 22:56:22编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/19 21:08:00 [只看该作者]

1、窗口CCC打开窗口AAA
ztm=“sgxiugai”
forms("AAA").open

窗口BBB打开窗口AAA
ztm=“sgadd
forms("AAA").open

窗口AAA里的afterload事件
msgbox(ztm) 分别在BBB、CCC打开AAA看提示什么

2、year是数据库的函数,表达式条件是用不了的,如果改为SqlCompute就可以。

3、Compute只查询已经加载的数据,如果数据源没有完全加载请使用SqlCompute,另外

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

 sfz = '" & sfz & "'" )
[此贴子已经被作者于2020/4/19 21:08:30编辑过]

 回到顶部