Foxtable(狐表)用户栏目专家坐堂 → [求助]请老师帮助


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

主题:[求助]请老师帮助

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


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

以下是引用爱相随在2014-8-1 15:26:00的发言:
还有就是有些记录,比如资金申请,我8月份申请了,没有获得付款,9月份继续需要申报,希望通过点击某个按钮后,自动复制整行到表后的区域,然后修改时间,保存。对于重复的行希望能够自动复制,不需要再重新填写。我看有个自动复制的功能,但那是复制到其他表里去,我试着把代码改后希望能在复制到同一张里的后面,但没有成功。
[此贴子已经被作者于2014-8-1 15:28:49编辑过]

 

直接用菜单的克隆行,就是复制啊

 

http://www.foxtable.com/help/topics/1792.htm

 


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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/1 15:55:00 [只看该作者]

老师,下面的代码我是想表达,判断是否集团成员,如果是,可以编辑任何行,如果不是,则判断与最初录入人是否是同一工作组,如果是,则可以编辑,不是,则取消编辑。但不执行,不提示错误。另外,又在按钮里设置了根据用户角色来编辑单位格。它们的执行顺序是谁优先啊。。。。
If User.Group = "集团成员" Then 
    If e.Row("SQDW") <> User.Group Then '在编辑某行前,会自动判断负责此行的部门列是否和登录用户所属分组相同,如果不同,则取消编辑.
       e.Cancel = True
    End If
End If


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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/1 16:04:00 [只看该作者]

我现在的情况是,申报部门审核(含审核人1)以前是同一工作组,就是审核人1及以前的工作由子公司处理,审核人2以后的工作由集团人员处理,审核部门(审核人2)以及后的付款部门都是属集团人员,现在是审核人2以后的人不能审核,无法操作。
现在要求就是“不同部门操作不同行”中的例外代码。就是某人虽然不属于此部门,但属于某一指定部门,则可以操作,否则不可以操作。
[此贴子已经被作者于2014-8-1 16:09:52编辑过]

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


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

If User.Group <> "集团成员" Then 
    If e.Row("SQDW") <> User.Group Then '在编辑某行前,会自动判断负责此行的部门列是否和登录用户所属分组相同,如果不同,则取消编辑.
       e.Cancel = True
    End If
End If

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/1 16:43:00 [只看该作者]

上面问题解决了,我在表事件的PRED里两个地方增加条件AND 就可以了,但是下面的代码却不管K值怎么变,取值都是0哦。。。是哪里还有错了。
If e.DataCol.Name = "SHYJ" Then 
 Dim K As String
 Select Case K
       Case K = "同意"
           e.DataRow("SH1") = e.DataRow("SQJE")
       Case K = "修改"
           e.DataRow("SH1") = " "
       Case Else
           e.DataRow("SH1") = "0"
 End Select  
End If

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/1 16:44:00 [只看该作者]

If e.Row("SQDW") <> User.Group And User.Group <> "集团成员" Then '在编辑某行前,会自动判断负责此行的部门列是否和登录用户所属分组相同,如果不同,则取消编辑.
       e.Cancel = True
End If
If e.Row("TBR") <> User.NAME And User.Group <> "集团成员" Then '在编辑某行前,会自动判断负责此行的填报人列是否和登录用户所属分组相同,如果不同,则取消编辑.
    e.Cancel = True
End If

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


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

If e.DataCol.Name = "SHYJ" Then
    Dim K As String = e.DataRow("SHYJ")
    Select Case K
        Case K = "同意"
            e.DataRow("SH1") = e.DataRow("SQJE")
        Case K = "修改"
            e.DataRow("SH1") = " "
        Case Else
            e.DataRow("SH1") = "0"
    End Select
End If

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/1 16:52:00 [只看该作者]

还是一样的,无论K取什么值,为空值时SH1也是0

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


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

以下是引用爱相随在2014-8-1 16:52:00的发言:
还是一样的,无论K取什么值,为空值时SH1也是0

 

不可能。删除多余代码,单独执行,肯定不会有问题


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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/8/1 17:00:00 [只看该作者]

以下是事件里的全部代码,每一个都执行正确,就最后那个不正确。
If e.DataCol.Name = "JHBH" Then
    Dim filter As String = "JHBH = '" & e.DataRow("JHBH")  & "'"
    e.DataRow("FKBM3") = DataTables("fkb").Compute("sum(YFKJE)",filter)
    e.DataRow("DKSK") = DataTables("fkb").Compute("sum(DKSJ)",filter)
End If

If e.DataCol.Name = "XMBM" Then '发生变化的是项目编码列
    '在项目信息表找出该项目编码
    Dim dr As DataRow 
    dr = DataTables("XMXXB").Find("XMBM = '" & e.DataRow("XMBM") & "'" )
    If dr IsNot Nothing '如果找到, 则设置各列内容
        e.DataRow("XMMC")= dr("XMMC")
        e.DataRow("XMGS")= dr("XMGS")
    End If
End If
If e.DataCol.Name = "KSJM" Then '发生变化的是项目编码列
    '在项目信息表找出该项目编码
    Dim dr As DataRow 
    dr = DataTables("KSXXB").Find("KSJM = '" & e.DataRow("KSJM") & "'" )
    If dr IsNot Nothing '如果找到, 则设置各列内容
        e.DataRow("KSMC")= dr("KSMC")
    End If
End If
Select e.DataCol.Name
    Case "DWJM","ND","ZJY"
        If e.DataRow.IsNull("DWJM") OrElse e.DataRow.IsNull("ND") OrElse e.DataRow.IsNull("ZJY") Then
            e.DataRow("JHBH") = Nothing
        Else
            Dim bh As String = e.DataRow("DWJM") & "-" & e.DataRow("ND") & "-" & e.DataRow("ZJY") & "-" '生成编号的前缀
            If e.DataRow("JHBH").StartsWith(bh) = False '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "DWJM = '"& e.DataRow("DWJM") & "' And ND = '" & e.DataRow("ND") & "' And ZJY = '" & e.DataRow("ZJY") & "' And [_Identify] <> " & e.DataRow("_Identify")               
                   max = e.DataTable.Compute("Max(JHBH)",flt) '取得该月的相同工程代码的最大单据编号
                If max > "" Then '如果存在最大单据编号
                     idx = CInt(max.Substring(bh.length,3)) + 1 '获得最大单据编号的后四位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("JHBH") = bh & Format(idx,"000")
            End If
        End If
End Select
If e.DataCol.Name = "SHYJ" Then
    Dim K As String = e.DataRow("SHYJ")
    Select Case K
        Case K = "同意"
            e.DataRow("SH1") = e.DataRow("SQJE")
        Case K = "修改"
            e.DataRow("SH1") = " "
        Case Else
            e.DataRow("SH1") = "0"
    End Select


 回到顶部
总数 36 上一页 1 2 3 4 下一页