Foxtable(狐表)用户栏目专家坐堂 → 代码求教


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

主题:代码求教

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


加好友 发短信
等级:婴狐 帖子:38 积分:368 威望:0 精华:0 注册:2017/2/8 19:27:00
代码求教  发帖心情 Post By:2017/2/22 20:41:00 [只看该作者]

您好,我想咨询一下,通过以下代码,先取出表“原职工购股标准表”及“统计”两个表的字段,然后将这两个表的数据最中在“职工购股情况差异对比表”中显示。但是报错,无法执行,请专家指教,非常感谢。

Dim dtb1 As New DataTableBuilder("原职工购股标准表")
dtb1.AddDef("工资编号1", Gettype(String), 16)
dtb1.AddDef("姓名1", Gettype(String), 16)
dtb1.AddDef("原职位1", Gettype(String), 16)
dtb1.AddDef("原技术职务等级1", Gettype(String), 16)
dtb1.AddDef("购股11", Gettype(Double))
dtb1.AddDef("购股21", Gettype(Double))
dtb1.AddDef("购股标准1", Gettype(Double))
dtb1.AddDef("现持股金1", Gettype(String), 16)
dtb1.AddDef("其中资本股1", Gettype(String), 16)
dtb1.AddDef("其中岗位股份1", Gettype(String), 16)
dtb1.Build()
Dim dt1 As DataTable = DataTables("原职工购股标准表")
Dim dt2 As DataTable = DataTables("原人员信息岗位股明细表")
For Each nm As String In dt2.GetValues("工资编号")
    Dim dr As DataRow = dt1.AddNew()
    dr("工资编号1") = nm
    Dim num1 As Double = dt2.Compute("max(购股标准)", "工资编号 = '" & nm & "'")
    Dim num2 As Double = dt2.Compute("max(对应购股标准)", "工资编号 = '" & nm & "'")
    dr("购股11") = num1
    dr("购股21") = num2
    Dim fdr As DataRow
    If num1 > num2 Then
        dr("购股标准1") = num1
        fdr = dt2.find("工资编号 = '" & nm & "' and 购股标准 = '" & num1 & "'")
    Else
        dr("购股标准1") = num2
        fdr = dt2.find("工资编号 = '" & nm & "' and 对应购股标准 = '" & num2 & "'")
    End If
    dr("姓名1") = fdr("姓名")
    dr("原技术职务等级1") = fdr("原技术职务等级")
    dr("原职位1") = fdr("原职位")
    dr("现持股金1") = fdr("现持股金")
    dr("其中资本股1") = fdr("其中资本股")
    dr("其中岗位股份1") = fdr("其中岗位股份")
Next
Dim dtb2 As New DataTableBuilder("统计")
dtb2.AddDef("工资编号2", Gettype(String), 16)
dtb2.AddDef("姓名2", Gettype(String), 16)
dtb2.AddDef("行政职务2", Gettype(String), 16)
dtb2.AddDef("技术职务等级2", Gettype(String), 16)
dtb2.AddDef("购股12", Gettype(Double))
dtb2.AddDef("购股22", Gettype(Double))
dtb2.AddDef("购股标准2", Gettype(Double))
dtb2.AddDef("现持股金2", Gettype(String), 16)
dtb2.AddDef("其中资本股2", Gettype(String), 16)
dtb2.AddDef("其中岗位股份2", Gettype(String), 16)
dtb2.Build()
Dim dt3 As DataTable = DataTables("统计")
Dim dt4 As DataTable = DataTables("人员信息岗位股明细表")
For Each nm As String In dt4.GetValues("工资编号")
    Dim dr As DataRow = dt3.AddNew()
    dr("工资编号2") = nm
    Dim num1 As Double = dt4.Compute("max(购股标准)", "工资编号 = '" & nm & "'")
    Dim num2 As Double = dt4.Compute("max(对应购股标准)", "工资编号 = '" & nm & "'")
    dr("购股12") = num1
    dr("购股22") = num2
    Dim fdr As DataRow
    If num1 > num2 Then
        dr("购股标准2") = num1
        fdr = dt4.find("工资编号 = '" & nm & "' and 购股标准 = '" & num1 & "'")
    Else
        dr("购股标准2") = num2
        fdr = dt4.find("工资编号 = '" & nm & "' and 对应购股标准 = '" & num2 & "'")
    End If
    dr("姓名2") = fdr("姓名")
    dr("技术职务等级2") = fdr("技术职务等级")
    dr("行政职务2") = fdr("行政职务")
    dr("现持股金2") = fdr("现持股金")
    dr("其中资本股2") = fdr("其中资本股")
    dr("其中岗位股份2") = fdr("其中岗位股份")
