我们正在使用Reportbuilder for Delphi,我有一份报告,由几个较小的子报告组成,设置为打印横向。有没有办法让第一个子报表以纵向打印,而其他子报表打印出来?
我尝试在打印之前在TppReport PrinterSetup对象上设置方向,这似乎最初起作用,但是这会导致打印报告并将其导出为PDF时出现问题。
谢谢!
答案 0 :(得分:4)
是的,这是可能的。在main的报表设计中,取消选中子报表的ParentPrinterSetup
。
在子报告标签中为子报告在poLandscape
中设置poPortrait
或PrinterSetup
。
使用ReportBuilder 12.03,Delphi XE和Foxit 4.1.1进行测试
修改1 还使用D2007和ReportBuilder 10.07进行了测试。否,打印到pdf时出现问题,第一个子报表为纵向,第二个子报表为横向。
这是包含我测试过的报告定义的dfm。
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 176
ClientWidth = 377
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object ppReport1: TppReport
PrinterSetup.BinName = 'Default'
PrinterSetup.DocumentName = 'Report'
PrinterSetup.PaperName = 'A4'
PrinterSetup.PrinterName = 'Default'
PrinterSetup.mmMarginBottom = 6350
PrinterSetup.mmMarginLeft = 6350
PrinterSetup.mmMarginRight = 6350
PrinterSetup.mmMarginTop = 6350
PrinterSetup.mmPaperHeight = 297000
PrinterSetup.mmPaperWidth = 210000
PrinterSetup.PaperSize = 9
AllowPrintToFile = True
DeviceType = 'Screen'
EmailSettings.ReportFormat = 'PDF'
OutlineSettings.CreateNode = True
OutlineSettings.CreatePageNodes = True
OutlineSettings.Enabled = True
OutlineSettings.Visible = True
TextSearchSettings.DefaultString = '<FindText>'
TextSearchSettings.Enabled = True
Left = 112
Top = 32
Version = '10.07'
mmColumnWidth = 0
object ppDetailBand1: TppDetailBand
PrintHeight = phDynamic
mmBottomOffset = 0
mmHeight = 30692
mmPrintPosition = 0
object ppSubReport2: TppSubReport
UserName = 'SubReport2'
ExpandAll = False
NewPrintJob = False
OutlineSettings.CreateNode = True
ParentPrinterSetup = False
PrintBehavior = pbSection
TraverseAllData = False
mmHeight = 5027
mmLeft = 0
mmTop = 5292
mmWidth = 197300
BandType = 4
mmBottomOffset = 0
mmOverFlowOffset = 0
mmStopPosition = 0
object ppChildReport2: TppChildReport
PrinterSetup.BinName = 'Default'
PrinterSetup.DocumentName = 'Report'
PrinterSetup.PaperName = 'A4'
PrinterSetup.PrinterName = 'Default'
PrinterSetup.mmMarginBottom = 6350
PrinterSetup.mmMarginLeft = 6350
PrinterSetup.mmMarginRight = 6350
PrinterSetup.mmMarginTop = 6350
PrinterSetup.mmPaperHeight = 297000
PrinterSetup.mmPaperWidth = 210000
PrinterSetup.PaperSize = 9
Version = '10.07'
mmColumnWidth = 0
object ppDetailBand3: TppDetailBand
mmBottomOffset = 0
mmHeight = 13229
mmPrintPosition = 0
object ppLabel2: TppLabel
UserName = 'Label2'
Border.BorderPositions = []
Border.Color = clBlack
Border.Style = psSolid
Border.Visible = False
Caption = 'Label2'
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Name = 'Arial'
Font.Size = 12
Font.Style = []
Transparent = True
mmHeight = 4868
mmLeft = 10054
mmTop = 3440
mmWidth = 12785
BandType = 4
end
end
end
end
object ppSubReport1: TppSubReport
UserName = 'SubReport1'
ExpandAll = False
NewPrintJob = False
OutlineSettings.CreateNode = True
ParentPrinterSetup = False
PrintBehavior = pbSection
TraverseAllData = False
mmHeight = 5027
mmLeft = 0
mmTop = 18256
mmWidth = 197300
BandType = 4
mmBottomOffset = 0
mmOverFlowOffset = 0
mmStopPosition = 0
object ppChildReport1: TppChildReport
PrinterSetup.BinName = 'Default'
PrinterSetup.DocumentName = 'Report'
PrinterSetup.Orientation = poLandscape
PrinterSetup.PaperName = 'A4'
PrinterSetup.PrinterName = 'Default'
PrinterSetup.mmMarginBottom = 6350
PrinterSetup.mmMarginLeft = 6350
PrinterSetup.mmMarginRight = 6350
PrinterSetup.mmMarginTop = 6350
PrinterSetup.mmPaperHeight = 210000
PrinterSetup.mmPaperWidth = 297000
PrinterSetup.PaperSize = 9
Version = '10.07'
mmColumnWidth = 0
object ppDetailBand2: TppDetailBand
mmBottomOffset = 0
mmHeight = 13229
mmPrintPosition = 0
object ppLabel1: TppLabel
UserName = 'Label1'
Border.BorderPositions = []
Border.Color = clBlack
Border.Style = psSolid
Border.Visible = False
Caption = 'Label1'
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Name = 'Arial'
Font.Size = 12
Font.Style = []
Transparent = True
mmHeight = 4868
mmLeft = 11906
mmTop = 2646
mmWidth = 12785
BandType = 4
end
end
end
end
end
end
end