Exemplo n.º 1
0
        //**************************************************************************
        //作業者一覧の更新
        //引数:
        //戻値:
        //**************************************************************************
        private bool SetOperatorName(List <string> name)
        {
            OpenOffice calc = new OpenOffice();

            //parameterファイルを開く
            calc.OpenFile(Constants.ParameterFilePath);


            // sheetを取得
            calc.SelectSheet("OperatorName");


            //作業者一覧の更新

            int i = 0;

            //行=ROW 列=COLUMN
            foreach (string item in name)
            {
                calc.cell = calc.sheet.getCellByPosition(1, 1 + i);
                calc.cell.setFormula(item);
                i++;
            }

            // Calcファイルを保存して閉じる
            if (!calc.SaveFile())
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 2
0
        //◎
        //**************************************************************************
        //日常点検がされたかどうかの判定
        //引数:
        //戻値:
        //**************************************************************************
        public static bool CheckDailyCheckData(string dataFilePath, string date)
        {
            OpenOffice calc = new OpenOffice();

            try
            {
                calc.OpenFile(dataFilePath); //当月日常点検ファイルをを開く
                calc.SelectSheet("Sheet1");  // sheetを取得

                //1行目から日付をチェックしていく
                int i = 0;
                for (; ;)
                {
                    Application.DoEvents();
                    string buff = calc.sheet.getCellByPosition(0, i).getFormula();
                    if (buff.IndexOf(date) >= 0)
                    {
                        return(true);
                    }
                    if (buff == "")
                    {
                        return(false);
                    }
                    i++;
                }
            }
            catch
            {
                return(false);
            }
            finally
            {
                calc.CloseFile();
            }
        }
Exemplo n.º 3
0
        public bool SaveDailyCheck()
        {
            OpenOffice calc = new OpenOffice();

            try
            {
                //当月点検データファイルが存在するかどうかの判定
                string date  = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss"); //dateは"yyyy年MM月dd日 HH:mm:ss"の形式で保存
                string year  = date.Substring(0, 4);
                string month = date.Substring(5, 2);

                if (!System.IO.File.Exists(Constants.日常点検FolderPath + year + "年" + month + "月.ods"))
                {
                    //既存検査データがなければ新規作成
                    File.Copy(Constants.日常点検FolderPath + "format.ods", Constants.日常点検FolderPath + year + "年" + month + "月.ods");
                }

                //当月日常点検ファイルを開く
                string filepath = Constants.日常点検FolderPath + year + "年" + month + "月.ods";
                calc.OpenFile(filepath);

                // sheetを取得
                calc.SelectSheet("Sheet1");

                int newRow = 0;
                for (; ;) //使用されているセルの最終行を検索する
                {
                    Application.DoEvents();
                    if (calc.sheet.getCellByPosition(0, newRow).getFormula() == "")
                    {
                        break;
                    }
                    newRow++;
                }

                //最終行にデータを追加
                int i = 0;
                foreach (var data in new string[] { date, "OK", State.OperatorName })
                {
                    calc.cell = calc.sheet.getCellByPosition(i, newRow);
                    calc.cell.setFormula(data);
                    i++;
                }

                // Calcファイルを上書き保存して閉じる
                if (!calc.SaveFile())
                {
                    return(false);
                }
                return(true);
            }
            catch
            {
                return(false);
            }
            finally
            {
                calc.CloseFile();//calcファイルが開いている場合のみクローズ処理する
            }
        }
Exemplo n.º 4
0
        public static int Count;//高電圧印加までの時間カウントダウン用


        //専用メソッド◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
        //**************************************************************************
        //検査スペック、作業者一覧のロード(parameter.odsファイルより読み出し)
        //引数:なし
        //戻値:bool値
        //**************************************************************************
        public static bool LoadParameter()
        {
            OpenOffice calc = new OpenOffice();

            Action <string> splashMessage = (mess) =>
            {
                if (SplashForm._form != null)
                {
                     SplashForm._form.SetLabel(mess);
                }
            };

            try
            {
                //すべての要素をクリア
                State.Parameter耐圧スペックBcr.Clear();
                State.Parameter絶縁スペックBcr.Clear();

                State.Parameter耐圧スペックQ890.Clear();
                State.Parameter絶縁スペックQ890.Clear();

                State.Parameter耐圧スペックAUR.Clear();
                State.Parameter絶縁スペックAUR.Clear();

                State.ParameterOperator.Clear();

                //parameterファイルを開く

                calc.OpenFile(Constants.ParameterFilePath);

                int i = 0;//行インデックス

                // sheetを取得
                calc.SelectSheet("SpecBcr");

                //耐電圧試験 規格値の読み出し
                splashMessage("BC-R耐電圧試験 規格値のロード・・・");
                i = 2;//3行目から読み込む
                for (; ;)
                {
                    Application.DoEvents();
                    if (calc.sheet.getCellByPosition(0, i).getFormula() == "")
                    {
                        break;
                    }
                    var spec = new 耐電圧試験スペック()
                    {
                        ステップ = calc.sheet.getCellByPosition(0, i).getFormula(),
                        CH1  = calc.sheet.getCellByPosition(1, i).getFormula(),
                        CH2  = calc.sheet.getCellByPosition(2, i).getFormula(),
                        CH3  = calc.sheet.getCellByPosition(3, i).getFormula(),
                        CH4  = calc.sheet.getCellByPosition(4, i).getFormula(),
                        CH5  = calc.sheet.getCellByPosition(5, i).getFormula(),
                        CH6  = calc.sheet.getCellByPosition(6, i).getFormula(),
                        CH7  = calc.sheet.getCellByPosition(7, i).getFormula(),
                        CH8  = calc.sheet.getCellByPosition(8, i).getFormula(),
                        印加電圧 = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()),
                        印加時間 = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()),
                        漏れ電流 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula())
                    };
                    Parameter耐圧スペックBcr.Add(spec);
                    i++;
                }

                //絶縁抵抗試験 規格値の読み出し
                splashMessage("BC-R絶縁抵抗試験 規格値のロード・・・");
                i = 10;//11行目から読み込む
                for (; ;)
                {
                    Application.DoEvents();
                    if (calc.sheet.getCellByPosition(0, i).getFormula() == "")
                    {
                        break;
                    }
                    var spec = new 絶縁抵抗試験スペック()
                    {
                        ステップ  = calc.sheet.getCellByPosition(0, i).getFormula(),
                        CH1   = calc.sheet.getCellByPosition(1, i).getFormula(),
                        CH2   = calc.sheet.getCellByPosition(2, i).getFormula(),
                        CH3   = calc.sheet.getCellByPosition(3, i).getFormula(),
                        CH4   = calc.sheet.getCellByPosition(4, i).getFormula(),
                        CH5   = calc.sheet.getCellByPosition(5, i).getFormula(),
                        CH6   = calc.sheet.getCellByPosition(6, i).getFormula(),
                        CH7   = calc.sheet.getCellByPosition(7, i).getFormula(),
                        CH8   = calc.sheet.getCellByPosition(8, i).getFormula(),
                        印加電圧  = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()),
                        印加時間  = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()),
                        絶縁抵抗値 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula())
                    };
                    Parameter絶縁スペックBcr.Add(spec);
                    i++;
                }

                // sheetを取得
                calc.SelectSheet("SpecQ890");

                //耐電圧試験 規格値の読み出し
                splashMessage("Q890耐電圧試験 規格値のロード・・・");
                i = 2;//3行目から読み込む
                for (; ;)
                {
                    Application.DoEvents();
                    if (calc.sheet.getCellByPosition(0, i).getFormula() == "")
                    {
                        break;
                    }
                    var spec = new 耐電圧試験スペック()
                    {
                        ステップ = calc.sheet.getCellByPosition(0, i).getFormula(),
                        CH1  = calc.sheet.getCellByPosition(1, i).getFormula(),
                        CH2  = calc.sheet.getCellByPosition(2, i).getFormula(),
                        CH3  = calc.sheet.getCellByPosition(3, i).getFormula(),
                        CH4  = calc.sheet.getCellByPosition(4, i).getFormula(),
                        CH5  = calc.sheet.getCellByPosition(5, i).getFormula(),
                        CH6  = calc.sheet.getCellByPosition(6, i).getFormula(),
                        CH7  = calc.sheet.getCellByPosition(7, i).getFormula(),
                        CH8  = calc.sheet.getCellByPosition(8, i).getFormula(),
                        印加電圧 = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()),
                        印加時間 = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()),
                        漏れ電流 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula())
                    };
                    Parameter耐圧スペックQ890.Add(spec);
                    i++;
                }

                //絶縁抵抗試験 規格値の読み出し
                splashMessage("Q890絶縁抵抗試験 規格値のロード・・・");
                i = 10;//11行目から読み込む
                for (; ;)
                {
                    Application.DoEvents();
                    if (calc.sheet.getCellByPosition(0, i).getFormula() == "")
                    {
                        break;
                    }
                    var spec = new 絶縁抵抗試験スペック()
                    {
                        ステップ  = calc.sheet.getCellByPosition(0, i).getFormula(),
                        CH1   = calc.sheet.getCellByPosition(1, i).getFormula(),
                        CH2   = calc.sheet.getCellByPosition(2, i).getFormula(),
                        CH3   = calc.sheet.getCellByPosition(3, i).getFormula(),
                        CH4   = calc.sheet.getCellByPosition(4, i).getFormula(),
                        CH5   = calc.sheet.getCellByPosition(5, i).getFormula(),
                        CH6   = calc.sheet.getCellByPosition(6, i).getFormula(),
                        CH7   = calc.sheet.getCellByPosition(7, i).getFormula(),
                        CH8   = calc.sheet.getCellByPosition(8, i).getFormula(),
                        印加電圧  = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()),
                        印加時間  = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()),
                        絶縁抵抗値 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula())
                    };
                    Parameter絶縁スペックQ890.Add(spec);
                    i++;
                }

                // sheetを取得
                calc.SelectSheet("SpecAur");

                //耐電圧試験 規格値の読み出し
                splashMessage("AUR耐電圧試験 規格値のロード・・・");
                i = 2;//3行目から読み込む
                for (; ;)
                {
                    Application.DoEvents();
                    if (calc.sheet.getCellByPosition(0, i).getFormula() == "")
                    {
                        break;
                    }
                    var spec = new 耐電圧試験スペック()
                    {
                        ステップ = calc.sheet.getCellByPosition(0, i).getFormula(),
                        CH1  = calc.sheet.getCellByPosition(1, i).getFormula(),
                        CH2  = calc.sheet.getCellByPosition(2, i).getFormula(),
                        CH3  = calc.sheet.getCellByPosition(3, i).getFormula(),
                        CH4  = calc.sheet.getCellByPosition(4, i).getFormula(),
                        CH5  = calc.sheet.getCellByPosition(5, i).getFormula(),
                        CH6  = calc.sheet.getCellByPosition(6, i).getFormula(),
                        CH7  = calc.sheet.getCellByPosition(7, i).getFormula(),
                        CH8  = calc.sheet.getCellByPosition(8, i).getFormula(),
                        印加電圧 = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()),
                        印加時間 = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()),
                        漏れ電流 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula())
                    };
                    Parameter耐圧スペックAUR.Add(spec);
                    i++;
                }

                //絶縁抵抗試験 規格値の読み出し
                splashMessage("AUR絶縁抵抗試験 規格値のロード・・・");
                i = 10;//11行目から読み込む
                for (; ;)
                {
                    Application.DoEvents();
                    if (calc.sheet.getCellByPosition(0, i).getFormula() == "")
                    {
                        break;
                    }
                    var spec = new 絶縁抵抗試験スペック()
                    {
                        ステップ  = calc.sheet.getCellByPosition(0, i).getFormula(),
                        CH1   = calc.sheet.getCellByPosition(1, i).getFormula(),
                        CH2   = calc.sheet.getCellByPosition(2, i).getFormula(),
                        CH3   = calc.sheet.getCellByPosition(3, i).getFormula(),
                        CH4   = calc.sheet.getCellByPosition(4, i).getFormula(),
                        CH5   = calc.sheet.getCellByPosition(5, i).getFormula(),
                        CH6   = calc.sheet.getCellByPosition(6, i).getFormula(),
                        CH7   = calc.sheet.getCellByPosition(7, i).getFormula(),
                        CH8   = calc.sheet.getCellByPosition(8, i).getFormula(),
                        印加電圧  = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()),
                        印加時間  = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()),
                        絶縁抵抗値 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula())
                    };
                    Parameter絶縁スペックAUR.Add(spec);
                    i++;
                }


                // sheetを取得 "OperatorName"
                calc.SelectSheet("OperatorName");

                //作業者一覧の読み出し
                splashMessage("作業者一覧ののロード・・・");
                i = 1;//行インデックス
                for (; ;)
                {
                    Application.DoEvents();
                    string name = calc.sheet.getCellByPosition(1, i).getFormula(); if (name == "予約" || i == 11)
                    {
                        break;
                    }
                    ParameterOperator.Add(name);
                    i++;
                }

                return(true);
            }
            catch
            {
                return(false);
            }
            finally
            {
                calc.CloseFile();
            }
        }
