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


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

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

帅哥哟,离线,有人找我吗?
老鼠
  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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

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

 

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
老鼠
  3楼 | 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()   '预览

 

 

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


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


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

如果要打印标签,请用这种方式处理,如

 

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

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
老鼠
  5楼 | 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编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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()


 回到顶部
帅哥哟,离线,有人找我吗?
老鼠
  7楼 | 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
详细错误信息:
添加的项目已经有所有者了。


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


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

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


 回到顶部
帅哥哟,离线,有人找我吗?
老鼠
  9楼 | 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()


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


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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()


 回到顶部
总数 22 1 2 3 下一页