プロジェクト

全般

プロフィール

統計
| リビジョン:

h-you / trunk / src / ProcessManagement / ProcessManagement / Common / CommonMotions.cs @ 10

履歴 | 表示 | アノテート | ダウンロード (77.7 KB)

1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Diagnostics;
6
using System.Windows.Forms;
7
using System.Drawing;
8
using System.IO;
9
using System.Text.RegularExpressions;
10
using System.Data;
11
using System.Security.Cryptography;
12
using System.Globalization;
13
using System.Runtime.InteropServices;
14
using System.Collections;
15

    
16
using Microsoft.VisualBasic; //for StrConv
17

    
18
using log4net;
19
using log4net.Appender;
20
using log4net.Repository.Hierarchy;
21

    
22
using ProcessManagement.DB.Core;
23
using ProcessManagement.DataModel;
24
using ProcessManagement.DB.IOAccess;
25
using ProcessManagement.Forms.CustomControls;
26

    
27
namespace ProcessManagement.Common
28
{
29
    /// <summary>
30
    /// 工事管理システム共通クラス
31
    /// </summary>
32
    public static class CommonMotions
33
    {
34
        #region 定義部
35
        /// <summary>
36
        /// log4netログを使用する
37
        /// </summary>
38
        private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
39
        #endregion
40

    
41
        #region 変数
42
        /// <summary>
43
        /// 定義ファイル読込クラス定義
44
        /// </summary>
45
        private static DefinitionFileRead m_dfr_model = null;
46

    
47
        /// <summary>
48
        /// 管理マスタデータ保持領域
49
        /// </summary>
50
        private static SystemMaster m_systemMaster = new SystemMaster();
51

    
52
        /// <summary>
53
        /// ログインユーザーデータ
54
        /// </summary>
55
        private static PersonInChargeMaster m_LoginUserData = new PersonInChargeMaster();
56

    
57
        /// <summary>
58
        /// 建築工事費の構成
59
        /// </summary>
60
        //private static Dictionary<int, string> m_StructureTypeName = new Dictionary<int, string>();
61

    
62
        /// <summary>
63
        /// 製品ファイルバージョン格納エリア
64
        /// </summary>
65
        private static FileVersionInfo m_ProductVersionInfo = FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);
66

    
67
        #endregion
68

    
69
        #region コンストラクタ
70
        /// <summary>
71
        /// 何もしない
72
        /// </summary>
73
        #endregion
74

    
75
        #region プロパティ
76
        /// <summary>
77
        /// 本稼働フラグ
78
        /// </summary>
79
        public static bool ProductionExecution
80
        {
81
            get { return CommonDefine.m_ProductionExecution; }
82
        }
83
        /// <summary>
84
        /// 定義ファイル読込クラス
85
        /// </summary>
86
        public static DefinitionFileRead DFRModel
87
        {
88
            get { return m_dfr_model; }
89
        }
90

    
91
        /// <summary>
92
        /// 管理マスタデータ
93
        /// </summary>
94
        public static SystemMaster SystemMasterData
95
        {
96
            get { return m_systemMaster; }
97
            set { m_systemMaster = value; }
98
        }
99

    
100
        /// <summary>
101
        /// ログインユーザーデータ
102
        /// </summary>
103
        public static PersonInChargeMaster LoginUserData
104
        {
105
            get { return m_LoginUserData; }
106
            set { m_LoginUserData = value; }
107
        }
108

    
109
        /// <summary>
110
        /// 構成マスタ(大項目マスタ)
111
        /// </summary>
112
        //public static Dictionary<int, string> StructureTypeName
113
        //{
114
        //    get { return m_StructureTypeName; }
115
        //    set { m_StructureTypeName = value; }
116
        //}
117

    
118
        /// <summary>
119
        /// 製品ファイルバージョン格納エリア
120
        /// </summary>
121
        public static FileVersionInfo ProductVersionInfo
122
        {
123
            get { return m_ProductVersionInfo; }
124
        }
125

    
126
        #endregion
127

    
128
        #region 初期化
129

    
130
        /// <summary>
131
        /// 初期化
132
        /// </summary>
133
        public static void Initialize()
134
        {
135
            try
136
            {
137
                // 定義ファイル読込
138
                DefinitionFileInit();
139

    
140
                // 他共通クラス初期化
141
                DBCommon.Instance.Initialize();
142

    
143
                // 管理マスタ取得
144
                SetSystemMaster();
145

    
146
            }
147
            catch (Exception ex)
148
            {
149
                logger.ErrorFormat("初期化エラー:{0}:{1}", GetMethodName(), ex.Message);
150
            }
151
        }
152
        #endregion
153

    
154
        #region プライベートメソッド
155
        /// <summary>
156
        /// 定義ファイル読込
157
        /// </summary>
158
        private static void DefinitionFileInit()
159
        {
160
            try
161
            {
162
                //定義ファイル読込
163
                System.IO.FileStream fs = new System.IO.FileStream(CommonDefine.s_DefinitionFileName, System.IO.FileMode.Open);
164
                System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(DefinitionFileRead));
165
                m_dfr_model = (DefinitionFileRead)serializer.Deserialize(fs);
166
            }
167
            catch (Exception ex)
168
            {
169
                logger.ErrorFormat("定義ファイル読込エラー:{0}:{1}", GetMethodName(), ex.Message);
170
            }
171
        }
172

    
173
        #endregion
174

    
175
        #region 管理マスタ取得
176
        /// <summary>
177
        /// 管理マスタ取得
178
        /// </summary>
179
        public static bool SetSystemMaster()
180
        {
181
            // 管理マスタクラス
182
            IOMSystem ocDB = new IOMSystem();
183
            try
184
            {
185
                // 管理マスタ取得
186
                // 1レコードだけなので取り出す
187
                string strSQL = " Where SystemCode = 1";
188
                if (!ocDB.SelectAction(strSQL, ref m_systemMaster)) return false;
189

    
190
                return true;
191
            }
192
            catch (Exception ex)
193
            {
194
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
195
                return false;
196
            }
197
            finally
198
            {
199
                ocDB.close(); ocDB = null;
200
            }
201
        }
202
        #endregion
203

    
204
        #region メソッド名を取得する
205
        /// <summary>
206
        /// メソッド名を取得する
207
        /// </summary>
208
        /// <param name="StackCnt"></param>
209
        /// <returns></returns>
210
        public static string GetMethodName(int stackCnt = 1)
211
        {
212
            try
213
            {
214
                StringBuilder sb = new StringBuilder();
215

    
216
                // 一つ前のスタック情報
217
                StackFrame stackFrame = new StackFrame(stackCnt);
218

    
219
                // 呼び出し元メソッドの情報出力
220
                System.Reflection.MethodBase method = stackFrame.GetMethod();
221

    
222
                // Method取得失敗は戻る
223
                if (method == null) return string.Empty;
224

    
225
                // 正しく取得できているかの判定
226
                if (method.DeclaringType != null && !string.IsNullOrEmpty(method.DeclaringType.Name))
227
                {
228
                    // 型名
229
                    sb.AppendFormat("[TYPE]{0}", method.DeclaringType.Name);
230
                }
231

    
232
                if (!string.IsNullOrEmpty(method.Name))
233
                {
234
                    // 編集済みの場合は区切りを入れる
235
                    if (0 < sb.Length) sb.Append('/');
236

    
237
                    // メソッド名
238
                    sb.AppendFormat("[METHOD]{0}", method.Name);
239
                }
240
                return sb.ToString();
241
            }
242
            catch (Exception ex)
243
            {
244
                logger.ErrorFormat(ex.Message);
245
            }
246
            return string.Empty;
247
        }
248
        #endregion
249
        
250
        #region 日付より年を取得する
251
        /// <summary>
252
        /// 日付より年を取得する
253
        /// </summary>
254
        /// <returns></returns>
255
        public static int DateToPeriodYear(DateTime TargetDate)
256
        {
257
            try
258
            {
259
                // 今の年を取得する
260
                int iYear = DateTime.Now.Year;
261
                // 今年の期首日を取得する
262
                DateTime BeginninDate = DateTime.Parse(iYear.ToString() + "/" + CommonMotions.SystemMasterData.BusinessBeginningDate);
263
                // 日付を今年の期首日と比較して小さい場合は今の年より-1して期首年を求める
264
                if (TargetDate.Date < BeginninDate.Date)
265
                    --iYear;
266

    
267
                return iYear;
268
            }
269
            catch (Exception ex)
270
            {
271
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
272
                return 0;
273
            }
274
        }
275
        #endregion
276

    
277
        #region 期数から期の年を取得する
278
        /// <summary>
279
        /// 期数から期の年を取得する
280
        /// </summary>
281
        /// <param name="PeriodCount"></param>
282
        /// <returns></returns>
283
        public static int PeriodCountToYear(int PeriodCount)
