Foxtable(狐表)用户栏目专家坐堂 → DataColChanged和DataColChanging执行的逻辑


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

主题:DataColChanged和DataColChanging执行的逻辑

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


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
DataColChanged和DataColChanging执行的逻辑  发帖心情 Post By:2018/5/4 15:13:00 [只看该作者]

DataColChanging代码

If e.DataCol.Name = "项目编码"  Then
    Dim dr  As  DataRow
    dr = e.DataTable.Find("项目编码 = '" & e.NewValue &  "'")
    If dr IsNot Nothing Then
        MessageBox.Show("该笔保证金已申请退款,请勿重复申请!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        e.Cancel = True
        Return
    End  If
End  If

DataColChanged代码


If e.DataCol.Name = "项目名称" Then  '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then  '如果新值是空白,也就是品名列的内容为空
        e.DataRow("项目编码") = Nothing '那么清空此行单价列的内容
        e.DataRow("所属机构") = Nothing '那么清空此行单价列的内容
        e.DataRow("项目类别") = Nothing '那么清空此行单价列的内容
        e.DataRow("申请退回保证金_金额") = Nothing '那么清空此行单价列的内容
        e.DataRow("申请退回保证金_户名") = Nothing '那么清空此行单价列的内容
        e.DataRow("申请退回保证金_账号") = Nothing '那么清空此行单价列的内容
        e.DataRow("申请退回保证金_开户银行") = Nothing '那么清空此行单价列的内容
    Else
        Dim dr  As  DataRow '否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("打保证金表").SQLFind("[项目名称] = '" & e.NewValue &  "'")
        If dr IsNot  Nothing  Then  '如果找到了同名的产品行,也就是dr不是Nothing
            '清空行代码
            Dim fdr  As  DataRow
            fdr = e.DataTable.sqlFind("项目编码 = '" & dr("项目编码") &  "'")
            If fdr IsNot Nothing Then
                MessageBox.Show("该笔保证金已申请退款,请勿重复申请!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                For Each dc As DataCol In e.DataTable.datacols
                    If dc.Expression = "" Then
                        e.DataRow(dc.name)=Nothing
                   End If
               Next
           Else
                e.DataRow("项目编码") = dr("项目编码")
                e.DataRow("所属机构") = dr("所属机构")
                e.DataRow("项目类别") = dr("项目类别")
                e.DataRow("申请退回保证金_金额") = dr("保证金缴纳信息_金额")
                e.DataRow("申请退回保证金_户名") = dr("付款方信息_户名")
                e.DataRow("申请退回保证金_账号") = dr("付款方信息_账号")
                e.DataRow("申请退回保证金_开户银行") = dr("付款方信息_开户银行")
            End  If
        End If
    End If
End If

 

 

我另外加一个条件,放哪儿都不对,逻辑乱了,请老师看看应该放哪儿?语法和用法都没问题

 '判断是否到公司账户
If dr("保证金状态") <> "已到公司账户" Then
         Dim r As Row = Tables("退保证金表").Current
         r.Reject()
         MessageBox.Show("该笔保证金还未到账,请耐心等待!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
         Forms("退投标保证金窗口").Close()
    Return
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/4 15:38:00 [只看该作者]

1、这种处理肯定是错误的

 

         Dim r As Row = Tables("退保证金表").Current
         r.Reject()

 

2、你要做什么功能?此表和退保证金表的联系是什么?通过什么关联?

 

请尽量做个实例上来测试


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


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/5/4 15:49:00 [只看该作者]

我退保证金表有一个按钮新增行、打开窗口,通过窗口控件选择“打保证金表“的项目名称,引用部分列数据,引用前判断编号是否重复,重复就清空当前行,没有重复再判断“打保证金表”保证金状态是否为“已到公司账户”,不是就返回。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/4 15:55:00 [只看该作者]

那你的引用和赋值,可以在窗口里面控制,没必要写在datacolchanged事件里面。也可以先判断状态后再赋值进去

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


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/5/4 16:42:00 [只看该作者]

做了个示例,老师看看呢。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/4 17:35:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb


 


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


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/5/7 12:49:00 [只看该作者]

以下是引用有点甜在2018/5/4 17:35:00的发言:

 

 下载信息  [文件大小:336.0 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb


 

有点甜老师,这样处理,我其他控件绑定了字段,新增时,窗口控件就有内容,有没办法清空?还是只能所有控件都采用赋值方式处理呢?


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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/7 13:31:00 [只看该作者]

都使用赋值方式处理

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


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/5/7 16:50:00 [只看该作者]

老师,麻烦看一下,当我启用输入助手后,输入其中一个字或词,选择后也会提示项目已经存在,比如我输入二,在选择项目二时,就会提示项目存在,怎么解决呢?

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180507165850.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/5/7 17:00:38编辑过]

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


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

这个无法控制。使用自定义录入界面吧:http://www.foxtable.com/webhelp/scr/2116.htm

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