Exemplo n.º 5
0
        //**************************************************************************
        //試験データの保存
        //引数:
        //戻値:
        //**************************************************************************
        public static bool SaveTestData(List <string> testData)
        {
            string dataFilePath = "";

            //State.date = dt.ToString("yyyyMMdd,HH:mm:ss");
            var year  = State.date.Substring(0, 4);
            var month = State.date.Substring(4, 2);

            dataFilePath = Constants.検査データBcrFolderPath + year + "年" + month + "月.ods";

            //PC4内に当月試験データファイルがなければ新規作成する
            if (!System.IO.File.Exists(dataFilePath))
            {
                File.Copy(Constants.検査データBcrFolderPath + "format.ods", dataFilePath);
            }


            OpenOffice calc = new OpenOffice();

            try
            {
                //parameterファイルを開く
                calc.OpenFile(dataFilePath);


                // sheetを取得
                calc.SelectSheet("Sheet1");

                //使用されているセルの最終行を検索する
                int newRow = 1; //2行目からが試験データです
                for (; ;)       //使用されているセルの最終行を検索する
                {
                    Application.DoEvents();
                    if (calc.sheet.getCellByPosition(0, newRow).getFormula() == "")
                    {
                        break;
                    }
                    newRow++;
                }

                //最終行にデータを追加
                int i = 0;
                foreach (var data in testData)
                {
                    calc.cell = calc.sheet.getCellByPosition(i, newRow);
                    calc.cell.setFormula(data);
                    i++;
                }

                // Calcファイルを上書き保存して閉じる
                if (!calc.SaveFile())
                {
                    return(false);
                }
                return(true);
            }
            catch
            {
                return(false);
            }
            finally
            {
                calc.CloseFile();
            }
        }