284
        {
285
            try
286
            {
287
                // 今の年を取得する
288
                int iYear = DateTime.Now.Year;
289
                // 今年の期首日を取得する
290
                DateTime BeginninDate = DateTime.Parse(iYear.ToString() + "/" + CommonMotions.SystemMasterData.BusinessBeginningDate);
291
                // 今日を今年の期首日と比較して小さい場合は今の年より-1して期首年を求める
292
                if (DateTime.Now.Date < BeginninDate.Date)
293
                    --iYear;
294
                
295
                // 管理マスタの期数と比較して年を計算する
296
                if (PeriodCount < CommonMotions.SystemMasterData.BusinessPeriod)
297
                {
298
                    iYear -= (CommonMotions.SystemMasterData.BusinessPeriod - PeriodCount);
299
                }
300
                else if (PeriodCount > CommonMotions.SystemMasterData.BusinessPeriod)
301
                {
302
                    iYear += (PeriodCount - CommonMotions.SystemMasterData.BusinessPeriod);
303
                }
304

    
305
                return iYear;
306
            }
307
            catch (Exception ex)
308
            {
309
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
310
                return 0;
311
            }
312
        }
313
        #endregion
314

    
315
        #region 期の最大・最少を取得する
316
        /// <summary>
317
        /// 期の最大・最少を取得する
318
        /// </summary>
319
        /// <param name="StartDate"></param>
320
        /// <returns></returns>
321
        public static void GetPeriodYear(ref int min, ref int max)
322
        {
323
            IOConstructionBaseInfo cbiDB = new IOConstructionBaseInfo();
324
            try
325
            {
326
                int StatusCode = CommonDefine.ProjectsStatus.First(x => x.Value.Equals("非 受 注")).Key;
327

    
328
                string strSQL = "SELECT A.CONSTRUCTIONPERIOD FROM CONSTRUCTIONBASEINFO A";
329
                strSQL += string.Format(" WHERE A.CONSTRUCTIONSTATUSFLG <> {0}", StatusCode);
330
                strSQL += " GROUP BY A.CONSTRUCTIONPERIOD";
331

    
332
                ArrayList arList = new ArrayList();
333
                if (!cbiDB.ExecuteReader(strSQL, ref arList)) return;
334

    
335
                int[] iNumber = new int[arList.Count];
336
                int i = 0;
337
                foreach (object[] wrkobj in arList)
338
                {
339
                    iNumber[i++] = CommonMotions.cnvInt(wrkobj[0].ToString());
340
                }
341
                min = iNumber.Min();
342
                max = iNumber.Max();
343
            }
344
            catch (Exception ex)
345
            {
346
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
347
            }
348
            finally
349
            {
350
                cbiDB.close(); cbiDB = null;
351
            }
352
        }
353
        #endregion
354

    
355
        #region データ変換メソッド
356
        #region 西暦を和暦に変換する
357
        /// <summary>
358
        /// 西暦を和暦に変換する
359
        /// </summary>
360
        /// <returns></returns>
361
        public static string cnvJapaneseCalendar(DateTime Terget)
362
        {
363
            try
364
            {
365
                CultureInfo culture = new CultureInfo("ja-JP", true);
366
                culture.DateTimeFormat.Calendar = new JapaneseCalendar();
367

    
368
                return Terget.ToString("ggyy年M月d日", culture);
369
            }
370
            catch (Exception ex)
371
            {
372
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
373
                return string.Empty;
374
            }
375
        }
376
        #endregion
377

    
378
        #region Int値より文字列に変化して指定位置に指定文字を入れる。(工事番号編集)
379
        /// <summary>
380
        /// Int値より文字列に変化して指定位置に指定文字を入れる。
381
        /// </summary>
382
        /// <param name="strCode"></param>
383
        /// <returns></returns>
384
        public static string cnvStringCodeFromInt(int IntCode, string strCode, int iPoint)
385
        {
386
            try
387
            {
388
                // 文字列変換
389
                string strWork = IntCode.ToString();
390
                // 指定位置が文字列長を超えている場合はエラー
391
                if (strWork.Length <= iPoint) return string.Empty;
392
                // 文字挿入
393
                strWork = strWork.Substring(0, iPoint) + strCode + strWork.Substring(iPoint);
394
                return strWork;
395
            }
396
            catch (System.Exception ex)
397
            {
398
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
399
                return string.Empty;
400
            }
401
        }
402
        #endregion
403

    
404
        #region 文字列より指定文字を除去してInt値に変換する
405
        /// <summary>
406
        /// 文字列より指定文字を除去してInt値に変換する
407
        /// </summary>
408
        /// <param name="strCode"></param>
409
        /// <returns></returns>
410
        public static int cnvIntFromStringCode(string strCode, string strRemove)
411
        {
412
            try
413
            {
414
                // 文字列除去後変換
415
                return cnvInt(strCode.Replace(strRemove, ""));
416
            }
417
            catch (System.Exception ex)
418
            {
419
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
420
                return 0;
421
            }
422
        }
423
        #endregion
424

    
425
        #region 日付返還変換
426
        /// <summary>
427
        /// 日付返還変換
428
        /// </summary>
429
        /// <param name="sendData"></param>
430
        /// <returns></returns>
431
        public static DateTime cnvDate(object sendData)
432
        {
433
            DateTime dtDateWork = DateTime.MinValue;
434
            try
435
            {
436
                // 空判定
437
                if (sendData == null) return dtDateWork;
438
                if (sendData.ToString().Length == 0) return dtDateWork;
439

    
440
                // 変換
441
                bool bRet = DateTime.TryParse(sendData.ToString(), out dtDateWork);
442

    
443
                return dtDateWork;
444
            }
445
            catch (System.Exception ex)
446
            {
447
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
448
                return dtDateWork;
449
            }
450
        }
451
        #endregion
452

    
453
        #region 文字列より数値変換(long)
454
        /// <summary>
455
        /// 文字列より数値変換(long)
456
        /// </summary>
457
        /// <param name="sendData"></param>
458
        /// <returns></returns>
459
        public static long cnvLong(object sendData)
460
        {
461
            try
462
            {
463
                long retData = 0;
464

    
465
                // 空判定
466
                if (sendData == null) return retData;
467
                if (sendData.ToString().Trim().Length == 0) return retData;
468

    
469
                // 変換
470
                long.TryParse(sendData.ToString().Replace(",", "").Replace("\\", "").Trim(), out retData);
471

    
472
                return retData;
473
            }
474
            catch (System.Exception ex)
475
            {
476
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
477
                return 0;
478
            }
479
        }
480
        #endregion
481

    
482
        #region 文字列より数値変換(int)
483
        /// <summary>
484
        /// 文字列より数値変換(int)
485
        /// </summary>
486
        /// <param name="sendData"></param>
487
        /// <returns></returns>
488
        public static int cnvInt(object sendData)
489
        {
490
            try
491
            {
492
                int retData = 0;
493

    
494
                // 空判定
495
                if (sendData == null) return retData;
496
                if (sendData.ToString().Trim().Length == 0) return retData;
497

    
498
                // 変換
499
                int.TryParse(sendData.ToString().Replace(",", "").Replace("\\", "").Trim(), out retData);
500

    
501
                return retData;
502
            }
503
            catch (System.Exception ex)
504
            {
505
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
506
                return 0;
507
            }
508
        }
509
        #endregion
510

    
511
        #region 文字列より数値変換(string)
512
        /// <summary>
513
        /// 文字列より数値変換(string)
514
        /// </summary>
515
        /// <param name="sendData"></param>
516
        /// <returns></returns>
517
        public static string cnvString(object sendData)
518
        {
519
            try
520
            {
521
                string retData = string.Empty;
522

    
523
                // 空判定
524
                if (sendData == null) return retData;
525
                if (sendData.ToString().Trim().Length == 0) return retData;
526

    
527

    
528
                // 変換
529
                retData = sendData.ToString(); 
530

    
531
                return retData;
532
            }
533
            catch (System.Exception ex)
534
            {
535
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
536
                return "";
537
            }
538
        }
539
        #endregion
540

    
541
        #region 文字列より数値変換(double)
542
        /// <summary>
543
        /// 文字列より数値変換(double)
544
        /// </summary>
545
        /// <param name="sendData"></param>
546
        /// <returns></returns>
547
        public static double cnvDouble(object sendData)
548
        {
549
            try
550
            {
551
                double retData = 0;
552

    
553
                // 空判定
554
                if (sendData == null) return retData;
555
                if (sendData.ToString().Trim().Length == 0) return retData;
556

    
557

    
558
                // 変換
559
                double.TryParse(sendData.ToString().Replace(",", "").Replace("\\", "").Trim(), out retData);
560

    
561
                return retData;
562
            }
563
            catch (System.Exception ex)
564
            {
565
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
566
                return 0;
567
            }
568
        }
569
        #endregion
570

    
571
        #region 文字列より数値変換(float)
572
        /// <summary>
573
        /// 文字列より数値変換(float)
574
        /// </summary>
575
        /// <param name="sendData"></param>
576
        /// <returns></returns>
577
        public static float cnvFloat(object sendData)
578
        {
579
            try
580
            {
581
                float retData = 0;
582

    
583
                // 空判定
584
                if (sendData == null) return retData;
585
                if (sendData.ToString().Trim().Length == 0) return retData;
586

    
587

    
588
                // 変換
589
                float.TryParse(sendData.ToString().Replace(",", "").Replace("\\", "").Trim(), out retData);
590

    
591
                return retData;
592
            }
593
            catch (System.Exception ex)
594
            {
595
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
596
                return 0;
597
            }
598
        }
599
        #endregion
600

    
601
        #region 文字列より数値変換(decimal)
