Ejemplo n.º 1
0
        //────────────────────────────────────────
        #endregion



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

        /// <summary>
        ///
        /// </summary>
        /// <param select="moOpyopyo"></param>
        /// <param select="log_Reports"></param>
        public void Eject(
            MemoryApplication moApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

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

            // コンピューターの自動入力モード・フラグを立てます。
            // コントロールを不活性化させます。
            int nIndex = 0;

            foreach (Expression_Node_String ec_FcName in this.array_Expression_NameUsercontrol)
            {
                List <Usercontrol> list_FcUc = moApplication.MemoryForms.GetUsercontrolsByName(
                    ec_FcName,
                    true,
                    log_Reports
                    );

                if (0 < list_FcUc.Count)
                {
                    Usercontrol fcUc = list_FcUc[0];
                    this.array_BEnabled_Old[nIndex] = fcUc.UsercontrolEnabled;
                    fcUc.UsercontrolEnabled         = false;

                    this.array_BAutomaticinputting_Old[nIndex] = fcUc.ControlCommon.BAutomaticinputting;
                    fcUc.ControlCommon.BAutomaticinputting     = true;
                }

                nIndex++;
            }

            nIndex = 0;
            foreach (Expression_Node_String ec_FcName in array_Expression_NameUsercontrol)
            {
                List <Usercontrol> list_FcUc = moApplication.MemoryForms.GetUsercontrolsByName(
                    ec_FcName,
                    true,
                    log_Reports
                    );

                if (0 < list_FcUc.Count)
                {
                    Usercontrol fcUc = list_FcUc[0];

                    //
                    //
                    //
                    // 注 データソースの子要素 Sf:cell; 等を退避。
                    //
                    //
                    //

                    // 最初のデータソースを抜き取る。
                    Expression_Node_String ec_DataSource;
                    {
                        List <Expression_Node_String> ecList_Data = fcUc.ControlCommon.Expression_Control.SelectDirectchildByNodename(NamesNode.S_DATA, false, EnumHitcount.Unconstraint, log_Reports);
                        // 抜き取りフラグ。
                        List <Expression_Node_String> ecList_DataSource = Utility_Expression_NodeImpl.SelectItemsByPmAsCsv(ecList_Data, PmNames.S_ACCESS.Name_Pm, ValuesAttr.S_FROM, true, EnumHitcount.First_Exist, log_Reports);
                        if (!log_Reports.Successful)
                        {
                            goto gt_EndMethod;
                        }
                        ec_DataSource = ecList_DataSource[0];
                    }

                    {
                        List <Expression_Node_String> ecList = new List <Expression_Node_String>();
                        ec_DataSource.List_Expression_Child.ForEach(delegate(Expression_Node_String e_Node, ref bool bRemove, ref bool bBreak)
                        {
                            ecList.Add(e_Node);
                        });
                        this.listArray_Expression_DatasourceQuery_Old[nIndex] = ecList;
                    }


                    //
                    //
                    //
                    // データソースが設定されていない状態で RefreshData をします。フォームのクリアーになります。
                    //
                    //
                    //
                    fcUc.RefreshData(log_Reports);


                    //
                    //
                    //
                    // 注 データターゲットの子要素 Sf:cell; 等を退避。
                    //
                    //
                    //

                    // 最初のデータターゲットを抜き取る。
                    Expression_Node_String ec_DataTarget;
                    {
                        List <Expression_Node_String> ecList_Data = fcUc.ControlCommon.Expression_Control.SelectDirectchildByNodename(NamesNode.S_DATA, false, EnumHitcount.Unconstraint, log_Reports);
                        // 抜き取りフラグ。
                        List <Expression_Node_String> ecList_DataTarget = Utility_Expression_NodeImpl.SelectItemsByPmAsCsv(ecList_Data, PmNames.S_ACCESS.Name_Pm, ValuesAttr.S_TO, true, EnumHitcount.First_Exist, log_Reports);
                        if (!log_Reports.Successful)
                        {
                            goto gt_EndMethod;
                        }
                        ec_DataTarget = ecList_DataTarget[0];
                    }

                    {
                        List <Expression_Node_String> ecList = new List <Expression_Node_String>();
                        ec_DataTarget.List_Expression_Child.ForEach(delegate(Expression_Node_String e_Node, ref bool bRemove, ref bool bBreak)
                        {
                            ecList.Add(e_Node);
                        });
                        this.listArray_Expression_DatatargetQuery_Old[nIndex] = ecList;
                    }

                    //ystem.Console.WriteLine(Info_OpyopyoImpl.LibraryName + ":" + this.GetType().Name + "#Eject: データターゲット数=[" + fcUc.ControlCommon.Expression_Control.List_E_DataT.Count + "]");
                }
            }

            // コンピューターの自動入力モード・フラグを元に戻します。
            // コントロールの活性は、不活性のままにします。
            nIndex = 0;
            foreach (Expression_Node_String ec_FcName in array_Expression_NameUsercontrol)
            {
                List <Usercontrol> list_FcUc = moApplication.MemoryForms.GetUsercontrolsByName(
                    ec_FcName,
                    true,
                    log_Reports
                    );

                if (0 < list_FcUc.Count)
                {
                    Usercontrol fcUc = list_FcUc[0];

                    //fcUc.FoEnabled = this.oldEnabledArray[index];

                    fcUc.ControlCommon.BAutomaticinputting = this.array_BAutomaticinputting_Old[nIndex];
                }

                nIndex++;
            }

            goto gt_EndMethod;
            //
            //
            //
            //

gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
        //────────────────────────────────────────

        /// <summary>
        /// 元に戻します。
        /// </summary>
        public void Reset(
            MemoryApplication moApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

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

            // コンピューターの自動入力モード・フラグを立てます。
            // コントロールの活性は変えません。
            int nIndex = 0;

            foreach (Expression_Node_String ec_FcName in this.array_Expression_NameUsercontrol)
            {
                List <Usercontrol> list_FcUc = moApplication.MemoryForms.GetUsercontrolsByName(
                    ec_FcName,
                    true,
                    log_Reports
                    );

                if (0 < list_FcUc.Count)
                {
                    Usercontrol fcUc = list_FcUc[0];

                    this.array_BAutomaticinputting_Old[nIndex] = fcUc.ControlCommon.BAutomaticinputting;
                    fcUc.ControlCommon.BAutomaticinputting     = true;
                }

                nIndex++;
            }

            nIndex = 0;
            foreach (Expression_Node_String ec_FcName in array_Expression_NameUsercontrol)
            {
                List <Usercontrol> list_FcUc = moApplication.MemoryForms.GetUsercontrolsByName(
                    ec_FcName,
                    true,
                    log_Reports
                    );

                if (0 < list_FcUc.Count)
                {
                    Usercontrol fcUc = list_FcUc[0];


                    Expression_Node_String ec_DataSource;
                    {
                        List <Expression_Node_String> ecList_Data       = fcUc.ControlCommon.Expression_Control.SelectDirectchildByNodename(NamesNode.S_DATA, false, EnumHitcount.Unconstraint, log_Reports);
                        List <Expression_Node_String> ecList_DataSource = Utility_Expression_NodeImpl.SelectItemsByPmAsCsv(ecList_Data, PmNames.S_ACCESS.Name_Pm, ValuesAttr.S_FROM, false, EnumHitcount.First_Exist, log_Reports);
                        if (!log_Reports.Successful)
                        {
                            goto gt_EndMethod;
                        }
                        ec_DataSource = ecList_DataSource[0];
                    }

                    // データソースの子要素 Sf:cell;等を、復元します。
                    ec_DataSource.List_Expression_Child.SetList(
                        this.listArray_Expression_DatasourceQuery_Old[nIndex],
                        log_Reports
                        );


                    //
                    //
                    //
                    // データソースが設定されていない状態で RefreshData をするとフォームのクリアーになります。
                    //
                    //
                    //
                    fcUc.RefreshData(log_Reports);


                    Expression_Node_String ec_DataTarget;
                    {
                        List <Expression_Node_String> ecList_Data       = fcUc.ControlCommon.Expression_Control.SelectDirectchildByNodename(NamesNode.S_DATA, false, EnumHitcount.Unconstraint, log_Reports);
                        List <Expression_Node_String> ecList_DataTarget = Utility_Expression_NodeImpl.SelectItemsByPmAsCsv(ecList_Data, PmNames.S_ACCESS.Name_Pm, ValuesAttr.S_TO, false, EnumHitcount.First_Exist, log_Reports);
                        if (!log_Reports.Successful)
                        {
                            goto gt_EndMethod;
                        }
                        ec_DataTarget = ecList_DataTarget[0];
                    }
                    // データターゲットの子要素 Sf:cell;等を、復元します。
                    ec_DataTarget.List_Expression_Child.SetList(
                        this.listArray_Expression_DatatargetQuery_Old[nIndex],
                        log_Reports
                        );
                    //ystem.Console.WriteLine(Info_OpyopyoImpl.LibraryName + ":" + this.GetType().Name + "#Reset: データターゲット数=[" + fcUc.ControlCommon.Expression_Control.List_E_DataT.Count + "]");
                }
            }

            // コンピューターの自動入力モード・フラグを元に戻します。
            // コントロールの活性を元に戻します。
            nIndex = 0;
            foreach (Expression_Node_String ec_FcName in array_Expression_NameUsercontrol)
            {
                List <Usercontrol> list_FcUc = moApplication.MemoryForms.GetUsercontrolsByName(
                    ec_FcName,
                    true,
                    log_Reports
                    );

                if (0 < list_FcUc.Count)
                {
                    Usercontrol fcUc = list_FcUc[0];

                    fcUc.UsercontrolEnabled = this.array_BEnabled_Old[nIndex];

                    fcUc.ControlCommon.BAutomaticinputting = this.array_BAutomaticinputting_Old[nIndex];
                }

                nIndex++;
            }

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