Next
Dim dtb As New DataTableBuilder("职工购股情况差异对比表")
dtb.AddDef("工资编号", Gettype(String), 16)
dtb.AddDef("姓名", Gettype(String), 16)
dtb.AddDef("原职位", Gettype(String), 16)
dtb.AddDef("原技术职务等级", Gettype(String), 16)
dtb.AddDef("职位", Gettype(String), 16)
dtb.AddDef("技术职务", Gettype(String), 16)
dtb.AddDef("原购股标准", Gettype(Double))
dtb.AddDef("购股标准", Gettype(Double))
dtb.AddDef("现持股金", Gettype(String), 16)
dtb.AddDef("其中资本股", Gettype(String), 16)
dtb.AddDef("其中岗位股份", Gettype(String), 16)
dtb.Build()
Dim dt5 As DataTable = DataTables("统计")
Dim dr As DataRow = dt5.AddNew()
dr("工资编号") = fdr("工资编号1")
dr("姓名") = fdr("姓名1")
dr("原职位") = fdr("原职位1")
dr("原技术职务等级") = fdr("技术职务等级1")
dr("职位") = fdr("行政职务2")
dr("技术职务") = fdr("技术职务等级2")
dr("原购股标准") = fdr("购股标准1")
dr("购股标准") = fdr("购股标准2")
dr("现持股金") = fdr("现持股金2")
dr("其中资本股") = fdr("其中资本股2")
dr("其中岗位股份") = fdr("其中岗位股份2")
Next
MainTable= Tables("职工购股情况差异对比表")


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


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

报什么错?上传实例,测试。

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


加好友 发短信
等级:婴狐 帖子:38 积分:368 威望:0 精华:0 注册:2017/2/8 19:27:00
  发帖心情 Post By:2017/2/23 7:52:00 [只看该作者]

报错截图,我是在窗口设计事件中写的代码:

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

[此贴子已经被作者于2017/2/23 7:52:35编辑过]

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


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/23 9:05:00 [只看该作者]

出错提示意思是,dr这个变量名称定义重复了。改下名称,如dr2、dr3等等

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


加好友 发短信
等级:婴狐 帖子:38 积分:368 威望:0 精华:0 注册:2017/2/8 19:27:00
  发帖心情 Post By:2017/2/23 19:44:00 [只看该作者]

你好,我把重复定义的dr改了,在点击按钮执行的时候,还是报错,截图如下:

图片点击可在新窗口打开查看此主题相关图片如下:代码错误提示.png
图片点击可在新窗口打开查看