602
        /// <summary>
603
        /// 文字列より数値変換(decimal)
604
        /// </summary>
605
        /// <param name="sendData"></param>
606
        /// <returns></returns>
607
        public static decimal cnvDecimal(object sendData)
608
        {
609
            try
610
            {
611
                decimal retData = 0;
612

    
613
                // 空判定
614
                if (sendData == null) return retData;
615
                if (sendData.ToString().Trim().Length == 0) return retData;
616

    
617

    
618
                // 変換
619
                decimal.TryParse(sendData.ToString().Replace(",", "").Replace("\\", "").Trim(), out retData);
620

    
621
                return retData;
622
            }
623
            catch (System.Exception ex)
624
            {
625
                Console.WriteLine("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
626
                return 0;
627
            }
628
        }
629
        #endregion
630

    
631
        #region 四捨五入
632
        /// <summary>
633
        /// 四捨五入
634
        /// </summary>
635
        /// <param name="InputData"></param>
636
        /// <returns></returns>
637
        public static int cnvRound(double InputData)
638
        {
639
            int retRoundData = 0;
640
            try
641
            {
642
                retRoundData = (int)Math.Round(InputData, MidpointRounding.AwayFromZero);
643

    
644
                return retRoundData;
645
            }
646
            catch (System.Exception ex)
647
            {
648
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
649
                return retRoundData;
650
            }
651
        }
652
        #endregion
653

    
654
        #region 切り上げ
655
        /// <summary>
656
        /// 切り上げ
657
        /// </summary>
658
        /// <param name="InputData"></param>
659
        /// <returns></returns>
660
        public static int cnvRoundUp(double InputData)
661
        {
662
            int retRoundData = 0;
663
            try
664
            {
665
                retRoundData = (int)Math.Ceiling(InputData);
666

    
667
                return retRoundData;
668
            }
669
            catch (System.Exception ex)
670
            {
671
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
672
                return retRoundData;
673
            }
674
        }
675
        #endregion
676

    
677
        #region 切り捨て
678
        /// <summary>
679
        /// 切り捨て
680
        /// </summary>
681
        /// <param name="InputData"></param>
682
        /// <returns></returns>
683
        public static int cnvTruncate(double InputData)
684
        {
685
            int retRoundData = 0;
686
            try
687
            {
688
                retRoundData = (int)Math.Truncate(InputData);
689

    
690
                return retRoundData;
691
            }
692
            catch (System.Exception ex)
693
            {
694
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
695
                return retRoundData;
696
            }
697
        }
698
        #endregion
699

    
700
        #region 四捨五入(四捨五入位置指定)
701
        /// <summary>
702
        /// 四捨五入(四捨五入位置指定)
703
        /// </summary>
704
        /// <param name="value"></param>
705
        /// <param name="pos"></param>
706
        /// <returns></returns>
707
        public static int IntRound(double value, int pos)
708
        {
709
            // 何乗かを求める
710
            int posion = (int)Math.Pow(10, (pos + 1));
711

    
712
            int upperval = (int)(value / posion);
713
            upperval *= posion;
714
            int lowerval = (int)(value % posion);
715
            int chkval = (int)(lowerval / Math.Pow(10, pos));
716
            if (chkval > 4) upperval += (1 * posion);
717

    
718
            return upperval;
719
        }
720
        #endregion
721

    
722
        #region 切り捨て(切り捨て位置指定)
723
        /// <summary>
724
        /// 切り捨て(切り捨て位置指定)
725
        /// </summary>
726
        /// <param name="value"></param>
727
        /// <param name="pos"></param>
728
        /// <returns></returns>
729
        public static int IntRoundDown(double value, int pos)
730
        {
731
            // 何乗かを求める
732
            int posion = (int)Math.Pow(10, (pos + 1));
733

    
734
            int upperval = (int)(value / posion);
735
            upperval *= posion;
736

    
737
            return upperval;
738
        }
739
        #endregion
740

    
741
        #region 切り上げ(切り上げ位置指定)
742
        /// <summary>
743
        /// 切り上げ(切り上げ位置指定)
744
        /// </summary>
745
        /// <param name="value"></param>
746
        /// <param name="pos"></param>
747
        /// <returns></returns>
748
        public static int IntRoundUp(double value, int pos)
749
        {
750
            // 何乗かを求める
751
            int posion = (int)Math.Pow(10, (pos + 1));
752

    
753
            int upperval = (int)(value / posion);
754
            upperval *= posion;
755
            int lowerval = (int)(value % posion);
756
            int chkval = (int)(lowerval / Math.Pow(10, pos));
757
            if (chkval > 0) upperval += (1 * posion);
758

    
759
            return upperval;
760
        }
761
        #endregion
762

    
763
        #region 0~26までの数字をA~Zに変換する
764
        /// <summary>
765
        /// 0~26までの数字をA~Zに変換する
766
        /// </summary>
767
        /// <param name="num"></param>
768
        /// <returns></returns>
769
        public static string cnvNumberToAlphaCharacter(int num)
770
        {
771
            try
772
            {
773
                // ----- 16進数文字列 -> 数値
774
                int CnvCode = Convert.ToInt32("0041", 16);      // 'A'
775
                int LastCode = Convert.ToInt32("005A", 16);     // 'Z'
776

    
777
                // 変換値を加算する
778
                CnvCode += num;
779
                // 'Z'を超えたら採番しない
780
                if (CnvCode > LastCode) return string.Empty;
781

    
782
                // 数値(文字コード) -> 文字
783
                char c = Convert.ToChar(CnvCode);
784
                // 英字「文字列」
785
                string newChar = c.ToString();
786

    
787
                return newChar;
788
            }
789
            catch (System.Exception ex)
790
            {
791
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
792
                return "";
793
            }
794
        }
795
        #endregion
796

    
797
        #region 日付が最小値ならば"未定"文字を返す
798
        /// <summary>
799
        /// 日付が最小値ならば"未定"文字を返す
800
        /// </summary>
801
        /// <param name="srcDate"></param>
802
        /// <returns></returns>
803
        public static string cnvDateToUndecidedString(DateTime srcDate)
804
        {
805
            try
806
            {
807
                string work = "";
808
                if (srcDate.Equals(DateTime.MinValue))
809
                    work = CommonDefine.s_UndecidedString;
810
                else
811
                    work = srcDate.ToShortDateString();
812

    
813
                return work;
814
            }
815
            catch (System.Exception ex)
816
            {
817
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
818
                return "";
819
            }
820
        }
821
        #endregion
822

    
823
        #region 文字列から日付を返す(文字列が"未定"文字ならば日付最小値を返す)
824
        /// <summary>
825
        /// 文字列から日付を返す
826
        /// 文字列が"未定"文字ならば日付最小値を返す
827
        /// </summary>
828
        /// <param name="srcDate"></param>
829
        /// <returns></returns>
830
        public static DateTime cnvUndecidedStringToDate(object srcDate)
831
        {
832
            DateTime work = DateTime.MinValue;
833
            try
834
            {
835
                if (!srcDate.Equals(CommonDefine.s_UndecidedString))
836
                    work = cnvDate(srcDate);
837

    
838
                return work;
839
            }
840
            catch (System.Exception ex)
841
            {
842
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
843
                return work;
844
            }
845
        }
846
        #endregion
847

    
848
        #region 文字列から数値(文字列が"未定"文字ならば0を返す)
849
        /// <summary>
850
        /// 文字列から数値
851
        /// 文字列が"未定"文字ならば0を返す
852
        /// </summary>
853
        /// <param name="srcDate"></param>
854
        /// <returns></returns>
855
        public static double cnvUndecidedStringToDouble(object srcDate)
856
        {
857
            double work = 0;
858
            try
859
            {
860
                if (!srcDate.Equals(CommonDefine.s_UndecidedString))
861
                    work = cnvDouble(srcDate);
862

    
863
                return work;
864
            }
865
            catch (System.Exception ex)
866
            {
867
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
868
                return work;
869
            }
870
        }
871
        #endregion
872

    
873
        #region 色指定文字列より色を返す
874
        /// <summary>
875
        /// 色指定文字列より色を返す
876
        /// </summary>
877
        /// <param name="strColor"></param>
878
        /// <returns></returns>
879
        public static Color cnvStringToColor(string strColor)
880
        {
881
            Color ColorRet = Color.White;
882
            try
883
            {
884
                // 色文字列チェック
885
                if (!CommonMotions.chkObjectIsNull(strColor) && strColor.Length != 0)
886
                {
887
                    ColorRet = ColorTranslator.FromHtml(strColor);
888
                }
889
                return ColorRet;
890
            }
891
            catch (System.Exception ex)
892
            {
893
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
894
                return ColorRet;
895
            }
896
        }
897
        #endregion
898

    
899
        #region 色指定文字列より色を返す・設定無しは指定場所のデフォルトを返す
900
        /// <summary>
901
        /// 色指定文字列より色を返す・設定無しは指定場所のデフォルトを返す
902
        /// </summary>
903
        /// <param name="strColor"></param>
904
        /// <param name="point"></param>
905
        /// <returns></returns>
906
        public static Color getBackForeColor(string strColor, CommonDefine.PalceOfColor point)
907
        {
908
            Color ColorRet = Color.White;
909
            try
910
            {
911
                // デフォルトセット
912
                if (point == CommonDefine.PalceOfColor.BackColor)
913
                {   // 背景
914
                    ColorRet = Color.White;
915
                }
916
                else if (point == CommonDefine.PalceOfColor.ForeColor)
917
                {   // 文字色
918
                    ColorRet = Color.Black;
919
                }
920
                else
921
                {
922
                    ColorRet = Color.Transparent;
923
                }
924

    
925
                if (!chkObjectIsNull(strColor) && strColor.Length != 0)
926
                {
927
                }
928
                else
929
                {
930
                    strColor = String.Format("0x{0:X2}{1:X2}{2:X2}", ColorRet.R, ColorRet.G, ColorRet.B);
931
                }
932

    
933
                ColorRet = cnvStringToColor(strColor);
934

    
935
                return ColorRet;
936
            }
937
            catch (System.Exception ex)
938
            {
939
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
940
                return ColorRet;
941
            }
942
        }
943
        #endregion
944
        #endregion
945

    
946
        #region データチェックメソッド
947
        #region ディレクトリの存在チェック
948
        /// <summary>
949
        /// ディレクトリの存在チェック
950
        /// </summary>
951
        /// <param name="DirectryName">フォルダパス</param>
952
        /// <returns></returns>
953
        public static bool ChkDirPath(string DirectryName, bool CreateFlg = false)
954
        {
955
            try
956
            {
957
                // フォルダ (ディレクトリ) が存在しているかどうか確認する
958
                if (!Directory.Exists(@DirectryName))
959
                {
960
                    // 作成フラグOffならばエラー
961
                    if (!CreateFlg) return false;
962

    
963
                    // ディレクトリを作成する
964
                    Directory.CreateDirectory(@DirectryName);
965
                }
966

    
967
                return true;
968
            }
969
            catch (Exception ex)
970
            {
971
                logger.ErrorFormat(ex.Message);
972
                return false;
973
            }
974
        }
975
        #endregion
976

    
977
        #region オブジェクトのNullチェック
978
        /// <summary>
979
        /// オブジェクトのNullチェック
980
        /// </summary>
981
        /// <param name="sendData">オブジェクト</param>
982
        /// <returns></returns>
983
        public static bool chkObjectIsNull(Object sendData)
984
        {
985
            try
986
            {
987
                if (sendData == null) return true;
988

    
989
                return false;
990
            }
991
            catch (System.Exception ex)
992
            {
993
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
994
                return false;
995
            }
996
        }
997
        #endregion
998

    
999
        #region 数値チェック
1000
        /// <summary>
1001
        /// 数値チェック
1002
        /// </summary>
1003
        /// <param name="data">Long文字列</param>
1004
        /// <param name="indispensable">入力必須チェック</param>
1005
        /// <returns>true:正常 false:異常</returns>
1006
        public static bool chkNumeric(object CheckData, bool indispensable = false)
1007
        {
1008
            try
1009
            {
1010
                if (chkObjectIsNull(CheckData)) return false;
1011

    
1012
                string RecvData = cnvString(CheckData);
1013
                double revData = 0;
1014
                // 必須入力チェック
1015
                if (indispensable)
1016
                {
1017
                    if (RecvData.Replace(",", "").Replace("\\", "").Trim().Length == 0) return false;
1018
                }
1019
                // Nullが入っていなくてレングスが0は数値として扱う
1020
                if (RecvData.Replace(",", "").Replace("\\", "").Trim().Length == 0) return true;
1021

    
1022
                return double.TryParse(RecvData.Replace(",", "").Replace("\\", "").Trim(), out revData);
1023
            }
1024
            catch (System.Exception ex)
1025
            {
1026
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
1027
                return false;
1028
            }
1029
        }
1030
        #endregion
1031

    
1032
        #region 数値チェック(long)
1033
        /// <summary>
1034
        /// 数値チェック(long)
1035
        /// </summary>
1036
        /// <param name="data">Long文字列</param>
1037
        /// <param name="indispensable">入力必須チェック</param>
1038
        /// <returns>true:正常 false:異常</returns>
1039
        public static bool chkNumeric(object sendData, ref long retData, bool indispensable = false)
1040
        {
1041
            try
1042
            {
1043
                // 必須入力チェック
1044
                if (indispensable)
1045
                {
1046
                    if (cnvString(sendData).Replace(",", "").Replace("\\", "").Trim().Length == 0) return false;
1047
                }
1048

    
1049
                return long.TryParse(cnvString(sendData).Replace(",", "").Replace("\\", "").Trim(), out retData);
1050
            }
1051
            catch (System.Exception ex)
1052
            {
1053
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
1054
                return false;
1055
            }
1056
        }
1057
        #endregion
1058

    
1059
        #region 数値チェック(int)
1060
        /// <summary>
1061
        /// 数値チェック(int)
1062
        /// </summary>
1063
        /// <param name="data">Long文字列</param>
1064
        /// <param name="indispensable">入力必須チェック</param>
1065
        /// <returns>true:正常 false:異常</returns>
1066
        public static bool chkNumeric(object sendData, ref int retData, bool indispensable = false)
1067
        {
1068
            try
1069
            {
1070
                // 必須入力チェック
1071
                if (indispensable)
1072
                {
1073
                    if (cnvString(sendData).Replace(",", "").Replace("\\", "").Trim().Length == 0) return false;
1074
                }
1075

    
1076
                return int.TryParse(cnvString(sendData).Replace(",", "").Replace("\\", "").Trim(), out retData);
1077
            }
1078
            catch (System.Exception ex)
1079
            {
1080
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
1081
                return false;
1082
            }
1083
        }
1084
        #endregion
1085

    
1086
        #region 数値チェック(double)
1087
        /// <summary>
1088
        /// 数値チェック(double)
1089
        /// </summary>
1090
        /// <param name="data">Long文字列</param>
1091
        /// <param name="indispensable">入力必須チェック</param>
1092
        /// <returns>true:正常 false:異常</returns>
1093
        public static bool chkNumeric(object sendData, ref double retData, bool indispensable = false)
1094
        {
1095
            try
1096
            {
1097
                // 必須入力チェック
1098
                if (indispensable)
1099
                {
1100
                    if (cnvString(sendData).Replace(",", "").Replace("\\", "").Trim().Length == 0) return false;
1101
                }
1102

    
1103
                return double.TryParse(cnvString(sendData).Replace(",", "").Replace("\\", "").Trim(), out retData);
1104
            }
1105
            catch (System.Exception ex)
1106
            {
1107
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
1108
                return false;
1109
            }
1110
        }
1111
        #endregion
1112

    
1113
        #region 文字列長さチェック(UTF-8)
1114
        /// <summary>
1115
        /// 文字列長さチェック(UTF-8)
1116
        /// </summary>
1117
        /// <param name="strData">対象文字列</param>
1118
        /// <param name="lngMaxLen">最大長</param>
1119
        /// <param name="indispensable">入力必須チェック</param>
1120
        /// <returns>true:正常 false:異常</returns>
1121
        public static bool chkStringLength(string strData, int lngMaxLen, bool indispensable = false)
1122
        {
1123
            bool bRet = true;
1124
            //int lngLen = 0;
1125
            try
1126
            {
1127

    
1128
                //Encoding sjis = Encoding.GetEncoding("shift-jis");
1129
                Encoding utf8 = Encoding.GetEncoding("utf-8");
1130

    
1131
                // 必須入力チェック
1132
                if (indispensable)
1133
                {
1134
                    if (strData.Length == 0) bRet = false;
1135
                }
1136
                // S-Jisチェック
1137
                //lngLen = sjis.GetByteCount(strData);
1138
                // UTF-8チェック
1139
                //lngLen = utf8.GetByteCount(strData);
1140
                //if (lngLen > lngMaxLen) bRet = false;
1141
                // C#内はUTFなので文字長だけをチェックする
1142
                if (strData.Length > lngMaxLen) bRet = false;
1143
            }
1144
            catch (System.Exception ex)
1145
            {
1146
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
1147
                bRet = false;
1148
            }
1149

    
1150
            return bRet;
1151
        }
1152
        #endregion
1153

    
1154
        #region 郵便番号チェック
1155
        /// <summary>
1156
        /// 郵便番号チェック
1157
        /// </summary>
1158
        /// <param name="strData">郵便番号文字列</param>
1159
        /// <returns>true:正常 false:異常</returns>
1160
        public static bool chkZipcode(string strdata)
1161
        {
1162
            bool bRet = false;
1163

    
1164
            Regex regex = new Regex("^[0-9]{3}[-][0-9]{4}$");
1165
            if (regex.IsMatch(strdata))
1166
            {
1167
                bRet = true;
1168
            }
1169
            return bRet;
1170
        }
1171
        #endregion
1172

    
1173
        #region 電話番号/FAX番号チェック
1174
        /// <summary>
1175
        /// 電話番号/FAX番号チェック
1176
        /// </summary>
1177
        /// <param name="data">電話番号文字列</param>
1178
        /// <returns>true:正常 false:異常</returns>
1179
        public static bool chkPhoneNumber(string strdata)
1180
        {
1181
            bool bRet = false;
1182

    
1183
            Regex regex = new Regex("^[0-9]{2,5}-[0-9]{1,4}-[0-9]{3,4}$");
1184
            if (regex.IsMatch(strdata))
1185
            {
1186
                bRet = true;
1187
            }
1188
            return bRet;
1189
        }
1190
        #endregion
1191

    
1192
        #region メールアドレスチェック
1193
        /// <summary>
1194
        /// メールアドレスチェック
1195
        /// </summary>
1196
        /// <param name="data">電話番号文字列</param>
1197
        /// <returns>true:正常 false:異常</returns>
1198
        public static bool chkMailAddress(string strdata)
1199
        {
1200
            bool bRet = false;
1201

    
1202
            Regex regex = new Regex(@"\A\P{Cc}+@\P{Cc}+\z");
1203
            if (regex.IsMatch(strdata))
1204
            {
1205
                bRet = true;
1206
            }
1207
            return bRet;
1208
        }
1209
        #endregion
1210

    
1211
        #region 日付チェック
1212
        /// <summary>
1213
        /// 日付チェック
1214
        /// </summary>
1215
        /// <param name="data">日付文字列</param>
1216
        /// <returns>true:正常 false:異常</returns>
1217
        public static bool chkDate(string strdata)
1218
        {
1219
            bool bRet = true;
1220
            try
1221
            {
1222
                DateTime dtwork = DateTime.MinValue;
1223

    
1224
                return DateTime.TryParse(strdata, out dtwork);
1225
            }
1226
            catch (System.Exception ex)
1227
            {
1228
                logger.DebugFormat("chkDate Error message:{0}", ex.Message);
1229
                bRet = false;
1230
            }
1231
            return bRet;
1232
        }
1233
        #endregion
1234

    
1235
        #region セルが空かどうかをチェックする
1236
        /// <summary>
1237
        /// セルが空かどうかをチェックする
1238
        /// </summary>
1239
        /// <param name="objCell"></param>
1240
        /// <param name="iColumn"></param>
1241
        /// <returns>true:空 flase:有効</returns>
1242
        public static bool chkCellBlank(object objCell)
1243
        {
1244
            try
1245
            {
1246
                if (chkObjectIsNull(objCell)) return true;
1247
                if (objCell.ToString().Length == 0) return true;
1248
            
1249
                return false;
1250
            }
1251
            catch (System.Exception ex)
1252
            {
1253
                logger.DebugFormat("chkDate Error message:{0}", ex.Message);
1254
                return true;
1255
            }
1256
        }
1257
        #endregion
1258

    
1259
        #region 画面フィールド入力必須チェック
1260
        /// <summary>
1261
        /// 画面フィールド入力必須チェック
1262
        /// </summary>
1263
        /// <param name="dispControl">コントロールオブジェクト</param>
1264
        /// <returns>false:エラー true:エラーなし</returns>
1265
        public static bool DispFieldIndispensable(Control dispControl)
1266
        {
1267
            bool bAns = true;
1268
            try
1269
            {
1270
                // 必須入力チェック
1271
                if (chkObjectIsNull(dispControl))
1272
                {
1273
                    bAns = false;
1274
                }
1275
                else
1276
                {
1277
                    if (dispControl.Text.ToString().Length == 0)
1278
                    {
1279
                        bAns = false;
1280
                    }
1281
                }
1282
            }
1283
            catch (Exception ex)
1284
            {
1285
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", GetMethodName(), GetMethodName(2), ex.Message);
1286
                bAns = false;
1287
            }
1288
            finally
1289
            {
1290
                // 背景色変更
1291
                chgBackColor(dispControl, bAns);
1292
            }
1293
            return bAns;
1294
        }
1295
        #endregion
1296

    
1297
        #region 画面フィールド入力文字数チェック
1298
        /// <summary>
1299
        /// 画面フィールド入力文字数チェック
1300
        /// </summary>
1301
        /// <param name="dispControl">コントロールオブジェクト</param>
1302
        /// <param name="sLength">文字列長</param>
1303
        /// <param name="indispensable">true:必須入力チェック</param>
1304
        /// <returns>false:エラー true:エラーなし</returns>
1305
        public static bool DispFieldLengthCheck(Control dispControl, int sLength, bool indispensable = false)
1306
        {
1307
            bool bAns = true;
1308
            try
1309
            {
1310
                // 必須入力チェック
1311
                if (indispensable)
1312
                {
1313
                    bAns = DispFieldIndispensable(dispControl);
1314
                }
1315

    
1316
                if (dispControl.Text.ToString().Length != 0)
1317
                {
1318
                    // レングスチェック
1319
                    bAns = chkStringLength(dispControl.Text.ToString(), sLength);
1320
                }
1321
            }
1322
            catch (Exception ex)
1323
            {
1324
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", GetMethodName(), GetMethodName(2), ex.Message);
1325
                bAns = false;
1326
            }
1327
            finally
1328
            {
1329
                // 背景色変更
1330
                chgBackColor(dispControl, bAns);
1331
            }
1332
            return bAns;
1333
        }
1334
        #endregion
1335

    
1336
        #region 画面フィールド入力日付チェック
1337
        /// <summary>
1338
        /// 画面フィールド入力日付チェック
1339
        /// </summary>
1340
        /// <param name="dispControl">コントロールオブジェクト</param>
1341
        /// <param name="indispensable">true:必須入力チェック</param>
1342
        /// <returns>false:エラー true:エラーなし</returns>
1343
        public static bool DispFieldDateCheck(Control dispControl, bool indispensable = false)
1344
        {
1345
            bool bAns = true;
1346
            try
1347
            {
1348
                // 必須入力チェック
1349
                if (indispensable)
1350
                {
1351
                    bAns = DispFieldIndispensable(dispControl);
1352
                }
1353

    
1354
                if (dispControl.Text.ToString().Length != 0)
1355
                {
1356
                    // 未定はエラーにしない
1357
                    if (!indispensable && dispControl.Text.Equals(CommonDefine.s_UndecidedString)) { }
1358
                    else
1359
                        // 日付チェック
1360
                        bAns = chkDate(dispControl.Text.ToString());
1361
                }
1362
            }
1363
            catch (Exception ex)
1364
            {
1365
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", GetMethodName(), GetMethodName(2), ex.Message);
1366
                bAns = false;
1367
            }
1368
            finally
1369
            {
1370
                // 背景色変更
1371
                chgBackColor(dispControl, bAns);
1372
            }
1373
            return bAns;
1374
        }
1375
        #endregion
1376

    
1377
        #region 画面フィールド入力郵便番号チェック
1378
        /// <summary>
1379
        /// 画面フィールド入力郵便番号チェック
1380
        /// </summary>
1381
        /// <param name="dispControl">コントロールオブジェクト</param>
1382
        /// <param name="indispensable">true:必須入力チェック</param>
1383
        /// <returns>false:エラー true:エラーなし</returns>
1384
        public static bool DispFieldZipCodeCheck(Control dispControl, bool indispensable = false)
1385
        {
1386
            bool bAns = true;
1387
            try
1388
            {
1389
                // 必須入力チェック
1390
                if (indispensable)
1391
                {
1392
                    bAns = DispFieldIndispensable(dispControl);
1393
                }
1394

    
1395
                if (dispControl.Text.ToString().Length != 0)
1396
                {
1397
                    // 郵便番号チェック
1398
                    bAns = chkZipcode(dispControl.Text.ToString());
1399
                }
1400
            }
1401
            catch (Exception ex)
1402
            {
1403
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", GetMethodName(), GetMethodName(2), ex.Message);
1404
                bAns = false;
1405
            }
1406
            finally
1407
            {
1408
                // 背景色変更
1409
                chgBackColor(dispControl, bAns);
1410
            }
1411
            return bAns;
1412
        }
1413
        #endregion
1414

    
1415
        #region 画面フィールド入力Intチェック
1416
        /// <summary>
1417
        /// 画面フィールド入力Intチェック
1418
        /// </summary>
1419
        /// <param name="dispControl">コントロールオブジェクト</param>
1420
        /// <param name="indispensable">true:必須入力チェック</param>
1421
        /// <returns>false:エラー true:エラーなし</returns>
1422
        public static bool DispFieldIntCheck(Control dispControl, bool indispensable = false)
1423
        {
1424
            bool bAns = true;
1425
            try
1426
            {
1427
                // 必須入力チェック
1428
                if (indispensable)
1429
                {
1430
                    bAns = DispFieldIndispensable(dispControl);
1431
                }
1432

    
1433
                if (dispControl.Text.ToString().Length != 0)
1434
                {
1435
                    int work = 0;
1436
                    // 数値チェック
1437
                    //bAns = chkNumeric(dispControl.Text.ToString(), ref work);
1438
                    bAns = int.TryParse(dispControl.Text.ToString(), out work);
1439
                }
1440
            }
1441
            catch (Exception ex)
1442
            {
1443
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", GetMethodName(), GetMethodName(2), ex.Message);
1444
                bAns = false;
1445
            }
1446
            finally
1447
            {
1448
                // 背景色変更
1449
                chgBackColor(dispControl, bAns);
1450
            }
1451
            return bAns;
1452
        }
1453
        #endregion
1454

    
1455
        #region 画面フィールド入力Doubleチェック
1456
        /// <summary>
1457
        /// 画面フィールド入力Doubleチェック
1458
        /// </summary>
1459
        /// <param name="dispControl">コントロールオブジェクト</param>
1460
        /// <param name="indispensable">true:必須入力チェック</param>
1461
        /// <returns>false:エラー true:エラーなし</returns>
1462
        public static bool DispFieldDoubleCheck(Control dispControl, bool indispensable = false)
1463
        {
1464
            bool bAns = true;
1465
            try
1466
            {
1467
                // 必須入力チェック
1468
                if (indispensable)
1469
                {
1470
                    bAns = DispFieldIndispensable(dispControl);
1471
                }
1472

    
1473
                if (dispControl.Text.ToString().Length != 0)
1474
                {
1475
                    double work = 0;
1476
                    // 数値チェック
1477
                    bAns = chkNumeric(dispControl.Text.ToString(), ref work);
1478
                }
1479
            }
1480
            catch (Exception ex)
1481
            {
1482
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", GetMethodName(), GetMethodName(2), ex.Message);
1483
                bAns = false;
1484
            }
1485
            finally
1486
            {
1487
                // 背景色変更
1488
                chgBackColor(dispControl, bAns);
1489
            }
1490
            return bAns;
1491
        }
1492
        #endregion
1493

    
1494
        #region 画面フィールド入力電話番号チェック
1495
        /// <summary>
1496
        /// 画面フィールド入力電話番号チェック
1497
        /// </summary>
1498
        /// <param name="dispControl">コントロールオブジェクト</param>
1499
        /// <param name="indispensable">true:必須入力チェック</param>
1500
        /// <returns>false:エラー true:エラーなし</returns>
1501
        public static bool DispFieldPhoneNumberCheck(Control dispControl, bool indispensable = false)
1502
        {
1503
            bool bAns = true;
1504
            try
1505
            {
1506
                // 必須入力チェック
1507
                if (indispensable)
1508
                {
1509
                    bAns = DispFieldIndispensable(dispControl);
1510
                }
1511

    
1512
                if (dispControl.Text.ToString().Length != 0)
1513
                {
1514
                    // 電話番号チェック
1515
                    bAns = chkPhoneNumber(dispControl.Text.ToString());
1516
                }
1517
            }
1518
            catch (Exception ex)
1519
            {
1520
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", GetMethodName(), GetMethodName(2), ex.Message);
1521
                bAns = false;
1522
            }
1523
            finally
1524
            {
1525
                // 背景色変更
1526
                chgBackColor(dispControl, bAns);
1527
            }
1528
            return bAns;
1529
        }
1530
        #endregion
1531

    
1532
        #region 画面フィールド入力メールアドレスチェック
1533
        /// <summary>
1534
        /// 画面フィールド入力メールアドレスチェック
1535
        /// </summary>
1536
        /// <param name="dispControl">コントロールオブジェクト</param>
1537
        /// <param name="indispensable">true:必須入力チェック</param>
1538
        /// <returns>false:エラー true:エラーなし</returns>
1539
        public static bool DispFieldMailAddressCheck(Control dispControl, bool indispensable = false)
1540
        {
1541
            bool bAns = true;
1542
            try
1543
            {
1544
                // 必須入力チェック
1545
                if (indispensable)
1546
                {
1547
                    bAns = DispFieldIndispensable(dispControl);
1548
                }
1549

    
1550
                if (dispControl.Text.ToString().Length != 0)
1551
                {
1552
                    // メールアドレスチェック
1553
                    bAns = chkMailAddress(dispControl.Text.ToString());
1554
                }
1555
            }
1556
            catch (Exception ex)
1557
            {
1558
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", GetMethodName(), GetMethodName(2), ex.Message);
1559
                bAns = false;
1560
            }
1561
            finally
1562
            {
1563
                // 背景色変更
1564
                chgBackColor(dispControl, bAns);
1565
            }
1566
            return bAns;
1567
        }
1568
        #endregion
1569

    
1570
        #region 指定した日が第何週かを求める
1571
        /// <summary>
1572
        /// 指定した日が第何週かを求める
1573
        /// </summary>
1574
        /// <param name="date"></param>
1575
        /// <returns></returns>
1576
        public static int NthWeek(DateTime date)
1577
        {
1578
            int w = (int)(new DateTime(date.Year, date.Month, 1).DayOfWeek);
1579
            return (date.Day + w - 1) / 7 + 1;
1580

    
1581
        }
1582
        #endregion
1583
        #endregion
1584

    
1585
        #region フィールドバックカラー変更処理
1586
        /// <summary>
1587
        /// フィールドバックカラー変更処理(あまりカッコ良くない^^;)
1588
        /// </summary>
1589
        /// <param name="objCtrl"></param>
1590
        /// <param name="chgColor"></param>
1591
        public static void chgBackColor(object objCtrl, bool bPara)
1592
        {
1593
            if (objCtrl.GetType().Equals(typeof(TextBox)) || objCtrl.GetType().Equals(typeof(TextBoxEX)))
1594
            {
1595
                TextBox wrk = (TextBox)objCtrl;
1596
                if (bPara)
1597
                {
1598
                    wrk.BackColor = CommonDefine.s_clrNormal;
1599
                }
1600
                else
1601
                {
1602
                    wrk.BackColor = CommonDefine.s_clrError;
1603
                    wrk.Focus();
1604
                }
1605
            }
1606
            else if (objCtrl.GetType().Equals(typeof(DataGridViewTextBoxCell)))
1607
            {
1608
                DataGridViewTextBoxCell wrk = (DataGridViewTextBoxCell)objCtrl;
1609
                if (bPara)
1610
                {
1611
                    wrk.Style.BackColor = CommonDefine.s_clrNormal;
1612
                }
1613
                else
1614
                {
1615
                    wrk.Style.BackColor = CommonDefine.s_clrError;
1616
                    wrk.Selected = true;
1617
                }
1618
            }
1619
            else if (objCtrl.GetType().Equals(typeof(ComboBoxEX)))
1620
            {
1621
                ComboBox wrk = (ComboBox)objCtrl;
1622
                if (bPara)
1623
                {
1624
                    wrk.BackColor = CommonDefine.s_clrNormal;
1625
                }
1626
                else
1627
                {
1628
                    wrk.BackColor = CommonDefine.s_clrError;
1629
                    wrk.Focus();
1630
                }
1631
            }
1632
            else if (objCtrl.GetType().Equals(typeof(ComboBox)))
1633
            {
1634
                ComboBox wrk = (ComboBox)objCtrl;
1635
                if (bPara)
1636
                {
1637
                    wrk.BackColor = CommonDefine.s_clrNormal;
1638
                }
1639
                else
1640
                {
1641
                    wrk.BackColor = CommonDefine.s_clrError;
1642
                    wrk.Focus();
1643
                }
1644
            }
1645
            else if (objCtrl.GetType().Equals(typeof(ListBox)))
1646
            {
1647
                ListBox wrk = (ListBox)objCtrl;
1648
                if (bPara)
1649
                {
1650
                    wrk.BackColor = CommonDefine.s_clrNormal;
1651
                }
1652
                else
1653
                {
1654
                    wrk.BackColor = CommonDefine.s_clrError;
1655
                    wrk.Focus();
1656
                }
1657
            }
1658
            else if (objCtrl.GetType().Equals(typeof(Label)))
1659
            {
1660
                Label wrk = (Label)objCtrl;
1661
                if (bPara)
1662
                {
1663
                    wrk.BackColor = CommonDefine.s_clrNormal;
1664
                }
1665
                else
1666
                {
1667
                    wrk.BackColor = CommonDefine.s_clrError;
1668
                }
1669
            }
1670
        }
1671

    
1672
        #endregion
1673

    
1674
        #region 工事管理システム専用
1675
        #region 営業期数より工事年を取得する
1676
        /// <summary>
1677
        /// 営業期数より工事年を取得する
1678
        /// </summary>
1679
        /// <param name="Period"></param>
1680
        /// <returns></returns>
1681
        public static int BusinessPeriodToConstructionYears(int Period)
1682
        {
1683
            try
1684
            {
1685
                int iYears = 0;
1686
                // 今期との差分を計算する
1687
                int diff = CommonMotions.SystemMasterData.BusinessPeriod - Period;
1688
                // 差分を使用して日付を作成する
1689
                DateTime wrkDate = DateTime.Now.AddYears(diff);
1690
                // 年を取得する
1691
                int iwrk = CommonMotions.cnvInt(CommonMotions.SystemMasterData.ConstructionBeginningDate.Substring(0, 2).ToString());
1692
                iYears = wrkDate.FiscalYear(iwrk);
1693

    
1694
                return iYears;
1695
            }
1696
            catch (Exception ex)
1697
            {
1698
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
1699
                return 0;
1700
            }
1701
        }
1702
        #endregion
1703

    
1704
        #region 発注者名を法人格を含んだ形で連結する
1705
        /// <summary>
1706
        /// 発注者名を法人格を含んだ形で連結する
1707
        /// </summary>
1708
        /// <param name="master"></param>
1709
        /// <returns></returns>
1710
        public static string OrderersNameUnion(OrderersMaster master)
1711
        {
1712
            try
1713
            {
1714
                string strRet = string.Empty;
1715

    
1716
                if (master.CorporateStatusPoint == (int)CommonDefine.StatusNamePoint.Forword)
1717
                    strRet = master.CorporateStatusName + " " + master.OrderersName1 + " " + master.OrderersName2;
1718
                else if (master.CorporateStatusPoint == (int)CommonDefine.StatusNamePoint.Back)
1719
                    strRet = master.OrderersName1 + " " + master.CorporateStatusName + " " + master.OrderersName2;
1720
                else
1721
                    strRet = master.OrderersName1 + " " + master.OrderersName2;
1722

    
1723
                return strRet;
1724
            }
1725
            catch (Exception ex)
1726
            {
1727
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
1728
                return string.Empty;
1729
            }
1730
        }
1731
        #endregion
1732

    
1733
        #region メッセージ送信メソッド(テキストボックス背景文字表示用)
1734
        /// <summary>
1735
        /// メッセージ送信メソッド
1736
        /// </summary>
1737
        /// <param name="hWnd"></param>
1738
        /// <param name="Msg"></param>
1739
        /// <param name="wParam"></param>
1740
        /// <param name="lParam"></param>
1741
        /// <returns></returns>
1742
        [DllImport("user32.dll", CharSet = CharSet.Unicode)]
1743
        public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);
