Пример #1
0
        }     //  end GetCurrentGroup

        private void LoadStandTable(TreeCalculatedValuesDO jsd, List <StandTables> listToLoad,
                                    List <LCDDO> justGroups, int classInterval, int whichColumn)
        {
            //  Which row?
            nthRow = FindTreeDIBindex(listToLoad, jsd.Tree.DBH, classInterval);

            //string currMeth = Utilities.MethodLookup(justGroups[whichColumn].Stratum);
            string currMeth = Utilities.MethodLookup(jsd.Tree.Stratum.Code);

            //  Sum up appropriate value and products
            //  first sum up primary product then check whatProduct to add in secondary
            switch (whatValue)
            {
            case "GBDFT":
                LoadProperColumn(listToLoad, jsd.GrossBDFTPP * currEF * strAcres, whichColumn);
                break;

            case "NBDFT":
                LoadProperColumn(listToLoad, jsd.NetBDFTPP * currEF * strAcres, whichColumn);
                break;

            case "GCUFT":
                LoadProperColumn(listToLoad, jsd.GrossCUFTPP * currEF * strAcres, whichColumn);
                break;

            case "NCUFT":
                LoadProperColumn(listToLoad, jsd.NetCUFTPP * currEF * strAcres, whichColumn);
                break;

            case "TREES":
                //  need to check for 3P and use tally trees instead
                if (currMeth != "3P")
                {
                    LoadProperColumn(listToLoad, currEF * strAcres, whichColumn);
                }
                else if (currMeth == "3P" || currMeth == "S3P")
                {
                    if (justGroups[whichColumn].SumExpanFactor > 0)
                    {
                        if (jsd.Tree.STM == "Y")
                        {
                            LoadProperColumn(listToLoad, jsd.Tree.ExpansionFactor, whichColumn);
                        }
                        else
                        {
                            List <LCDDO> allGroups = Global.BL.getLCD().Where(
                                l => l.Stratum == jsd.Tree.Stratum.Code &&
                                l.SampleGroup == jsd.Tree.SampleGroup.Code &&
                                l.Species == jsd.Tree.Species).ToList();

                            double allTallied  = allGroups.Sum(ag => ag.TalliedTrees);
                            double allExpanFac = allGroups.Sum(ag => ag.SumExpanFactor);
                            double calcValue   = allTallied * jsd.Tree.ExpansionFactor / allExpanFac;
                            LoadProperColumn(listToLoad, calcValue, whichColumn);
                        } //  endif
                    }
                }         //  endif
                break;
            }             //  end switch
            //  secondary
            if (whatProduct == "BOTH")
            {
                switch (whatValue)
                {
                case "GBDFT":
                    LoadProperColumn(listToLoad, jsd.GrossBDFTSP * currEF * strAcres, whichColumn);
                    break;

                case "NBDFT":
                    LoadProperColumn(listToLoad, jsd.NetBDFTSP * currEF * strAcres, whichColumn);
                    break;

                case "GCUFT":
                    LoadProperColumn(listToLoad, jsd.GrossCUFTSP * currEF * strAcres, whichColumn);
                    break;

                case "NCUFT":
                    LoadProperColumn(listToLoad, jsd.NetCUFTSP * currEF * strAcres, whichColumn);
                    break;
                } //  switch
            }     //  endif what product
            return;
        }         //  end LoadStandTable
Пример #2
0
        }   //  end buildPrintArray

        public static List <string> buildPrintArray(TreeCalculatedValuesDO tcv, string currUOM, ref int firstLine)
        {
            //  currently for VSM4 (CP4) report only
            var prtArray = new List <string>();

            prtArray.Add("");
            if (firstLine == 0)
            {
                prtArray.Add(tcv.Tree.Stratum.Code.PadLeft(2, ' '));
                prtArray.Add(tcv.Tree.SampleGroup.Code.PadLeft(2, ' '));
                firstLine = 1;
            }
            else
            {
                prtArray.Add("  ");
                prtArray.Add("  ");
            }   //  endif firstLine

            prtArray.Add(tcv.Tree.CuttingUnit.Code.PadLeft(3, ' '));
            if (tcv.Tree != null && tcv.Tree.Plot != null)
            {
                prtArray.Add(tcv.Tree.Plot.PlotNumber.ToString().PadLeft(4, ' '));
            }
            else
            {
                prtArray.Add("    ");
            }
            prtArray.Add(tcv.Tree.TreeNumber.ToString().PadLeft(4, ' '));
            prtArray.Add(tcv.Tree.Species.PadRight(6, ' '));
            prtArray.Add(String.Format("{0,5:F1}", tcv.Tree.DBH).PadLeft(5, ' '));

            //  volumes used depend on current UOM
            double currVolume = 0;

            switch (currUOM)
            {
            case "03":
                prtArray.Add(String.Format("{0,7:F1}", tcv.GrossCUFTPP));
                prtArray.Add(String.Format("{0,7:F1}", tcv.NetCUFTPP));
                currVolume = tcv.NetCUFTPP;
                break;

            case "01":
                prtArray.Add(String.Format("{0,7:F1}", tcv.GrossBDFTPP));
                prtArray.Add(String.Format("{0,7:F1}", tcv.NetBDFTPP));
                currVolume = tcv.NetBDFTPP;
                break;

            case "05":
                prtArray.Add(String.Format("{0,7:F1}", tcv.BiomassMainStemPrimary));
                prtArray.Add(String.Format("{0,7:F1}", tcv.BiomassMainStemPrimary));
                currVolume = tcv.BiomassMainStemPrimary;
                break;

            case "02":
                prtArray.Add(String.Format("{0,7:F1}", tcv.CordsPP));
                prtArray.Add(String.Format("{0,7:F1}", tcv.CordsPP));
                currVolume = tcv.CordsPP;
                break;
            }   //  end switch on UOM

            prtArray.Add(String.Format("{0,8:F2}", tcv.Tree.ExpansionFactor));
            prtArray.Add(tcv.Tree.KPI.ToString().PadLeft(5, ' '));
            //  April 2017 --  separate KPI from count table since it includes measured KPI
            prtArray.Add("     ");
            prtArray.Add(tcv.Tree.TreeCount.ToString().PadLeft(6, ' '));

            //  calculate ratio
            if (tcv.Tree.KPI > 0)
            {
                prtArray.Add(String.Format("{0,7:F3}", (currVolume / tcv.Tree.KPI)));
            }
            else
            {
                prtArray.Add("       ");
            }
            //  and finally marker's initials
            if (tcv.Tree != null && tcv.Tree.Initials != null)
            {
                prtArray.Add(tcv.Tree.Initials.PadRight(3, ' '));
            }
            else
            {
                prtArray.Add("   ");
            }

            return(prtArray);
        }   //  end buildPrintArray