Foxtable(狐表)用户栏目专家坐堂 → [求助]专业报表问题?


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

主题:[求助]专业报表问题?

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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
[求助]专业报表问题?  发帖心情 Post By:2018/4/1 1:08:00 [显示全部帖子]

这是目前报表代码:

Dim Doc As New PrintDoc  '定义一个报表对象
Dim rt As  prt.RenderText   '定义一个文本对象
Dim rm As New  prt.RenderParagraph   '定义一个复杂图文对象
Dim f As New Font(rm.Style.Font, FontStyle.Bold)   '定义一个加粗的字体
rm.Content.AddText("姓名:         认证年度:       认证时段:       联系电话: ", f ,Color.Red)   '设置字体加粗,红色
rm.Width = "100%Parent"   '设置图片尺寸为容器(页面)尺寸
rm.Height = "100%Parent"
rm.Content.AddImage(getimage("微信图片_20180305095112.jpg"))   '设置图片
rm.Style.ImageAlign.KeepAspectRatio = True   '拉伸图片时,保持原有比例
rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center   '图片居中显示
Doc.Body.Children.Add(rm)  '将图片对象加入到<主休(Body)区>报表
rt = New prt.RenderText     '设置文本对象的内容
rt.Text = "第[PageNo]页,共[PageCount]页"   '设置文本内容
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Right   '设置水平靠右对齐
rt.Style.Borders.Bottom = New prt.LineDef(0.3,Color.Green)   '设置底边框
rt.Style.Padding.Bottom = 0.5   '底端内容缩进0.5毫米
rt.Style.FontSize = 11  '设置字体大小为11磅
Doc.PageFooter = rt   '设置作为页脚使用
Doc.Preview()   '预览

 

 

需要解决的问题:我有数据表"退休认证资料",包含[姓名],[认证年度],[认证时段],[认证资料]等数据列,其中[认证资料]列为图片型.我应该如何修改代码将该数据表的相关内容引用到上面的代码中?求解!!!


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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/4/1 22:16:00 [显示全部帖子]

以下是引用有点甜在2018/4/1 17:26:00的发言:

如果要打印当前选中的行,如这样写代码

 

Dim r As Row = Tables("退休认证资料").Current

rm.Content.AddImage(getimage(projectPath & "attachments/" r("认证资料")))   '设置图片

首先感谢你的帮助!其次代码有点小问题,不过自己解决了.

这是自己修改过的代码:

Dim Doc As New PrintDoc  '定义一个报表对象  doc
Dim rt As  prt.RenderText   '定义一个文本对象  rt
Dim rm As New  prt.RenderParagraph   '定义一个复杂图文对象  rm
Dim f As New Font(rm.Style.Font, FontStyle.Bold)   '定义一个加粗的字体 f
Dim r As Row = Tables("退休认证资料").Current   '定义当前行为  r
rm.Content.AddText("姓名:         认证年度:       认证时段:       联系电话: ", f ,Color.Red)   '设置字体加粗,红色
rm.Width = "100%Parent"   '设置图片宽度尺寸
rm.Height = "100%Parent"   '设置图片高度尺寸
rm.Content.AddImage(getimage(ProjectPath & "attachments/" & r("认证资料")))   '设置图片
rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center      '图片居中显示
rm.Style.Borders.All = New prt.LineDef(1,Color.Red)   '设置边框
rm.Style.ImageAlign.StretchHorz = True   '允许拉伸
rm.Style.ImageAlign.StretchVert = True   '允许拉伸'
rm.Style.Spacing.Bottom =5  '设置下一张图片相邻下间距
Doc.Body.Children.Add(rm)  '将图片对象加入到<主休(Body)区>报表
rt = New prt.RenderText     '设置文本对象的内容
rt.Text = "第[PageNo]页,共[PageCount]页"   '设置文本内容
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Right   '设置水平靠右对齐
rt.Style.Borders.Bottom = New prt.LineDef(0.3,Color.Green)   '设置底边框
rt.Style.Padding.Bottom = 0.5   '底端内容缩进0.5毫米
rt.Style.FontSize = 11  '设置字体大小为11磅
Doc.PageFooter = rt   '设置作为页脚使用
Doc.Preview()   '预览

 

 

