Пример #1
0
        //────────────────────────────────────────
        #endregion



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

        /// <summary>
        /// 実行。
        ///
        /// 指定のコントロールの、指定のイベントを実行します。
        ///
        /// todo:どこで利用されている?
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="nFcName">コントロール名。</param>
        /// <param name="oEventName"></param>
        /// <param name="log_Reports"></param>
        public void Execute1_Usercontrol(
            object sender,
            Expression_Node_String ec_FcName,
            XenonName o_Name_Event,
            MemoryApplication owner_MemoryApplication,
            Log_Reports log_Reports
            )
        {
            //.WriteLine(this.GetType().Name + "#PerformFc: 【アクション_パフォーマー開始】");

            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute1_Usercontrol", log_Reports);
            //
            //

            Usercontrol ucFc = null;

            string sFcName1 = ec_FcName.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

            owner_MemoryApplication.MemoryForms.ForEach_Children(delegate(string sKey, Usercontrol ucFc2, ref bool bRemove, ref bool bBreak)
            {
                string sFcName2 = ucFc2.ControlCommon.Expression_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

                if (sFcName2 == sFcName1)
                {
                    ucFc = ucFc2;
                }
            });

            if (null != ucFc)
            {
                // 一致したfcUcがあれば、一致した最後のfcUcを。
                this.Execute1_UsercontrolImpl(
                    sender,
                    ucFc,
                    o_Name_Event,
                    owner_MemoryApplication,
                    log_Reports
                    );
            }
            else
            {
                //
                //
                //
                //.WriteLine(this.GetType().Name + "#PerformFc: ■[" + sFcName_prm + "]という名前のコントロールはありませんでした。");
            }


            //
            //
            log_Method.EndMethod(log_Reports);

            //.WriteLine(this.GetType().Name + "#PerformFc: 【アクション_パフォーマー終了】");
        }
Пример #2
0
        //────────────────────────────────────────

        /// <summary>
        /// 実行。
        ///
        /// 全てのコントロールの、指定のイベントを実行します。
        ///
        /// アプリケーション起動時に、"OnLoad"を全て実行するなど。
        ///
        /// 別の関数から呼び出されます。
        /// </summary>
        /// <param name="oEventName"></param>
        /// <param name="oEventName"></param>
        /// <param name="log_Reports"></param>
        public void Execute1_AllUsercontrols(
            List <string> sFcNameList,
            object sender,
            XenonName o_Name_Event,
            MemoryApplication owner_MemoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute1_AllUsercontrols", log_Reports);
            //
            //
            Configurationtree_Node cf_ThisMethod = new Configurationtree_NodeImpl(log_Method.Fullname, null);


            foreach (string sName_Usercontrol in sFcNameList)
            {
                if ("" == sName_Usercontrol)
                {
                    // 空行。飛ばす。
                    goto end_row;
                }

                Expression_Leaf_StringImpl ec_FcName = new Expression_Leaf_StringImpl(null, cf_ThisMethod);
                ec_FcName.SetString(sName_Usercontrol, log_Reports);


                List <Usercontrol> list_UcFc = owner_MemoryApplication.MemoryForms.GetUsercontrolsByName(ec_FcName, true, log_Reports);
                if (list_UcFc.Count < 1)
                {
                    // 正常。
                    // 特に設定をすることのないコントロールは、XMLファイルが用意されていない。
                    // 無視する。
                }
                else
                {
                    Usercontrol ucFc = list_UcFc[0];

                    this.Execute1_UsercontrolImpl(
                        sender,
                        ucFc,
                        o_Name_Event,
                        owner_MemoryApplication,
                        log_Reports
                        );
                }

end_row:
                ;
            }

            //
            //
            log_Method.EndMethod(log_Reports);
        }
        //────────────────────────────────────────
        /// <summary>
        /// 実行。
        /// 
        /// 全てのコントロールの、指定のイベントを実行します。
        /// 
        /// アプリケーション起動時に、"OnLoad"を全て実行するなど。
        /// 
        /// 別の関数から呼び出されます。
        /// </summary>
        /// <param name="oEventName"></param>
        /// <param name="oEventName"></param>
        /// <param name="log_Reports"></param>
        public void Execute1_AllUsercontrols(
            List<string> sFcNameList,
            object sender,
            XenonName o_Name_Event,
            MemoryApplication owner_MemoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute1_AllUsercontrols", log_Reports);
            //
            //
            Configurationtree_Node cf_ThisMethod = new Configurationtree_NodeImpl(log_Method.Fullname, null);

            foreach (string sName_Usercontrol in sFcNameList)
            {
                if ("" == sName_Usercontrol)
                {
                    // 空行。飛ばす。
                    goto end_row;
                }

                Expression_Leaf_StringImpl ec_FcName = new Expression_Leaf_StringImpl(null, cf_ThisMethod);
                ec_FcName.SetString( sName_Usercontrol, log_Reports);

                List<Usercontrol> list_UcFc = owner_MemoryApplication.MemoryForms.GetUsercontrolsByName(ec_FcName, true, log_Reports);
                if (list_UcFc.Count < 1)
                {
                    // 正常。
                    // 特に設定をすることのないコントロールは、XMLファイルが用意されていない。
                    // 無視する。
                }
                else
                {
                    Usercontrol ucFc = list_UcFc[0];

                    this.Execute1_UsercontrolImpl(
                        sender,
                        ucFc,
                        o_Name_Event,
                        owner_MemoryApplication,
                        log_Reports
                        );
                }

            end_row:
                ;
            }

            //
            //
            log_Method.EndMethod(log_Reports);
        }
