Foxtable(狐表)用户栏目专家坐堂 → [求助]一开始用得挺好,然后就出了问题


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

主题:[求助]一开始用得挺好,然后就出了问题

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


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
[求助]一开始用得挺好,然后就出了问题  发帖心情 Post By:2016/6/13 9:58:00 [显示全部帖子]

专家您好!我在窗口中设计了一个控件“合同号栏”
图片点击可在新窗口打开查看此主题相关图片如下:未命名.bmp
图片点击可在新窗口打开查看,在该窗口的事件Afterload中编写如下代码:


Dim txtBox As WinForm.TextBox
txtBox = e.Form.Controls("合同号栏")
txtBox.ReadOnly = BooleanEnum.True

在该控件的事件leave中编写代码:e.Sender.HideToolTip()
在该控件的事件Validating编写代码:
Tables("内部合同").Current("合同编号") = e.Sender.Text

If e.Sender.Value Is Nothing Then
    e.Cancel = True
End If
With Forms("抽油杆分公司内部合同录入窗口").Controls("合同号栏")
    Dim txt As String = .Value
    If txt = "" OrElse txt.Length <> 11  Then
        Messagebox.Show("必须按格式输入编号!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
End With

以前运行没有问题,但昨天开始运行时,在控件“合同号栏”按格式输入2016-001-01后,显示“必须按格式输入编号!”,和上图错误提示,但在“内部合同”的表中已经输入了正确编号,如图
图片点击可在新窗口打开查看此主题相关图片如下:未命名1.bmp
图片点击可在新窗口打开查看
重新输入有时候提示错误,有时候不再提示。

请问专家上述编码错在哪里?


 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2016/6/13 10:52:00 [显示全部帖子]

修改后,为什么输入的数据在鼠标离开的时候在窗口中的控件内消失了,表中的数据还在

 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2016/6/13 14:06:00 [显示全部帖子]

我的空表如图
图片点击可在新窗口打开查看此主题相关图片如下:空表.bmp
图片点击可在新窗口打开查看
我的录入界面
图片点击可在新窗口打开查看此主题相关图片如下:录入界面.bmp
图片点击可在新窗口打开查看
点击“录入新合同”后如图:
图片点击可在新窗口打开查看此主题相关图片如下:录入界面.bmp
图片点击可在新窗口打开查看
录入“2016-001-0”时正常,当录入最后一个数字“1”时,控件内的全部数字消失,但表中新增一行,“2016-001-01”内容还在



 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2016/6/13 14:07:00 [显示全部帖子]


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

 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2016/6/13 14:10:00 [显示全部帖子]

这是表中的内容
图片点击可在新窗口打开查看此主题相关图片如下:录入1.bmp
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2016/6/13 14:50:00 [显示全部帖子]

窗口和控件都没有TextChanged事件代码。

 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2016/6/13 15:12:00 [显示全部帖子]

内部合同表如图:
图片点击可在新窗口打开查看此主题相关图片如下:内部合同表.bmp
图片点击可在新窗口打开查看

在表属性中的Datacolchanged事件中代码如下:
Select Case e.DataCol.Name
    Case "品种_杆径"
        Dim dr As DataRow = e.DataRow
        Dim pr1 As DataRow
        Dim pr2 As DataRow
        Dim pr3 As DataRow
        Dim pr4 As DataRow
        Dim pr5 As DataRow
        Dim pr6 As DataRow
        Dim filter1 As String
        filter1 = "品种_杆径 = '" & dr("品种_杆径") & "'"
        pr1 = DataTables("编号列表1").Find(filter1)
        If pr1 IsNot Nothing Then
            dr("品种_杆径编号") = pr1("品种_杆径编号")
        End If
        dr("品种_ID") = dr("品种_杆径编号")

    Case "品种_材质"
        Dim dr As DataRow = e.DataRow
        Dim pr2 As DataRow
        Dim filter2 As String
        filter2 = "品种_材质 = '" & dr("品种_材质") & "'"
        pr2 = DataTables("编号列表2").Find(filter2)
        If pr2 IsNot Nothing Then
            dr("品种_材质编号") = pr2("品种_材质编号")
        End If
        dr("品种_ID") = dr("品种_杆径编号") & dr("品种_材质编号")
        
    Case  "品种_长度"
        Dim dr As DataRow = e.DataRow
        Dim pr3 As DataRow
        Dim filter3 As String
        filter3 = "品种_长度 = '" & dr("品种_长度") & "'"
        pr3 = DataTables("编号列表3").Find(filter3)
        If pr3 IsNot Nothing Then
            dr("品种_长度编号") = pr3("品种_长度编号")
        End If
        dr("品种_ID") = dr("品种_杆径编号") & dr("品种_材质编号") & dr("品种_长度编号")
        
    Case "品种_级别"
        Dim dr As DataRow = e.DataRow
        Dim pr4 As DataRow
        Dim filter4 As String
        filter4 = "品种_级别 = '" & dr("品种_级别") & "'"
        pr4 = DataTables("编号列表4").Find(filter4)
        If pr4 IsNot Nothing Then
            dr("品种_级别编号") = pr4("品种_级别编号")
        End If
        dr("品种_ID") = dr("品种_杆径编号") & dr("品种_材质编号") & dr("品种_长度编号") & dr("品种_级别编号")
       
 Case "品种_接箍"
        Dim dr As DataRow = e.DataRow
        Dim pr6 As DataRow
        Dim filter6 As String
        filter6 = "品种_接箍 = '" & dr("品种_接箍") & "'"
        pr6 = DataTables("编号列表6").Find(filter6)
        If pr6 IsNot Nothing Then
            dr("品种_接箍编号") = pr6("品种_接箍编号")
        End If
        dr("品种_ID") = dr("品种_杆径编号") & dr("品种_材质编号") & dr("品种_长度编号") & dr("品种_级别编号") & dr("品种_接箍编号")
    

Case "品种_特殊要求"
        Dim dr As DataRow = e.DataRow
        Dim pr5 As DataRow
        Dim filter5 As String
        filter5 = "品种_特殊要求 = '" & dr("品种_特殊要求") & "'"
        pr5 = DataTables("编号列表5").Find(filter5)
        If pr5 IsNot Nothing Then
            dr("品种_特殊要求编号") = pr5("品种_特殊要求编号")
        End If
        dr("品种_ID") = dr("品种_杆径编号") & dr("品种_材质编号") & dr("品种_长度编号") & dr("品种_级别编号") & dr("品种_接箍编号") & dr("品种_特殊要求编号")
       
   End Select
表属性中的DataRowAdding事件中代码如下:e.DataRow("序号") = e.DataTable.Compute("Max(序号)") + 1

合同录入窗口设计如图
图片点击可在新窗口打开查看此主题相关图片如下:内部合同录入设计界面.bmp
图片点击可在新窗口打开查看
窗口的Afterload事件编码如下:
Dim lbl As WinForm.Label
lbl = e.Form.Controls("Welcome")
lbl.Text = "今 天 是 " & format(Date.Today,"yyyy年MM月dd日") & ", 大 地 石 油 机 械 公 司 欢 迎 您 !"

Dim txtBox As WinForm.TextBox
txtBox = e.Form.Controls("合同号栏")
txtBox.ReadOnly = BooleanEnum.True
txtBox = e.Form.Controls("生产数量栏")
txtBox.ReadOnly = BooleanEnum.True
txtBox = e.Form.Controls("客户新增要求录入栏")
txtBox.ReadOnly = BooleanEnum.True

Dim combobox As WinForm.ComboBox
ComboBox = e.Form.Controls("杆径栏")
ComboBox.ReadOnly = BooleanEnum.True
ComboBox = e.Form.Controls("材质栏")
ComboBox.ReadOnly = BooleanEnum.True
ComboBox = e.Form.Controls("长度栏")
ComboBox.ReadOnly = BooleanEnum.True
ComboBox = e.Form.Controls("级别栏")
ComboBox.ReadOnly = BooleanEnum.True
ComboBox = e.Form.Controls("接箍栏")
ComboBox.ReadOnly = BooleanEnum.True
ComboBox = e.Form.Controls("特殊要求栏")
ComboBox.ReadOnly = BooleanEnum.True
ComboBox = e.Form.Controls("甲方栏")
ComboBox.ReadOnly = BooleanEnum.True
ComboBox = e.Form.Controls("乙方栏")
ComboBox.ReadOnly = BooleanEnum.True
ComboBox = e.Form.Controls("客户名称栏")
ComboBox.ReadOnly = BooleanEnum.True

Dim DateTimePicker As WinForm.DateTimePicker
DateTimePicker = e.Form.Controls("交付日期栏")
DateTimePicker.ReadOnly = BooleanEnum.True
DateTimePicker = e.Form.Controls("签订日期栏")
DateTimePicker.ReadOnly = BooleanEnum.True

e.Form.Controls("内贸").Enabled=False
e.Form.Controls("外贸").Enabled=False


 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2016/6/13 15:13:00 [显示全部帖子]

控件“合同号栏”的事件leave中编写代码:e.Sender.HideToolTip()
在该控件的事件Validating编写代码:
If e.Sender.Value Is Nothing Then
    e.Cancel = True
End If
With Forms("抽油杆分公司内部合同录入窗口").Controls("合同号栏")
    Dim txt As String = e.Sender.Text
    If txt = "" OrElse txt.Length <> 11  Then
        e.Cancel = True
        Messagebox.Show("必须按格式输入编号!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Return
    End If
End With
Tables("内部合同").Current("合同编号") = e.Sender.Text

控件“录入新合同”Click事件编码如下:
Tables("内部合同").AddNew()
Dim txtBox As WinForm.TextBox
txtBox = e.Form.Controls("合同号栏")
txtBox.ReadOnly = BooleanEnum.False
txtBox = e.Form.Controls("生产数量栏")
txtBox.ReadOnly = BooleanEnum.False
txtBox = e.Form.Controls("客户新增要求录入栏")
txtBox.ReadOnly = BooleanEnum.False

Dim combobox As WinForm.ComboBox
ComboBox = e.Form.Controls("杆径栏")
ComboBox.ReadOnly = BooleanEnum.False
ComboBox = e.Form.Controls("材质栏")
ComboBox.ReadOnly = BooleanEnum.False
ComboBox = e.Form.Controls("长度栏")
ComboBox.ReadOnly = BooleanEnum.False
ComboBox = e.Form.Controls("级别栏")
ComboBox.ReadOnly = BooleanEnum.False
ComboBox = e.Form.Controls("接箍栏")
ComboBox.ReadOnly = BooleanEnum.False
ComboBox = e.Form.Controls("特殊要求栏")
ComboBox.ReadOnly = BooleanEnum.False
ComboBox = e.Form.Controls("甲方栏")
ComboBox.ReadOnly = BooleanEnum.False
ComboBox = e.Form.Controls("乙方栏")
ComboBox.ReadOnly = BooleanEnum.False
ComboBox = e.Form.Controls("客户名称栏")
ComboBox.ReadOnly = BooleanEnum.False

Dim DateTimePicker As WinForm.DateTimePicker
DateTimePicker = e.Form.Controls("交付日期栏")
DateTimePicker.ReadOnly = BooleanEnum.False
DateTimePicker = e.Form.Controls("签订日期栏")
DateTimePicker.ReadOnly = BooleanEnum.False

e.Form.Controls("内贸").Enabled=True
e.Form.Controls("外贸").Enabled=True

 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2016/6/13 15:21:00 [显示全部帖子]

怎么做?编码发出来不对吗?

 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2016/6/13 15:37:00 [显示全部帖子]

这是我的项目,才开始,请专家指教
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb



 回到顶部
总数 20 1 2 下一页