Пример #1
0
        public List <string> ResultList()
        {
            List <string> list = new List <string>();

            foreach (var dNode in _listFlowNode)
            {
                if (dNode.Kind != NodeKinds.Distribute)
                {
                    continue;
                }

                double result = 0;
                string rltStr = "";

                foreach (var node in dNode.ListFlowNode)
                {
                    string subStr = "";
                    double subRst = 0;

                    if (node.Kind == NodeKinds.ConstantPayload)
                    {
                        ConstantPayloadNode cpn = (ConstantPayloadNode)node.SubControl;

                        double constant = Convert.ToDouble(cpn.Constant());
                        double para     = Convert.ToDouble(cpn.Parameter());
                        subRst = constant * para;
                        subStr = cpn.Constant() + "X" + cpn.Parameter();
                    }
                    else if (node.Kind == NodeKinds.FlexiblePaylaod)
                    {
                        FlexiblePayloadNode fpn = (FlexiblePayloadNode)node.SubControl;

                        double constant = Convert.ToDouble(fpn.Constant());
                        double para     = Convert.ToDouble(fpn.Parameter());
                        double para2    = Convert.ToDouble(fpn.Parameter2());

                        subRst = constant * para * para2;
                        subStr = fpn.Constant() + "X" + fpn.Parameter() + "X" + fpn.Parameter2();
                    }

                    result += subRst;
                    if (rltStr == "")
                    {
                        rltStr = subStr;
                    }
                    else
                    {
                        rltStr = rltStr + "+" + subStr;
                    }
                }

                rltStr = rltStr + "=" + result.ToString();

                DistributeNode dn = (DistributeNode)dNode.SubControl;

                string coeAStr = dn.Coefficient();
                double rstA    = result * Convert.ToDouble(coeAStr);
                string strA    = "A " + result.ToString() + "X" + coeAStr + "= " + "" + rstA.ToString();

                string coeBStr = dn.Coefficient2();
                double rstB    = result * Convert.ToDouble(coeBStr);
                string strB    = "B " + result.ToString() + "X" + coeBStr + "= " + "" + rstB.ToString();

                string coeCStr = dn.Coefficient3();
                double rstC    = result * Convert.ToDouble(coeCStr);
                string strC    = "C " + result.ToString() + "X" + coeCStr + "= " + "" + rstC.ToString();

                list.Add(rltStr);
                list.Add(strA);
                list.Add(strB);
                list.Add(strC);
            }

            _result = list[0];
            _a      = list[1];
            _b      = list[2];
            _c      = list[3];

            return(list);
        }