Foxtable(狐表)用户栏目专家坐堂 → 请教如何改


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

主题:请教如何改

美女呀,离线,留言给我吧!
意悠心轻
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
请教如何改  发帖心情 Post By:2017/2/14 13:00:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:捕获333.png
图片点击可在新窗口打开查看


 

我在包装车间工资表的表属性DataColChanged事件中修改了程序,因为要添加一个条件,如果当天的集体生产形式只有一种(即只有一条件生产线,以集体、集体1区分),则职位为拉长的系数为:1 + (fdr("系数") - 1)/ 2,否则系直接引用姓名表中的系数,程序修改后报错,请教如何修改。


 

[此贴子已经被作者于2017/2/15 11:58:51编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/14 13:17:00 [只看该作者]

 不是很明显吗?你设置的条件应该是 #日期#

 

 而你后面的#改成了单引号'

 


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2017/2/14 14:03:00 [只看该作者]

日期格式我修改过来没报错了,但对包装车间工资表姓名列重置列,软件消失,程序有问题,麻烦帮我看看怎么改,谢谢。

[此贴子已经被作者于2017/2/14 14:04:52编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/14 14:11:00 [只看该作者]

重置列,如果程序消失,说明死循环。自己调试下。

 

http://www.foxtable.com/webhelp/scr/1522.htm

 


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2017/2/14 15:04:00 [只看该作者]

还是这样,这程序是不是不是这样编啊!

For Each ary() As String In DataTables("包装车间工资表").GetValues("日期|生产形式", "日期 is not null and 生产形式 <> '个人'")
    Dim drs As List(Of DataRow) = DataTables("包装车间工资表").Select("日期=#" & ary(0) & "# And 生产形式='" & ary(1).Replace("'","''") & "'")
    Dim count As Integer = 0
    Dim ls As new List(Of String)
    If DataTables("包装车间工资表").DataCols.Contains("备注1") = False Then
        DataTables("包装车间工资表").DataCols.add("备注1", Gettype(String))
    End If
    For Each dr As DataRow In drs
        Dim str As String = dr("生产形式")
        If ls.Contains(str) = False Then
            count + = 1
            ls.add(str)
            dr("备注1") = dr("备注1").replace("重复", Nothing)
        Else
            dr("备注1") = "重复" & dr("备注1").replace("重复", Nothing)
        End If
    Next
    Select Case e.DataCol.name
        Case "日期","姓名","职位","系数"
            Dim d As Date = e.DataRow("日期")
            d = new Date(d.year, d.month, 1)
            Dim fdr As DataRow = DataTables("姓名").find("姓名 = '" & e.DataRow("姓名") & "' and 日期 >= #" & Format(d,"yyyy-MM-dd") & "# and 日期 < #" & Format(d.AddMonths(1),"yyyy -MM-dd") & "#", "日期 desc")
            If fdr IsNot Nothing
                e.DataRow("职位") = fdr("职位")
                If count > 1 Then
                    If e.DataRow("职位") Like "*拉长*" Then
                        e.DataRow("系数") = 1 + (fdr("系数") - 1)/ 2
                    Else
                        e.DataRow("系数") = fdr("系数")
                    End If
                Else
                    e.DataRow("职位") = Nothing
                    e.DataRow("系数") = Nothing
                End If
            End If
    End Select
Next

[此贴子已经被作者于2017/2/14 15:11:32编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/14 15:06:00 [只看该作者]

这段代码为什么要写在datacolchanged事件?单独做一个按钮不行?

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2017/2/14 15:10:00 [只看该作者]

我的本意是自动引用,哦写到按钮里啊?让我想想怎么改。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/14 15:12:00 [只看该作者]

如果你想写在datacolchanged事件,那就加载systemready,避免重复触发代码

 

http://www.foxtable.com/webhelp/scr/2218.htm

 


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2017/2/14 15:55:00 [只看该作者]

我加了这段代码了,点重置列软件没消失了,但没实现自动引用系数。我在计算窗口里加了两个暂停执行事件代码按钮,一个执行的,一个关闭的,但并不明白它们在此的作用。


 

[此贴子已经被作者于2017/2/15 11:59:09编辑过]

 回到顶部
客人(183.2.*.*)
  10楼


  发帖心情 Post By:2017/2/14 16:40:00 [只看该作者]

哦,明白了,设了这个按钮,安重置列不掉线,否则掉线。不过自动引用现在还没实现。

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