1744
        #endregion
1745

    
1746
        #region ファイルの時間を取得する
1747
        /// <summary>
1748
        /// ファイルの時間を取得する
1749
        /// </summary>
1750
        /// <param name="FilePath">ファイルパス</param>
1751
        /// <param name="flg">取得日付フラグ</param>
1752
        /// <returns></returns>
1753
        public static DateTime GetFileTimeStamp(string FilePath, char flg)
1754
        {
1755
            try
1756
            {
1757
                DateTime dtDateTime = DateTime.MinValue;
1758

    
1759
                if (flg == 'C')
1760
                {
1761
                    // 作成日時を取得する
1762
                    dtDateTime = File.GetCreationTime(@FilePath);
1763
                }
1764
                else if (flg == 'U')
1765
                {
1766
                    // 更新日時を取得する
1767
                    dtDateTime = File.GetLastWriteTime(@FilePath);
1768
                }
1769
                else if (flg == 'A')
1770
                {
1771
                    // アクセス日時を取得する
1772
                    dtDateTime = File.GetLastAccessTime(@FilePath);
1773
                }
1774

    
1775
                return dtDateTime;
1776
            }
1777
            catch (Exception ex)
1778
            {
1779
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
1780
                return DateTime.Now;
1781
            }
1782
        }
