Exemple #1
0
        //────────────────────────────────────────

        protected override void Parse_ChildNodes(
            XmlElement cur_X,
            Configurationtree_Node cur_Cf,
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "Parse_ChildNodes", log_Reports);
            //
            //

            XmlNode err_Child_XNode;

            // <arg>要素のリスト
            XmlNodeList child_XNl = cur_X.ChildNodes;

            foreach (XmlNode child_XNode in child_XNl)
            {
                if (XmlNodeType.Element == child_XNode.NodeType)
                {
                    XmlElement xChild = (XmlElement)child_XNode;

                    if (NamesNode.S_ARG == xChild.Name)
                    {
                        //
                        // <arg>要素
                        XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(xChild.Name, log_Reports);
                        to.XmlToConfigurationtree(xChild, cur_Cf, memoryApplication, log_Reports);
                    }
                    else
                    {
                        // エラー。
                        err_Child_XNode = xChild;
                        goto gt_Error_UndefinedChild01;
                    }
                }
            }
            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_UndefinedChild01:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー386!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("<validator>要素に、<arg>要素以外の要素[");
                t.Append(err_Child_XNode.Name);
                t.Append("]が含まれていました。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Exemple #2
0
        //────────────────────────────────────────

        protected override void Parse_ChildNodes(
            XmlElement cur_X,
            Configurationtree_Node cur_Cf,
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "Parse_ChildNodes", log_Reports);
            //
            //

            XmlNode err_Chidl_XNode = null;

            //
            // validator要素のリスト
            //
            XmlNodeList child_XNl = cur_X.ChildNodes;

            foreach (XmlNode child_XNode in child_XNl)
            {
                err_Chidl_XNode = child_XNode;

                if (XmlNodeType.Element == child_XNode.NodeType)
                {
                    XmlElement xChild = (XmlElement)child_XNode;

                    if (NamesNode.S_VALIDATOR == xChild.Name)
                    {
                        //
                        // <validator>要素。
                        XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(NamesNode.S_VALIDATOR, log_Reports);
                        to.XmlToConfigurationtree(
                            xChild,
                            cur_Cf,
                            memoryApplication,
                            log_Reports
                            );
                    }
                    else if (NamesNode.S_F_LISTBOX_VALIDATION == xChild.Name)
                    {
                        //
                        // <f-listbox-validation>要素。
                        XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(NamesNode.S_F_LISTBOX_VALIDATION, log_Reports);
                        to.XmlToConfigurationtree(
                            xChild,
                            cur_Cf,
                            memoryApplication,
                            log_Reports
                            );
                    }
                    else
                    {
                        //
                        // エラー。
                        goto gt_Error_UndefinedChild03;
                    }
                }
            }
            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_UndefinedChild03:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー410!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("<" + NamesNode.S_CONTROL1 + ">要素に、<validator>、<f-list-box-validation>要素以外の要素[");
                t.Append(err_Chidl_XNode.Name);
                t.Append("]が含まれていました。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Exemple #3
0
        //────────────────────────────────────────

        protected override void Parse_ChildNodes(
            XmlElement cur_X,
            Configurationtree_Node cur_Cf,
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "Parse_ChildNodes", log_Reports);
            //
            //

            XmlElement err_XAEelem66 = null;

            // <a-empty-field>要素のリスト
            XmlNodeList child_XNl = cur_X.ChildNodes;

            foreach (XmlNode child_XNode in child_XNl)
            {
                if (XmlNodeType.Element == child_XNode.NodeType)
                {
                    XmlElement xChild = (XmlElement)child_XNode;
                    err_XAEelem66 = xChild;

                    string sName_Fnc = xChild.GetAttribute(PmNames.S_NAME.Name_Attribute);

                    if (NamesFnc.S_VLD_EMPTY_FIELD == sName_Fnc)
                    {
                        //
                        // <a-empty-field>要素
                        XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByFncName(sName_Fnc, log_Reports);
                        to.XmlToConfigurationtree(
                            xChild,
                            cur_Cf,
                            memoryApplication,
                            log_Reports
                            );
                    }
                    else
                    {
                        //
                        // エラー。
                        goto gt_Error_UndefinedChild13;
                    }
                }
            }
            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_UndefinedChild13:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー411!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("<f-all-true>要素に、<a-emtpy-field>要素以外の要素");
                t.Append(Environment.NewLine);
                t.Append("[");
                t.Append(err_XAEelem66.Name);
                t.Append("]が含まれていました。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Exemple #4
0
        //────────────────────────────────────────

        public override void XmlToConfigurationtree(
            XmlElement cur_X,                 //<key-event>
            Configurationtree_Node parent_Cf, //<control>
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "XmlToConfigurationtree", log_Reports);
            //
            //


            //
            //
            //
            // 自
            //
            //
            //
            Configurationtree_Node cur_Cf = this.CreateMyself(cur_X, parent_Cf, memoryApplication, log_Reports);


            //
            //
            //
            // 属性
            //
            //
            //
            this.Parse_SAttribute(cur_X, cur_Cf, memoryApplication, log_Reports);


            //
            // コントロールの、key-eventリストに、S_KeyEventを追加。
            //
            if (log_Reports.Successful)
            {
                XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(NamesNode.S_KEY_ACTION, log_Reports);

                //List<string> li = new List<string>();
                //li.Add(PmNames.TYPE.Name_Pm);
                //li.Add(PmNames.S_DESCRIPTION.Name_Attribute);
                //xToS.List_AttrName = li;

                //
                //
                // fncノードを列挙
                //
                XmlNodeList child_XNl = cur_X.ChildNodes;
                foreach (XmlNode xChild in child_XNl)
                {
                    if (XmlNodeType.Element == xChild.NodeType)
                    {
                        if (NamesNode.S_FNC == xChild.Name)
                        {
                            XmlElement xFnc = (XmlElement)xChild;

                            to.XmlToConfigurationtree(
                                xFnc,
                                cur_Cf,
                                memoryApplication,
                                log_Reports
                                );
                        }
                        else
                        {
                            //#連続エラー
                            {
                                Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl();
                                tmpl.SetParameter(1, xChild.Name, log_Reports);                                        //ノード名
                                tmpl.SetParameter(2, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports); //設定位置パンくずリスト

                                memoryApplication.CreateErrorReport("Er:8025;", tmpl, log_Reports);
                            }
                        }
                    }
                }
            }



            //
            //
            //
            // 親へ連結
            //
            //
            //
            if (log_Reports.Successful)
            {
                parent_Cf.List_Child.Add(cur_Cf, log_Reports);
            }



            //
            //
            //
            //
            log_Method.EndMethod(log_Reports);
        }
Exemple #5
0
        //────────────────────────────────────────

        public override void XmlToConfigurationtree(
            XmlElement cur_X,                 //<event>
            Configurationtree_Node parent_Cf, //<control>
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "XmlToConfigurationtree", log_Reports);
            //
            //


            //
            //
            //
            // 自
            //
            //
            //
            Configurationtree_Node cur_Cf = this.CreateMyself(cur_X, parent_Cf, memoryApplication, log_Reports);


            //
            //
            //
            // 属性
            //
            //
            //
            this.Parse_SAttribute(cur_X, cur_Cf, memoryApplication, log_Reports);



            //
            //
            //
            // 子
            //
            //
            //
            XmlElement err_XAction;
            Exception  err_Excp;

            if (log_Reports.Successful)
            {
                //
                //
                // actionノードを列挙
                //
                XmlNodeList child_XNl = cur_X.ChildNodes;
                foreach (XmlNode xChild in child_XNl)
                {
                    if (XmlNodeType.Element == xChild.NodeType)
                    {
                        XmlElement xAction = (XmlElement)xChild;

                        try
                        {
                            XmlToConfigurationtree_C15_Elm to = this.Dic_XmlToConfigurationtree[xChild.Name];
                            to.XmlToConfigurationtree(
                                xAction,
                                cur_Cf,
                                memoryApplication,
                                log_Reports
                                );
                        }
                        catch (KeyNotFoundException e)
                        {
                            err_XAction = xAction;
                            err_Excp    = e;
                            goto gt_Error_NotFound;
                        }
                        catch (Exception e)
                        {
                            err_Excp = e;
                            goto gt_Error_Excp;
                        }
                    }
                }
            }



            //
            //
            //
            // 親へ連結
            //
            //
            //
            if (log_Reports.Successful)
            {
                parent_Cf.List_Child.Add(cur_Cf, log_Reports);
            }

            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_NotFound:
            {
                Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl();
                tmpl.SetParameter(1, err_XAction.Name, log_Reports);                                   //ノード名
                tmpl.SetParameter(2, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports); //設定位置パンくずリスト
                tmpl.SetParameter(3, Log_RecordReportsImpl.ToText_Exception(err_Excp), log_Reports);   //例外メッセージ

                memoryApplication.CreateErrorReport("Er:8023;", tmpl, log_Reports);
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Excp:
            {
                Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl();
                tmpl.SetParameter(1, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports); //設定位置パンくずリスト
                tmpl.SetParameter(2, Log_RecordReportsImpl.ToText_Exception(err_Excp), log_Reports);   //例外メッセージ

                memoryApplication.CreateErrorReport("Er:8024;", tmpl, log_Reports);
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Exemple #6
0
        //────────────────────────────────────────
        #endregion



        #region アクション
        //────────────────────────────────────────

        /// <summary>
        /// Rfrファイル読取。
        ///
        /// 呼び出し元で、memoryApplicationに Stg をセットする。
        /// </summary>
        public Configurationtree_Node XmlToConfigurationtree(
            string sFpatha,//絶対ファイルパス
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "XmlToConfigurationtree", log_Reports);
            //
            //

            // リローディング設定。
            Configurationtree_Node sTg_Cnf = new Configurationtree_NodeImpl(NamesNode.S_CODEFILE_TOGETHERS, new Configurationtree_NodeImpl(sFpatha, null));

            System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();

            XmlElement err_XTop;
            Exception  err_Excp;

            try
            {
                xDoc.Load(sFpatha);


                // ルート要素を取得
                System.Xml.XmlElement xRoot = xDoc.DocumentElement;

                // スクリプトファイルのバージョンチェック。(関数登録ファイル)
                ValuesAttr.Test_Codefileversion(
                    xRoot.GetAttribute(PmNames.S_CODEFILE_VERSION.Name_Attribute),
                    log_Reports,
                    new Configurationtree_NodeImpl(sFpatha, null),
                    NamesNode.S_CODEFILE_TOGETHERS
                    );

                if (log_Reports.Successful)
                {
                    XmlNodeList xTopNL = xRoot.ChildNodes;

                    foreach (XmlNode xTopNode in xTopNL)
                    {
                        if (XmlNodeType.Element == xTopNode.NodeType)
                        {
                            XmlElement xTop = (XmlElement)xTopNode;

                            if (NamesNode.S_TOGETHER == xTop.Name)
                            {
                                XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(NamesNode.S_TOGETHER, log_Reports);
                                to.XmlToConfigurationtree(
                                    xTop,
                                    sTg_Cnf,
                                    memoryApplication,
                                    log_Reports
                                    );
                            }
                            else
                            {
                                err_XTop = xTop;
                                goto gt_Error_NotSupportedChild;
                            }
                        }
                    }
                }
            }
            catch (System.IO.IOException ex)
            {
                err_Excp = ex;
                goto gt_Error_IOException;
            }
            catch (Exception ex)
            {
                err_Excp = ex;
                goto gt_Error_Exception;
            }

            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_NotSupportedChild:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー387!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("トゥゲザー登録ファイルに、<" + NamesNode.S_TOGETHER + ">要素以外の要素[");
                t.Append(err_XTop.Name);
                t.Append("]が含まれていました。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント
                t.Append(r.Message_Configuration(sTg_Cnf));

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_IOException:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー388!", log_Method);

                StringBuilder t = new StringBuilder();

                t.Append("ファイルが見つかりません。");
                t.Append(Environment.NewLine);
                t.Append("absoluteFilePath=[");
                t.Append(sFpatha);
                t.Append("]");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント
                t.Append(r.Message_Configuration(sTg_Cnf));
                t.Append(r.Message_SException(err_Excp));

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Exception:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー344!", log_Method);

                StringBuilder t = new StringBuilder();

                t.Append("読み込むファイルを間違えているかも?");
                t.Append(Environment.NewLine);
                t.Append("トゥゲザー登録ファイル(絶対パス)=[" + sFpatha + "]");
                t.Append(Environment.NewLine);
                t.Append("ex.Message=[" + err_Excp.Message + "]");
                t.Append(Environment.NewLine);
                t.Append("ex.GetType().Name=[" + err_Excp.GetType().Name + "]");

                // ヒント
                t.Append(r.Message_Configuration(sTg_Cnf));
                t.Append(r.Message_SException(err_Excp));

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
            return(sTg_Cnf);
        }
Exemple #7
0
        //────────────────────────────────────────

        /// <summary>
        /// 『ユーザー定義関数設定ファイル(Fnc)』を読み取ります。
        /// </summary>
        public void LoadFile(
            Expression_Node_Filepath filepath_Userfunctionconfig_Expr,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);

            log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "LoadFile", log_Reports);

            //
            //

            if (log_Method.CanDebug(1))
            {
                log_Method.WriteDebug_ToConsole(" ユーザー定義関数設定ファイルの読み取り。");
            }

            Configurationtree_Node parent_Conf             = new Configurationtree_NodeImpl(NamesNode.S_CODEFILE_FUNCTIONS, filepath_Userfunctionconfig_Expr.Cur_Configuration);//Info_OpyopyoImpl.LibraryName + ":" + this.GetType().Name + ".LoadFile_Fnc"
            Expression_Node_String userfunctionconfig_Expr = new Expression_Node_StringImpl(null, parent_Conf);

            string filepathabsolute = filepath_Userfunctionconfig_Expr.Execute4_OnExpressionString(
                EnumHitcount.Unconstraint, log_Reports);

            if (!log_Reports.Successful)
            {
                goto gt_Error_Fpath;
            }

            if (!System.IO.File.Exists(filepathabsolute))
            {
                goto gt_Error_File;
            }


            XmlDocument xDoc     = new XmlDocument();
            Exception   err_Excp = null;

            try
            {
                xDoc.Load(filepathabsolute);
            }
            catch (System.IO.IOException ex)
            {
                //
                // エラー。
                err_Excp = ex;
                goto gt_Error_Doc;
            }
            catch (ArgumentException ex)
            {
                //
                // エラー。
                err_Excp = ex;
                goto gt_Error_Doc;
            }
            catch (Exception ex)
            {
                //
                // エラー。
                err_Excp = ex;
                goto gt_Error_Doc;
            }

            XmlElement xRoot = null;

            if (log_Reports.Successful)
            {
                // ルート要素を取得
                xRoot = xDoc.DocumentElement;

                // スクリプトファイルのバージョンチェック。(関数登録ファイル)
                ValuesAttr.Test_Codefileversion(
                    xRoot.GetAttribute(PmNames.S_CODEFILE_VERSION.Name_Attribute),
                    log_Reports,
                    new Configurationtree_NodeImpl(filepathabsolute, null),
                    NamesNode.S_CODEFILE_FUNCTIONS
                    );
            }

            string sErrorElementName = "";

            if (log_Reports.Successful)
            {
                XmlNodeList xTopNL = xRoot.ChildNodes;
                foreach (XmlNode xTopNode in xTopNL)
                {
                    if (XmlNodeType.Element == xTopNode.NodeType)
                    {
                        if (NamesNode.S_COMMON_FUNCTION == xTopNode.Name)
                        {
                            XmlElement x_Cur = (XmlElement)xTopNode;

                            string sNameValue = x_Cur.GetAttribute(PmNames.S_NAME.Name_Attribute);
                            if (log_Method.CanDebug(1))
                            {
                                log_Method.WriteDebug_ToConsole(" ユーザー定義関数の追加を開始:" + sNameValue);
                            }

                            // XToCf
                            XmlToConfigurationtree_C15_Elm xToCf = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(NamesNode.S_COMMON_FUNCTION, log_Reports);
                            xToCf.XmlToConfigurationtree(
                                x_Cur,
                                parent_Conf,
                                this.Owner_MemoryApplication,
                                log_Reports
                                );

                            Configurationtree_Node s_Cur = null;
                            parent_Conf.List_Child.ForEach(delegate(Configurationtree_Node s_Child, ref bool bBreak)
                            {
                                s_Cur  = s_Child;
                                bBreak = true;
                            });

                            // SToE
                            Expression_Node_FunctionImpl ec_CommonFunction = new Expression_Node_FunctionImpl(userfunctionconfig_Expr, s_Cur, new List <string>());

                            Log_TextIndented_ConfigurationtreeToExpressionImpl pg_ParsingLog = new Log_TextIndented_ConfigurationtreeToExpressionImpl();
                            pg_ParsingLog.BEnabled = false;
                            ConfigurationtreeToExpression_AbstractImpl.ParseChild_InAnotherLibrary(
                                s_Cur,
                                ec_CommonFunction,
                                this.Owner_MemoryApplication,
                                pg_ParsingLog,
                                log_Reports
                                );
                            if (log_Method.CanInfo() && pg_ParsingLog.BEnabled)
                            {
                                log_Method.WriteInfo_ToConsole(" d_ParsingLog=" + Environment.NewLine + pg_ParsingLog.ToString());
                            }

                            this.Owner_MemoryApplication.MemoryFunctions.AddFunction(sNameValue, ec_CommonFunction, log_Reports);
                        }
                        else
                        {
                            //
                            // エラー。
                            sErrorElementName = xTopNode.Name;
                            goto gt_Error_UndefinedChild;
                        }
                    }
                }
            }

            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_Fpath:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー101!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append("ユーザー定義関数設定ファイルへのパスにエラーがありました。");
                s.Newline();
                s.Newline();

                // ヒント

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_File:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー102!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append("ユーザー定義関数設定ファイルがありません。");
                s.Newline();
                s.Append("file=[");
                s.Append(filepathabsolute);
                s.Append("]");
                s.Newline();
                s.Newline();

                // ヒント

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Doc:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー103!", log_Method);

                StringBuilder s = new StringBuilder();
                s.Append("エラー:" + err_Excp.Message);
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                s.Append(Log_RecordReportsImpl.ToText_Configuration(filepath_Userfunctionconfig_Expr.Cur_Configuration));

                // ヒント

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_UndefinedChild:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー104!", log_Method);

                StringBuilder s = new StringBuilder();
                s.Append("未定義の要素:" + sErrorElementName);
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                // ヒント

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Exemple #8
0
        //────────────────────────────────────────
        #endregion



        #region アクション
        //────────────────────────────────────────

        /// <summary>
        /// X → S
        ///
        /// event要素の読取と、処理の実行。
        /// </summary>
        /// <param select="xEvent"></param>
        /// <param select="fcUc"></param>
        public void XmlToConfigurationtree(
            string sName_Control,
            Configurationtree_Node cf_ControlConfig,
            XmlElement xControl,//<control>要素。子要素の読取りに利用。
            MemoryApplication owner_MemoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "XToCf", log_Reports);
            //
            //

            Expression_Node_String ec_Name_Control;
            XmlElement             err_11elm;
            Exception err_Excp;
            Configurationtree_Node cur_Cf;

            if (log_Reports.Successful)
            {
                // コントロール名。
                ec_Name_Control = new Expression_Node_StringImpl(null, cf_ControlConfig);
                ec_Name_Control.AppendTextNode(
                    sName_Control,
                    cf_ControlConfig,
                    log_Reports
                    );

                List <Usercontrol> list_Usercontrol = owner_MemoryApplication.MemoryForms.GetUsercontrolsByName(
                    ec_Name_Control,
                    true,
                    log_Reports
                    );

                Usercontrol uct;
                if (list_Usercontrol.Count < 1)
                {
                    //
                    // エラー。
                    goto gt_Error_NotFoundFc;
                }
                else
                {
                    uct = list_Usercontrol[0];
                }

                //if (null == uct.ControlCommon.Configurationtree_Control)
                //{
                //    uct.ControlCommon.Configurationtree_Control = new Configurationtree_NodeImpl(NamesNode.S_CONTROL+"(ヌル時の代替)", cf_ControlConfig);
                //}


                //
                //
                //
                // 自
                //
                //
                //
                cur_Cf = new Configurationtree_NodeImpl(NamesNode.S_CONTROL1, cf_ControlConfig);
                //上書きします。
                uct.ControlCommon.Configurationtree_Control = cur_Cf;
                //
                // コントロール名。
                uct.ControlCommon.Configurationtree_Control.Dictionary_Attribute.Add(PmNames.S_NAME.Name_Pm, sName_Control, uct.ControlCommon.Configurationtree_Control, true, log_Reports);

                //
                //
                //
                // 子
                //
                //
                //
                {
                    // <data>、<event>、<view>要素を列挙
                    XmlNodeList child_XNl = xControl.ChildNodes;

                    foreach (XmlNode child_XNode in child_XNl)
                    {
                        if (XmlNodeType.Element == child_XNode.NodeType)
                        {
                            XmlElement child_XElm = (XmlElement)child_XNode;

                            try
                            {
                                XmlToConfigurationtree_C15_Elm to = this.Dictionary_XmlToConfigurationtree_Elm[child_XElm.Name];
                                to.XmlToConfigurationtree(
                                    child_XElm,
                                    cur_Cf,
                                    owner_MemoryApplication,
                                    log_Reports
                                    );
                            }
                            catch (ArgumentException e)
                            {
                                //
                                // エラー。
                                err_11elm = child_XElm;
                                err_Excp  = e;
                                goto gt_Error_UndefinedChild;
                            }
                            catch (Exception e)
                            {
                                //
                                // エラー。
                                err_11elm = child_XElm;
                                err_Excp  = e;
                                goto gt_Error_Exception03;
                            }
                        }
                    }
                }
            }

            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_NotFoundFc:
            {
                Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl();

                string sFcName = ec_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);
                tmpl.SetParameter(1, sFcName, log_Reports);                                                      //コントロール名

                tmpl.SetParameter(2, Log_RecordReportsImpl.ToText_Configuration(cf_ControlConfig), log_Reports); //設定位置パンくずリスト

                owner_MemoryApplication.CreateErrorReport("Er:8017;", tmpl, log_Reports);
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_UndefinedChild:
            {
                Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl();

                string sFcName = ec_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);
                tmpl.SetParameter(1, NamesNode.S_CONTROL1, log_Reports);                               //期待するノード名
                tmpl.SetParameter(2, err_11elm.Name, log_Reports);                                     //実際のノード名
                tmpl.SetParameter(3, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports); //設定位置パンくずリスト
                tmpl.SetParameter(4, Log_RecordReportsImpl.ToText_Exception(err_Excp), log_Reports);   //例外メッセージ

                owner_MemoryApplication.CreateErrorReport("Er:8018;", tmpl, log_Reports);
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Exception03:
            {
                Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl();
                tmpl.SetParameter(1, err_11elm.Name, log_Reports);                                     //ノード名
                tmpl.SetParameter(2, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports); //設定位置パンくずリスト
                tmpl.SetParameter(3, Log_RecordReportsImpl.ToText_Exception(err_Excp), log_Reports);   //例外メッセージ

                owner_MemoryApplication.CreateErrorReport("Er:8019;", tmpl, log_Reports);
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Exemple #9
0
        //────────────────────────────────────────

        protected override void Parse_ChildNodes(
            XmlElement cur_X,
            Configurationtree_Node cur_Cf,
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "Parse_ChildNodes", log_Reports);
            //

            XmlElement err_XADisplay = null;

            Usercontrol uct = null;

            if (log_Reports.Successful)
            {
                Configuration_Node cf_Control = cur_Cf.GetParentByNodename(
                    NamesNode.S_CONTROL1, EnumConfiguration.Tree, true, log_Reports);

                if (log_Reports.Successful)
                {
                    uct = Utility_XmlToConfigurationtree_NodeImpl.GetUsercontrol(
                        (Configurationtree_Node)cf_Control, memoryApplication, log_Reports);
                }
            }

            if (log_Reports.Successful)
            {
                if (uct is UsercontrolListbox)
                {
                    //
                    // リストボックスなら。
                    UsercontrolListbox uctLst = (UsercontrolListbox)uct;

                    //
                    // <a-select-record>、<a-display>要素
                    //
                    XmlNodeList child_XNl = cur_X.ChildNodes;

                    foreach (XmlNode x_childNode in child_XNl)
                    {
                        if (XmlNodeType.Element == x_childNode.NodeType)
                        {
                            XmlElement xChild = (XmlElement)x_childNode;
                            err_XADisplay = xChild;

                            string child_SName_Fnc = xChild.GetAttribute(PmNames.S_NAME.Name_Attribute);

                            //
                            //
                            if (NamesFnc.S_VLD_DISPLAY == child_SName_Fnc)//【変更 2012-07-19】
                            {
                                XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByFncName(child_SName_Fnc, log_Reports);
                                to.XmlToConfigurationtree(
                                    xChild,
                                    cur_Cf,
                                    memoryApplication,
                                    log_Reports
                                    );
                            }
                            else if (NamesFnc.S_VLD_SELECT_RECORD == child_SName_Fnc)
                            {
                                // Sf:Vld-SelectRecord;

                                XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByFncName(child_SName_Fnc, log_Reports);
                                to.XmlToConfigurationtree(
                                    xChild,
                                    cur_Cf,
                                    memoryApplication,
                                    log_Reports
                                    );
                            }
                            else
                            {
                                //
                                // エラー。
                                goto gt_Error_UndefinedChild11;
                            }
                        }
                    }
                }
            }

            goto gt_EndMethod;
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_UndefinedChild11:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー385!", log_Method);

                StringBuilder s = new StringBuilder();
                s.Append("<f-list-box-validation>要素に、<a-display><a-select-record>要素以外の要素");
                s.Append(Environment.NewLine);
                s.Append("[");
                s.Append(err_XADisplay.Name);
                s.Append("]が含まれていました。");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                // ヒント

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_UndefinedClass:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー386!", log_Method);

                StringBuilder s = new StringBuilder();
                s.Append("なんらかのエラー。");
                s.Append(Environment.NewLine);

                // ヒント

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Exemple #10
0
        //────────────────────────────────────────

        /// <summary>
        /// X → S。
        /// </summary>
        /// <param name="sFpatha">絶対ファイルパス</param>
        /// <param name="memoryApplication"></param>
        /// <param name="log_Reports"></param>
        public void XmlToConfigurationtree(
            string sFpatha,
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "XmlToConfigurationtree", log_Reports);
            //
            //

            System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
            Exception err_Excp          = null;

            if (System.IO.File.Exists(sFpatha))
            {
                try
                {
                    xDoc.Load(sFpatha);
                }
                catch (System.IO.IOException ex)
                {
                    //
                    // エラー。
                    err_Excp = ex;
                    goto gt_Error_IoException01;
                }
                catch (ArgumentException ex)
                {
                    //
                    // エラー。
                    err_Excp = ex;
                    goto gt_Error_ArgException01;
                }
                catch (Exception ex)
                {
                    //
                    // エラー。
                    err_Excp = ex;
                    goto gt_Error_Exception91;
                }
            }
            else
            {
                // エラー。
                goto gt_Error_NotFoundFile;
            }



            XmlNode err_XTopNode = null;

            if (log_Reports.Successful)
            {
                // new した直後の内容に戻します。
                memoryApplication.MemoryValidators.Configurationtree_Validatorsconfig.Clear(NamesNode.S_CODEFILE_VALIDATORS, new Configurationtree_NodeImpl(sFpatha, null), log_Reports);


                // ルート要素を取得
                System.Xml.XmlElement xRoot = xDoc.DocumentElement;

                // スクリプトファイルのバージョンチェック。(バリデーター登録ファイル)
                ValuesAttr.Test_Codefileversion(
                    xRoot.GetAttribute(PmNames.S_CODEFILE_VERSION.Name_Attribute),
                    log_Reports,
                    new Configurationtree_NodeImpl(sFpatha, null),
                    NamesNode.S_CODEFILE_VALIDATORS
                    );

                //
                //<control>要素を列挙
                //
                XmlNodeList xNl_Top = xRoot.ChildNodes;

                foreach (XmlNode xTopNode in xNl_Top)
                {
                    err_XTopNode = xTopNode;

                    if (XmlNodeType.Element == xTopNode.NodeType)
                    {
                        if (NamesNode.S_CONTROL1 == xTopNode.Name)
                        {
                            XmlElement xTop = (XmlElement)xTopNode;

                            //
                            //
                            //
                            //<control>要素
                            //
                            //
                            //

                            XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(xTopNode.Name, log_Reports);
                            to.XmlToConfigurationtree(
                                xTop,
                                memoryApplication.MemoryValidators.Configurationtree_Validatorsconfig,
                                memoryApplication,
                                log_Reports
                                );
                        }
                        else
                        {
                            //
                            // エラー。
                            goto gt_Error_UndefinedChild04;
                        }
                    }
                }
            }
            else
            {
                // new した直後の内容に戻します。
                memoryApplication.MemoryValidators.Configurationtree_Validatorsconfig.Clear(NamesNode.S_CODEFILE_VALIDATORS, new Configurationtree_NodeImpl("!ハードコーディング_" + log_Method.Fullname, null), log_Reports);
            }

            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_NotFoundFile:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー31!", log_Method);

                StringBuilder s = new StringBuilder();
                s.Append("バリデーション設定ファイル読取時。");
                s.Append(Environment.NewLine);
                s.Append("ファイルが見つかりません。");
                s.Append(Environment.NewLine);
                s.Append("[");
                s.Append(sFpatha);
                s.Append("]");

                // ヒント

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_IoException01:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー34!", log_Method);

                StringBuilder s = new StringBuilder();
                s.Append("バリデーション設定ファイル読取時。");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);
                s.Append("ファイルが見つかりません:" + err_Excp.Message);
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                // ヒント

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_ArgException01:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー397!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("バリデーション設定ファイル読取時。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);
                t.Append("読み込むファイルを間違えているかも?:" + err_Excp.Message);
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);
                t.Append("absoluteFilePath=[");
                t.Append(sFpatha);
                t.Append("]");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_UndefinedChild04:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー398!", log_Method);

                StringBuilder sb = new StringBuilder();
                sb.Append("バリデーション設定ファイル(Xv)に、<" + NamesNode.S_CONTROL1 + ">要素以外の要素[");
                sb.Append(err_XTopNode.Name);
                sb.Append("]が含まれていました。");
                sb.Append(Environment.NewLine);
                sb.Append(Environment.NewLine);

                // ヒント

                r.Message = sb.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Exception91:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー399!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("何らかのエラー。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント
                t.Append(r.Message_SException(err_Excp));

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }