以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何实现窗口按键事件? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146312) |
-- 作者:lgz518 -- 发布时间:2020/2/21 9:49:00 -- 如何实现窗口按键事件? 老师,如何把下面代码放在窗口的按键单击事件,还是这些代码是放在新增,保存代码之前还是其位置之后?谢谢 有试一下,报错 Dim dr As DataRow = e.DataRow Dim pf As String If dr.RowState <> DataRowState.Added Then Return ElseIf dr.IsNull("制单日期") Then e.Cancel = True MessageBox.Show("必须输入日期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return Else pf = "SHDH" & "" & Format(dr("制单日期"),"yyyyMM") End If e.DataRow("送货单号") = pf & "-" & Format(Key,"0000") \'流水号的设计) e.DataRow("制单日期") = Date.Today() e.DataRow("制单人") = User.name Static Index As Integer = 99999 e.DataRow("送货单号") = Format(Date.Today(),"yyMM") & "-" & Index Index = Index - 1 |
-- 作者:有点蓝 -- 发布时间:2020/2/21 9:59:00 -- 这种应该在表格datacolchanged事件处理:http://www.foxtable.com/webhelp/topics/2403.htm |
-- 作者:lgz518 -- 发布时间:2020/2/21 11:14:00 -- 老师,我知道,但不灵活,以窗口开发,窗口上的表属性(副)及字段没有正表的表属性,因一张表或关联表,在实际开发中不是只在一处被引用,在很多引用时,就是出现局限,建议官方改进,可以没那容易,所以只有改按键事件,所以想改用按键事件发生报错,请老师帮助,谢谢 |
-- 作者:有点蓝 -- 发布时间:2020/2/21 11:53:00 -- 表格事件才是最灵活的。副本一样可以使用主表的事件。窗口按钮不是更多限制吗,按钮只能这个窗口使用,在很多窗口引用时不是要每个窗口都写代码?而不管有多少个副本,一样可以使用datacolchanged事件处理这个编号呀!如果窗口表使用了fill或者DataSource加载,把代码放到全局表事件即可。 窗口按钮用法,比如新增按钮 dim r as row = tables("表A").addnew r("制单日期") = Date.Today() r("制单人") = User.name dim Key as string = datatables("表A").compute("max(送货单号)","制单日期=\'" & Date.Today & "\'") dim idx as integer = 1 if key > "" then idx = val(key.substring(11) )+ 1 end if r("送货单号") = "SHDH" & Format(Date.Today(),"yyyyMM") & "-" & Format(idx,"0000")
|
-- 作者:lgz518 -- 发布时间:2020/2/21 16:12:00 -- 老师,1.根据您的代码,试一下,第一个编号0001,之后都是0000? 2.下面代码红色可能有错,不知道怎么改,是保存 Dim dr As DataRow = e.DataRow Dim pf As String If dr.RowState <> DataRowState.Added Then Return ElseIf dr.IsNull("制单日期") Then e.Cancel = True MessageBox.Show("必须输入日期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return Else pf = "SHDH" & "" & Format(dr("制单日期"),"yyyyMM") End If e.DataRow("送货单号") = pf & "-" & Format(Key,"0000") \'流水号的设计) 3.表格事件才是最灵活的。副本一样可以使用主表的事件。窗口按钮不是更多限制吗? 3.1 是这样比如送货单登记,我们如果只做登记,可表事件,但在做冲帐,引用同一套表(主表和明细),登记取登记单号,冲帐取冲帐单号,表事件就不能用? 因为狐表在窗口上没有把副表没正表的表事件,做不了,如果重新做套表,可能增加系统负担,表太多。 3.2 狐表的表事件大部分是针对正表,在单表使用时,可能看不出影响,但在关联表使用就会有影响,因为它们要求都是正表,但窗口开发,被引用时,就是出现影响。 一个在查询,另一个登记,就会出影响 |
-- 作者:lgz518 -- 发布时间:2020/2/21 16:21:00 -- 如果,窗口的副表都有正表所有表事件,您说方法是可行。狐表是注重表开发,轻窗口开发,其实实际不是窗口和页面开发为主,希望可以加以重视窗口和页面开发为主,因为BS和移动端开发还是窗口和页面。 目前来看窗口开发的工作量相当大。
|
-- 作者:有点蓝 -- 发布时间:2020/2/21 16:50:00 -- 如果是开发web服务端,确实无法使用表事件,也不建议使用。我主要指的是cs客户端的开发,窗口表完全可以使用表事件。 [此贴子已经被作者于2020/2/21 16:51:32编辑过]
|