Symptom
How to cahnge the Chart Title text and and font at runtime in a .NET application
Environment
Crystal Reports 2008 Service Pack 2
Visual Studio .NET 2005
Visual Studio .NET 2008
Cause
API Functions did not exist previously
Entered as an Enhancement Request
Resolution
API's are now available:
using System.Drawing;
using CrystalDecisions.ReportAppServer.ClientDoc;
using CrystalDecisions.ReportAppServer.Controllers;
using CrystalDecisions.ReportAppServer.DataDefModel;
using ReportObjects = CrystalDecisions.ReportAppServer.ReportDefModel.ReportObjects;
using IChartObject = CrystalDecisions.ReportAppServer.ReportDefModel.ChartObject;
using IChartDefinition = CrystalDecisions.ReportAppServer.ReportDefModel.ChartDefinition;
using ChartObject = CrystalDecisions.ReportAppServer.ReportDefModel.ChartObjectClass;
using ChartStyle = CrystalDecisions.ReportAppServer.ReportDefModel.ChartStyleClass;
using ChartStyleType = CrystalDecisions.ReportAppServer.ReportDefModel.CrChartStyleTypeEnum;
using IChartTextOptions = CrystalDecisions.ReportAppServer.ReportDefModel.ChartTextOptions;
using IReportObject = CrystalDecisions.ReportAppServer.ReportDefModel.ReportObject;
using IFontColor = CrystalDecisions.ReportAppServer.ReportDefModel.FontColor;
using IChartStyle = CrystalDecisions.ReportAppServer.ReportDefModel.ISCRChartStyle;
using IFont = CrystalDecisions.ReportAppServer.ReportDefModel.Font;
namespace EROMTestApp
{
class Program
{
static void Main(string[] args)
{
ReportClientDocument rptClient = new ReportClientDocumentClass();
String rptName = "..\\..\\chart_jdbc.rpt";
object rptObject = (object)rptName;
rptClient.ReportAppServer = "inproc:multithreaded";
rptClient.Open(ref rptObject, 1);
if (rptClient != null)
{
Console.WriteLine("Report is opened");
ReportObjects chartObjs = rptClient.ReportDefController.QueryChartObjects();
IChartObject thechart = (IChartObject)chartObjs[0];
IChartObject thechart_new = (IChartObject)thechart.Clone(true);
IChartTextOptions textOpts = thechart_new.ChartStyle.TextOptions;
Console.WriteLine("textOpts.Title:" + textOpts.Title);
Console.WriteLine("textOpts.GroupTitle:" + textOpts.GroupTitle);
Console.WriteLine("textOpts.DataTitle:" + textOpts.DataTitle);
Console.WriteLine("textOpts.Subtitle:" + textOpts.Subtitle);
Console.WriteLine("textOpts.SeriesTitle:" + textOpts.SeriesTitle);
Console.WriteLine("textOpts.Footnote:" + textOpts.Footnote);
textOpts.Title = "Title update by jli";
textOpts.Subtitle = "Subtitle update by jli";
textOpts.DataTitle = "DataTitle update by jli";
textOpts.GroupTitle = "GroupTitle update by jli";
textOpts.SeriesTitle = "SeriesTitle update by jli";
textOpts.Footnote = "Footnote update by jli";
IFontColor fontColor = textOpts.GroupLabelFont;
IFont font = fontColor.Font;
font.Underline = true;
fontColor.Color = System.Convert.ToUInt32(ColorTranslator.ToWin32(System.Drawing.Color.Blue));
textOpts.GroupLabelFont=fontColor;
textOpts.DataLabelFont = fontColor;
textOpts.DataTitleFont = fontColor;
textOpts.FootnoteFont = fontColor;
textOpts.GroupTitleFont = fontColor;
textOpts.SeriesLabelFont = fontColor;
textOpts.SubtitleFont = fontColor;
textOpts.TitleFont = fontColor;
rptClient.ReportDefController.ModifyChartObject(thechart, thechart_new);
rptClient.Save();
// Close the report
rptClient.Close();
}
}
}
}
Keywords
Chart Title text, Chart Title Font , KBA , BI-DEV-NET , BI Software Development Kits (SDKs) - .NET or Other , How To