Пример #4
0
        //────────────────────────────────────────

        /// <summary>
        /// 実行。
        ///
        /// コントロールの名前数文字を指定して、一致するコントロールのイベントを実行します。
        ///
        /// todo:どこから呼び出されている?
        /// </summary>
        /// <param name="oEventName"></param>
        /// <param name="oEventName"></param>
        /// <param name="log_Reports"></param>
        public void Execute1_UsercontrolNameStartsWith(
            object sender,
            string sFcNameStarts,
            XenonName o_Name_Event,
            MemoryApplication owner_MemoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute1_UsercontrolNameStartsWith", log_Reports);
            //
            //

            Dictionary <string, Usercontrol> dic = owner_MemoryApplication.MemoryForms.ItemsStartsWith(
                sFcNameStarts,
                log_Reports
                );

            foreach (Usercontrol ucFc in dic.Values)
            {
                if (null != ucFc)
                {
                    this.Execute1_UsercontrolImpl(
                        sender,
                        ucFc,
                        o_Name_Event,
                        owner_MemoryApplication,
                        log_Reports
                        );
                }
                else
                {
                    //
                    //
                    //
                    //string sFcName3 = ucFc.ControlCommon.Expression_Name_Control.E_Execute(log_Reports);
                    //.WriteLine(this.GetType().Name + "#Perform_FcNameStartsWith: ■[" + sFcName_prm + "]という名前のコントロールはありませんでした。");
                }
            }

            //
            //
            log_Method.EndMethod(log_Reports);

            //.WriteLine(this.GetType().Name + "#Perform_FcNameStartsWith: 【アクション_パフォーマー終了】");
        }