1783
        #endregion
1784

    
1785
        #region ファイルパスよりmd5のハッシュ値を返す
1786
        /// <summary>
1787
        /// ファイルパスよりmd5のハッシュ値を返す
1788
        /// </summary>
1789
        /// <param name="FilePath"></param>
1790
        /// <returns></returns>
1791
        public static string GetFileHashData(string FilePath)
1792
        {
1793
            try
1794
            {
1795
                //ファイルを開く
1796
                FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
1797

    
1798
                //MD5CryptoServiceProviderオブジェクトを作成
1799
                MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
1800

    
1801
                //ハッシュ値を計算する
1802
                byte[] bs = md5.ComputeHash(fs);
1803

    
1804
                //リソースを解放する
1805
                md5.Clear();
1806
                //ファイルを閉じる
1807
                fs.Close();
1808

    
1809
                return BitConverter.ToString(bs).ToLower().Replace("-", "");
1810

    
1811
            }
1812
            catch (Exception ex)
1813
            {
1814
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
1815
                return string.Empty;
1816
            }
1817
        }
1818
        #endregion
1819

    
1820
        #region 郵便番号より住所を検索する
1821
        /// <summary>
1822
        /// 郵便番号より住所を検索する
1823
        /// </summary>
1824
        /// <param name="ZipCode">郵便番号</param>
