Как наследовать отчёт из кода?
Question: Как наследовать отчёт из кода?
Answer:
1. Создайте новый отчёт:
Report report = new Report();
2. Добавьте событие CustomLoadEventHandler для загрузки базового отчёта:
report.LoadBaseReport += new CustomLoadEventHandler(FReport_LoadBaseReport);
3.Загрузите наследуемый отчёт:
report.Load("InheritReport.frx");
4. Удалите CustomLoadEventHandler:
report.LoadBaseReport -= new CustomLoadEventHandler(FReport_LoadBaseReport);
5. Теперь Вы можете показать отчёт или открыть его в дизайнере. Он будет содержать как тот, что наследуется, так и тот, который наследует базовый отчёт:
report.Show();
Также нужно создать событие для загрузки базового отчёта:
1 2 3 4 5 6 |
private void FReport_LoadBaseReport(object sender, CustomLoadEventArgs e) { // e.FileName contains the name of base report. It may be the file name, or an ID in the database, // it depends on how you load the main report e.Report.Load("C:\\Users\\InheritReport\\bin\\Debug\\Title2.frx"); } |
И полный код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Report report = new Report(); report.LoadBaseReport += new CustomLoadEventHandler(FReport_LoadBaseReport); report.Load("InheritReport.frx"); report.LoadBaseReport -= new CustomLoadEventHandler(FReport_LoadBaseReport); report.Show(); } private void FReport_LoadBaseReport(object sender, CustomLoadEventArgs e) { // e.FileName contains the name of base report. It may be the file name, or an ID in the database, // it depends on how you load the main report e.Report.Load("C:\\Users\\InheritReport\\bin\\Debug\\Title2.frx"); } } |
Если Вы хотите загрузить отчёт из базы данных, замените метод Load() на LoadFromString().