[assembly: AssemblyConfiguration("")]\r
[assembly: AssemblyCompany("")]\r
[assembly: AssemblyProduct("Kybernetes")]\r
-[assembly: AssemblyCopyright("Copyright © AndouTomo 2014")]\r
+[assembly: AssemblyCopyright("Copyright © AndouTomo 2015")]\r
[assembly: AssemblyTrademark("")]\r
[assembly: AssemblyCulture("")]\r
\r
// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を \r
// 既定値にすることができます:\r
// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("1.1.6.8")]\r
-[assembly: AssemblyFileVersion("1.1.6.8")]\r
+[assembly: AssemblyVersion("1.1.7.0")]\r
+[assembly: AssemblyFileVersion("1.1.7.0")]\r
[assembly: NeutralResourcesLanguageAttribute("ja")]\r
\r
namespace com.andoutomo.kybernetes.command.control\r
{\r
- class PauseCommand:AbCommand\r
+ class PauseCommand : AbCommand\r
{\r
protected string message;\r
- \r
+\r
\r
protected override bool execute()\r
{\r
+ EndCommandArg param = (EndCommandArg)argument;\r
+\r
+\r
//アクセッサ\r
TaskDataAccessor accessor = TaskDataAccessor.getObject;\r
\r
- //現在実行中のタスクをターゲットとするので\r
- //実行中のタスクを取得する(pwdのSQLを使用する)\r
- List<TaskData> dataList = accessor.getPwdTaskList();\r
- \r
- //停止すべきものがない場合はメッセージを出して処理終了\r
- if(dataList.Count == 0)\r
+ TaskData newData = accessor.getTask(param.sortID);\r
+ if (newData.StartTime == null || newData.StartTime.IsValid == false)\r
{\r
- message = "停止すべきタスクはありません。";\r
+ message = "このタスクは開始されていません。startコマンドで開始してから終了してください。";\r
return true;\r
+\r
}\r
- //ループに入る前に終了時間を決めておく\r
- data.TimeComponent endTime = data.TimeComponent.justNow();\r
- foreach (TaskData _newData in dataList)\r
+ //タスクを終了する(終了時間を記載)\r
+ if (accessor.endTask(newData.SortID, param.EndTime))\r
{\r
- TaskData newData = accessor.getTask(_newData.SortID);\r
- //タスクを終了する(終了時間を記載)\r
- if (accessor.endTask(newData.SortID, data.TimeComponent.justNow()))\r
+ TaskData _oldData = accessor.getTask(newData.SortID);\r
+ //実績時間\r
+ int wkRealMinutes = param.EndTime.getSubtractionMinute(newData.StartTime);\r
+ //予測時間寄り実績時間が小さい場合で、中断の場合は\r
+ if (_oldData.ForecastMin > wkRealMinutes)\r
{\r
- TaskData _oldData = accessor.getTask(newData.SortID);\r
- //実績時間\r
- int wkRealMinutes = endTime.getSubtractionMinute(newData.StartTime);\r
- //予測時間寄り実績時間が小さい場合で、中断の場合は\r
- if (_oldData.ForecastMin > wkRealMinutes)\r
- {\r
- //予測時間を実績時間分差し引く(そうしないと、予測時間が重複してしまう。既にオーバーしてたら知らん。)\r
- _oldData.ForecastMin = endTime.getSubtractionMinute(newData.StartTime);\r
- TaskDataAccessor.getObject.updateTask(_oldData);\r
- }\r
-\r
- //複製するときに、実績時間分を予測時間から差し引く\r
- //元の見積もり時間 - 実績時間(終了時間-開始時間)\r
- int nextMinute = newData.ForecastMin - endTime.getSubtractionMinute(newData.StartTime);\r
- if (nextMinute > 0)\r
- {\r
- newData.ForecastMin = nextMinute;\r
- }\r
- else\r
- {\r
- newData.ForecastMin = 0;\r
- }\r
-\r
- //タスクを複製する\r
- newData.TaskID = accessor.getMaxTaskID();\r
- newData.SortID = accessor.getMaxSortID();\r
- accessor.insertTask(newData);\r
-\r
- //リピート対象のタスクは複製後もリピート対象とする。(逆に、最初のタスク終了時にリピート処理をしない。)\r
- accessor.setRepeatTask(newData.SortID, newData.IsRepeat);\r
-\r
- message += "タスク " + _oldData.SortID + " を中断します。" + System.Environment.NewLine;\r
- \r
+ //予測時間を実績時間分差し引く(そうしないと、予測時間が重複してしまう。既にオーバーしてたら知らん。)\r
+ _oldData.ForecastMin = wkRealMinutes;\r
+ TaskDataAccessor.getObject.updateTask(_oldData);\r
}\r
+\r
+ //複製するときに、実績時間分を予測時間から差し引く\r
+ //元の見積もり時間 - 実績時間(終了時間-開始時間)\r
+ int nextMinute = newData.ForecastMin - wkRealMinutes;\r
+ if (nextMinute > 0)\r
+ {\r
+ newData.ForecastMin = nextMinute;\r
+ }\r
+ else\r
+ {\r
+ newData.ForecastMin = 0;\r
+ }\r
+\r
+ //タスクを複製する\r
+ newData.TaskID = accessor.getMaxTaskID();\r
+ newData.SortID = accessor.getMaxSortID();\r
+ accessor.insertTask(newData);\r
+ \r
+ CommentData data = new CommentData();\r
+ data.TaskID = newData.TaskID;\r
+ data.Comment = param.EndTime + " <" + newData.Contents + ">を中断 ";\r
+\r
+ CommentDataAccessor.getObject.insertComment(data);\r
+\r
+ //リピート対象のタスクは複製後もリピート対象とする。(逆に、最初のタスク終了時にリピート処理をしない。)\r
+ accessor.setRepeatTask(newData.SortID, newData.IsRepeat);\r
+\r
+ message += "タスク " + _oldData.SortID + " を中断します。" + System.Environment.NewLine;\r
+\r
}\r
\r
+\r
return true;\r
}\r
\r
using System;\r
using com.andoutomo.kybernetes.data;\r
+using com.andoutomo.kybernetes.control;\r
\r
namespace com.andoutomo.kybernetes.command.system\r
{\r
catch (Exception e)\r
{\r
splitResult = false;\r
+ KybernetesLogger.Log.debug(e.Message);\r
}\r
}\r
}\r
catch (DirectoryNotFoundException dnfe)\r
{\r
message = "保存対象ディレクトリがありません。ディレクトリ作成後に出力してください。";\r
+ KybernetesLogger.Log.debug(dnfe.StackTrace);\r
}\r
catch (UnauthorizedAccessException uaae)\r
{\r
message = "書き込みに失敗しました。保存先の権限、現在使用中でないかどうか等を確認して下さい。";\r
+ KybernetesLogger.Log.debug(uaae.StackTrace);\r
}\r
return false;\r
}\r
HelpData data = accessor.getHelpData(thisArg.HelpCommandStr);\r
if (data != null)\r
{\r
- string aliases = accessor.getAlies(thisArg.HelpCommandStr);\r
+ string aliases = accessor.getAlies(data.cmdStr);\r
\r
resList2.Add(string.Empty);\r
- resList2.Add(" HELP " + thisArg.HelpCommandStr);\r
+ resList2.Add(" HELP " + data.cmdStr);\r
resList2.Add(string.Empty);\r
resList2.Add(data.cmdSummary);\r
resList2.Add(string.Empty);\r
using System.Collections.Generic;\r
using System.Windows.Forms;\r
using com.andoutomo.kybernetes.data;\r
+using com.andoutomo.kybernetes.control;\r
\r
namespace com.andoutomo.kybernetes.command.change\r
{\r
catch (Exception e)\r
{\r
message = "日付に不備がありました。お手数ですが最初からやり直してください。";\r
+ KybernetesLogger.Log.debug(e.Message);\r
return false;\r
}\r
\r
using com.andoutomo.kybernetes.data.accessor;\r
using System.Windows.Forms;\r
using com.andoutomo.kybernetes.data;\r
+using com.andoutomo.kybernetes.control;\r
\r
namespace com.andoutomo.kybernetes.command.change\r
{\r
catch (Exception e)\r
{\r
message = "日付に不備がありました。お手数ですが最初からやり直してください。";\r
+ KybernetesLogger.Log.debug(e.Message);\r
return false;\r
}\r
#endregion\r
}\r
catch (Exception e)\r
{\r
- //ここでは何もしない\r
+ Console.Out.WriteLine(e.Message);\r
+ //何もしない。\r
}\r
finally\r
{\r
//------------------------------------------------------------------------------\r
// <auto-generated>\r
// このコードはツールによって生成されました。\r
-// ランタイム バージョン:4.0.30319.18444\r
+// ランタイム バージョン:4.0.30319.34209\r
//\r
// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、\r
// コードが再生成されるときに損失したりします。\r
}\r
\r
/// <summary>\r
- /// select c.CMDSTR,h.SUMMARY,h.DETAIL from TBL_command c,tbl_help h where c.helpid = h.helpid AND cmdSTR=? に類似しているローカライズされた文字列を検索します。\r
+ /// select c.cmdstr,h.summary,h.detail from tbl_command c,tbl_help h ,(select cmdstr as callcmd,cmdstr as realcmd from tbl_command cw union select link_command as callcmd,base_command as realcmd from tbl_link lw ) l where c.helpid = h.helpid and c.cmdstr=l.realcmd and l.callcmd=? に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string getHelp {\r
get {\r
<comment>リンクを削除します。</comment>\r
</data>\r
<data name="getHelp" xml:space="preserve">\r
- <value>select c.CMDSTR,h.SUMMARY,h.DETAIL from TBL_command c,tbl_help h where c.helpid = h.helpid AND cmdSTR=?</value>\r
+ <value>select c.cmdstr,h.summary,h.detail from tbl_command c,tbl_help h ,(select cmdstr as callcmd,cmdstr as realcmd from tbl_command cw union select link_command as callcmd,base_command as realcmd from tbl_link lw ) l where c.helpid = h.helpid and c.cmdstr=l.realcmd and l.callcmd=?</value>\r
<comment>個別ヘルプの内容を取得します。</comment>\r
</data>\r
<data name="getLink" xml:space="preserve">\r
clearPanel();\r
string wkAreaForIndex = "";\r
DateComponent wkIndexDate = new DateComponent("19000101");\r
+ bool wkIsComplete = false;\r
foreach (TaskData data in taskList)\r
{\r
//data.Today = todayDate;\r
if (!data.isComplete)\r
{\r
- if (wkAreaForIndex != data.TimeArea || wkIndexDate.calculateDateDiff(data.DoDate) != 0)\r
+ //日付が違う場合\r
+ if (wkIndexDate.calculateDateDiff(data.DoDate) != 0 || wkIsComplete)\r
{\r
- string wkIndex = "- " + data.TimeArea + " - on " + data.DoDate.getDateString("yyyy/MM/dd");\r
+ string wkBranc = " ";\r
+ addIndexPanel(wkBranc);\r
+ }\r
+ if (wkAreaForIndex != data.TimeArea || wkIndexDate.calculateDateDiff(data.DoDate) != 0 || wkIsComplete)\r
+ {\r
+ string wkIndex = "-- " + data.TimeArea + " -- on " + data.DoDate.getDateString("yyyy/MM/dd");\r
addIndexPanel(wkIndex);\r
}\r
\r
wkAreaForIndex = data.TimeArea;\r
wkIndexDate = data.DoDate;\r
+ wkIsComplete = false;\r
+ }\r
+ else\r
+ {\r
+ //直前の日付が未来のときのみ\r
+ if (wkIndexDate.calculateDateDiff(data.DoDate) > 0)\r
+ {\r
+ string wkBranc = " ";\r
+ addIndexPanel(wkBranc);\r
+ }\r
+ wkAreaForIndex = data.TimeArea;\r
+ wkIndexDate = data.DoDate;\r
+ wkIsComplete = true;\r
}\r
addPanel(data);\r
\r