可是图片居中的代码似乎没有作用了.求解????


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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/4/2 23:59:00 [显示全部帖子]

感谢你的帮助!目前就一个问题没有解决了:如何才能一键打印全部符合条件的行?????
这是Excel报表的条件代码:
Dim nd As String = e.Form.Controls("ComboBox1").Text
Dim sd As String = e.Form.Controls("ComboBox2").Text
Dim str As String = ""
str & = DataTables("退休认证资料").GetComboListString("公民身份号码", "认证年度 = '" & nd & "' Or 认证时段 = '" & sd & "'").replace("|", "','")
Tables("退休生存人员").filter = "公民身份号码 In ('" & str.trim(",") & "')"

目前专业报表代码是:
Dim Doc As New  PrintDoc
Dim rm As new  prt.RenderImage
Dim rt As prt.RenderText
Dim ry As prt.RenderText
Dim r As Row = Tables("认证资料").Current
rm.Width = "100%Parent"
rm.Height = "100%Parent"
rm.image = getimage(ProjectPath & "attachments/" & r("认证照片"))
rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center
rm.Style.Borders.All = new prt.LineDef(0.3,Color.red)
rm.Style.Spacing.Bottom = 8
Doc.Body.Children.Add(rm)

rt = new prt.RenderText
rt.text = "涟源市杨市镇中心卫生院退休职工生存认证照片资料"
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Style.Fontsize = 16
Doc.PageHeader = rt

ry = new prt.RenderText
ry.text = "第[pageno]页,共[pagecount]页"
ry.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ry.Style.Fontsize = 16
Doc.PageFooter = ry
Doc.Preview()

请老师们帮助!!
[此贴子已经被作者于2018/4/3 0:04:14编辑过]

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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/4/8 7:32:00 [显示全部帖子]

以下是引用有点甜在2018/4/3 9:13:00的发言:

Dim nd As String = e.Form.Controls("ComboBox1").Text
Dim sd As String = e.Form.Controls("ComboBox2").Text

Dim Doc As New  PrintDoc
Dim rm As new  prt.RenderImage
Dim rt As prt.RenderText
Dim ry As prt.RenderText
For Each r As DataRow In DataTables("退休认证资料").Select("认证年度 = '" & nd & "' Or 认证时段 = '" & sd & "'")
    rm.Width = "100%Parent"
    rm.Height = "100%Parent"
    rm.image = getimage(ProjectPath & "attachments/" & r("认证照片"))
    rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center
    rm.Style.Borders.All = new prt.LineDef(0.3,Color.red)
    rm.Style.Spacing.Bottom = 8
    Doc.Body.Children.Add(rm)
next

rt = new prt.RenderText
rt.text = "涟源市杨市镇中心卫生院退休职工生存认证照片资料"
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Style.Fontsize = 16
Doc.PageHeader = rt


ry = new prt.RenderText
ry.text = "第[pageno]页,共[pagecount]页"
ry.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ry.Style.Fontsize = 16
Doc.PageFooter = ry
Doc.Preview()

感谢帮助,录入后提示如下:.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2018.3.9.1
错误所在事件:窗口,认证表打印,Button3,Click
详细错误信息:
添加的项目已经有所有者了。


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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/4/8 17:47:00 [显示全部帖子]

感谢:有点甜老师的帮助!

还是专业报表的问题:1、为什么我要在单位名称字符后加姓名。单条打印不报错而条件打印时会报错呢?

                           2、单条信息报表打印时,为什么不是父表关联表的关联指定行呢?

这是单条打印代码:(可执行)

