以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102506)

--  作者:独行侠
--  发布时间:2017/6/21 14:16:00
--  [求助]

我创建了一个窗口,可以提交报修,我把窗口中的控件和一个报修表中的对应列绑定。我在窗口中输入什么,表中就会在对应列显示什么。

 


图片点击可在新窗口打开查看此主题相关图片如下:dvosyn~pg5i$w%o10w8~a1.jpg
图片点击可在新窗口打开查看

关闭后,再报修时,还是在已报修的那一列修改数据,为什么不能在新的一列显示数据?这该怎么实现?

 

还有,我按了清除按钮,窗口上的内容没了,但是对应的表中的数据还在,而且,在窗口中,随便点一下,刚清除的东西就又出现了,这又是怎么回事?

我的清除按钮的 代码

e.Form.Controls("ComboBox1").Value = Nothing
e.Form.Controls("TextBox1").Value = Nothing
e.Form.Controls("TextBox2").Value = Nothing
e.Form.Controls("TextBox3").Value = Nothing
e.Form.Controls("TextBox4").Value = Nothing
e.Form.Controls("TextBox5").Value = Nothing


--  作者:有点色
--  发布时间:2017/6/21 14:49:00
--  

你在表选择了哪一行,你窗口就会显示哪一行的。如果你选择一行空的行或者新增一行,自然会显示空白了。

 

你可以在窗口AfterLoad事件写代码 Tables("报修").AddNew


--  作者:独行侠
--  发布时间:2017/6/21 16:00:00
--  回复:(有点色)你在表选择了哪一行,你窗口就会显示...

AfterLoad事件写增加行的代码,每次打开都会在一个新的行输入数据,但是要是没输入数据,直接关闭的话,新的行依然存在的,

 

 Tables("报修").Current.Delete() 只能删除当前的行,   DataRows().Delete() 删除指定的行,我想在退出窗口时,自动删除所有空白的行,这个要怎么办

 

我的清除按钮的代码

e.Form.Controls("ComboBox1").Value = Nothing
e.Form.Controls("TextBox1").Value = Nothing
e.Form.Controls("TextBox2").Value = Nothing
e.Form.Controls("TextBox3").Value = Nothing
e.Form.Controls("TextBox4").Value = Nothing
e.Form.Controls("TextBox5").Value = Nothing

 

这个代码执行的清除,只能清除窗口的东西,但是我刚输入的东西还在表上,窗口随便点一个文本框,之前清除的内容就又都回来了,只有第一个文本框的内容没有回来。  这是代码错了吗?


--  作者:有点色
--  发布时间:2017/6/21 16:11:00
--  

afterClose事件写 DataTables("报修").RejectChanges 这样可以撤销修改。

 

如果你要清除内容,这样写

 

e.Form.Controls("ComboBox1").Value = Nothing

e.Form.Controls("ComboBox1").writevalue


--  作者:独行侠
--  发布时间:2017/6/21 16:31:00
--  回复:(有点色)afterClose事件写 DataTables("报修"...

我清除的代码  写成 

DataTables("报修").RejectChanges
Tables("报修").AddNew

 

实现了我想要的清除效果,但是

AfterLoad 事件

Tables("报修").AddNew

可以打开后增加一行,这个效果好,就是什么都不输入,直接退出后,那一行还在,不会清除掉

要是再加上  DataTables("报修").RejectChanges

那就是加一行马上再把这一行删掉,没有意义的。

 

清除实现了,

 

现在就是、想实现    打开窗口,自动增加一行,要是直接关闭窗口,增加的那一行可以去掉,或者可以判断表中的空白行,把空白行全部删掉。


--  作者:有点色
--  发布时间:2017/6/21 16:49:00
--  
 你不是有提交按钮吗?提交的话,就把当前行save一下即可
 
Tables("报修").Current.Save
 
 如果你要删除空行也行的,写代码 DataTables("报修").DeleteFor("物资类型 is null and 物资编号 is null")
 
 

--  作者:独行侠
--  发布时间:2017/6/21 17:27:00
--  回复:(有点色) 你不是有提交按钮吗?提交的话...

我 提交 click 的代码

Dim Result As DialogResult
Result = MessageBox.Show("您确定要提交吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    Tables("人员").Save()
     MessageBox.Show("已提交.","提示")
 Else
     DataTables("报修").RejectChanges
      Tables("报修").AddNew
   End If

这是我想要的效果

 

我把  DataTables("报修").DeleteFor("物资类型 is null and 物资编号 is null")
写在了  退出和 AfterClose 里面 ,实现了我想要的效果

真的太感谢了,麻烦你这么多次,我总算把报修做成我想要的结果了。

最为小白的我好无奈,一大堆问题,让你辛苦了  真的很感谢。