我写的代码如下,我想通过("原职工购股标准表")和"统计"两个 表的字段组合形成最后的表"职工购股情况差异对比表",我是初学者,烦请专家帮忙看一下,谢谢:
Dim dtb1 As New DataTableBuilder("原职工购股标准表")
dtb1.AddDef("工资编号1", Gettype(String), 16)
dtb1.AddDef("姓名1", Gettype(String), 16)
dtb1.AddDef("原职位1", Gettype(String), 16)
dtb1.AddDef("原技术职务等级1", Gettype(String), 16)
dtb1.AddDef("购股11", Gettype(Double))
dtb1.AddDef("购股21", Gettype(Double))
dtb1.AddDef("购股标准1", Gettype(Double))
dtb1.AddDef("现持股金1", Gettype(String), 16)
dtb1.AddDef("其中资本股1", Gettype(String), 16)
dtb1.AddDef("其中岗位股份1", Gettype(String), 16)
dtb1.Build()
Dim dt1 As DataTable = DataTables("原职工购股标准表")
Dim dt2 As DataTable = DataTables("原人员信息岗位股明细表")
For Each nm As String In dt2.GetValues("工资编号")
    Dim dr1 As DataRow = dt1.AddNew()
    dr1("工资编号1") = nm
    Dim num1 As Double = dt2.Compute("max(购股标准)", "工资编号 = '" & nm & "'")
    Dim num2 As Double = dt2.Compute("max(对应购股标准)", "工资编号 = '" & nm & "'")
    dr1("购股11") = num1
    dr1("购股21") = num2
    Dim fdr1 As DataRow
    If num1 > num2 Then
        dr1("购股标准1") = num1
        fdr1 = dt2.find("工资编号 = '" & nm & "' and 购股标准 = '" & num1 & "'")
    Else
        dr1("购股标准1") = num2
        fdr1 = dt2.find("工资编号 = '" & nm & "' and 对应购股标准 = '" & num2 & "'")
    End If
    dr1("姓名1") = fdr1("姓名")
    dr1("原技术职务等级1") = fdr1("原技术职务等级")
    dr1("原职位1") = fdr1("原职位")
    dr1("现持股金1") = fdr1("现持股金")
    dr1("其中资本股1") = fdr1("其中资本股")
    dr1("其中岗位股份1") = fdr1("其中岗位股份")
Next
Dim dtb2 As New DataTableBuilder("统计")
dtb2.AddDef("工资编号2", Gettype(String), 16)
dtb2.AddDef("姓名2", Gettype(String), 16)
dtb2.AddDef("行政职务2", Gettype(String), 16)
dtb2.AddDef("技术职务等级2", Gettype(String), 16)
dtb2.AddDef("购股12", Gettype(Double))
dtb2.AddDef("购股22", Gettype(Double))
dtb2.AddDef("购股标准2", Gettype(Double))
dtb2.AddDef("现持股金2", Gettype(String), 16)
dtb2.AddDef("其中资本股2", Gettype(String), 16)
dtb2.AddDef("其中岗位股份2", Gettype(String), 16)
dtb2.Build()
Dim dt3 As DataTable = DataTables("统计")
Dim dt4 As DataTable = DataTables("人员信息岗位股明细表")
For Each nm As String In dt4.GetValues("工资编号")
    Dim dr2 As DataRow = dt3.AddNew()
    dr2("工资编号2") = nm
    Dim num1 As Double = dt4.Compute("max(购股标准)", "工资编号 = '" & nm & "'")
    Dim num2 As Double = dt4.Compute("max(对应购股标准)", "工资编号 = '" & nm & "'")
    dr2("购股12") = num1
    dr2("购股22") = num2
    Dim fdr2 As DataRow
    If num1 > num2 Then
        dr2("购股标准2") = num1
        fdr2 = dt4.find("工资编号 = '" & nm & "' and 购股标准 = '" & num1 & "'")
    Else
        dr2("购股标准2") = num2
        fdr2 = dt4.find("工资编号 = '" & nm & "' and 对应购股标准 = '" & num2 & "'")
    End If
    dr2("姓名2") = fdr2("姓名")
    dr2("技术职务等级2") = fdr2("技术职务等级")
    dr2("行政职务2") = fdr2("行政职务")
    dr2("现持股金2") = fdr2("现持股金")
    dr2("其中资本股2") = fdr2("其中资本股")
    dr2("其中岗位股份2") = fdr2("其中岗位股份")