Dim Doc As New  PrintDoc
Dim rm As new  prt.RenderImage
Dim rt As prt.RenderText
Dim ry As prt.RenderText
Dim r As Row = Tables("退休认证资料").Current
rm.Width = "100%Parent"
rm.Height = "100%Parent"
rm.image = getimage(ProjectPath & "attachments/" & r ("认证资料"))
rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center
rm.Style.Borders.All = new prt.LineDef(0.3,Color.red)
rm.Style.Spacing.Bottom = 8
Doc.Body.Children.Add(rm)
rt = new prt.RenderText
rt.text = "涟源市杨市镇中心卫生院退休职工生存认证照片资料__" & r("姓名")
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Style.Fontsize = 16
Doc.PageHeader = rt
ry = new prt.RenderText
ry.text = "第[pageno]页,共[pagecount]页"
ry.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ry.Style.Fontsize = 16
Doc.PageFooter = ry
Doc.Preview()

 

 

这是条件打印代码:(执行报错)

Dim nd As String = e.Form.Controls("ComboBox1").Text
Dim sd As String = e.Form.Controls("ComboBox2").Text
Dim Doc As New  PrintDoc
Dim rm As new  prt.RenderImage
Dim rt As prt.RenderText
Dim ry As prt.RenderText
For Each r As DataRow In DataTables("退休认证资料").Select("认证年度 = '" & nd & "' or 认证时段 = '" & sd & "'")
    rm = new  prt.RenderImage
    rm.Width = "100%Parent"
    rm.Height = "100%Parent"
    rm.image = getimage(ProjectPath & "attachments/" & r("认证资料"))
    rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center
    rm.Style.Borders.All = new prt.LineDef(0.3,Color.red)
    rm.Style.Spacing.Bottom = 8
    Doc.Body.Children.Add(rm)
Next
rt = new prt.RenderText
rt.text = "涟源市杨市镇中心卫生院退休职工生存认证照片资料__" & r("姓名")
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Style.Fontsize = 16
Doc.PageHeader = rt

ry = new prt.RenderText
ry.text = "第[pageno]页,共[pagecount]页"
ry.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ry.Style.Fontsize = 16
Doc.PageFooter = ry
Doc.Preview()


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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/4/9 9:07:00 [显示全部帖子]

以下是引用有点蓝在2018/4/8 18:11:00的发言:

Dim nd As String = e.Form.Controls("ComboBox1").Text
Dim sd As String = e.Form.Controls("ComboBox2").Text
Dim Doc As New  PrintDoc
Dim rm As new  prt.RenderImage
Dim rt As prt.RenderText
Dim ry As prt.RenderText
For Each r As DataRow In DataTables("退休认证资料").Select("认证年度 = '" & nd & "' or 认证时段 = '" & sd & "'")
    rm = new  prt.RenderImage
    rm.Width = "100%Parent"
    rm.Height = "100%Parent"
    rm.image = getimage(ProjectPath & "attachments/" & r("认证资料"))
    rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center
    rm.Style.Borders.All = new prt.LineDef(0.3,Color.red)
    rm.Style.Spacing.Bottom = 8
    Doc.Body.Children.Add(rm)
Next
rt = new prt.RenderText

r = Tables("退休认证资料").Current
rt.text = "涟源市杨市镇中心卫生院退休职工生存认证照片资料__" & r("姓名")
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Style.Fontsize = 16
Doc.PageHeader = rt

ry = new prt.RenderText
ry.text = "第[pageno]页,共[pagecount]页"
ry.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ry.Style.Fontsize = 16
Doc.PageFooter = ry
Doc.Preview()

有点甜老师:你好!加上这句代码后,提示上下文不能使用哦!r = Tables("退休认证资料").Current  

我想是不是因为在下方这个 R 要不要重新定义呢?


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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/4/9 10:54:00 [显示全部帖子]

以下是引用有点蓝在2018/4/8 18:11:00的发言:

