//──────────────────────────────────────── #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); }
//──────────────────────────────────────── /// <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> /// 元に戻します。 /// </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); }