Ejemplo n.º 1
0
        //ページIDコンボをTSVからセット
        private void set_pageID_combo_from_tsv()
        {
            //デリゲートインスタンス
            _write_log           __write_log           = write_log;
            _set_projectID_combo __set_projectID_combo = set_projectID_combo;
            _set_pageID_combo    __set_pageID_combo    = set_pageID_combo;

            string filepath = getFileNameFromDialog();

            if (filepath == "")
            {
                return;
            }

            string filename_str = Path.GetFileNameWithoutExtension(filepath);
            List <List <string> > projectData = new List <List <string> >
            {
                new List <string> {
                    "T0", filename_str
                }
            };

            List <List <string> > pageIDData = new List <List <string> >();

            pageIDData = getTextLineList(filepath);
            this.Invoke(__set_projectID_combo, projectData);
            this.Invoke(__set_pageID_combo, pageIDData);
            this.Invoke(__write_log, "ページIDコンボが設定完了しました。(" + DateUtil.get_logtime() + ")");
            this.Invoke(__write_log, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
        }
Ejemplo n.º 2
0
        //罫線自動描画
        private async Task tableBorderedAsync()
        {
            await Task.Run(() =>
            {
                //デリゲートインスタンス
                _write_log __write_log = write_log;

                //最初のワークシートをアクティブにする
                initCurrentWorksheet(1);

                main_form.Invoke(__write_log, "罫線描画を開始します....");

                int r  = getStartRow();
                int rx = getEndRow();
                int cx = getEndCol();

                for (int i = r; i <= rx; i++)
                {
                    main_form.Invoke(__write_log, i + "行目の処理....");
                    for (int j = 1; j <= cx; j++)
                    {
                        _currentWs.Cell(i, j).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                        _currentWs.Cell(i, j).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                        _currentWs.Cell(i, j).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                        _currentWs.Cell(i, j).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                        _currentWs.Cell(i, j).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                    }
                }

                main_form.Invoke(__write_log, "罫線描画の処理が完了しました....");
            });
        }
Ejemplo n.º 3
0
        //作業割り当て表Excelファイル出力
        public void save_asignlist_xlsx_as(List <List <string> > data, List <string> categories, string filename)
        {
            _write_log __write_log = write_log;

            try
            {
                using (var wb = new ClosedXML.Excel.XLWorkbook())
                {
                    var ws = wb.Worksheets.Add("Sheet1");

                    //行のループ
                    for (int i = 0; i < data.Count; i++)
                    {
                        List <string> row = (List <string>)data[i];

                        //列のループ
                        for (int j = 0; j < row.Count; j++)
                        {
                            string col = (string)row[j];
                            ws.Cell(i + 1, j + 1).SetValue <string>(fetch_overflow_characters(col));
                            ws.Cell(i + 1, j + 1).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                            ws.Cell(i + 1, j + 1).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                            ws.Cell(i + 1, j + 1).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                            ws.Cell(i + 1, j + 1).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                            ws.Cell(i + 1, j + 1).Style.Font.FontName       = "MS Pゴシック";
                            ws.Cell(i + 1, j + 1).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                        }

                        if (i == 0)
                        {
                            int maxcol = row.Count;
                            for (int z = 0; z < categories.Count; z++)
                            {
                                ws.Cell(i + 1, maxcol + (z + 1)).SetValue <string>((string)categories[z]);
                                ws.Cell(i + 1, maxcol + (z + 1)).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                                ws.Cell(i + 1, maxcol + (z + 1)).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                                ws.Cell(i + 1, maxcol + (z + 1)).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                                ws.Cell(i + 1, maxcol + (z + 1)).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                                ws.Cell(i + 1, maxcol + (z + 1)).Style.Font.FontName       = "MS Pゴシック";
                                ws.Cell(i + 1, maxcol + (z + 1)).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                                ws.Cell(i + 1, maxcol + (z + 1)).Style.Alignment.TopToBottom = true;
                            }
                        }
                    }

                    wb.SaveAs(filename);
                    main_form.Invoke(__write_log, "保存に成功しました。(" + filename + ")");
                }
            }
            catch (Exception ex)
            {
                main_form.Invoke(__write_log, "【エラー】" + ex.Message);
                return;
            }
        }
Ejemplo n.º 4
0
 //検査メインページに移動
 public void browse_sv_mainpage()
 {
     //basic認証の処理
     if (_basic_auth_flag.Equals("yes") && _basic_authenicated == false)
     {
         _write_log __write_log = write_log;
         main_form.Invoke(__write_log, "【お知らせ】基本認証オプションが有効化されています。ログインアラートで認証してください。");
         _basic_authenicated = true;
     }
     _wd.Navigate().GoToUrl(sv_mainpage_url_base + _projectID);
 }
Ejemplo n.º 5
0
        //ページIDコンボをセット
        private void set_pageID_combo()
        {
            Task.Run(() =>
            {
                //デリゲートインスタンス
                _write_log __write_log       = write_log;
                _ldr_activate __ldr_activate = ldr_activate;
                _task_cancel __task_cancel   = task_cancel;
                _get_workDir __get_workDir   = get_workDir;
                _is_basic_auth_condition __is_basic_auth_condition = is_basic_auth_condition;
                _get_projectID __get_projectID       = get_projectID;
                _set_pageID_combo __set_pageID_combo = set_pageID_combo;

                //Basic認証のON時の条件判定
                if (!(Boolean)this.Invoke(__is_basic_auth_condition))
                {
                    return;
                }

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(__ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(__write_log, "LibraPlusにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                string cr     = (string)this.Invoke(__get_projectID);
                ldr.projectID = cr;

                this.Invoke(__write_log, "進捗管理画面ページにアクセスしています。(" + DateUtil.get_logtime() + ")");
                ldr.init_status_page();
                List <List <string> > data = ldr.get_page_list_data_from_status_page();

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(__task_cancel))
                {
                    return;
                }

                this.Invoke(__set_pageID_combo, data);

                this.Invoke(__write_log, "ページIDコンボが設定完了しました。(" + DateUtil.get_logtime() + ")");

                ldr.logout();
                this.Invoke(__write_log, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
Ejemplo n.º 6
0
        //ページのスクリーンショットの一覧取得
        private void do_pageIDs_screenshot()
        {
            Task.Run(() =>
            {
                //デリゲートインスタンス
                _get_workDir __get_workDir             = get_workDir;
                _get_projectID_row __get_projectID_row = get_projectID_row;
                _get_pageID_rows __get_page_rows       = get_pageID_rows;
                _ldr_activate __ldr_activate           = ldr_activate;
                _write_log __write_log             = write_log;
                _task_cancel_tsv __task_cancel_tsv = task_cancel_tsv;


                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(__ldr_activate))
                    {
                        return;
                    }
                }

                this.Invoke(__write_log, "処理を開始します。(" + DateUtil.get_logtime() + ")");

                //保存先ディレクトリ生成
                string project_dir = (string)this.Invoke(__get_projectID_row);
                project_dir        = project_dir.Replace("/", "");
                string save_path   = (string)this.Invoke(__get_workDir) + project_dir + @"\";
                if (!Directory.Exists(save_path))
                {
                    Directory.CreateDirectory(save_path);
                }

                List <List <string> > page_rows = (List <List <string> >) this.Invoke(__get_page_rows);

                foreach (var page_row in page_rows)
                {
                    string pageID  = page_row[0];
                    string pageURL = page_row[1];
                    this.Invoke(__write_log, pageID + " を処理しています。(" + DateUtil.get_logtime() + ")");
                    ldr.wd.Navigate().GoToUrl(pageURL);
                    DateUtil.app_sleep(shortWait);
                    ldr.fullpage_screenshot_as(save_path + pageID + "." + "png");

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(__task_cancel_tsv))
                    {
                        return;
                    }
                }

                this.Invoke(__write_log, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
Ejemplo n.º 7
0
        //環境設定パラメータチェック
        private Boolean checkSettings()
        {
            //デリゲートインスタンス
            _write_log __write_log = write_log;

            Boolean       flag    = true;
            StringBuilder sb      = new StringBuilder();
            string        err_txt = "";

            if (uid == "")
            {
                flag = false;
                sb.Append("・ユーザIDが未設定です。\r\n");
            }
            if (pswd == "")
            {
                flag = false;
                sb.Append("・パスワードが未設定です。\r\n");
            }
            if (headless == "")
            {
                flag = false;
                sb.Append("・ヘッドレス起動の有無効が未設定です。\r\n");
            }
            if (systemWait < 60)
            {
                flag = false;
                sb.Append("・システム待時間が60秒未満です。\r\n");
            }
            if (shortWait < 3)
            {
                flag = false;
                sb.Append("・待時間【小】が3秒未満です。\r\n");
            }
            if (midWait < 3)
            {
                flag = false;
                sb.Append("・待時間【中】が3秒未満です。\r\n");
            }
            if (longWait < 3)
            {
                flag = false;
                sb.Append("・待時間【大】が3秒未満です。\r\n");
            }

            err_txt = sb.ToString();
            if (flag == false)
            {
                err_txt = "【エラー】ブラウザドライバの起動要件を満たしません。\r\n考えられる理由は、初回起動である、あるいは環境設定の不具合です。環境設定をご確認ください。\r\n" + err_txt;
                this.Invoke(__write_log, err_txt);
            }
            return(flag);
        }
Ejemplo n.º 8
0
        //配列をテキストファイルとして書き込み
        public void write_text_data(List <string> data, string filename)
        {
            _write_log   __write_log = write_log;
            Encoding     enc         = new System.Text.UTF8Encoding(false);
            StreamWriter sw          = new StreamWriter(filename, false, enc);

            for (int i = 0; i < data.Count; i++)
            {
                string row = (string)data[i] + "\r\n";
                sw.Write(row);
            }
            sw.Close();
            main_form.Invoke(__write_log, "保存に成功しました。(" + filename + ")");
        }
Ejemplo n.º 9
0
        //作業割り当て表(検査項目詳細版)Excelファイル出力
        public void save_asignlist_by_details_xlsx(List <List <string> > pages, List <string> categories, List <List <object> > data, string filename)
        {
            _write_log __write_log = write_log;

            try
            {
                using (var wb = new ClosedXML.Excel.XLWorkbook())
                {
                    var ws = wb.Worksheets.Add("Sheet1");

                    //ヘッダーセルの処理
                    ws.Rows(1, 1).Height = 111.5;
                    ws.Cell(1, 1).SetValue <string>("PID");
                    //セル結合
                    ws.Range(ws.Cell(1, 1), ws.Cell(2, 1)).Merge(false);
                    ws.Range(ws.Cell(1, 1), ws.Cell(2, 1)).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                    ws.Range(ws.Cell(1, 1), ws.Cell(2, 1)).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                    ws.Range(ws.Cell(1, 1), ws.Cell(2, 1)).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                    ws.Range(ws.Cell(1, 1), ws.Cell(2, 1)).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                    ws.Range(ws.Cell(1, 1), ws.Cell(2, 1)).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                    ws.Range(ws.Cell(1, 1), ws.Cell(2, 1)).Style.Fill.BackgroundColor = XLColor.FromArgb(0xFFFFCC);
                    ws.Range(ws.Cell(1, 1), ws.Cell(2, 1)).Style.Font.FontName        = "MS Pゴシック";

                    ws.Cell(1, 2).SetValue <string>("URL");
                    ws.Cell(1, 2).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                    ws.Cell(1, 2).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                    ws.Cell(1, 2).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                    ws.Cell(1, 2).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                    ws.Cell(1, 2).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                    //セル結合
                    ws.Range(ws.Cell(1, 2), ws.Cell(2, 2)).Merge(false);
                    ws.Range(ws.Cell(1, 2), ws.Cell(2, 2)).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                    ws.Range(ws.Cell(1, 2), ws.Cell(2, 2)).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                    ws.Range(ws.Cell(1, 2), ws.Cell(2, 2)).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                    ws.Range(ws.Cell(1, 2), ws.Cell(2, 2)).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                    ws.Range(ws.Cell(1, 2), ws.Cell(2, 2)).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                    ws.Range(ws.Cell(1, 2), ws.Cell(2, 2)).Style.Fill.BackgroundColor = XLColor.FromArgb(0xFFFFCC);
                    ws.Range(ws.Cell(1, 2), ws.Cell(2, 2)).Style.Font.FontName        = "MS Pゴシック";

                    //列カウンタ
                    int total_cnt = 3;
                    //偶数奇数カウンタ
                    int mod_cnt = 1;

                    //カテゴリのループ
                    for (int hx = 0; hx < categories.Count; hx++)
                    {
                        //結合範囲セル(カテゴリ名のセル)のRangeリスト
                        List <IXLCell> merge_range = new List <IXLCell>();

                        //検査項目のループ
                        for (int cx = 0; cx < data.Count; cx++)
                        {
                            //最初はカテゴリ名を入力
                            if (cx == 0)
                            {
                                //セル結合開始セルRangeを追加
                                merge_range.Add(ws.Column(total_cnt).Cell(1));

                                ws.Cell(1, total_cnt).SetValue <string>(categories[hx]);
                                ws.Cell(1, total_cnt).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                                ws.Cell(1, total_cnt).Style.Font.FontName         = "MS Pゴシック";
                                ws.Cell(1, total_cnt).Style.Alignment.TopToBottom = true;

                                //カテゴリの順番偶数・奇数で色分け
                                if ((mod_cnt % 2) == 0)
                                {
                                    ws.Cell(1, total_cnt).Style.Fill.BackgroundColor = XLColor.FromArgb(0xCCFF66);
                                }
                                else
                                {
                                    ws.Cell(1, total_cnt).Style.Fill.BackgroundColor = XLColor.FromArgb(0xCCECFF);
                                }
                            }

                            //カテゴリ名の入力セルの下の行に項番とコメント入力
                            var           row = data[cx];
                            string        v0  = (string)row[0];
                            double        v1  = double.Parse((string)row[1]);
                            string        v2  = (string)row[2];
                            string        v3  = "";
                            int           inx = 0;
                            List <string> gs  = (List <string>)row[3];
                            foreach (string tx in gs)
                            {
                                v3 += tx;
                                if (inx != (gs.Count - 1))
                                {
                                    v3 += "\r\n";
                                }
                                inx++;
                            }

                            //カレントカテゴリと一致する時だけ入力
                            if (v0 == categories[hx])
                            {
                                //数値はValueメソッドで入力
                                ws.Cell(2, total_cnt).Value = v1;
                                ws.Cell(2, total_cnt).Comment.AddText(v2 + v3);
                                ws.Cell(2, total_cnt).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                                ws.Cell(2, total_cnt).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                                ws.Cell(2, total_cnt).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                                ws.Cell(2, total_cnt).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                                ws.Cell(2, total_cnt).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center);
                                ws.Cell(2, total_cnt).Style.Font.FontName = "MS Pゴシック";
                                ws.Column(total_cnt).Width = 4;

                                //カテゴリの順番偶数・奇数で色分け
                                if ((mod_cnt % 2) == 0)
                                {
                                    ws.Cell(2, total_cnt).Style.Fill.BackgroundColor = XLColor.FromArgb(0xCCFF66);
                                }
                                else
                                {
                                    ws.Cell(2, total_cnt).Style.Fill.BackgroundColor = XLColor.FromArgb(0xCCECFF);
                                }
                                total_cnt++;
                            }
                        }

                        //セル結合終了セルRangeを追加
                        merge_range.Add(ws.Column(total_cnt - 1).Cell(1));
                        //セル結合
                        ws.Range(merge_range.First <IXLCell>(), merge_range.Last <IXLCell>()).Merge(false);
                        ws.Range(merge_range.First <IXLCell>(), merge_range.Last <IXLCell>()).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                        ws.Range(merge_range.First <IXLCell>(), merge_range.Last <IXLCell>()).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                        ws.Range(merge_range.First <IXLCell>(), merge_range.Last <IXLCell>()).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                        ws.Range(merge_range.First <IXLCell>(), merge_range.Last <IXLCell>()).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                        mod_cnt++;
                    }

                    //データセルの処理
                    //行のループ
                    for (int i = 0; i < pages.Count; i++)
                    {
                        List <string> row = (List <string>)pages[i];

                        //列のループ
                        for (int j = 0; j < row.Count; j++)
                        {
                            string col = (string)row[j];
                            ws.Cell(i + 3, j + 1).SetValue <string>(col);
                            ws.Cell(i + 3, j + 1).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                            ws.Cell(i + 3, j + 1).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                            ws.Cell(i + 3, j + 1).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                            ws.Cell(i + 3, j + 1).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                            ws.Cell(i + 3, j + 1).Style.Font.FontName       = "MS Pゴシック";
                            ws.Cell(i + 3, j + 1).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                        }
                    }

                    //残りのセルの罫線処理
                    for (int i = 0; i < pages.Count; i++)
                    {
                        for (int z = 3; z < total_cnt; z++)
                        {
                            ws.Cell(i + 3, z).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                            ws.Cell(i + 3, z).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                            ws.Cell(i + 3, z).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                            ws.Cell(i + 3, z).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                            ws.Cell(i + 3, z).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center);
                            ws.Cell(i + 3, z).Style.Font.FontName = "MS Pゴシック";
                        }
                    }

                    wb.SaveAs(filename);
                    main_form.Invoke(__write_log, "保存に成功しました。(" + filename + ")");
                }
            }
            catch (Exception ex)
            {
                main_form.Invoke(__write_log, "【エラー】" + ex.Message);
                return;
            }
        }
Ejemplo n.º 10
0
        //カテゴリ別検査項目一覧表Excelファイル作成
        public void save_category_by_details_xlsx(List <List <object> > data, string filename)
        {
            _write_log __write_log = write_log;

            try
            {
                using (var wb = new ClosedXML.Excel.XLWorkbook())
                {
                    var ws = wb.Worksheets.Add("検査項目一覧");

                    //ヘッダー行
                    ws.Cell(1, 1).SetValue <string>("カテゴリ");
                    ws.Cell(1, 2).SetValue <string>("項番");
                    ws.Cell(1, 3).SetValue <string>("検査内容");
                    ws.Cell(1, 4).SetValue <string>("レベル/達成基準/実装番号");
                    double[] col_wd = { 15, 5, 91.9, 68 };
                    for (int cx = 1; cx <= 4; cx++)
                    {
                        ws.Cell(1, cx).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                        ws.Cell(1, cx).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                        ws.Cell(1, cx).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                        ws.Cell(1, cx).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                        ws.Cell(1, cx).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                        ws.Cell(1, cx).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center);
                        ws.Cell(1, cx).Style.Font.Bold = true;
                        ws.Column(cx).Width            = col_wd[cx - 1];
                    }

                    for (int i = 0; i < data.Count; i++)
                    {
                        var           row = data[i];
                        string        v0  = (string)row[0];
                        string        v1  = (string)row[1];
                        string        v2  = (string)row[2];
                        string        v3  = "";
                        List <string> gs  = (List <string>)row[3];
                        int           nx  = 0;

                        ws.Cell(i + 2, 1).SetValue <string>(v0);
                        ws.Cell(i + 2, 1).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 1).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 1).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 1).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 1).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);

                        ws.Cell(i + 2, 2).SetValue <string>(v1);
                        ws.Cell(i + 2, 2).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 2).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 2).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 2).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 2).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);

                        ws.Cell(i + 2, 3).SetValue <string>(v2);
                        ws.Cell(i + 2, 3).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 3).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 3).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 3).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 3).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                        ws.Cell(i + 2, 3).Style.Alignment.WrapText = true;
                        foreach (string tx in gs)
                        {
                            v3 += tx;
                            if (nx != (gs.Count - 1))
                            {
                                v3 += "\r\n";
                            }
                            nx++;
                        }
                        ws.Cell(i + 2, 4).SetValue <string>(v3);
                        ws.Cell(i + 2, 4).Style.Border.TopBorder    = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 4).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 4).Style.Border.LeftBorder   = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 4).Style.Border.RightBorder  = XLBorderStyleValues.Thin;
                        ws.Cell(i + 2, 4).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top);
                        ws.Cell(i + 2, 4).Style.Alignment.WrapText = true;
                    }

                    wb.SaveAs(filename);
                    main_form.Invoke(__write_log, "保存に成功しました。(" + filename + ")");
                }
            }
            catch (Exception ex)
            {
                main_form.Invoke(__write_log, "【エラー】" + ex.Message);
                return;
            }
        }
