示例#1
0
        private void SetScreenValues(FormKakeiboService.ModelKakeibo model)
        {
            Logger.WriteLine($"{MethodBase.GetCurrentMethod().Name}");

            // 残金・収入・支出を更新
            customReadOnlyTextBoxZankin.Text    = model.Zankin.ToString();
            customReadOnlyTextBoxShunyu.Text    = model.SumShunyu.ToString();
            customReadOnlyTextBoxShishutsu.Text = model.SumShishutsu.ToString();

            (gridRireki.DataSource as BindingSource).DataSource = model.RirekiTable;
            (gridShukei.DataSource as BindingSource).DataSource = model.ShukeiTable;
        }
示例#2
0
        private int Search(FormKakeiboService sv)
        {
            Logger.WriteLine(MethodBase.GetCurrentMethod().Name);

            gridRireki.DataSource = new BindingSource();
            gridShukei.DataSource = new BindingSource();

            // 新規Model生成
            FormKakeiboService.ModelKakeibo model = new FormKakeiboService.ModelKakeibo
            {
                // 履歴ファイルパス取得
                RirekiFile = sv.GetRirekiFilePath(),

                // 過去履歴取得
                RirekiFiles = sv.GetRirekiFiles()
            };

            // 履歴ファイルを読み込む
            int ret = sv.GetRireki(model);

            if (ret == 0)
            {
                // 正常
                Model = model;
            }
            else if (ret == -1)
            {
                // 履歴ファイルが無い場合
                if (DialogResult.OK == MessageBox.Show("月が変わりました。履歴ファイルを更新しますか?", "確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2))
                {
                    // 新しいファイルに変更する
                    sv.CreateNewRirekiFile(model.RirekiFile);

                    // 再読込
                    ret = sv.GetRireki(model);
                    if (ret == 0)
                    {
                        // 正常
                        Model = model;
                    }
                    else
                    {
                        // 履歴ファイル取得エラー
                        Logger.WriteLog(MethodBase.GetCurrentMethod().Name, $"履歴取得に失敗しました。", ret);
                        return(-2);
                    }
                }
                else
                {
                    // 過去の最新のファイルを使う
                    model.RirekiFile = model.RirekiFiles.OrderByDescending(x => x).First();

                    // 再読込
                    ret = sv.GetRireki(model);
                    if (ret == 0)
                    {
                        // 正常
                        Model = model;
                    }
                    else
                    {
                        // 履歴ファイル取得エラー
                        Logger.WriteLog(MethodBase.GetCurrentMethod().Name, $"履歴取得に失敗しました。", ret);
                        return(-3);
                    }
                }
            }
            else
            {
                // 履歴ファイル取得エラー
                Logger.WriteLog(MethodBase.GetCurrentMethod().Name, $"履歴取得に失敗しました。", ret);
                return(-1);
            }

            // コンボボックスの生成
            SortedDictionary <string, string> comboSource = new SortedDictionary <string, string>();

            foreach (string rirekiFile in Model.RirekiFiles)
            {
                string filename = Path.GetFileNameWithoutExtension(rirekiFile);
                if (!rirekiFile.Equals(Model.RirekiFile))
                {
                    comboSource.Add(filename, rirekiFile);
                }
            }
            if (comboSource.Count > 0)
            {
                // 対象が1件以上の場合バインド
                cmbRirekiFiles.DataSource    = new BindingSource(comboSource.Reverse(), null);
                cmbRirekiFiles.DisplayMember = "Key";
                cmbRirekiFiles.ValueMember   = "Value";

                if (cmbRirekiFiles.Items.Count > 0)
                {
                    cmbRirekiFiles.SelectedIndex = 0;
                }
            }

            // 検索結果を画面に設定
            SetScreenValues(Model);
            // 残金を編集不可にする
            gridRireki.Columns["残金"].ReadOnly = true;

            return(0);
        }