Foxtable(狐表)用户栏目专家坐堂 → 紧急求助:word报表引用子表数据的排序问题


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

主题:紧急求助:word报表引用子表数据的排序问题

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


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

 或者是,你排序以后,循环每一行,给_Sortkey赋值为对应的数字

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2014/9/18 11:48:00 [只看该作者]

'操控Word文档,主要是文档合并

'*******************************

'*********以下代码可修改**********

Dim FileName = "任免审批表.doc"   '定义模版文件名

Dim Ctn As String = "干部信息"  '当前表表名,通用格式Functions.Execute("CurrentTableName")

Dim Tb As Table = Tables(Ctn)   '定义当前表,通用.

 

'*********以上代码可修改**********

'*******************************

 

on error resume Next

If FileSys.DirectoryExists(ProjectPath & "Reports\") = False Then   '如果Reports文件夹不存在

    FileSys.CreateDirectory(ProjectPath & "Reports\")    '创建Reports文件夹

End If

Dim App As New MSWord.Application    '定义MSWord

 

'获得模版

FileSys.CopyFile(ProjectPath & "Attachments\" & FileName, ProjectPath & "Reports\" & FileName,True)

Dim nDoc = App.Documents.Open(ProjectPath & "Reports\" & FileName)

Dim rng As MSWord.Range = App.Documents(FileName).Range

rng.Select()   '全选

rng.Copy()   '拷贝

nDoc.Activate()

 

'插入文段

 

Dim cr As Row = Tb.Current    '定义当前行

 

'***********************************************

'*********以下是代码主体部分,需要修改**********

 

 

App.Selection.Find.ClearFormatting()

App.Selection.Find.Text = "[姓名]"

App.Selection.Find.Replacement.ClearFormatting()

App.Selection.Find.Replacement.Text = cr("姓名")

App.Selection.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll)

 

 

rng.Find.ClearFormatting()

If rng.Find.Execute("[照片]") Then

    rng.Select()

    If FileSys.FileExists(ProjectPath & "Attachments\照片\" & cr("照片")) Then

        App.Selection.InlineShapes.AddPicture(ProjectPath & "Attachments\照片\" & cr("照片"))

    End If

    rng = App.Documents(FileName).Range

    rng.Select()

End If


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2014/9/18 11:49:00 [只看该作者]

我是这样来处理的

 

Dim drs,drs1 As List(Of DataRow) drs = DataTables("社会关系").Select("[户主] = '" & cr("姓名") & "'","排序,出生年月")

 

For h As Integer = 0 To drs.Count-1

    App.Selection.Find.ClearFormatting()

    App.Selection.Find.Text = "[称谓" & h+1 & "]"

    App.Selection.Find.Replacement.ClearFormatting()

    App.Selection.Find.Replacement.Text = drs(h)("称谓")

    App.Selection.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll)

    App.Selection.Find.ClearFormatting()

    App.Selection.Find.Text = "[姓名" & h+1 & "]"

    App.Selection.Find.Replacement.ClearFormatting()

    App.Selection.Find.Replacement.Text = drs(h)("姓名")

    App.Selection.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll)

    App.Selection.Find.ClearFormatting()

    App.Selection.Find.Text = "[生日" & h+1 & "]"

    App.Selection.Find.Replacement.ClearFormatting()

    If drs(h).IsNull("出生年月") =False Then

        App.Selection.Find.Replacement.Text =  Format(drs(h)("出生年月"),"yyyy.MM")

    Else

        App.Selection.Find.Replacement.Text = ""

    End If

    App.Selection.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll)

    App.Selection.Find.ClearFormatting()

    App.Selection.Find.Text = "[政治" & h+1 & "]"

    App.Selection.Find.Replacement.ClearFormatting()

    App.Selection.Find.Replacement.Text = drs(h)("政治面貌")

    App.Selection.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll)

    App.Selection.Find.ClearFormatting()

    App.Selection.Find.Text = "[单位" & h+1 & "]"

    App.Selection.Find.Replacement.ClearFormatting()

    App.Selection.Find.Replacement.Text = drs(h)("工作单位及职务")

    App.Selection.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll)

    'If h = 6 Then

    'Exit For

    'End If

Next


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2014/9/18 11:49:00 [只看该作者]

If Tb.Rows.Count > 0 Then

    Dim Book As New XLS.Book(ProjectPath & "Attachments\Word任免审批表数据源.xls")

    Dim fl As String = ProjectPath & "Reports\Word任免审批表数据源.xls"

    Book.Build() '生成细节区

    Book.Save(fl) '保存工作簿

End If

 

'以下代码通过邮件合并方式合并简历,主要是因为有些人的简历超过255

nDoc.Activate()

nDoc.MailMerge.OpenDataSource(Name:= ProjectPath & "Reports\Word任免审批表数据源.xls",SQLStatement:="SELECT * FROM `干部信息$`")   '链接数据源

App.Documents.Open(ProjectPath & "Reports\" & FileName)   '再次打开Word模版

nDoc.MailMerge.Execute()

nDoc.Close(False)

'以上代码主要用于合成简历


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2014/9/18 11:49:00 [只看该作者]

以上是我处理的办法,请大家指点,主要是红色代码部分

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2014/9/18 11:50:00 [只看该作者]

rng.Find.ClearFormatting()

If rng.Find.Execute("[照片]") Then

    rng.Select()

    If FileSys.FileExists(ProjectPath & "Attachments\照片\" & cr("照片")) Then

        App.Selection.InlineShapes.AddPicture(ProjectPath & "Attachments\照片\" & cr("照片"))

    End If

    rng = App.Documents(FileName).Range

    rng.Select()

End If


这里照片的大小如何控制,请赐教


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


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

以下是引用cxabc123在2014-9-18 11:49:00的发言:
以上是我处理的办法,请大家指点,主要是红色代码部分

 

你这样控制了还有什么问题?肯定能按照你的顺序替换的啊。

 

不要只上传代码,做个简单的例子发上来


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2014/9/18 11:54:00 [只看该作者]

具体代码如何写

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


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

以下是引用cxabc123在2014-9-18 11:54:00的发言:
具体代码如何写

 

无语,你不是写了么?你实在不会做,就请做一个简单的例子发上来


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2014/9/18 11:57:00 [只看该作者]

是控制了,但是软件做好了,要交付使用后其他人也可以根据需要制作报表,对不懂的人来说又做不到

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