Dim dtb As New DataTableBuilder("职工购股情况差异对比表")
dtb.AddDef("姓名", Gettype(String), 16)
dtb.AddDef("原职位", Gettype(String), 16)
dtb.AddDef("原技术职务等级", Gettype(String), 16)
dtb.AddDef("职位", Gettype(String), 16)
dtb.AddDef("技术职务", Gettype(String), 16)
dtb.AddDef("原购股标准", Gettype(Double))
dtb.AddDef("购股标准", Gettype(Double))
dtb.AddDef("现持股金", Gettype(String), 16)
dtb.AddDef("其中资本股", Gettype(String), 16)
dtb.AddDef("其中岗位股份", Gettype(String), 16)
dtb.Build()
Dim dt5 As DataTable = DataTables("统计")
Dim dr As DataRow = dt5.AddNew()
dr("原技术职务等级") = dtb1("技术职务等级1")
dr("职位") = dtb2("行政职务2")
dr("技术职务") = dtb2("技术职务等级2")
dr("原购股标准") = dtb1("购股标准1")
dr("购股标准") = dtb2("购股标准2")
dr("现持股金") = dtb2("现持股金2")
dr("其中资本股") = dtb2("其中资本股2")
dr("其中岗位股份") = dtb2("其中岗位股份2")
Next
MainTable= Tables("职工购股情况差异对比表")


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


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

 做个例子上来测试。

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


加好友 发短信
等级:婴狐 帖子:38 积分:368 威望:0 精华:0 注册:2017/2/8 19:27:00
  发帖心情 Post By:2017/2/23 20:43:00 [只看该作者]

好的,我明天一早做个例子传上去,现在没法上传,到时您看下,谢谢了。

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


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

Dim dtb1 As New DataTableBuilder("原职工购股标准表")
dtb1.AddDef("工资编号1", Gettype(String), 16)
dtb1.AddDef("姓名1", Gettype(String), 16)
dtb1.AddDef("原职位1", Gettype(String), 16)
dtb1.AddDef("原技术职务等级1", Gettype(String), 16)
dtb1.AddDef("购股11", Gettype(Double))
dtb1.AddDef("购股21", Gettype(Double))
dtb1.AddDef("购股标准1", Gettype(Double))
dtb1.AddDef("现持股金1", Gettype(String), 16)
dtb1.AddDef("其中资本股1", Gettype(String), 16)
dtb1.AddDef("其中岗位股份1", Gettype(String), 16)
dtb1.Build()
Dim dt1 As DataTable = DataTables("原职工购股标准表")
Dim dt2 As DataTable = DataTables("原人员信息岗位股明细表")
For Each nm As String In dt2.GetValues("工资编号")
    Dim dr1 As DataRow = dt1.AddNew()
    dr1("工资编号1") = nm
    Dim num1 As Double = dt2.Compute("max(购股标准)", "工资编号 = '" & nm & "'")
    Dim num2 As Double = dt2.Compute("max(对应购股标准)", "工资编号 = '" & nm & "'")
    dr1("购股11") = num1
    dr1("购股21") = num2
    Dim fdr1 As DataRow
    If num1 > num2 Then
        dr1("购股标准1") = num1
        fdr1 = dt2.find("工资编号 = '" & nm & "' and 购股标准 = '" & num1 & "'")
    Else
        dr1("购股标准1") = num2
        fdr1 = dt2.find("工资编号 = '" & nm & "' and 对应购股标准 = '" & num2 & "'")
    End If
    dr1("姓名1") = fdr1("姓名")
    dr1("原技术职务等级1") = fdr1("原技术职务等级")
    dr1("原职位1") = fdr1("原职位")
    dr1("现持股金1") = fdr1("现持股金")
    dr1("其中资本股1") = fdr1("其中资本股")
    dr1("其中岗位股份1") = fdr1("其中岗位股份")
