Я хочу динамически установить формат даты поля типа даты с помощью моего C# кода.
Я должен был написать этот код для циклического просмотра полей, поиска нужного поля и установки нового формата даты, но это не сработало.
Я сделал это, но это не сработало:
CrystalDecisions.CrystalReports.Engine.ReportDocument rpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
rpt.Load("path to .rpt file");
CrystalDecisions.ReportAppServer.ReportDefModel.ReportObjects reportObjects =
rpt.ReportClientDocument.ReportDefController.ReportObjectController.GetReportObjectsByKind(CrReportObjectKindEnum.crReportObjectKindField);
foreach (CrystalDecisions.ReportAppServer.ReportDefModel.ReportObject reportObject in reportObjects)
{
if (reportObject != null && reportObject.Kind == CrReportObjectKindEnum.crReportObjectKindField)
{
ISCRFieldObject oldFieldObject = (ISCRFieldObject)reportObject;
CrystalDecisions.ReportAppServer.ReportDefModel.FieldFormat fieldFormat = new CrystalDecisions.ReportAppServer.ReportDefModel.FieldFormat();
if (oldFieldObject.FieldValueType == CrFieldValueTypeEnum.crFieldValueTypeDateField
|| oldFieldObject.FieldValueType == CrFieldValueTypeEnum.crFieldValueTypeDateTimeField)
{
fieldFormat.DateFormat.SystemDefaultType = CrDateSystemDefaultTypeEnum.crDateSystemDefaultTypeNotUsingDefaults;
fieldFormat.DateFormat.CalendarType = CrDateCalendarTypeEnum.crDateCalendarTypeGregorianCalendar;
fieldFormat.DateFormat.DateOrder = CrDateOrderEnum.crDateOrderDayMonthYear;
fieldFormat.DateFormat.EraType = CrDateEraTypeEnum.crDateEraTypeLongEra;
fieldFormat.DateFormat.DateFirstSeparator = "+";
fieldFormat.DateFormat.DateSecondSeparator = "=";
fieldFormat.DateFormat.DayFormat = CrDayFormatEnum.crDayFormatNumericDay;
fieldFormat.DateFormat.MonthFormat = CrMonthFormatEnum.crMonthFormatLeadingZeroNumericMonth;
fieldFormat.DateFormat.YearFormat = CrYearFormatEnum.crYearFormatLongYear;
oldFieldObject.FieldFormat.DateFormat = fieldFormat.DateFormat;
}
}
}
Что я делаю неправильно в этом