コード例 #1
0
ファイル: Report_Movement.cs プロジェクト: Camel-RD/Klons
        public void MakeSimpleReport()
        {
            ReportRows = new List <EventRepInfo>();
            var table_items = MyData.DataSetKlons.ITEMS;
            var drs_items   = table_items
                              .WhereNotDeleted()
                              .OrderBy(d => d.REG_NR)
                              .ThenBy(d => d.ID);

            int[] fieldsortorder = new[] { GroupOrderCat1, GroupOrderCatD,
                                           GroupOrderCatT, GroupOrderDep, GroupOrderPlace };
            int[] fieldsortorderA = new[] { 0, 1, 2, 3, 4 };

            var DT1x = DT1.FirstDayOfMonth().AddDays(-1);

            foreach (var dr_item in drs_items)
            {
                var it = new ItemInfo();
                it.SetFromRow(dr_item);
                if (it.Events.Count == 0)
                {
                    continue;
                }
                if (it.Events[0].Dt > DT2)
                {
                    continue;
                }
                if (it.Events.Count > 1)
                {
                    var ev = it.Events[it.Events.Count - 1];
                    if (ev.XEvent == EEvent.likvid && ev.Dt < DT1)
                    {
                        continue;
                    }
                }

                var rt = it.CheckItem();
                if (rt != "OK")
                {
                    continue;
                }
                var rev1 = new EventRepInfo()
                {
                    Dt             = DT1x,
                    LastInDay      = true,
                    XEvent         = EEvent.apr,
                    FieldSortOrder = fieldsortorder
                };
                var rev2 = new EventRepInfo()
                {
                    Dt             = DT2,
                    LastInDay      = true,
                    XEvent         = EEvent.apr,
                    FieldSortOrder = fieldsortorder
                };
                it.Events2 = new List <EventInfo>();
                it.Events2.Add(rev1);
                it.Events2.Add(rev2);

                rt = it.FullCalc();
                if (rt != "OK")
                {
                    continue;
                }

                rev2.IdIt  = dr_item.ID;
                rev2.RegNr = dr_item.REG_NR;
                rev2.Name  = dr_item.NAME;

                rev2.SetSFields();
                rev2.SetRFields();

                if (DoFilter)
                {
                    if (!FilterEvent(rev2))
                    {
                        continue;
                    }
                }

                rev2.ValueC = rev2.ValueNew + rev2.ValueAdd + rev2.ValueRevalue + rev2.ValueExclude;

                rev2.DeprecC = rev2.DeprecNew + rev2.DeprecAdd + rev2.DeprecRevalue +
                               +rev2.DeprecExclude + rev2.DeprecCalc;

                rev2.TaxValC = rev2.TaxValNewCalc + rev2.TaxValAddCalc - rev2.TaxValExcludeCalc;

                rev2.Value0         = rev2.Value1 - rev2.ValueC;
                rev2.Deprec0        = rev2.Deprec1 - rev2.DeprecC;
                rev2.ValueLeft0     = rev2.Value0 - rev2.Deprec0;
                rev2.ValueNew      += rev2.ValueAdd;
                rev2.ValueAdd       = 0.0M;
                rev2.DeprecRevalue += rev2.DeprecNew + rev2.DeprecAdd;
                rev2.DeprecNew      = 0.0M;
                rev2.DeprecAdd      = 0.0M;

                rev2.TaxValLeft0 = rev2.TaxValLeft1 - rev2.TaxValC + rev2.TaxDeprecCalc;

                rev2.FieldSortOrder = fieldsortorder;
                ReportRows.Add(rev2);
            }
            if (!DoSortByRegnr)
            {
                ReportRows.Sort();
            }
            var sum = SumTotals(ReportRows, -1);

            ReportRows.Add(sum);
        }