Next
Dim dtb2 As New DataTableBuilder("统计")
dtb2.AddDef("工资编号2", Gettype(String), 16)
dtb2.AddDef("姓名2", Gettype(String), 16)
dtb2.AddDef("行政职务2", Gettype(String), 16)
dtb2.AddDef("技术职务等级2", Gettype(String), 16)
dtb2.AddDef("购股12", Gettype(Double))
dtb2.AddDef("购股22", Gettype(Double))
dtb2.AddDef("购股标准2", Gettype(Double))
dtb2.AddDef("现持股金2", Gettype(String), 16)
dtb2.AddDef("其中资本股2", Gettype(String), 16)
dtb2.AddDef("其中岗位股份2", Gettype(String), 16)
dtb2.Build()
Dim dt3 As DataTable = DataTables("统计")
Dim dt4 As DataTable = DataTables("人员信息岗位股明细表")
For Each nm As String In dt4.GetValues("工资编号")
    Dim dr2 As DataRow = dt3.AddNew()
    dr2("工资编号2") = nm
    Dim num1 As Double = dt4.Compute("max(购股标准)", "工资编号 = '" & nm & "'")
    Dim num2 As Double = dt4.Compute("max(对应购股标准)", "工资编号 = '" & nm & "'")
    dr2("购股12") = num1
    dr2("购股22") = num2
    Dim fdr2 As DataRow
    If num1 > num2 Then
        dr2("购股标准2") = num1
        fdr2 = dt4.find("工资编号 = '" & nm & "' and 购股标准 = '" & num1 & "'")
    Else
        dr2("购股标准2") = num2
        fdr2 = dt4.find("工资编号 = '" & nm & "' and 对应购股标准 = '" & num2 & "'")
    End If
    dr2("姓名2") = fdr2("姓名")
    dr2("技术职务等级2") = fdr2("技术职务等级")
    dr2("行政职务2") = fdr2("行政职务")
    dr2("现持股金2") = fdr2("现持股金")
    dr2("其中资本股2") = fdr2("其中资本股")
    dr2("其中岗位股份2") = fdr2("其中岗位股份")
Next

Dim dtb As New DataTableBuilder("职工购股情况差异对比表")
dtb.AddDef("姓名", Gettype(String), 16)
dtb.AddDef("原职位", Gettype(String), 16)
dtb.AddDef("原技术职务等级", Gettype(String), 16)
dtb.AddDef("职位", Gettype(String), 16)
dtb.AddDef("技术职务", Gettype(String), 16)
dtb.AddDef("原购股标准", Gettype(Double))
dtb.AddDef("购股标准", Gettype(Double))
dtb.AddDef("现持股金", Gettype(String), 16)
dtb.AddDef("其中资本股", Gettype(String), 16)
dtb.AddDef("其中岗位股份", Gettype(String), 16)
dtb.Build()
Dim dt5 As DataTable = DataTables("职工购股情况差异对比表")
For Each nm As String In dt4.GetValues("工资编号")
    Dim dr As DataRow = dt5.AddNew()
    Dim fdr1 As DataRow = dt1.find("工资编号 = '" & nm & "'")
    Dim fdr2 As DataRow = dt3.find("工资编号 = '" & nm & "'")
    dr("原技术职务等级") = fdr1("技术职务等级1")
    dr("职位") = fdr2("行政职务2")
    dr("技术职务") = fdr2("技术职务等级2")
    dr("原购股标准") = fdr1("购股标准1")
    dr("购股标准") = fdr2("购股标准2")
    dr("现持股金") = fdr2("现持股金2")
    dr("其中资本股") = fdr2("其中资本股2")
    dr("其中岗位股份") = fdr2("其中岗位股份2")
Next
MainTable= Tables("职工购股情况差异对比表")


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


加好友 发短信
等级:婴狐 帖子:38 积分:368 威望:0 精华:0 注册:2017/2/8 19:27:00
  发帖心情 Post By:2017/2/24 8:31:00 [只看该作者]

非常感谢。

 回到顶部