2015年9月28日 星期一

crystal report 動態產生文字標題欄位 TextObject

'準備一個報表樣本() : standard.rpt

        '載入報表樣本
        Dim crReport As ReportDocument = New CrystalDecisions.CrystalReports.Engine.ReportDocument
        Dim Path As String = Request.ServerVariables("APPL_PHYSICAL_PATH")
        crReport.Load(Path & "rpt\standard.rpt")
        Dim rasClientDocument As ClientDoc.ISCDReportClientDocument = crReport.ReportClientDocument
        '找到pagehead(頁首)區段
        Dim pageSection As CrystalDecisions.ReportAppServer.ReportDefModel.Section = rasClientDocument.ReportDefinition.PageHeaderArea.Sections(0)

        '在報表的pagehead(頁首)區段加入文字標題欄位 create TextObject
        Dim txtObject As CrystalDecisions.ReportAppServer.ReportDefModel.TextObject
        Dim txtObjectParagraph As ReportDefModel.Paragraph
        Dim txtObjectText As ReportDefModel.ParagraphTextElement

        '欄位的字型顏色定義
        Dim dFontColor As ReportDefModel.FontColor
        Dim dFont As ReportDefModel.Font
        dFont = New ReportDefModel.FontClass()
        dFont.Size = 11
        dFont.Name = "標楷體"
        dFontColor = New ReportDefModel.FontColorClass()
        dFontColor.Font = dFont

        txtObject = New CrystalDecisions.ReportAppServer.ReportDefModel.TextObject
        txtObject.Name = "text1"
        txtObject.Height = 285
        txtObject.Top = 1985
        txtObject.Left = begpx
        txtObject.Width = textbox1.Text.Trim.Length * 300  '變數 要加入的文字內容的寬度
        txtObject.Format.EnableCanGrow = True

        '處理Text objects中的文字內容
        txtObjectParagraph = New ReportDefModel.Paragraph
        txtObjectText = New ReportDefModel.ParagraphTextElement
        txtObjectText.Text = textbox1.Text.Trim '變數 要加入的文字內容
        txtObjectParagraph.ParagraphElements.Add(txtObjectText)
        txtObjectParagraph.FontColor = dFontColor
        txtObject.Paragraphs.Add(txtObjectParagraph)

        '加入Text objects
        rasClientDocument.ReportDefController.ReportObjectController.Add(txtObject, pageSection, 0)

沒有留言:

張貼留言