private void AddKessanShikinUchiwakeRepoert(DataDynamics.ActiveReports.ActiveReport parentReport)
        {
            models.query.ShikinSyuushiUchiwake uchiwake = new models.query.ShikinSyuushiUchiwake(Context.KaikeiDatabase);
            uchiwake.Calc(form.StartDate.Value, form.EndDate.Value, form.KaikeiKubun, -1, hideInnerKaikeiKubunKamoku: true, omitZeroRow: form.OmitZeroRow);

            if (uchiwake.NumCols <= 5 - uchiwake.NumStaticCols)
            {
                var report = new views.reports.ShikinSyuushiKessanUchiwakeCol5();
                AddKessanShikinUchiwakeReportSub(report, report.Engine, uchiwake, 0, uchiwake.NumCols - 1);
                parentReport.Document.Pages.AddRange(report.Document.Pages.GetRange(0, report.Document.Pages.Count));
            }
            else if (uchiwake.NumCols <= 10 - uchiwake.NumStaticCols)
            {
                var report = new views.reports.ShikinSyuushiKessanUchiwakeCol10();
                AddKessanShikinUchiwakeReportSub(report, report.Engine, uchiwake, 0, uchiwake.NumCols - 1);
                parentReport.Document.Pages.AddRange(report.Document.Pages.GetRange(0, report.Document.Pages.Count));
            }
            else
            {
                int startCol = 0;

                while (startCol <= uchiwake.NumCols - 1)
                {
                    int endCol = Math.Min(startCol + 7 - uchiwake.NumStaticCols - 1, uchiwake.NumCols - 1);
                    var report = new views.reports.ShikinSyuushiKessanUchiwakeCol7();
                    AddKessanShikinUchiwakeReportSub(report, report.Engine, uchiwake, startCol, endCol);
                    parentReport.Document.Pages.AddRange(report.Document.Pages.GetRange(0, report.Document.Pages.Count));

                    startCol = endCol + 1;
                }
            }
        }
        private void AddKessanShikinUchiwakeReportSub(DataDynamics.ActiveReports.ActiveReport report, views.reports.ShikinSyuushiKessanUchiwakeEngine engine, models.query.ShikinSyuushiUchiwake uchiwake, int startCol, int endCol)
        {
            engine.SetDB(Context.KaikeiDatabase);

            int rootKaikeiKubunId = Context.KaikeiDatabase.MTKaikeiKubun.RootNodeId;

            models.db.Row rootRow   = Context.KaikeiDatabase.MTKaikeiKubun.GetRowFromCache(rootKaikeiKubunId);
            string        houjinMei = rootRow.GetStr("name");
            string        title     = "【拠点区分資金収支明細書】";
            string        youshiki  = "別紙3(⑩)";

            if (form.KaikeiKubun == 1)
            {
                title    = "【資金収支内訳表】";
                youshiki = "第一号第二様式";
            }
            else if (form.KaikeiKubun == 2)
            {
                title    = "【事業区分資金収支内訳表】";
                youshiki = "第一号第三様式";
            }
            engine.SetHeader(form.StartDate.Value, form.EndDate.Value, houjinMei, uchiwake.GetColCaptions(startCol, endCol), title, youshiki);
            engine.SetFooter(
                uchiwake.GetSummaryRow(models.query.ShikinSyuushi.SummaryItem.ToukiShikin, startCol, endCol),
                uchiwake.GetSummaryRow(models.query.ShikinSyuushi.SummaryItem.ZenkiZandaka, startCol, endCol),
                uchiwake.GetSummaryRow(models.query.ShikinSyuushi.SummaryItem.ToukiZandaka, startCol, endCol));

            var source = uchiwake.GetRows(startCol, endCol);

            report.DataSource = source;
            report.Run();
        }