#c# #crystal-reports
Вопрос:
Просто интересно, был ли у кого-нибудь пример рабочего кода (на c#) для экспорта отчета crystal в Excel из приложения .NET без верхних и нижних колонтитулов страницы отчета.
Я использую среду выполнения crystal reports v9.
Комментарии:
1. если вам нужен ответ, я потрачу щедрую награду…?
Ответ №1:
Для этого вам действительно нужно сделать это в Crystal Report. Моя рекомендация состоит в том, чтобы добавить в него параметр, а затем отредактировать формулы подавления верхнего и нижнего колонтитулов, чтобы проверить параметр. Вот как мы этого добились. Если есть способ сделать это из вашего кода, мне было бы также интересно узнать об этом.
Удачи!
Комментарии:
1. Нет необходимости добавлять параметр, вы можете программно подавить верхний и нижний колонтитулы перед экспортом.
2. Я знаю, что прошло много времени, но как ты предлагаешь это сделать? Я пытаюсь сделать именно это, но не могу понять, как перевести это в код…
3. @K09P Извините, я не мог вам сказать, прошло несколько лет с тех пор, как я касался Crystal Reports.
4. Я думал, что ты не сможешь, но попробовать стоило. На самом деле я в конечном итоге нашел другой способ сделать это. Но в любом случае спасибо 🙂
5. Нет необходимости в параметре, есть псевдофункция Номер страницы. Просто используйте «Номер страницы > 1» в качестве условия подавления заголовка.
Ответ №2:
Здесь мой метод расширения для ReportDocument для подавления всех верхних/нижних колонтитулов. Я использую его для экспорта в Excel.
/// <summary>
/// Clears header/footer.
/// </summary>
/// <param name="rpt">The reportdocument</param>
public static void ClearReportHeaderAndFooter(this ReportDocument rpt)
{
foreach (Section section in rpt.ReportDefinition.Sections)
{
if (section.Kind == AreaSectionKind.ReportHeader || section.Kind == AreaSectionKind.ReportFooter || section.Kind == AreaSectionKind.PageFooter || section.Kind == AreaSectionKind.PageHeader)
{
section.SectionFormat.EnableSuppress = true;
section.SectionFormat.BackgroundColor = Color.White;
foreach (var repO in section.ReportObjects)
{
if (repO is ReportObject)
{
var reportObject = repO as ReportObject;
reportObject.ObjectFormat.EnableSuppress = true;
reportObject.Border.BorderColor = Color.White;
}
}
}
}
}
Используйте его вот так:
myReportDocument.ClearReportHeaderAndFooter();