1825
        public static void SearchZipCode2Address(string ZipCode, ref string Address1, ref string Address2)
1826
        {
1827
            Address1 = "";                //住所
1828
            Address2 = "";                //住所
1829

    
1830
            //処理時間を計測
1831
            Stopwatch sw = new Stopwatch();
1832
            //処理時間計測開始
1833
            sw.Start();
1834

    
1835
            // 郵便番号セット
1836
            string sKey = ZipCode;
1837

    
1838
            //文字列の前後のスペースをとる
1839
            sKey = sKey.Trim(' ');
1840
            //Microsoft.VisualBasic名前空間のStrConv関数を使って、全角文字を半角文字に変換
1841
            sKey = Strings.StrConv(sKey, VbStrConv.Narrow, 0);
1842

    
1843
            // 文字列の長さを取得する
1844
            int iLength = sKey.Length;
1845
            // '-'がある場合は先頭文字目の後から '-' を検索し、見つかった位置を取得する
1846
            int iFind = 0;
1847
            if ((iFind = sKey.IndexOf('-', 0)) != 0)
1848
            {
1849
                //左から3文字+"-"文字以降をtmpZip変数に代入
1850
                sKey = sKey.Substring(0, 3) + sKey.Substring(iFind + 1);
1851
            }
1852
            try
1853
            {
1854
                //StreamReaderオブジェクトの作成
1855
                StreamReader sr = new StreamReader(@CommonDefine.s_AddressFilePath, Encoding.Default);
1856

    
1857
                //1行ずつ読み込み
1858
                string dat = "";
1859
                while ((dat = sr.ReadLine()) != null)
1860
                {
1861
                    string tmpZip = "";
1862

    
1863
                    //カンマで区切られた文字列を取得
1864
                    string[] sbuf = dat.Split(',');
1865
                    //配列の3番目が郵便番号
1866
                    tmpZip = sbuf[2].Trim('"');
1867

    
1868
                    //入力された郵便番号と比較
1869
                    if (sKey == tmpZip)
1870
                    {
1871
                        //住所を作成
1872
                        //都道府県名+市区町村名+町域名
1873
                        Address1 = sbuf[6].Trim('"') + sbuf[7].Trim('"');
1874
                        Address2 = sbuf[8].Trim('"');
1875

    
1876
                        sw.Stop();  //処理時間計測終了
1877

    
1878
                        // 処理時間をTimeSpan構造体で書式付き表示
1879
                        TimeSpan ts = sw.Elapsed;
1880
                        // 出力例:00:00:00.9984668
1881
                        logger.DebugFormat("処理時間:{0}", ts.ToString());
1882

    
1883
                        break;          //ループを抜ける
1884
                    }
1885
                    Application.DoEvents();
1886
                }
1887
                //ファイルを閉じる
1888
                sr.Close();
1889
            }
1890
            catch (Exception ex)
1891
            {
1892
                //ファイルエラーが発生した場合
1893
                MessageBox.Show(ex.Message, "ファイルエラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
1894
                //処理を抜ける
1895
                return;
1896
            }
1897
        }
1898
        #endregion
1899

    
1900
        #region 文字列より指定文字から後ろを省いて戻す
1901
        /// <summary>
1902
        /// 文字列より指定文字から後ろを省いて戻す
1903
        /// </summary>
1904
        /// <param name="Mijiretu"></param>
1905
        /// <param name="Delimiter"></param>
1906
        /// <returns></returns>
1907
        public static string ComentSucstring(string Mijiretu, string Delimiter)
1908
        {
1909
            try
1910
            {
1911
                if (Mijiretu.IndexOf(Delimiter) < 0) return Mijiretu;
1912

    
1913
                string strRet = Mijiretu.Substring(0, Mijiretu.IndexOf(Delimiter) - 1);
1914
                
1915
                return strRet;
1916
            }
1917
            catch (Exception ex)
1918
            {
1919
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
1920
                return string.Empty;
1921
            }
1922
        }
1923
        #endregion
1924

    
1925
        #region 今の時間をセパレータを除いた文字列で戻す
1926
        /// <summary>
1927
        /// 今の時間をセパレータを除いた文字列で戻す
1928
        /// </summary>
1929
        /// <returns></returns>
1930
        public static string stringNowJikan()
1931
        {
1932
            string[] wrk = DateTime.Now.ToShortDateString().Split('/');
1933

    
1934
            string[] wrk2 = DateTime.Now.ToShortTimeString().Split(':');
1935

    
1936
            return string.Format("{0}{1}{2}{3}{4}{5}"
1937
                                            , wrk[0], wrk[1], wrk[2]
1938
                                            , wrk2[0], wrk2[1], wrk2[2]);
1939
        }
1940
        #endregion
1941

    
1942
        #region 経過時間を工数で返す
1943
        /// <summary>
1944
        /// 経過時間を工数で返す
1945
        /// </summary>
1946
        /// <param name="StartDate"></param>
1947
        /// <param name="CompDate"></param>
1948
        /// <returns></returns>
1949
        public static double DiffMounthTimes(DateTime StartDate, DateTime CompDate)
1950
        {
1951
            // 差分計算
1952
            TimeSpan DiffDate = CompDate.Subtract(StartDate);
1953
            // 当日までなので+1日する
1954
            TimeSpan wrkts = new TimeSpan(1, 0, 0, 0);
1955
            DiffDate = DiffDate + wrkts;
1956
            // 工数の最小単位で割って10分の1にする
1957
            return (((double)DiffDate.Days) / CommonDefine.s_ManHourUnitDays) / 10;
1958
        }
1959
        #endregion
1960

    
1961
        #region 文字列を指定文字で指定レングス分埋める
1962
        /// <summary>
1963
        /// 文字列を指定文字で指定レングス分埋める
1964
        /// </summary>
1965
        /// <param name="OrgString"></param>
1966
        /// <param name="SetLength"></param>
1967
        /// <param name="Before"></param>
1968
        /// <returns></returns>
1969
        public static string SetBlankString(string OrgString, string SetString, int SetLength, bool Before)
1970
        {
1971
            try
1972
            {
1973
                string strRet = string.Empty;
1974
                int stringLength = OrgString.Length;
1975

    
1976
                // 文字列を埋める
1977
                for (int i = 0; i < (SetLength - stringLength); i++) strRet += SetString;
1978

    
1979
                // 前か後か
1980
                if (Before)
1981
                {
1982
                    strRet = strRet + OrgString;
1983
                }
1984
                else
1985
                {
1986
                    strRet = OrgString + strRet;
1987
                }
1988

    
1989
                return strRet;
1990
            }
1991
            catch (Exception ex)
1992
            {
1993
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
1994
                return string.Empty;
1995
            }
1996
        }
1997
        #endregion
1998

    
1999
        #region 現在年取得
2000
        /// <summary>
2001
        /// 現在年を求める
2002
        /// </summary>
2003
        /// <param name="bPeriod"></param>
2004
        /// <param name="MinCode"></param>
2005
        /// <param name="MaxCode"></param>
2006
        public static int GetBaseCounstructionYear(bool bPeriod, int years)
2007
        {
2008
            try
2009
            {
2010
                int Beginning = 0;
2011
                int diffwork = 0;
2012
                string strwork = string.Empty;
2013
                if (bPeriod)
2014
                {   // ----- 営業期ベースの時
2015

    
2016
                    // 現在期との差分を求める
2017
                    diffwork = years - CommonMotions.SystemMasterData.BusinessPeriod;
2018

    
2019
                    // 期首月を取得する
2020
                    strwork = CommonMotions.SystemMasterData.BusinessBeginningDate;
2021
                    strwork = strwork.Substring(0, strwork.IndexOf("/"));
2022
                }
2023
                else
2024
                {   // ----- 営業年度ベースの時
2025

    
2026
                    // 現在期との差分を求める
2027
                    diffwork = years - CommonMotions.SystemMasterData.ConstructionYear;
2028

    
2029
                    // 期首月を取得する
2030
                    strwork = CommonMotions.SystemMasterData.ConstructionBeginningDate;
2031
                    strwork = strwork.Substring(0, strwork.IndexOf("/"));
2032
                }
2033

    
2034
                // 期首月を数値変換
2035
                Beginning = CommonMotions.cnvInt(strwork);
2036

    
2037
                // 年数を求める
2038
                DateTime dateWork = DateTime.Now;
2039
                int nowMounth = DateTime.Now.Month;
2040
                // 期首月を境に年度を計算する
2041
                int iYear = 0;
2042
                if (nowMounth < Beginning)
2043
                    iYear = dateWork.AddYears(-1).Year;
2044
                else
2045
                    iYear = dateWork.Year;
2046

    
2047
                // ベース年を求める
2048
                return (iYear + diffwork);
2049
            }
2050
            catch (System.Exception ex)
2051
            {
2052
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
2053
                return 0;
2054
            }
2055
        }
2056
        #endregion
2057

    
2058
        #region 期首の月日を取得する
2059
        /// <summary>
2060
        /// 期首の月日を取得する
2061
        /// </summary>
2062
        /// <param name="bPeriod"></param>
2063
        /// <param name="Mounth"></param>
2064
        /// <param name="Days"></param>
2065
        public static void GetBeginningMonthDay(bool bPeriod, ref int Mounth, ref int Days)
2066
        {
2067
            try
2068
            {
2069
                string strwork = string.Empty;
2070
                string strwork2 = string.Empty;
2071
                string strwork3 = string.Empty;
2072
                if (bPeriod)
2073
                {   // 営業期
2074
                    strwork = CommonMotions.SystemMasterData.BusinessBeginningDate;
2075
                }
2076
                else
2077
                {   // 工事年度
2078
                    strwork = CommonMotions.SystemMasterData.ConstructionBeginningDate;
2079
                }
2080
                strwork2 = strwork.Substring(0, strwork.IndexOf("/"));
2081
                strwork3 = strwork.Substring(strwork.IndexOf("/") + 1, 2);
2082
                Mounth = CommonMotions.cnvInt(strwork2);
2083
                Days = CommonMotions.cnvInt(strwork3);
2084

    
2085
            }
2086
            catch (System.Exception ex)
2087
            {
2088
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
2089
            }
2090
        }
2091
        #endregion
2092

    
2093
        #region TimeSpanから年数を取得する
2094
        /// <summary>
2095
        /// TimeSpanから年数を取得する
2096
        /// </summary>
2097
        /// <param name="timespan"></param>
2098
        /// <returns></returns>
2099
        public static int GetTimeSpanYears(this TimeSpan timespan)
2100
        {
2101
            return (int)((double)timespan.Days / 365.2425);
2102
        }
2103
        #endregion
2104

    
2105
        #region TimeSpanから月数を取得する
2106
        /// <summary>
2107
        /// TimeSpanから月数を取得する
2108
        /// </summary>
2109
        /// <param name="timespan"></param>
2110
        /// <returns></returns>
2111
        public static int GetTimeSpanMonths(this TimeSpan timespan)
2112
        {
2113
            return (int)((double)timespan.Days / 30.436875);
2114
        }
2115
        #endregion
2116

    
2117
        #region 工事種別より工事詳細台帳が作成OKかどうかをチェックする
2118
        /// <summary>
2119
        /// 工事種別より工事詳細台帳が作成OKかどうかをチェックする
2120
        /// </summary>
2121
        /// <param name="ConstructionType"></param>
2122
        /// <returns></returns>
2123
        public static bool CheckCreateLedgerData(int ConstructionStatusFlg, int ConstructionType)
2124
        {
2125
            try
2126
            {
2127
                bool ExcuteFlg = false;
2128
                int[] Status = new int[] { CommonDefine.ProjectsStatus.First(x => x.Value.Equals("一般補修工事")).Key,
2129
                                            CommonDefine.ProjectsStatus.First(x => x.Value.Equals("空家補修工事")).Key,
2130
                                            CommonDefine.ProjectsStatus.First(x => x.Value.Equals("Hit'sV工事")).Key,
2131
                                            };
2132
                for (int i = 0; i < Status.Length; i++)
2133
                {
2134
                    //if (ConstructionStatusFlg == Status[i] && ConstructionType == CommonDefine.s_CreateLedgerData[i])
2135
                    if (ConstructionStatusFlg == Status[i])
2136
                    {
2137
                        ExcuteFlg = true;
2138
                        break;
2139
                    }
2140
                }
2141
                return ExcuteFlg;
2142
            }
2143
            catch (Exception ex)
2144
            {
2145
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
2146
                return false;
2147
            }
2148
        }
2149
        #endregion
2150

    
2151
        #endregion
2152

    
2153
        #region Excel向け操作メソッド
2154
        #region オブジェクト開放
2155
        /// <summary>
2156
        /// Com解放
2157
        /// </summary>
2158
        /// <param name="o"></param>
2159
        public static void ReleaseCom(ref Object objCom)
2160
        {
2161
            try
2162
            {
2163
                int i = 1;
2164
                if (objCom != null && System.Runtime.InteropServices.Marshal.IsComObject(objCom))
2165
                {
2166
                    //参照カウントが0より大きい間・・・
2167
                    do
2168
                    {
2169
                        //ランタイム呼び出し可能ラッパーの参照カウントをデクリメント
2170
                        i = System.Runtime.InteropServices.Marshal.ReleaseComObject(objCom);
2171
                    } while (i > 0);
2172
                }
2173
            }
2174
            catch (Exception ex)
2175
            {
2176
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", GetMethodName(), GetMethodName(2), ex.Message);
2177
            }
2178
            finally
2179
            {
2180
                objCom = null;
2181
            }
2182
        }
2183

    
2184
        #endregion
2185
        #endregion
2186

    
2187
        #region デバッグ用メソッド
2188
        /// <summary>
2189
        /// デバッグ用メソッド
2190
        /// </summary>
2191
        /// <param name="DebugPrint">表示文字列</param>
2192
        public static void DebugWriteLine_TimeNow(string DebugPrint)
2193
        {
2194
            string wrkPrint = DateTime.Now.ToLongTimeString() +
2195
                                ((double)DateTime.Now.Millisecond / 1000.0000).ToString("#.0000");
2196

    
2197
            Debug.WriteLine(DebugPrint + ":" + wrkPrint);
2198
        }
2199

    
2200
        public static void DebugWriteLine_DateTimeNow(string DebugPrint)
2201
        {
2202
            string wrkPrint = DateTime.Now.ToLongDateString() + " " +
2203
                                DateTime.Now.ToLongTimeString() + "." +
2204
                                DateTime.Now.Millisecond.ToString();
2205

    
2206
            Debug.WriteLine(DebugPrint + ":" + wrkPrint);
2207
        }
2208
        #endregion
2209
    }
2210
}