Foxtable(狐表)用户栏目专家坐堂 → 关于跨表多行合并代码问题


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

主题:关于跨表多行合并代码问题

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/21 11:20:00 [只看该作者]

我使用内置的示例项目“execl报表”测试没有任何问题哦。您试试

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


加好友 发短信
等级:三尾狐 帖子:701 积分:5004 威望:0 精华:0 注册:2016/4/15 22:24:00
代码  发帖心情 Post By:2023/4/22 9:43:00 [只看该作者]

老师,下面是印章跟随代码,印章位置不固定,帮忙看一下代码,现在出现印章不能替换“盖章”两个字问题
Dim fl As String = ProjectPath & "Attachments\test2移动.doc"
Dim fl1 As String = ProjectPath & "Reports\用印文件\" & format(Date.now, "yyyy-MM-dd") & "\" & "test2(已用印).doc" ''
FileSys.CopyFile(fl, fl1, True)
Dim img As String = ProjectPath & "Attachments\电子印章2.png"
Dim app As New MSWord.Application
Try
    Dim doc As Object = app.Documents.Open(fl)
    Dim item = "【盖章】" '被替换的字符
    Dim sel = app.Selection
    sel.Find.ClearFormatting
    With sel.Find
        .Text = item
        .Replacement.Text = ""
        .Forward = True
        .Wrap = MSWord.WdFindWrap.wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False 
    End With
    sel.Find.Execute 
    Dim pic As MSWord.InlineShape = sel.InlineShapes.AddPicture(img)
    pic.Height = 100 '图片高
    pic.Width = 100 '图片宽    
    Dim p2 = pic.ConvertToShape
    p2.WrapFormat.Type = MSWord.WdWrapType.wdWrapBehind 
    With p2 
       .Left = .Left - .Width / 0.75 '向左偏移1个图大小
       .Top = .Top + .Height / 2 '向上偏移三分之一图大小,正确   
    End With 
    Doc.SaveAs(Filename:= fl1)
Catch ex As exception
    msgbox(ex.message)
    app.Quit
Finally 
End Try

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/22 9:49:00 [只看该作者]

模板文件发上来

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


加好友 发短信
等级:三尾狐 帖子:701 积分:5004 威望:0 精华:0 注册:2016/4/15 22:24:00
已解决  发帖心情 Post By:2023/4/22 10:54:00 [只看该作者]

谢谢蓝老师,已解决

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


加好友 发短信
等级:三尾狐 帖子:701 积分:5004 威望:0 精华:0 注册:2016/4/15 22:24:00
代码  发帖心情 Post By:2023/5/4 8:15:00 [只看该作者]

Select Case e.DataCol.name

    Case "户主编号"

        Dim s As String

        For Each dr As DataRow In DataTables("家庭人口表").select("户主编号='" & e.DataRow("户主编号") & "'")

            s = s & "," & dr("姓名") & “(” & dr("与户主关系") & “)”

        Next

        e.DataRow("自动提取数据_户内人口关系") = s.trim(",")

End Select

 

 

我有两张表“户主表”和“家庭人口表”,前表为主表,后者为明细表,两表通过户主编号进行关联,在家庭人口表内有三个人:张小妹(女儿)、王小花(妻子)、张三(户主),上述代码在"自动提取数据_户内人口关系"列内自动生成“张小妹(女儿),王小花(妻子),张三(户主)”,我想指定列内顺序。将户主始终放在最前面,如“张三(户主),王小花(妻子),张小妹(女儿)”。请教老师如何修改代码?


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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/4 8:40:00 [只看该作者]

……

       Dim s As String

        For Each s As string In {"户主","妻子","女儿"}

dim dr as datarow = DataTables("家庭人口表").find("户主编号='" & e.DataRow("户主编号") & "' and 与户主关系='" & s & "'")

if dr isnot nothing then

            s = s & "," & dr("姓名") & “(” & s & “)”

end if

        Next

……


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


加好友 发短信
等级:三尾狐 帖子:701 积分:5004 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2023/5/4 8:58:00 [只看该作者]

蓝老师,每个家庭都有一个户主。有的家庭有妻子,有的没有妻子,有的没有女儿,只有儿子。我想将户主排在最前面,其他的也不好排序

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/4 9:06:00 [只看该作者]

把需要的顺序放到下面数组即可,比如增加一个儿子

{"户主","妻子","女儿","儿子"}

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


加好友 发短信
等级:三尾狐 帖子:701 积分:5004 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2023/5/4 9:23:00 [只看该作者]

老师,提示有错,变量S在封闭块中隐藏变量

   For Each s As string In {"户主","妻子","女儿"}

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


加好友 发短信
等级:三尾狐 帖子:701 积分:5004 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2023/5/4 9:49:00 [只看该作者]

Select Case e.DataCol.name
   Case "户主编号" 
       Dim s As String
       For Each s1 As String In {"户主", "妻子", "女儿", "儿子"} '把需要的顺序放到数组即可‘        
           Dim dr As DataRow = DataTables("家庭人口表B").find("户主编号='" & e.DataRow("户主编号") & "' and 与户主关系='" & s1 & "'")
           If dr IsNot Nothing Then
               s = s & "," & dr("姓名") & “(” & s1 & “)”
           End If
       Next 
       e.DataRow("自动提取_户内人口关系") = s.trim(",") 
End Select
老师,上述代码已可以用了。比如家庭人口表中还有一个人是父亲,但在数组表中未列其关系,上述代码不会自动提取出来,我想即使上述数组未列出关系的,也应自动提取出来,老师,可以修改一下吗

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