Пример #5
0
        //────────────────────────────────────────
        /// <summary>
        /// 文字列型変数の値をセットします。
        /// </summary>
        /// <param select="oVariableName"></param>
        /// <param select="nValue"></param>
        /// <param select="bRequired"></param>
        public void SetStringValue(
            XenonName o_Name_Variable,
            string sValue,
            bool bRequired,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "SetStringValue",log_Reports);
            //
            //

            if (bRequired && !this.dictionaryExpression_Item.ContainsKey(o_Name_Variable.SValue))
            {
                goto gt_Error_NotFoundVariable;
            }
            else
            {
                Expression_Leaf_StringImpl ec_Str = new Expression_Leaf_StringImpl(null, new Configurationtree_NodeImpl("<SetStringValueから>", null));
                ec_Str.SetString(sValue, log_Reports);
                this.dictionaryExpression_Item[o_Name_Variable.SValue] = ec_Str;

                //.WriteLine(this.GetType().Name + "#SetStringValue: ◆ 文字列型変数[" + oVariableName.OValue + "]に、値["+value+"]をセットしました。");

            }

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

                Log_TextIndented t = new Log_TextIndentedImpl();

                t.Append("[");
                t.Append(o_Name_Variable.SValue);
                t.Append("]という名前の 文字列型の変数は、存在しませんでした。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                t.Append(" ヒント: 「変数設定ファイル」に登録されている変数だけ使えます。");
                t.Append(Environment.NewLine);
                t.Append(" ヒント: 変数名の英字の大文字・小文字は完全に一致していますか?");
                t.Append(Environment.NewLine);
                t.Append(" ヒント: 「ファイルパス型」と「文字列型」の2つがあります。");
                t.Append("      文字列型として利用されようとしました。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                t.Append(" 「変数設定ファイル」のファイルパス:");
                t.Append(Environment.NewLine);
                t.Append("  ");
                if (null != this.parent_Variablesconfig_Configurationtree)
                {
                    this.parent_Variablesconfig_Configurationtree.ToText_Locationbreadcrumbs(t);
                }
                else
                {
                    t.Append("ヌル");
                }
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                t.Append(" 問題箇所ヒント:");
                t.Append(Environment.NewLine);
                t.Append("  ");
                o_Name_Variable.Cur_Configuration.ToText_Locationbreadcrumbs(t);
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント

                t.Append(r.Message_SSeparator());
                t.Append(" 変数一覧:");
                t.Append(Environment.NewLine);
                foreach (string sVarName in this.DictionaryExpression_Item.Keys)
                {
                    t.Append("  ");
                    t.Append(sVarName);
                    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);
        }
Пример #6
0
        //────────────────────────────────────────
        /// <summary>
        /// 変数を設定します。
        /// </summary>
        public void SetVariable(
            XenonName o_Name_Variable,
            Expression_Node_String ec_Value,
            bool bRequired,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "SetVariable",log_Reports);
            //
            //

            if (
                o_Name_Variable.SValue.StartsWith(NamesVar.S_SP_) ||
                o_Name_Variable.SValue.StartsWith(NamesVar.S_UP_)
                )
            {
                string sFilePath = ec_Value.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

                Configurationtree_Node parent_Configurationtree_Node = new Configurationtree_NodeImpl("!ハードコーディング_" + this.GetType().Name + "#SetVariable", null);

                Configurationtree_NodeFilepath cf_Fpath = new Configurationtree_NodeFilepathImpl("ファイルパス出典未指定L09Mid_4", parent_Configurationtree_Node);
                cf_Fpath.InitPath(
                    sFilePath,
                    log_Reports
                    );
                if (!log_Reports.Successful)
                {
                    // 既エラー。
                    goto gt_EndMethod;
                }

                Expression_Node_Filepath ec_Fpath = new Expression_Node_FilepathImpl(cf_Fpath);

                this.SetFilepathValue(
                    o_Name_Variable.SValue,
                    ec_Fpath,
                    bRequired,
                    log_Reports
                    );
            }
            else if (
                // 新仕様
                o_Name_Variable.SValue.StartsWith(NamesVar.S_SS_) ||
                o_Name_Variable.SValue.StartsWith(NamesVar.S_US_)
                )
            {
                string str1 = ec_Value.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

                this.SetStringValue(
                    o_Name_Variable,
                    str1,
                    bRequired,
                    log_Reports
                    );
            }
            else
            {
            }

            //
            //
            //
            //
            gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Пример #7
0
        //────────────────────────────────────────
        /// <summary>
        /// フォームのデータの再読み込みを行います。
        /// 
        /// どのフォームを再読み込みするかは、コントロール・リローディング設定ファイルで
        /// 設定しているリローダー要素の名前を指定します。
        /// </summary>
        /// <param select="o_Name_Together"></param>
        public void RefreshDataRange(
            XenonName o_Name_Together,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "RefreshDataRange",log_Reports);

            //
            //
            //
            //

            List<Configurationtree_Node> listCf_Together = this.Configurationtree_Togetherconfig.GetChildrenByNodename(NamesNode.S_TOGETHER, false, log_Reports);
            foreach (Configurationtree_Node cf_Together in listCf_Together)
            {
                string sFncName;
                cf_Together.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sFncName, false, log_Reports);

                // 一致するのは1件しかない前提。
                if (sFncName == o_Name_Together.SValue)
                {
                    if (log_Reports.Successful)
                    {
                        // 最新表示にするコントロールの名前のリスト。
                        List<Configurationtree_Node> cfList_RfrTarget = cf_Together.GetChildrenByNodename(NamesNode.S_TARGET, false, log_Reports);

                        foreach (Configurationtree_Node cf_RfrTarget in cfList_RfrTarget)
                        {
                            List<Usercontrol> list_FcUc;
                            {
                                string sName;
                                cf_RfrTarget.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sName, true, log_Reports);

                                Expression_Node_StringImpl e_str = new Expression_Node_StringImpl(null, cf_RfrTarget);
                                e_str.AppendTextNode(
                                    sName,
                                    cf_RfrTarget,
                                    log_Reports
                                    );

                                list_FcUc = this.Owner_MemoryApplication.MemoryForms.GetUsercontrolsByName(
                                    e_str,
                                    true,
                                    log_Reports
                                    );
                            }

                            if (log_Reports.Successful)
                            {
                                Usercontrol fcUc = list_FcUc[0];

                                fcUc.RefreshData(
                                    log_Reports
                                    );
                            }

                        }
                    }

                }

            }

            //
            //
            //
            //
            log_Method.EndMethod(log_Reports);
        }
        //────────────────────────────────────────
        /// <summary>
        /// 実行。
        /// 
        /// 指定のコントロールの、指定のイベントを実行します。
        /// 
        /// アプリケーション起動時に、"OnLoad"を全て実行するなど。
        /// </summary>
        /// <param name="oEventName"></param>
        /// <param name="oEventName"></param>
        /// <param name="log_Reports"></param>
        protected void Execute1_UsercontrolImpl(
            object sender,
            Usercontrol ucFc,
            XenonName o_Name_Event,
            MemoryApplication owner_MemoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute1_UsercontrolImpl", log_Reports);
            //
            //
            string sFcName2 = ucFc.ControlCommon.Expression_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

            if (null == ucFc.ControlCommon.Configurationtree_Control)
            {
                //
                // 「コントロール設定ファイル」が無いコントロールの場合は、無視します。
                //
                goto gt_EndMethod;
            }

            //if (0 < fcUc.ControlCommon.OCnf_Control.OEvents.Count)
            //{
            //    //.WriteLine(this.GetType().Name + "#: ■■コントロール=[" + fcNameStr2 + "] イベント数=[" + fcUc.ControlCommon.OFcnfControl.OEvents.Count + "]");
            //}

            List<Configurationtree_Node> cfList_Event = ucFc.ControlCommon.Configurationtree_Control.GetChildrenByNodename(NamesNode.S_EVENT, false, log_Reports);
            foreach (Configurationtree_Node cf_Event in cfList_Event)
            {

                string sEventName;
                cf_Event.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sEventName, true, log_Reports);
                if (!log_Reports.Successful)
                {
                    goto gt_EndMethod;
                }

                if (o_Name_Event.SValue == sEventName)
                {
                    Executer2_EventImpl exe1 = new Executer2_EventImpl();
                    exe1.Execute2_Event(
                        sender,
                        cf_Event,
                        owner_MemoryApplication,
                        log_Reports
                        );

                }//oEventName

            }//foreach

            goto gt_EndMethod;
            //
            //
            gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
        //────────────────────────────────────────
        /// <summary>
        /// 実行。
        /// 
        /// コントロールの名前数文字を指定して、一致するコントロールのイベントを実行します。
        /// 
        /// todo:どこから呼び出されている?
        /// </summary>
        /// <param name="oEventName"></param>
        /// <param name="oEventName"></param>
        /// <param name="log_Reports"></param>
        public void Execute1_UsercontrolNameStartsWith(
            object sender,
            string sFcNameStarts,
            XenonName o_Name_Event,
            MemoryApplication owner_MemoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute1_UsercontrolNameStartsWith", log_Reports);
            //
            //

            Dictionary<string, Usercontrol> dic = owner_MemoryApplication.MemoryForms.ItemsStartsWith(
                sFcNameStarts,
                log_Reports
                );

            foreach (Usercontrol ucFc in dic.Values)
            {
                if (null != ucFc)
                {
                    this.Execute1_UsercontrolImpl(
                        sender,
                        ucFc,
                        o_Name_Event,
                        owner_MemoryApplication,
                        log_Reports
                        );
                }
                else
                {
                    //
                    //
                    //
                    //string sFcName3 = ucFc.ControlCommon.Expression_Name_Control.E_Execute(log_Reports);
                    //.WriteLine(this.GetType().Name + "#Perform_FcNameStartsWith: ■[" + sFcName_prm + "]という名前のコントロールはありませんでした。");
                }
            }

            //
            //
            log_Method.EndMethod(log_Reports);

            //.WriteLine(this.GetType().Name + "#Perform_FcNameStartsWith: 【アクション_パフォーマー終了】");
        }
        //────────────────────────────────────────
        /// <summary>
        /// 実行。
        /// 
        /// 指定のコントロールの、指定のイベントを実行します。
        /// 
        /// todo:どこで利用されている?
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="nFcName">コントロール名。</param>
        /// <param name="oEventName"></param>
        /// <param name="log_Reports"></param>
        public void Execute1_Usercontrol(
            object sender,
            Expression_Node_String ec_FcName,
            XenonName o_Name_Event,
            MemoryApplication owner_MemoryApplication,
            Log_Reports log_Reports
            )
        {
            //.WriteLine(this.GetType().Name + "#PerformFc: 【アクション_パフォーマー開始】");

            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute1_Usercontrol", log_Reports);
            //
            //

            Usercontrol ucFc = null;

            string sFcName1 = ec_FcName.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

            owner_MemoryApplication.MemoryForms.ForEach_Children(delegate(string sKey, Usercontrol ucFc2, ref bool bRemove, ref bool bBreak)
            {
                string sFcName2 = ucFc2.ControlCommon.Expression_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

                if (sFcName2 == sFcName1)
                {
                    ucFc = ucFc2;
                }
            });

            if (null != ucFc)
            {
                // 一致したfcUcがあれば、一致した最後のfcUcを。
                this.Execute1_UsercontrolImpl(
                    sender,
                    ucFc,
                    o_Name_Event,
                    owner_MemoryApplication,
                    log_Reports
                    );
            }
            else
            {
                //
                //
                //
                //.WriteLine(this.GetType().Name + "#PerformFc: ■[" + sFcName_prm + "]という名前のコントロールはありませんでした。");
            }

            //
            //
            log_Method.EndMethod(log_Reports);

            //.WriteLine(this.GetType().Name + "#PerformFc: 【アクション_パフォーマー終了】");
        }
