Ejemplo n.º 1
0
        /// <summary>
        /// 有効な保存個所チェック
        /// </summary>
        private bool IsEnableStorage(string Path)
        {
            // プロパティ情報取得
            ExcelAddInSAB.SettingForm frmSet = new ExcelAddInSAB.SettingForm();

            try
            {
                string strFilePropertySecrecyLevel = string.Empty; // ファイルプロパティ情報 機密区分
                string strFilePropertyClassNo      = string.Empty; // ファイルプロパティ情報 事業所コード
                string strFilePropertyOfficeCode   = string.Empty; // ファイルプロパティ情報 事業所コード

                // プロパティのタグを取得
                frmSet.GetDocumentProperty(ref strFilePropertySecrecyLevel, ref strFilePropertyClassNo, ref strFilePropertyOfficeCode); // プロパティ情報取得

                // プロパティにSAB情報は未設定の場合は設定画面を表示
                if (frmSet.IsSecrecyInfoRegistered() == false)
                {
                    // 必須登録モードON
                    frmSet.MustRegistMode = true;

                    frmSet.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
                    frmSet.ShowDialog();

                    frmSet.GetDocumentProperty(ref strFilePropertySecrecyLevel, ref strFilePropertyClassNo, ref strFilePropertyOfficeCode); // プロパティ情報取得​
                }

                // S秘・A秘なら保存場所の確認を行う
                if ((strFilePropertySecrecyLevel == AddInsLibrary.InfomationForm.SECRECY_PROPERTY_S) ||
                    (strFilePropertySecrecyLevel == AddInsLibrary.InfomationForm.SECRECY_PROPERTY_A))
                {
                    List <string> lstTarGetSecureFolder = frmSet.clsCommonSettting.lstSecureFolder;
                    string        result = lstTarGetSecureFolder.FirstOrDefault(x => Path.Contains(x));

                    if (result == null)
                    {
                        // 正しい場所に保存されてない場合
                        return(false);
                    }
                }
            }
            catch
            {
                // 共通設定が読み込めない場合はそもそもセキュアチェックができない為チェックを行わないでスルーする
            }

            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 保存時処理
        /// </summary>
        /// <param name="Wb">Excel情報</param>
        /// <param name="SaveAsUI">保存フラグ</param>
        /// <param name="Cancel">キャンセルフラグ</param>
        void Application_WorkbookBeforeSave(Microsoft.Office.Interop.Excel.Workbook Wb, bool SaveAsUI, ref bool Cancel)
        {
            // Excel画面が表示されていない場合は設定画面を表示しない
            if (this.Application.Visible == false)
            {
                return;
            }

            // プロパティ情報取得
            ExcelAddInSAB.SettingForm frmSet = new ExcelAddInSAB.SettingForm();

            // 共通設定エラー時処理
            if (frmSet.commonFileReadCompleted == false)
            {
                return;
            }

            string strFilePropertySecrecyLevel = string.Empty; // ファイルプロパティ情報 機密区分
            string strFilePropertyClassNo      = string.Empty; // ファイルプロパティ情報 事業所コード
            string strFilePropertyOfficeCode   = string.Empty; // ファイルプロパティ情報 事業所コード

            // プロパティのタグを取得
            frmSet.GetDocumentProperty(ref strFilePropertySecrecyLevel, ref strFilePropertyClassNo, ref strFilePropertyOfficeCode); // プロパティ情報取得

            // プロパティにSAB情報は未設定の場合は設定画面を表示
            if (frmSet.IsSecrecyInfoRegistered() == false)
            {
                // 必須登録モードON
                frmSet.MustRegistMode = true;

                frmSet.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
                frmSet.ShowDialog();
            }
            else
            {
                // ファイルの事業所コードと設定値の事業所コードを比較
                if (strFilePropertyOfficeCode == frmSet.clsCommonSettting.strOfficeCode)
                {
                    // プロパティに情報を書込み
                    frmSet.SetDocumentProperty(strFilePropertySecrecyLevel);
                }
                else
                {
                    // 修正を押下された場合は、設定画面を表示する
                    frmSet.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
                    frmSet.ShowDialog();
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 保存後処理
        /// </summary>
        private void Application_WorkbookAfterSave(Excel.Workbook Wb, bool Success)
        {
            if (Success == false)
            {
                // 保存キャンセル時
                return;
            }

            string path = Path.Combine(Wb.Path, Wb.Name);

            if (string.IsNullOrEmpty(Wb.Path) != false)
            {
                // 空の場合
                return;
            }

            // Excel画面が表示されていない場合は設定画面を表示しない
            if (this.Application.Visible == false)
            {
                return;
            }

            // プロパティ情報取得
            ExcelAddInSAB.SettingForm frmSet = new ExcelAddInSAB.SettingForm();

            // 共通設定エラー時処理
            if (frmSet.commonFileReadCompleted == false)
            {
                return;
            }

            string strFilePropertySecrecyLevel = string.Empty; // ファイルプロパティ情報 機密区分
            string strFilePropertyClassNo      = string.Empty; // ファイルプロパティ情報 事業所コード
            string strFilePropertyOfficeCode   = string.Empty; // ファイルプロパティ情報 事業所コード

            // プロパティのタグを取得
            frmSet.GetDocumentProperty(ref strFilePropertySecrecyLevel, ref strFilePropertyClassNo, ref strFilePropertyOfficeCode); // プロパティ情報取得

            if (lstWbPath.Contains(path))
            {
                lstWbPath.Remove(path);
            }

            // S秘・A秘なら保存場所の確認を行う
            if ((strFilePropertySecrecyLevel == AddInsLibrary.InfomationForm.SECRECY_PROPERTY_S) ||
                (strFilePropertySecrecyLevel == AddInsLibrary.InfomationForm.SECRECY_PROPERTY_A))
            {
                List <string> lstTarGetSecureFolder = frmSet.clsCommonSettting.lstSecureFolder;


                // ファイル保存ダイアログの場合、本保存処理をキャンセルしのちのSaveCopyAsで保存する
                string result = lstTarGetSecureFolder.FirstOrDefault(x => Wb.Path.Contains(x));
                if (result == null)
                {
                    // セキュアフォルダではない
                    MessageBox.Show(AddInsLibrary.Properties.Resources.msg_warning_save_not_secure, AddInsLibrary.Properties.Resources.msgError, MessageBoxButtons.OK, MessageBoxIcon.Hand);

                    lstWbPath.Add(path);

                    ExecuteSaveAs();

                    return;
                }
            }

            // 正しくない保存先のファイルを削除する
            ClearListPath();
        }