Ejemplo n.º 11
0
        //LibraPlusの検査結果一覧表を書式設定する(LibraPlus全検査結果レポートフォーマット)
        public async Task lpReportFormat()
        {
            await Task.Run(() =>
            {
                //デリゲートインスタンス
                _write_log __write_log = write_log;

                //罫線描画(処理完了まで待機)
                tableBorderedAsync().Wait();

                //最初のワークシートをアクティブにする
                initCurrentWorksheet(1);

                main_form.Invoke(__write_log, "LibraPlus全検査結果レポートのフォーマット処理を開始します....");

                int r  = getStartRow();
                int rx = getEndRow();
                int cx = getEndCol();

                int sv_index = 6;

                for (int i = r; i <= rx; i++)
                {
                    main_form.Invoke(__write_log, i + "行目の処理....");

                    for (int j = 1; j <= cx; j++)
                    {
                        //header cell
                        if (i == 1)
                        {
                            _currentWs.Cell(i, j).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center);
                            _currentWs.Cell(i, j).Style.Font.Bold = true;

                            //列幅指定
                            double[] colWidthArr = { 8.4, 8.4, 13.9, 45.6, 24, 8.4, 6.1, 45.2, 45.2, 45.2, 8.4, 8.4 };
                            int wcnt             = 1;
                            foreach (double wc in colWidthArr)
                            {
                                _currentWs.Column(wcnt).Width = wc;
                                wcnt++;
                            }
                        }
                        //data cell
                        else
                        {
                            string sv_val = (string)_currentWs.Cell(i, sv_index).Value;

                            if (sv_val == "はい")
                            {
                                _currentWs.Cell(i, j).Style.Fill.BackgroundColor = XLColor.FromArgb(0x89FFFF);
                            }
                            else if (sv_val == "はい(注記)")
                            {
                                _currentWs.Cell(i, j).Style.Fill.BackgroundColor = XLColor.FromArgb(0x99FF99);
                            }
                            else if (sv_val == "いいえ")
                            {
                                _currentWs.Cell(i, j).Style.Fill.BackgroundColor = XLColor.FromArgb(0xFFB3B3);
                            }
                            else if (sv_val == "なし")
                            {
                                _currentWs.Cell(i, j).Style.Fill.BackgroundColor = XLColor.FromArgb(0xDDDDDD);
                            }
                        }
                    }
                }

                main_form.Invoke(__write_log, "LibraPlus全検査結果レポートのフォーマット処理が完了しました....");

                //保存の段取り
                string new_filename = Path.GetFileNameWithoutExtension(_currentWbPath);
                string ext          = Path.GetExtension(_currentWbPath);
                string new_savepath = _saveDirPath + new_filename + "_" + DateUtil.fetch_filename_logtime() + ext;

                //別名保存
                _currentWb.SaveAs(new_savepath);
                main_form.Invoke(__write_log, "処理が完了しました。出力ファイル:" + new_savepath);
            });
        }
