Exemple #1
0
        private void PrintSyuushiYosan(int currentYear, int lastYear, int hoseiKaisuu, int kaikeiKubun, DateTime?printDate)
        {
            string shisetsuMei = "";
            string houjinMei   = "";

            if (kaikeiKubun != -1 && kaikeiKubun != Context.KaikeiDatabase.MTKaikeiKubun.RootNodeId)
            {
                shisetsuMei = Context.KaikeiDatabase.MTKaikeiKubun.GetRowFromCache(kaikeiKubun).GetStr("name") as string;
            }

            houjinMei = Context.KaikeiDatabase.MTKaikeiKubun.GetRowFromCache(Context.KaikeiDatabase.MTKaikeiKubun.RootNodeId).GetStr("name") as string;

            var yosanTable = new models.query.YosanTable(Context.KaikeiDatabase, currentYear, lastYear, 0, hoseiKaisuu);

            yosanTable.Calc(withSyoukubun: true, withHojokamoku: false);
            var yobihiRow  = yosanTable.GetYobihiRow(kaikeiKubun);
            var zandakaRow = yosanTable.GetZenkimatsuZandakaRow(kaikeiKubun);

            var popup  = new views.popup.ReportPreviewPopup();
            var report = new views.reports.SyuushiYosanReport();

            report.OmitZeroRow = form.OmitZeroRow;
            report.SetDB(Context.KaikeiDatabase);
            report.SetHeader(currentYear, houjinMei, shisetsuMei, printDate, false, 0);
            report.SetFooter(yobihiRow.YosanHonnenDisplay, yobihiRow.YosanZennenDisplay, zandakaRow.YosanHonnenDisplay, zandakaRow.YosanZennenDisplay);
            report.DataSource = yosanTable.GetYosanList(kaikeiKubun);

            report.Run();
            popup.Document = report.Document;
            popup.ShowDialog();
        }
        public void Calc(models.db.KaikeiDatabase db, int currentYear, int lastYear, int hoseiKaisuu, int kaikeiKubun, bool withJisseki, bool withSyoukubun, bool withHojoKamoku)
        {
            YosanTable = new models.query.YosanTable(db, currentYear, lastYear, 0, hoseiKaisuu);
            YosanTable.Calc(withSyoukubun: withSyoukubun, withHojokamoku: withHojoKamoku);

            if (kaikeiKubun == -1)
            {
                kaikeiKubun = db.MTKaikeiKubun.RootNodeId;
            }

            KaikeiKubunList = new List <int>();
            KaikeiKubunList.Add(kaikeiKubun);

            ChildKaikeiKubunNameList = new List <string>();

            foreach (var row in db.MTKaikeiKubun.Select("where parent_id = " + kaikeiKubun + " order by kubun_code"))
            {
                int childKaikeiKubun = (int)row.GetLong("id", -1);
                KaikeiKubunList.Add(childKaikeiKubun);
                ChildKaikeiKubunNameList.Add(row.GetStr("name"));
            }

            YosanUchiwakeRowList = new List <YosanUchiwakeRow>();
            for (int colCt = 0; colCt < KaikeiKubunList.Count; colCt++)
            {
                var yosanList = YosanTable.GetYosanList(KaikeiKubunList[colCt]);
                KamokuKubunSummary kamokuKubunSummary = null;

                if (withJisseki)
                {
                    kamokuKubunSummary = new KamokuKubunSummary(db);
                    kamokuKubunSummary.Calc(helper.Helper.GetNenndoKisanbi(currentYear), helper.Helper.GetNenndoKimatsubi(currentYear), kaikeiKubun, addKurikoshi: false, addPairedShikinDenpyou: true);
                }

                for (int rowCt = 0; rowCt < yosanList.Count; rowCt++)
                {
                    if (YosanUchiwakeRowList.Count <= rowCt)
                    {
                        YosanUchiwakeRowList.Add(new YosanUchiwakeRow());
                    }
                    var row = YosanUchiwakeRowList[rowCt];
                    row.DaikubunId = yosanList[rowCt].DaikubunId;
                    row.KubunId    = yosanList[rowCt].KubunId;
                    row.DetailName = yosanList[rowCt].DetailName;// db.MTKamokuKubun.GetRowFromCache((int)yosanList[rowCt].DetailKubunId).GetStr("name");

                    int kamokuKubunId = (int)yosanList[rowCt].DetailKubunId;

                    long jisseki        = 0;
                    long jissekiDisplay = 0;

                    if (withJisseki)
                    {
                        jissekiDisplay = kamokuKubunSummary.SummaryItem(kamokuKubunId).GetTaisyaku(db);
                        if (yosanList[rowCt].DisplayOnly == false)
                        {
                            jisseki = jissekiDisplay;
                        }
                    }

                    switch (colCt)
                    {
                    case 0:
                        row.YosanSummaryDisplay   = yosanList[rowCt].YosanHonnenDisplay;
                        row.YosanSummary          = yosanList[rowCt].YosanHonnen;
                        row.JissekiSummaryDisplay = jissekiDisplay;
                        row.JissekiSummary        = jisseki;
                        row.SagakuSummaryDisplay  = row.YosanSummaryDisplay - row.JissekiSummaryDisplay;
                        row.SagakuSummary         = row.YosanSummary - row.JissekiSummary;
                        break;

                    case 1:
                        row.Yosan0Display   = yosanList[rowCt].YosanHonnenDisplay;
                        row.Yosan0          = yosanList[rowCt].YosanHonnen;
                        row.Jisseki0Display = jissekiDisplay;
                        row.Jisseki0        = jisseki;
                        row.Sagaku0Display  = row.Yosan0Display - row.Jisseki0Display;
                        row.Sagaku0         = row.Yosan0 - row.Jisseki0;
                        break;

                    case 2:
                        row.Yosan1Display   = yosanList[rowCt].YosanHonnenDisplay;
                        row.Yosan1          = yosanList[rowCt].YosanHonnen;
                        row.Jisseki1Display = jissekiDisplay;
                        row.Jisseki1        = jisseki;
                        row.Sagaku1Display  = row.Yosan1Display - row.Jisseki1Display;
                        row.Sagaku1         = row.Yosan1 - row.Jisseki1;
                        break;

                    case 3:
                        row.Yosan2Display   = yosanList[rowCt].YosanHonnenDisplay;
                        row.Yosan2          = yosanList[rowCt].YosanHonnen;
                        row.Jisseki2Display = jissekiDisplay;
                        row.Jisseki2        = jisseki;
                        row.Sagaku2Display  = row.Yosan2Display - row.Jisseki2Display;
                        row.Sagaku2         = row.Yosan2 - row.Jisseki2;
                        break;

                    case 4:
                        row.Yosan3Display   = yosanList[rowCt].YosanHonnenDisplay;
                        row.Yosan3          = yosanList[rowCt].YosanHonnen;
                        row.Jisseki3Display = jissekiDisplay;
                        row.Jisseki3        = jisseki;
                        row.Sagaku3Display  = row.Yosan3Display - row.Jisseki3Display;
                        row.Sagaku3         = row.Yosan3 - row.Jisseki3;
                        break;

                    case 5:
                        row.Yosan4Display   = yosanList[rowCt].YosanHonnenDisplay;
                        row.Yosan4          = yosanList[rowCt].YosanHonnen;
                        row.Jisseki4Display = jissekiDisplay;
                        row.Jisseki4        = jisseki;
                        row.Sagaku4Display  = row.Yosan4Display - row.Jisseki4Display;
                        row.Sagaku4         = row.Yosan4 - row.Jisseki4;
                        break;

                    case 6:
                        row.Yosan5Display   = yosanList[rowCt].YosanHonnenDisplay;
                        row.Yosan5          = yosanList[rowCt].YosanHonnen;
                        row.Jisseki5Display = jissekiDisplay;
                        row.Jisseki5        = jisseki;
                        row.Sagaku5Display  = row.Yosan5Display - row.Jisseki5Display;
                        row.Sagaku5         = row.Yosan5 - row.Jisseki5;
                        break;

                    case 7:
                        row.Yosan6Display   = yosanList[rowCt].YosanHonnenDisplay;
                        row.Yosan6          = yosanList[rowCt].YosanHonnen;
                        row.Jisseki6Display = jissekiDisplay;
                        row.Jisseki6        = jisseki;
                        row.Sagaku6Display  = row.Yosan6Display - row.Jisseki6Display;
                        row.Sagaku6         = row.Yosan6 - row.Jisseki6;
                        break;
                    }
                }
            }
        }