Foxtable(狐表)用户栏目专家坐堂 → 狐爸0225更新后的问题急求解


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

主题:狐爸0225更新后的问题急求解

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


加好友 发短信
等级:小狐 帖子:357 积分:2895 威望:0 精华:0 注册:2008/9/1 14:05:00
狐爸0225更新后的问题急求解  发帖心情 Post By:2012/3/8 11:22:00 [只看该作者]

狐爸请检查0225更新后是不是有问题

之前发布的版本的项目能正常使用

用0225更新后的版本发布的项目出现问题

出现的问题现在还没有找到规律,有些代码出错或不运行。。。

版本检测

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120308113415.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-3-8 14:30:36编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/8 12:01:00 [只看该作者]

有个小调整,例如在DataRowAdding中设置列的值,不会触发DataColChanged事件。

例如:

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=17236&skin=0


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


加好友 发短信
等级:小狐 帖子:357 积分:2895 威望:0 精华:0 注册:2008/9/1 14:05:00
  发帖心情 Post By:2012/3/8 12:42:00 [只看该作者]

好象不仅仅是这个原因

采购订单明细 的DataColChanged代码也不执行

Dim dr As DataRow =e.DataRow
Select Case e.DataCol.Name

         Case "商品代码"

                 If e.DataRow.IsNull("采购订单日期") = False Then 
                       Dim cmdz As New SQLCommand
                       Dim dtz As DataTable
                       cmdz.C                          cmdz.CommandText = "SELECT * From {产品价格表} Where 商品代码 ='" & e.DataRow("商品代码") & "'And 终止日期 >='" & e.DataRow("采购订单日期") & "' And 起始日期 <='" & e.DataRow("采购订单日期") & "'" 
                       dtz = cmdz.ExecuteReader()
                       If dtz.DataRows.Count > 0 Then
                          dr("基价") = dtz.DataRows(0)("价格_成本")
                          dr("折扣")=dr("无税单价")-dr("基价")
                       End If
                    End If

End Select

这个采购订单明细的 采购订单日期 不是通过DataRowAdding设置的值,而是通过采购订单明细 的DataColChanged代码而来的

Case "采购订单编号"
        Dim da As DataRow
        da = DataTables("采购订单").Find("[采购订单编号]='" & e.DataRow("采购订单编号") & "'")
        If da IsNot Nothing Then
            dr("采购订单日期")=da("采购订单日期")


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/8 12:44:00 [只看该作者]

做个简单的例子发上来,说明一下你遇到的问题吧。


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


加好友 发短信
等级:小狐 帖子:357 积分:2895 威望:0 精华:0 注册:2008/9/1 14:05:00
  发帖心情 Post By:2012/3/8 12:57:00 [只看该作者]

还有这种和DataRowAdding和DataColChanged无关的原代码

比如DataColChanging代码

Select Case e.DataCol.Name
    Case "商品代码"

          Dim cmd11 As New SQLCommand
          Dim dt11 As DataTable
          cmd11.C 
          cmd11.CommandText = "Select SUM(计量_数量) as 结存数量 From {库存数据} Where 商品代码 ='" & trim(e.NewValue) & "'And 仓库名称 ='" & trim(e.DataRow("仓库名称")) & "'"
           dt11 = cmd11.ExecuteReader()

           Dim dr11 As DataRow=dt11.DataRows(0)

           If dr11("结存数量") < 1 then

              e.Cancel =True
              Messagebox.Show("结存数量小于1!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If

End Select

事实上 结存数量 不小于1 但总提示“结存数量小于1”?

          

[此贴子已经被作者于2012-3-8 12:57:54编辑过]

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


加好友 发短信
等级:小狐 帖子:357 积分:2895 威望:0 精华:0 注册:2008/9/1 14:05:00
  发帖心情 Post By:2012/3/8 13:56:00 [只看该作者]

好象找到原因了,问题出在关联子表新增行时关联列不触发DataColChanged事件,以前版本是可以的

出库明细表的DataColChanged事件

Dim dr As DataRow =e.DataRow
Select Case e.DataCol.Name
    Case "出库编号"
        Dim da As DataRow
        da = DataTables("出库").Find("[出库编号]='" & e.DataRow("出库编号") & "'")
        If da IsNot Nothing Then
            dr("仓库名称")=da("仓库名称")
        End If
End Select

如例在出库表中输入出库编号,仓库名称后,在出库明细表新增行后并未触发DataColChanged,出库明细表的仓库名称为空,所在再在商品代码中输入商品代码就出差错,怎么办呢?

 

 

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

[此贴子已经被作者于2012-3-8 14:33:47编辑过]

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


加好友 发短信
等级:小狐 帖子:357 积分:2895 威望:0 精华:0 注册:2008/9/1 14:05:00
  发帖心情 Post By:2012/3/8 14:08:00 [只看该作者]

急求解

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/8 14:36:00 [只看该作者]

你6楼的文件,为我测试没有问题,我在出库明细表增加一行,输入出库编号,仓库名称能够自动出现啊。

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


加好友 发短信
等级:小狐 帖子:357 积分:2895 威望:0 精华:0 注册:2008/9/1 14:05:00
  发帖心情 Post By:2012/3/8 14:42:00 [只看该作者]

正如你说的:有个小调整,例如在DataRowAdding中设置列的值,不会触发DataColChanged事件。这种对于以前的代码依据DataRowAdding来触发DataColChanged事件,现在怎么办呢?现在关联表也出现这种问题了。现在想回到以前的版本都回不去了,有什么办法吗?

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/8 14:56:00 [只看该作者]

你可以将代码一直到DataRowAdded事件中,如果不方便一直,也不用担心,明天重新下载一下,我也感觉这种变动代码的副作用太大,所以今晚改回来,重新上传一下算了。


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