Dim nd As String = e.Form.Controls("ComboBox1").Text
Dim sd As String = e.Form.Controls("ComboBox2").Text
Dim Doc As New  PrintDoc
Dim rm As new  prt.RenderImage
Dim rt As prt.RenderText
Dim ry As prt.RenderText
For Each r As DataRow In DataTables("退休认证资料").Select("认证年度 = '" & nd & "' or 认证时段 = '" & sd & "'")
    rm = new  prt.RenderImage
    rm.Width = "100%Parent"
    rm.Height = "100%Parent"
    rm.image = getimage(ProjectPath & "attachments/" & r("认证资料"))
    rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center
    rm.Style.Borders.All = new prt.LineDef(0.3,Color.red)
    rm.Style.Spacing.Bottom = 8
    Doc.Body.Children.Add(rm)
Next
rt = new prt.RenderText

r = Tables("退休认证资料").Current
rt.text = "涟源市杨市镇中心卫生院退休职工生存认证照片资料__" & r("姓名")
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Style.Fontsize = 16
Doc.PageHeader = rt

ry = new prt.RenderText
ry.text = "第[pageno]页,共[pagecount]页"
ry.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ry.Style.Fontsize = 16
Doc.PageFooter = ry
Doc.Preview()

有点蓝老师,感谢你的帮助!但加入该代码后执行不了。报错,提示上下文不能访问。“R”是“Private”


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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/4/9 12:08:00 [显示全部帖子]

以下是引用有点甜在2018/4/9 11:07:00的发言:
改成12楼代码测试。

首先谢谢有点甜老师!

可是这样的结果是图片与文字分开了。图片一张文字一张了。

 


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

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

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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/4/10 9:40:00 [显示全部帖子]

以下是引用有点甜在2018/4/9 12:20:00的发言:

    rm.Width = "100%Parent"
    rm.Height = "100%Parent"

 

改一下,可以改成,如

 

    rm.Width = "100%Parent"
    rm.Height = "80%Parent"

感谢有点甜老师,这样修改确实合到一起了,可是问题来了,它全部成了页脚,页眉也到下面去了。

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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/4/13 16:56:00 [显示全部帖子]

为什么不能一次性生成符合要求的图片,每次只能生成一张图片?需关闭一张后才会显示下一张图片?

 

这是当前代码:

Dim nd As String = e.Form.Controls("ComboBox1").Text    '定义年度
Dim sd As String = e.Form.Controls("ComboBox2").Text    '定义时段
Dim Doc As New  PrintDoc          '定义一个报表对象
Dim rt As prt.RenderText          '定义一个文本对象
Dim rm As new  prt.RenderImage       '定义一个图片对象
For Each r As DataRow In DataTables("退休认证资料").Select("认证年度 = '" & nd & "' or 认证时段 = '" & sd & "'")              '条件定义图片
    rt = new prt.RenderText           '确认定义一个文本对象
    rt.text = "生存认证资料_" &"姓名:" & r("姓名") & "    认证年度:" & r("认证年度") & "    认证时段:" & r("认证时段")   '设置文本对象内容
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center                   '设置文本对象水平居中
    rt.Style.Fontsize = 16        '设置字体大小为16号
    Doc.PageHeader = rt    '作为页眉使用
    rm = new prt.RenderImage              '确认定义一个图片对象
    rm.Width = "100%Parent"         '设置图片尺寸为容器(页面)尺寸
    rm.Height = "100%Parent"
    rm.image = getimage(ProjectPath & "attachments/" & r("认证资料"))   '设置图片
    rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center                '图片居中显示
    rm.Style.Borders.All = new prt.LineDef(0.3,Color.red)           '设置红色边框线
    rm.Style.Spacing.Bottom = 8         '设置图片垂直对齐位置为靠底8mm
    Doc.Body.Children.Add(rm)      '将图片对象加入报表
    Doc.Preview()        '预览报表内容
Next

 

这是生成的符合要求的图片:

 

 


图片点击可在新窗口打开查看此主题相关图片如下:无标题100.jpg
图片点击可在新窗口打开查看

 

请老师们帮忙看看,需要如何修改才能一次性生成全部呢?


 


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