Click here to Skip to main content
15,890,438 members
Articles / Programming Languages / Visual Basic
Tip/Trick

Change Font & Size of Crystal Report Dynamically

Rate me:
Please Sign up or sign in to vote.
4.71/5 (7 votes)
2 Nov 2011CPOL 61.5K   11  
Change font & size of Crystal report dynamically


Introduction


This article describes how to change font and size of crystal report dynamically (runtime) in VB.NET 2005.

Using the Code


Open a new Windows application project using VB.NET and add a button, CrystalReportViewer from the Toolbox. Adding the control and dropping it on the form design it as shown in fig.

then add a SQL Database name as “Database1.mdf” create a table name as “Fonts” with 3 fields : FontName, Size, SrNo and set SrNo field value as 1


VB
Imports System.Data.SqlClient

Public Class Form1

    Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocument
    'path variable use for Get application running path
    Dim path As String = (Microsoft.VisualBasic.Left(Application.StartupPath, Len(Application.StartupPath) - 9))
    'connetiong string
    Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & path & "Database1.mdf;Integrated Security=True;User Instance=True")
    Dim cmd As SqlCommand

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        FontDialog1.ShowDialog()
        'Update query is fired 
        cmd = New SqlCommand("UPDATE Fonts SET FontName ='" & FontDialog1.Font.Name.ToString & "',Size = " & FontDialog1.Font.Size.ToString & " WHERE SrNo = 1", con)
        cmd.ExecuteNonQuery()
        'Function report call
        report()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        con.Open()
        'Function report call
        report()
    End Sub
    Sub report()
        On Error Resume Next
        Dim dset As New DataSet
        Dim adp As New SqlDataAdapter("Select * from Fonts", con)
        adp.Fill(dset, "Fonts")
        'path variable store a runnig application path"
        rpt.Load(path & "CrystalReport1.rpt")
        rpt.SetDataSource(dset)
        rpt.Refresh()
        CrystalReportViewer1.ReportSource = rpt
    End Sub

End Class

Create a crystal report and add field from Database FontName & Size then Add Formula Fields name as “font”.Edit the Formula Field and use html font tag set it attributes face & size save it

The HTML tag is used in crystal report to set a font



Drop the formula field on crystal report then right click on it: Format Object -> Paragraph -> text interpretation -> HTML text -> OK button.


Limitations


Some font are not supporting to Html tag ,font size will be set 1 to 7 only. This is a drawback.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
-- There are no messages in this forum --