Пример #11
0
        //────────────────────────────────────────

        /// <summary>
        /// フォームのデータの再読み込みを行います。
        ///
        /// どのフォームを再読み込みするかは、コントロール・リローディング設定ファイルで
        /// 設定しているリローダー要素の名前を指定します。
        /// </summary>
        /// <param select="o_Name_Together"></param>
        public void RefreshDataRange(
            XenonName o_Name_Together,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

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

            //
            //
            //
            //

            List <Configurationtree_Node> listCf_Together = this.Configurationtree_Togetherconfig.GetChildrenByNodename(NamesNode.S_TOGETHER, false, log_Reports);

            foreach (Configurationtree_Node cf_Together in listCf_Together)
            {
                string sFncName;
                cf_Together.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sFncName, false, log_Reports);

                // 一致するのは1件しかない前提。
                if (sFncName == o_Name_Together.SValue)
                {
                    if (log_Reports.Successful)
                    {
                        // 最新表示にするコントロールの名前のリスト。
                        List <Configurationtree_Node> cfList_RfrTarget = cf_Together.GetChildrenByNodename(NamesNode.S_TARGET, false, log_Reports);


                        foreach (Configurationtree_Node cf_RfrTarget in cfList_RfrTarget)
                        {
                            List <Usercontrol> list_FcUc;
                            {
                                string sName;
                                cf_RfrTarget.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sName, true, log_Reports);

                                Expression_Node_StringImpl e_str = new Expression_Node_StringImpl(null, cf_RfrTarget);
                                e_str.AppendTextNode(
                                    sName,
                                    cf_RfrTarget,
                                    log_Reports
                                    );

                                list_FcUc = this.Owner_MemoryApplication.MemoryForms.GetUsercontrolsByName(
                                    e_str,
                                    true,
                                    log_Reports
                                    );
                            }

                            if (log_Reports.Successful)
                            {
                                Usercontrol fcUc = list_FcUc[0];

                                fcUc.RefreshData(
                                    log_Reports
                                    );
                            }
                        }
                    }
                }
            }

            //
            //
            //
            //
            log_Method.EndMethod(log_Reports);
        }