Ejemplo n.º 12
0
        //カテゴリ別検査項目一覧表出力
        private async Task do_create_category_by_details()
        {
            await Task.Run(() =>
            {
                //デリゲートインスタンス
                _write_log __write_log       = write_log;
                _ldr_activate __ldr_activate = ldr_activate;
                _task_cancel __task_cancel   = task_cancel;
                _is_basic_auth_condition __is_basic_auth_condition = is_basic_auth_condition;
                _is_pageID_selected __is_pageID_selected           = is_pageID_selected;
                _get_workDir __get_workDir       = get_workDir;
                _get_projectID __get_projectID   = get_projectID;
                _get_pageID_rows __get_page_rows = get_pageID_rows;

                //Basic認証のON時の条件判定
                if (!(Boolean)this.Invoke(__is_basic_auth_condition))
                {
                    return;
                }

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(__ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(__write_log, "LibraPlusにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                string projectID = (string)this.Invoke(__get_projectID);
                ldr.projectID    = projectID;


                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(__task_cancel))
                {
                    return;
                }

                this.Invoke(__write_log, "検査メイン画面に移動します。(" + DateUtil.get_logtime() + ")");
                ldr.browse_sv_mainpage();
                DateUtil.app_sleep(longWait);

                string site_name = ldr.get_site_name();

                this.Invoke(__write_log, "検査カテゴリの取得を開始します。(" + DateUtil.get_logtime() + ")");
                List <string> categories = ldr.get_category_list_data_from_svpage();

                List <List <object> > rep_data = new List <List <object> >();

                foreach (string category in categories)
                {
                    this.Invoke(__write_log, "検査カテゴリ:" + category + "の処理をしています...(" + DateUtil.get_logtime() + ")");
                    ldr.select_category(category);
                    DateUtil.app_sleep(midWait);
                    ldr.select_view("検査項目一覧");
                    DateUtil.app_sleep(midWait);
                    List <List <object> > data = ldr.get_survey_details();
                    rep_data.AddRange(data);
                }

                this.Invoke(__write_log, "Excel書き出しを開始します。(" + DateUtil.get_logtime() + ")");

                string save_dir      = (string)this.Invoke(__get_workDir);
                string save_filename = save_dir + projectID + "_" + site_name + " 検査項目一覧.xlsx";

                ExcelUtil eu = new ExcelUtil();
                eu.save_category_by_details_xlsx(rep_data, save_filename);


                ldr.logout();
                this.Invoke(__write_log, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
Ejemplo n.º 13
0
        //サイト一覧テーブルをExcelファイルで出力
        private void create_site_info_book()
        {
            Task.Run(() =>
            {
                //デリゲートインスタンス
                _write_log __write_log       = write_log;
                _ldr_activate __ldr_activate = ldr_activate;
                _task_cancel __task_cancel   = task_cancel;
                _get_workDir __get_workDir   = get_workDir;
                _is_basic_auth_condition __is_basic_auth_condition = is_basic_auth_condition;

                //Basic認証のON時の条件判定
                if (!(Boolean)this.Invoke(__is_basic_auth_condition))
                {
                    return;
                }

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(__ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(__write_log, "LibraPlusにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                List <List <string> > data = new List <List <string> >();

                //検査終了サイト一覧を取得
                this.Invoke(__write_log, "検査中サイト一覧を取得しています。(" + DateUtil.get_logtime() + ")");
                ldr.working_site_page();
                DateUtil.app_sleep(shortWait);
                data.AddRange(ldr.get_site_info_data());

                this.Invoke(__write_log, "検査終了サイト一覧を取得しています。(" + DateUtil.get_logtime() + ")");
                ldr.completed_site_page();
                DateUtil.app_sleep(shortWait);
                data.AddRange(ldr.get_site_info_data());


                List <string> head_row = new List <string>()
                {
                    "ID",
                    "サイト名/備考",
                    "検査機関",
                    "グループ",
                    "検査開始日",
                    "検査終了日",
                    "URL数",
                    "進捗"
                };
                data.Insert(0, head_row);

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(__task_cancel))
                {
                    return;
                }

                string save_dir      = (string)this.Invoke(__get_workDir);
                string save_filename = save_dir + "LibraPlus検査サイト一覧_" + DateUtil.fetch_filename_logtime() + ".xlsx";
                ExcelUtil eu         = new ExcelUtil();
                eu.save_xlsx_as(data, save_filename);

                ldr.logout();
                this.Invoke(__write_log, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
Ejemplo n.º 14
0
        //プロジェクトIDコンボをセット
        private void set_projectID_combo()
        {
            Task.Run(() =>
            {
                //デリゲートインスタンス
                _write_log __write_log       = write_log;
                _ldr_activate __ldr_activate = ldr_activate;
                _task_cancel __task_cancel   = task_cancel;
                _is_basic_auth_condition __is_basic_auth_condition = is_basic_auth_condition;
                _set_projectID_combo __set_projectID_combo         = set_projectID_combo;

                //Basic認証のON時の条件判定
                if (!(Boolean)this.Invoke(__is_basic_auth_condition))
                {
                    return;
                }

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(__ldr_activate))
                    {
                        return;
                    }
                }
                ldr.home();
                this.Invoke(__write_log, "LibraPlusにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);


                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(__task_cancel))
                {
                    return;
                }

                List <List <string> > data = new List <List <string> >();

                this.Invoke(__write_log, "検査中サイト一覧を取得しています。(" + DateUtil.get_logtime() + ")");
                ldr.working_site_page();
                DateUtil.app_sleep(shortWait);
                data.AddRange(ldr.get_site_list());

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(__task_cancel))
                {
                    return;
                }

                this.Invoke(__write_log, "検査終了サイト一覧を取得しています。(" + DateUtil.get_logtime() + ")");
                ldr.completed_site_page();
                DateUtil.app_sleep(shortWait);
                data.AddRange(ldr.get_site_list());

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(__task_cancel))
                {
                    return;
                }

                this.Invoke(__set_projectID_combo, data);
                this.Invoke(__write_log, "サイト名コンボが設定完了しました。(" + DateUtil.get_logtime() + ")");
                ldr.logout();
                this.Invoke(__write_log, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
Ejemplo n.º 15
0
        //PID+URLのExcelファイル出力
        private void do_create_pid_url_list_xlsx()
        {
            Task.Run(() =>
            {
                //デリゲートインスタンス
                _write_log __write_log       = write_log;
                _ldr_activate __ldr_activate = ldr_activate;
                _task_cancel __task_cancel   = task_cancel;
                _is_basic_auth_condition __is_basic_auth_condition = is_basic_auth_condition;
                _is_pageID_selected __is_pageID_selected           = is_pageID_selected;
                _get_workDir __get_workDir       = get_workDir;
                _get_projectID __get_projectID   = get_projectID;
                _get_pageID_rows __get_page_rows = get_pageID_rows;
                _get_site_name_by_projectIDCombo __get_site_name_by_projectIDCombo = get_site_name_by_projectIDCombo;

                //Basic認証のON時の条件判定
                if (!(Boolean)this.Invoke(__is_basic_auth_condition))
                {
                    return;
                }

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(__ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(__write_log, "LibraPlusにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                string projectID = (string)this.Invoke(__get_projectID);
                ldr.projectID    = projectID;

                List <List <string> > data = new List <List <string> >();
                string site_name           = "";

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(__task_cancel))
                {
                    return;
                }

                this.Invoke(__write_log, "進捗管理画面ページにアクセスしています。(" + DateUtil.get_logtime() + ")");
                ldr.init_status_page();
                data      = ldr.get_page_list_data_from_status_page();
                site_name = (string)this.Invoke(__get_site_name_by_projectIDCombo);

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(__task_cancel))
                {
                    return;
                }

                //ヘッダー行の処理
                List <string> head_row = new List <string>()
                {
                    "PID", "URL"
                };
                data.Insert(0, head_row);

                string save_dir      = (string)this.Invoke(__get_workDir);
                string save_filename = save_dir + projectID + "_" + site_name + " URL.xlsx";

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(__task_cancel))
                {
                    return;
                }

                ExcelUtil eu = new ExcelUtil();
                eu.save_xlsx_as(data, save_filename);

                ldr.logout();
                this.Invoke(__write_log, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }