以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  删除空白行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124498)

--  作者:susu312
--  发布时间:2018/9/7 12:56:00
--  删除空白行

老师,我在afterload窗口新增一行并保存,然后在beforeclose事件中如果判断到当前行为写入任何内容则删除当前行?下面的代码不管用哎?是不是因为

 

If Tables("person").Current Is Nothing Then \'如果当前行为空
     With Tables("person")
         .Current.Delete
         e.Form.Close
     End With
End If

 

 


此主题相关图片如下:11.png
按此在新窗口浏览图片

 

 

就比如这么个,我点那个关闭按钮前判断下,用户如果没有做任何操作,只是打开看一下,则点关闭按钮就把当前行删除了?


--  作者:有点甜
--  发布时间:2018/9/7 14:37:00
--  

比如

 

Dim r As Row = Tables("person").Current
If r("第一列") = Nothing AndAlso r("第二列") = Nothing Then
    r.delete
End If


--  作者:susu312
--  发布时间:2018/9/7 16:32:00
--  
以下是引用有点甜在2018/9/7 14:37:00的发言:

比如

 

Dim r As Row = Tables("person").Current
If r("第一列") = Nothing AndAlso r("第二列") = Nothing Then
    r.delete
End If

Dim r As Row = Tables("person").Current
If r("cardID") = Nothing AndAlso r("name") = Nothing Then
    r.delete
    e.Form.Close
End If

MessageBox.Show("xxx")
If Tables("person").Current IsNot Nothing AndAlso Tables("person").Current.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行已经修改过
    MessageBox.Show("基本信息页面:请选择保存或取消!","提示", MessageBoxButtons.OK ,MessageBoxIcon.Information)
    e.Cancel = True
End If
MessageBox.Show("yyyy")

 

 

这个为啥xxx 和yyy和出现两次?


--  作者:有点蓝
--  发布时间:2018/9/7 16:47:00
--  
Dim r As Row = Tables("person").Current
If r IsNot Nothing
    If r.isnull("cardID")  AndAlso r.isnull("name") Then
        r.delete
r.save
        e.Form.Close
        Return
    End If
    MessageBox.Show("xxx")
    If  r.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行已经修改过
        MessageBox.Show("基本信息页面:请选择保存或取消!","提示", MessageBoxButtons.OK ,MessageBoxIcon.Information)
        e.Cancel = True
    End If
End If

--  作者:susu312
--  发布时间:2018/9/7 18:15:00
--  

 

1、在新增窗口党员那里选择了中共党员,然后点击取消


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

 

 2、出来如下画面,里面的信息是上一个人的信息,


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

 

取消按钮的代码:

 

With Tables("person")
     .Current.Delete
      e.sender.enabled = False
End With

\'\'加载排序

\'\' 获取登录用户单位的辅助列名称,用于设置加载条件
Dim organFuZhu As String=""
Dim dr2  As  DataRow
dr2 =  DataTables("organList").Find("[organName] = \'" & _UserOrgan &  "\'") \'否则在单位表查找同名的单位行,将找到的行赋值给变量dr
If dr2 IsNot Nothing Then  \'如果找到了同名的单位行,也就是dr不是Nothing
      organFuZhu = dr2("fuZhu")
Else
      Messagebox.show("登录用户单位不存在!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End  If

\'\'设置加载条件,依赖于当前登录用户所属单位的辅助列
DataTables("person").LoadFilter = "fuZhu Like \'" & organFuZhu & "%\'"
DataTables("person").LoadTop = Nothing
DataTables("person").Load
Tables("person").sort = "fuZhu"
e.Form.Close

 

 

 

老师,我觉得就是这个取消我觉得控制好复杂呀,因为它涉及到人员表和家庭信息表,但又好像不是两个表的问题,是取消按钮和窗口的关闭按钮的功能,我头绪特别乱

[此贴子已经被作者于2018/9/7 18:25:12编辑过]

--  作者:有点蓝
--  发布时间:2018/9/7 20:29:00
--  
去掉取消按钮。改为清空,不想要填写的内容,直接清空,填新的即可。
--  作者:susu312
--  发布时间:2018/9/7 22:19:00
--  
以下是引用有点蓝在2018/9/7 20:29:00的发言:
去掉取消按钮。改为清空,不想要填写的内容,直接清空,填新的即可。

不是,老师, 因为每新增一个,就后台增加了一行,在这个新增的行上写入,如果取消的时候不删除,那么库里面就会有很多空白行,或者废数据,


--  作者:有点蓝
--  发布时间:2018/9/7 22:39:00
--  
退出窗口的时候再删除空白行不就行了吗,1~4楼不就是做这个的吗!或者新建的时候,判断当前行是否为空,提示保存或者删除
--  作者:susu312
--  发布时间:2018/9/7 22:52:00
--  
以下是引用有点蓝在2018/9/7 22:39:00的发言:
退出窗口的时候再删除空白行不就行了吗,1~4楼不就是做这个的吗!或者新建的时候,判断当前行是否为空,提示保存或者删除

我用sql语句insert这些字段,效率上低不?大概30个左右字段?


--  作者:有点蓝
--  发布时间:2018/9/7 23:09:00
--  
不低