以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  狐爸请看系统日期错误和代码求助  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=9118)

--  作者:红叶
--  发布时间:2011/2/23 10:34:00
--  狐爸请看系统日期错误和代码求助

订单表和订单明细表通过订单编号关联,如一条订单表记录在订单明细表中有对应的三条明细记录,在订单明细中的三条记录的"核销"中全标记后在相应的父表订单表中的"状态"中自动显示"全部已核销",如果在订单明细中的三条记录的"核销"中选中一条或两条标记后在相应的父表订单表中的"状态"中自动显示"部分已核销",如果在订单明细中的三条记录的"核销"中全部未选中标记,在相应的父表订单表中的"状态"中自动显示"全部未核销",如例

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

 

另外,在日期中输入错误的日期,系统会出错


 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图未命名1.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-2-23 11:08:45编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/2/23 11:14:00
--  

第一个问题,在订单明细表的DataColChanged事件加入代码:

 

If e.DataCol.Name = "核销标记" Then
    Dim pr As DataRow = e.DataRow.GetParentRow("订单")
    If pr IsNot Nothing Then
        Dim drs As List(of DataRow) = pr.GetChildRows("订单明细")
        Dim cnt As Integer
        For Each dr As DataRow In drs
            If dr("核销标记") = True Then
                cnt = cnt +1
            End If
        Next
        If cnt = drs.Count  Then
            pr("状态") = "全部已核销"
        ElseIf cnt = 0 Then
            pr("状态") = "全部未核销"
        Else
            pr("状态") = "部分以核销"
        End If
    End If
End If

 

第二个问题我这边正常,请执行杂项功能区工具菜单的版本检测命名,将检测结果抓图贴上来看看。


--  作者:红叶
--  发布时间:2011/2/23 11:28:00
--  

第二个问题我这边正常,请执行杂项功能区工具菜单的版本检测命名,将检测结果抓图贴上来看看。

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图未命名3.png
图片点击可在新窗口打开查看

--  作者:红叶
--  发布时间:2011/2/23 11:50:00
--  

第一问题,在新记录(订单和订单明细),不能及时给出"状态"提示,"状态"这空白

在原有的订单明细中新增行时,不能准确的给出"状态"提示,如原有三条全部选中,"状态"为"全部核销",但再增加一条明细时未操作"核销标记","状态"还是"全部核销",正确应为"部分核销"


--  作者:狐狸爸爸
--  发布时间:2011/2/23 12:21:00
--  
以下是引用红叶在2011-2-23 11:50:00的发言:

在原有的订单明细中新增行时,不能准确的给出"状态"提示,如原有三条全部选中,"状态"为"全部核销",但再增加一条明细时未操作"核销标记","状态"还是"全部核销",正确应为"部分核销"

 

将订单明细表的DataRowAdded事件代码设置为:

 

Dim pr As DataRow = e.DataRow.GetParentRow("订单")
If pr IsNot Nothing Then
   If pr("状态") = "全部已核销"
      pr("状态") = "部分已核销"
   End If
End If

 


--  作者:红叶
--  发布时间:2011/2/23 13:41:00
--  

第一问题,在新记录(订单和订单明细),不能及时给出"状态"提示,"状态"这空白

在原有的订单明细中新增行时,不能准确的给出"状态"提示,如原有三条全部选中,"状态"为"全部核销",但再增加一条明细时未操作"核销标记","状态"还是"全部核销",正确应为"部分核销"

将订单明细表的DataRowAdded事件代码设置为:

Dim pr As DataRow = e.DataRow.GetParentRow("订单")
If pr IsNot Nothing Then
   If pr("状态") = "全部已核销" Then
      pr("状态") = "部分已核销"
   Else If pr("状态") = "" Then
      pr("状态") = "全部未核销"
   End If
End If

这样才更准确吧!

 


--  作者:红叶
--  发布时间:2011/2/23 13:42:00
--  
第二个问题是不是有BUG呀?
--  作者:红叶
--  发布时间:2011/2/23 14:38:00
--  

第一问题,在新记录(订单和订单明细),不能及时给出"状态"提示,"状态"这空白

在原有的订单明细中新增行时,不能准确的给出"状态"提示,如原有三条全部选中,"状态"为"全部核销",但再增加一条明细时未操作"核销标记","状态"还是"全部核销",正确应为"部分核销"

将订单明细表的DataRowAdded事件代码设置为:

Dim pr As DataRow = e.DataRow.GetParentRow("订单")
If pr IsNot Nothing Then
   If pr("状态") = "全部已核销" Then
      pr("状态") = "部分已核销"
   Else If pr("状态") = "" Then
      pr("状态") = "全部未核销"
   End If
End If

这样才更准确吧!

 

但是在删除明表行时,如果原"状态"为"部分已核销"时,不能准确的给出"状态"信息


--  作者:狐狸爸爸
--  发布时间:2011/2/23 14:38:00
--  

第二个问题我测试正常,将错误提示详细信息按钮中的内容复制到一个文本文件,压缩后发上来我看看。

 

 


--  作者:红叶
--  发布时间:2011/2/23 14:44:00
--  
先帮我看看8楼的后继问题,9楼的错误提示内容马上发上来