Пример #12
0
        //────────────────────────────────────────

        /// <summary>
        /// 文字列型変数の値をセットします。
        /// </summary>
        /// <param select="oVariableName"></param>
        /// <param select="nValue"></param>
        /// <param select="bRequired"></param>
        public void SetStringValue(
            XenonName o_Name_Variable,
            string sValue,
            bool bRequired,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

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

            if (bRequired && !this.dictionaryExpression_Item.ContainsKey(o_Name_Variable.SValue))
            {
                goto gt_Error_NotFoundVariable;
            }
            else
            {
                Expression_Leaf_StringImpl ec_Str = new Expression_Leaf_StringImpl(null, new Configurationtree_NodeImpl("<SetStringValueから>", null));
                ec_Str.SetString(sValue, log_Reports);
                this.dictionaryExpression_Item[o_Name_Variable.SValue] = ec_Str;

                //.WriteLine(this.GetType().Name + "#SetStringValue: ◆ 文字列型変数[" + oVariableName.OValue + "]に、値["+value+"]をセットしました。");
            }

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

                Log_TextIndented t = new Log_TextIndentedImpl();

                t.Append("[");
                t.Append(o_Name_Variable.SValue);
                t.Append("]という名前の 文字列型の変数は、存在しませんでした。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                t.Append(" ヒント: 「変数設定ファイル」に登録されている変数だけ使えます。");
                t.Append(Environment.NewLine);
                t.Append(" ヒント: 変数名の英字の大文字・小文字は完全に一致していますか?");
                t.Append(Environment.NewLine);
                t.Append(" ヒント: 「ファイルパス型」と「文字列型」の2つがあります。");
                t.Append("      文字列型として利用されようとしました。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                t.Append(" 「変数設定ファイル」のファイルパス:");
                t.Append(Environment.NewLine);
                t.Append("  ");
                if (null != this.parent_Variablesconfig_Configurationtree)
                {
                    this.parent_Variablesconfig_Configurationtree.ToText_Locationbreadcrumbs(t);
                }
                else
                {
                    t.Append("ヌル");
                }
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);


                t.Append(" 問題箇所ヒント:");
                t.Append(Environment.NewLine);
                t.Append("  ");
                o_Name_Variable.Cur_Configuration.ToText_Locationbreadcrumbs(t);
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント

                t.Append(r.Message_SSeparator());
                t.Append(" 変数一覧:");
                t.Append(Environment.NewLine);
                foreach (string sVarName in this.DictionaryExpression_Item.Keys)
                {
                    t.Append("  ");
                    t.Append(sVarName);
                    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);
        }
Пример #13
0
        //────────────────────────────────────────

        /// <summary>
        /// 変数を設定します。
        /// </summary>
        public void SetVariable(
            XenonName o_Name_Variable,
            Expression_Node_String ec_Value,
            bool bRequired,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

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

            if (
                o_Name_Variable.SValue.StartsWith(NamesVar.S_SP_) ||
                o_Name_Variable.SValue.StartsWith(NamesVar.S_UP_)
                )
            {
                string sFilePath = ec_Value.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

                Configurationtree_Node parent_Configurationtree_Node = new Configurationtree_NodeImpl("!ハードコーディング_" + this.GetType().Name + "#SetVariable", null);

                Configurationtree_NodeFilepath cf_Fpath = new Configurationtree_NodeFilepathImpl("ファイルパス出典未指定L09Mid_4", parent_Configurationtree_Node);
                cf_Fpath.InitPath(
                    sFilePath,
                    log_Reports
                    );
                if (!log_Reports.Successful)
                {
                    // 既エラー。
                    goto gt_EndMethod;
                }

                Expression_Node_Filepath ec_Fpath = new Expression_Node_FilepathImpl(cf_Fpath);

                this.SetFilepathValue(
                    o_Name_Variable.SValue,
                    ec_Fpath,
                    bRequired,
                    log_Reports
                    );
            }
            else if (
                // 新仕様
                o_Name_Variable.SValue.StartsWith(NamesVar.S_SS_) ||
                o_Name_Variable.SValue.StartsWith(NamesVar.S_US_)
                )
            {
                string str1 = ec_Value.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

                this.SetStringValue(
                    o_Name_Variable,
                    str1,
                    bRequired,
                    log_Reports
                    );
            }
            else
            {
            }

            //
            //
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Пример #14
0
        //────────────────────────────────────────

        /// <summary>
        /// 実行。
        ///
        /// 指定のコントロールの、指定のイベントを実行します。
        ///
        /// アプリケーション起動時に、"OnLoad"を全て実行するなど。
        /// </summary>
        /// <param name="oEventName"></param>
        /// <param name="oEventName"></param>
        /// <param name="log_Reports"></param>
        protected void Execute1_UsercontrolImpl(
            object sender,
            Usercontrol ucFc,
            XenonName o_Name_Event,
            MemoryApplication owner_MemoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute1_UsercontrolImpl", log_Reports);
            //
            //
            string sFcName2 = ucFc.ControlCommon.Expression_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);


            if (null == ucFc.ControlCommon.Configurationtree_Control)
            {
                //
                // 「コントロール設定ファイル」が無いコントロールの場合は、無視します。
                //
                goto gt_EndMethod;
            }



            //if (0 < fcUc.ControlCommon.OCnf_Control.OEvents.Count)
            //{
            //    //.WriteLine(this.GetType().Name + "#: ■■コントロール=[" + fcNameStr2 + "] イベント数=[" + fcUc.ControlCommon.OFcnfControl.OEvents.Count + "]");
            //}


            List <Configurationtree_Node> cfList_Event = ucFc.ControlCommon.Configurationtree_Control.GetChildrenByNodename(NamesNode.S_EVENT, false, log_Reports);

            foreach (Configurationtree_Node cf_Event in cfList_Event)
            {
                string sEventName;
                cf_Event.Dictionary_Attribute.TryGetValue(PmNames.S_NAME, out sEventName, true, log_Reports);
                if (!log_Reports.Successful)
                {
                    goto gt_EndMethod;
                }

                if (o_Name_Event.SValue == sEventName)
                {
                    Executer2_EventImpl exe1 = new Executer2_EventImpl();
                    exe1.Execute2_Event(
                        sender,
                        cf_Event,
                        owner_MemoryApplication,
                        log_Reports
                        );
                } //oEventName
            }     //foreach


            goto gt_EndMethod;
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }