Foxtable(狐表)用户栏目专家坐堂 → NumericComboBox控件用法


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

主题:NumericComboBox控件用法

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


加好友 发短信
等级:狐精 帖子:3202 积分:21279 威望:0 精华:0 注册:2016/3/28 16:57:00
NumericComboBox控件用法  发帖心情 Post By:2021/12/10 13:53:00 [只看该作者]

请教一下老师,我单独做一个增加按钮,代码如下:

    Dim i As Integer = e.Form.Controls("增加行数").value
    If i < 1 Then
        MessageBox.Show("新增行数不能为0且不能小于0,请输入新增行数!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
        e.Cancel = True
        Return
    Else
        Tables(e.Form.Name & "_table1").AddNew(i)

    End If

我想在向在微调里面,点击上下,+1-1的情况,+1自动增加一行,-1自动减少一行怎么实现呢?


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


加好友 发短信
等级:狐精 帖子:3202 积分:21279 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/12/10 14:07:00 [只看该作者]

目前的办法是:先清空表,DataTables("通用进项piao录入表").DeleteFor(""),不知道还有没其他办法

[此贴子已经被作者于2021/12/10 14:07:36编辑过]

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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/10 14:44:00 [只看该作者]

ValueChanged事件

if vars("count") > e.sender.value then
dim 减少的行数 as integer = vars("count") - e.sender.value
倒序删除指定的行数
elseif vars("count") < e.sender.value then
dim 增加的行数 as integer = e.sender.value - vars("count") 
Tables(e.Form.Name & "_table1").AddNew(增加的行数)
endif
vars("count")  = e.sender.value 

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


加好友 发短信
等级:狐精 帖子:3202 积分:21279 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/12/10 15:11:00 [只看该作者]

Dim i As Integer = e.sender.value
If i < 0 Then
    i = 0
    e.Cancel = True
    Return
End If

老师这样写,防止小于0 ,怎么会没效果呢

 

[此贴子已经被作者于2021/12/10 15:11:57编辑过]

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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/10 15:19:00 [只看该作者]

代码放在什么事件的?放到valuechanged事件

If e.sender.value < 0 Then
    e.sender.value = 0
End If

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


加好友 发短信
等级:狐精 帖子:3202 积分:21279 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/12/10 16:24:00 [只看该作者]

请老师看看,这个逻辑还是没对,直接输入行数时,出来的行数不对,用微调增加行数时,从0增加到1,没增加成功,在增加到2时,一次增加了2行,后面类增加出来都是错的

If e.sender.value < 0 Then
    e.sender.value = 0
End If
Dim xm As WinForm.ComboBox = e.Form.Controls("项目名称")
If xm.Value = "" Then
    MessageBox.Show("请选择需要录入数据的项目名称!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If

If vars("行数") > e.sender.value Then
    Dim cnt1 As Integer = vars("行数") - e.sender.value   '倒序删除指定的行数
ElseIf vars("行数") < e.sender.value Then
    Dim cnt2 As Integer = e.sender.value - vars("行数")
    Tables(e.Form.Name & "_table1").AddNew(cnt2)
    Dim r As Row = Tables(e.Form.Name & "_table1").AddNew(cnt2)
    r("项目名称") = e.Form.Controls("项目名称").value
End If
vars("行数")  = e.sender.value


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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/10 16:38:00 [只看该作者]

AddNew了2次,肯定是增加2行呀

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


加好友 发短信
等级:狐精 帖子:3202 积分:21279 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/12/10 16:48:00 [只看该作者]

这逻辑还是不对,如果先输入了行数,在修改,前面的有执行了一遍

If e.sender.value < 0 Then
    e.sender.value = 0
End If
Dim xm As WinForm.ComboBox = e.Form.Controls("项目名称")
If xm.Value = "" Then
    MessageBox.Show("请选择需要录入数据的项目名称!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If

Dim i As Integer = e.sender.value
If i > 0 Then
    Tables(e.Form.Name & "_table1").AddNew(i)
    vars("行数") = i
    For Each r As Row In Tables(e.Form.Name & "_table1").Rows
        r("项目名称") = e.Form.Controls("项目名称").value
    Next
    e.Form.Controls("批量录入").Enabled = True
End If

If vars("行数") > e.sender.value Then
    Dim cnt1 As Integer = vars("行数") - e.sender.value   '倒序删除指定的行数
ElseIf vars("行数") < e.sender.value Then
    Dim cnt2 As Integer = e.sender.value - vars("行数")
    Dim r As Row = Tables(e.Form.Name & "_table1").AddNew(cnt2)
    r("项目名称") = e.Form.Controls("项目名称").value
End If
vars("行数")  = e.sender.value
e.Form.Controls("批量录入").Enabled = True


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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/10 16:59:00 [只看该作者]

请上传实例测试,说明要什么效果

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


加好友 发短信
等级:狐精 帖子:3202 积分:21279 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/12/10 17:02:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20211210170035.jpg
图片点击可在新窗口打开查看
e.sender.value默认是0

当我输入一个值后,比如5增加5行,用微调,增加1时,在已有行数基础上增加一行,减少1时在以后行数的基础上减少1行,或是我重新输入一个值,10,清空所有的行,总的就增加10行

这个窗口表是,打开窗口创建的一个临时表

Dim t As Table = Tables(e.Form.Name & "_table1")
Dim dtb As New DataTableBuilder("通用进项piao录入表")
dtb.AddDef("项目名称", Gettype(String), 250)
dtb.AddDef("商品名称", Gettype(String), 100)
dtb.AddDef("供货方名称", Gettype(String), 50)
dtb.AddDef("fa piao类别", Gettype(String), 10)
dtb.AddDef("工料机类别", Gettype(String), 10)
dtb.AddDef("开piao日期", Gettype(Date))
dtb.AddDef("fa piao号码", Gettype(String), 10)
dtb.AddDef("税价合计金额", Gettype(Double))
dtb.AddDef("税率", Gettype(Double))
dtb.AddDef("税额", Gettype(Double))
'dtb.AddDef("税后金额", Gettype(Double))
dtb.AddDef("寄达日期", Gettype(Date))
dtb.Build()
t.DataSource = DataTables("通用进项piao录入表")

[此贴子已经被作者于2021/12/10 17:07:42编辑过]

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