以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何实现空行不保存?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=13327)

--  作者:hospitals
--  发布时间:2011/10/9 3:13:00
--  如何实现空行不保存?

With Tables("客户资料")
    If .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改
        e.Form.Controls("新建").Enabled = True
        e.Form.Controls("修改").Enabled = True
        e.Form.Controls("删除").Enabled = True
        e.Form.Controls("保存").Enabled = False
        e.Form.Controls("撤销修改").Enabled = False
        e.Form.Controls("TextBox1").Enabled = False
        e.Form.Controls("TextBox2").Enabled = False
        e.Form.Controls("TextBox3").Enabled = False
        e.Form.Controls("TextBox4").Enabled = False
        e.Form.Controls("TextBox6").Enabled = False
        e.Form.Controls("TextBox7").Enabled = False
        e.Form.Controls("TextBox8").Enabled = False
        e.Form.Controls("TextBox9").Enabled = False
        e.Form.Controls("TextBox10").Enabled = False
        e.Form.Controls("TextBox11").Enabled = False
        e.Form.Controls("TextBox12").Enabled = False
        e.Form.Controls("TextBox13").Enabled = False
        e.Form.Controls("TextBox14").Enabled = False
        e.Form.Controls("TextBox15").Enabled = False
        e.Form.Controls("TextBox16").Enabled = False
        e.Form.Controls("DropBox1").Enabled = False
    Else
        e.Form.Controls("新建").Enabled = True
        e.Form.Controls("修改").Enabled = True
        e.Form.Controls("删除").Enabled = True
        e.Form.Controls("保存").Enabled = False
        e.Form.Controls("撤销修改").Enabled = False
        e.Form.Controls("TextBox1").Enabled = False
        e.Form.Controls("TextBox2").Enabled = False
        e.Form.Controls("TextBox3").Enabled = False
        e.Form.Controls("TextBox4").Enabled = False
        e.Form.Controls("TextBox6").Enabled = False
        e.Form.Controls("TextBox7").Enabled = False
        e.Form.Controls("TextBox8").Enabled = False
        e.Form.Controls("TextBox9").Enabled = False
        e.Form.Controls("TextBox10").Enabled = False
        e.Form.Controls("TextBox11").Enabled = False
        e.Form.Controls("TextBox12").Enabled = False
        e.Form.Controls("TextBox13").Enabled = False
        e.Form.Controls("TextBox14").Enabled = False
        e.Form.Controls("TextBox15").Enabled = False
        e.Form.Controls("TextBox16").Enabled = False
        e.Form.Controls("DropBox1").Enabled = False
        .Current.Save()
       
       
       
    End If
End With

这个是我的 客户资料的录入窗口中 保存按钮的代码  我想要的效果是 新增记录以后 如果什么也没改 是空白记录那么就不保存 新增等按钮启用 记录文本框停用  不是空白记录就保存,然后新增按钮启用 记录文本框停用 但是现在结果是点了保存 只执行ELSE  空白记录也会保存下来。。。。


--  作者:hospitals
--  发布时间:2011/10/9 3:38:00
--  

If e.Node.Level = 1 Then \'如果单击的是第二层节点
    Dim ps() As String = e.Node.FullPath.Split("\\")
    Dim tr As Row = Tables("客户资料").Current
    Dim dr As DataRow = DataTables("省份地区表").Find("省份 = \'" & ps(0) & "\' And 地区 = \'" & ps(1) & "\'")
    If dr IsNot Nothing Then \'如果在行政区域表找到对应的行,则将此行的值写入客户表的当前行.
        tr("销售区域") = dr("省份") + dr("地区")
    End If
    e.Form.DropDownBox.CloseDropdown()  \'关闭下拉目录树
End If

 

自行设计下拉目录树 我想选中下拉目录树当中的城市以后 将省份和地区都填到销售区域中。 例如选中安徽省下的安庆 销售区域填入安徽省安庆   现在结果是 选中了以后 销售区域中什么也没有 不知道是什么原因

 
--  作者:狐狸爸爸
--  发布时间:2011/10/9 8:28:00
--  

第一个问题,不需要特地去禁用和启用各个按钮,这样太罗嗦,只需在保存按钮的代码前面加入一段代码,用于判断当前行是否是空行,如果是的,则拒绝保存。

第二个问题,试试这样:

 

If e.Node.Level = 1 Then \'如果单击的是第二层节点
    Dim ps() As String = e.Node.FullPath.Split("\\")
    Dim tr As Row = Tables("客户资料").Current
    Dim dr As DataRow = DataTables("省份地区表").Find("省份 = \'" & ps(0) & "\' And 地区 = \'" & ps(1) & "\'")
    If dr IsNot Nothing Then \'如果在行政区域表找到对应的行,则将此行的值写入客户表的当前行.
        tr("销售区域") = dr("省份") + dr("地区")
        e.Form.DropDownBox.Value = dr("省份") + dr("地区")
    End If
    e.Form.DropDownBox.CloseDropdown()  \'关闭下拉目录树
End If


--  作者:hospitals
--  发布时间:2011/10/9 17:40:00
--  
第二个问题解决了  谢谢  第一个问题。。。。。求代码 怎么样也写不好。
--  作者:狐狸爸爸
--  发布时间:2011/10/10 8:11:00
--  

Dim nms() As String = {"列1","列2","列3"}   \'不允许为空的列名

dim r As Row = Tables("XX").Current

For each nm AS string  in nms

    if r.isnull(nm) Then

         messagebox.show(nm & "必须输入内容")

         return

    end if

next

r.Save


--  作者:qianhouge
--  发布时间:2011/10/10 9:02:00
--  
膜拜老大~!!又学到新知识了!
--  作者:hospitals
--  发布时间:2011/10/10 18:09:00
--  

受教了