Foxtable(狐表)用户栏目专家坐堂 → [原创]代码问题


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

主题:[原创]代码问题

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
[原创]代码问题  发帖心情 Post By:2014/8/7 9:47:00 [显示全部帖子]

老师,我有ZJJHB和ZJSQB,以ZJJHBH表的JHBH和ZJSQB表的zJJHBH建立了关联,ZJSQB表的数据是由ZJJHB点击“生成单据—资金申请单”复制而来,并且在ZJJHB的逻辑列“JZ“列设置标记为TRUE,现在,如果在ZJSQB里把单据删除了(就是找不到关联的ZJJHBH了),则要求的ZJJHB的逻辑列变为FALSE。请老师帮忙编写一下代码,谢谢!!
[此贴子已经被作者于2014-8-7 9:48:51编辑过]

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/7 9:50:00 [显示全部帖子]

请老师帮助贴出代码,谢谢

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/7 9:55:00 [显示全部帖子]

好吧,谢谢老师指点。。。

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/7 11:00:00 [显示全部帖子]

老师,我在”资计划表“里有一行资金申请计划,有一列判断是否进行过付款申请,如果点击”生成单据—付款申请单“,则将选择的行将设定的列内容自动复制到资金申请表里,同时逻辑列自动变为TRUE,现在是,如果我把刚才复制过去的行删除了,则希望逻辑列的值自动改为FALSE。两个表都有JHBH列,并以此进行了关联。在资金计划表的DataColChanged里设了了如下代码,但好像不行,是代码放置的地方不对,还是代码有问题,请老师指点,麻烦了。。。
If e.DataCol.Name = "jhbh" Then '如果内容发生变动的是JHB
Dim dn As DataRow
        '在资金申请表查找同名的计划编号(JHBH)行,将找到的行赋值给变量dr
        dn = DataTables("zjsqb").Find("[jhbh] = '" & e.NewValue & "'")
        If dn IsNot Nothing Then '如果找到了同名的计划编号行,也就是dr不是Nothing
            e.DataRow("jz") = True
       Else
            e.DataRow("jz") = False
       End If
End If
[此贴子已经被作者于2014-8-7 11:03:00编辑过]

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/7 11:52:00 [显示全部帖子]

老师,还是不得行,比如A表和B表,A表是计划表,B表是申请表,由A表复制生成B表记录,在A表有个逻辑列用于记录计划编号在B表存不存在,如果复制到B表并存在相同的计划编号,则逻辑列为真,如果不存在,则为否。现在是如果复制后,A表的逻辑值是真,但把B表的数据删除后,A表的值不会变。代码是应该放在A表还是B表呢,我觉得应该是B表,但如果是B表的话,则代码需要修改,在A表值不会变。请老师指点
Dim dr As DataRow = DataTables("ZJJHB").Find("产品编号 = '" & e.DataRow("产品编号") & "'")
If
 dr IsNot Nothing Then
    e.Datarow("JZ") = False

End
 If

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/7 11:59:00 [显示全部帖子]

但判断值是在A,比如 dn("jz") = False应该是A表的值

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/7 12:15:00 [显示全部帖子]

老师,下面这段代码,如果已经审核,则只要光标移到该列,或者不小心将光标移到了该列,则会有不停的提示,无法退出。如果想要只有当双击单元格时,才提示信息不允许编辑,是需要修改代码,还是将下面代码换个地方就可以了??请老师帮助一下,谢谢
'下列代码为指定角色可以编辑哪些列
   If User.IsRole("子公司财务") Then
        Select Case e.Col.Name
            Case "SQDWCW1","SQDWCW"
                e.Cancel = False
               If E.Row.IsNULL("SQDWCW2") = True Then
                    e.Cancel = False                
              Else
                   MessageBox.Show("已审核,不能编辑")
              End If
        End Select
    ElseIf User.IsRole("总工办1") Then
        Select Case e.Col.Name
            Case "SHYJ","SH1","YYSM"
                e.Cancel = False
           If E.Row.IsNULL("SH") = True Then
                e.Cancel = False                  
             Else
                MessageBox.Show("已审核,不能编辑")
            End If
        End Select
    ElseIf User.IsRole("集团财务1") Then
        Select Case e.Col.Name
            Case "CWSH1","CWSH3","CWSH4","CWSH5"
                e.Cancel = False
                  If E.Row.IsNULL("cwsh2") = True Then
                    e.Cancel = False                  
                     Else
                     MessageBox.Show("已审核,不能编辑")
            End If
        End Select
End If
[此贴子已经被作者于2014-8-7 12:35:19编辑过]

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/7 12:25:00 [显示全部帖子]

如果将上面的代码拆分为两段代码,分别放在PREPAREDIT和STARTEDIT两个地方,有提示,但还是能够编辑。
[此贴子已经被作者于2014-8-7 12:30:28编辑过]

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/7 13:06:00 [显示全部帖子]

以下是引用有点甜在2014-8-7 12:03:00的发言:

 

写在 B表申请表 BeforeDeleteDataRow事件

 

Dim dn As DataRow = DataTables("zjsqb").Find("[jhbh] = '" & e.DataRow("jhbh") & "'")
If dn IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
    dn("jz") = False
End If


老师,是A表中有计划单编号,B表也有计划单编号,相对应的。B表的计划单编号由A表复制而来。A表有一列N是判断在B表是否有与A表计划单编号相同的行,如果有,则A表的N列为TRUE,如果没有对应的计划单编号,则A表的N列为FALSE。一般是马上复制后肯定为TRUE。但是,如果把B表计划单编号对应的行删除了,A表的计划单编号在B表找不到对应的计划单编号了,那A表的N列值就应自动变FALSE了。


[此贴子已经被作者于2014-8-7 13:08:19编辑过]

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/7 15:31:00 [显示全部帖子]

以下是引用有点甜在2014-8-7 12:03:00的发言:

 

写在 B表申请表 BeforeDeleteDataRow事件

 

Dim dn As DataRow = DataTables("zjsqb").Find("[jhbh] = '" & e.DataRow("jhbh") & "'")
If dn IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
    dn("jz") = False
End If


老师,是A表中有计划单编号,B表也有计划单编号,相对应的。B表的计划单编号由A表复制而来。A表有一列N是判断在B表是否有与A表计划单编号相同的行,如果有,则A表的N列为TRUE,如果没有对应的计划单编号,则A表的N列为FALSE。一般是马上复制后肯定为TRUE。但是,如果把B表计划单编号对应的行删除了,A表的计划单编号在B表找不到对应的计划单编号了,那A表的N列值就应自动变FALSE了。上面的代码不执行


[此贴子已经被作者于2014-8-7 15:32:41编辑过]

 回到顶部
总数 23 1 2 3 下一页