画面の構成を考える
ここで、今回作成するアプリケーションの内容を考えてみましょう。売上管理画面ということで、以下の項目が必要になりそうです。
- 日付
- 売上金額
- 仕入金額(原価)
- 粗利
- 利益率
それでは、5つの項目を表示する一覧表を作成していきます。
まず、FlexGridを画面上にツールボックスから貼り付けてみましょう。
このままだと、50行×10列の設定になっているので、必要な5列だけに設定します。貼り付けたFlexGridのプロパティウィンドウを開き、「Cols」→「Count」の項目を5に変更します。
入力制限を設定する
次に、各列の入力制限の設定を行います。次に列キャプションを設定します。設定する列を選択し、スマートタグを表示することで簡単に設定できます。
また、売上金額、仕入金額は数値のみの入力とするため、書式設定を行います。ダイアログボックスを表示し、形式の種類の項目で「通貨」を選択してください。
粗利、粗利率については算出される項目なので、「編集を有効にする」のチェックを外してください。
ではここで、実行してみましょう。売上金額と仕入金額の列が数値のみしか入力できないようになっています。また、その他の列は入力ができないようになっています。
このように、簡単なプロパティの設定を行うだけで、入力規制や入力可否の設定を行うことができます。
入力内容から計算を行う
では、粗利、粗利率について計算を行ってみましょう。FlexGridにAfterEditイベントを追加します。このイベントはセルの編集後に発生します。プログラム部分は以下のようになります。
double proceeds = this.c1FlexGrid1[e.Row, 1] == null ? 0 : double.Parse(this.c1FlexGrid1[e.Row, 1].ToString()); double payments = this.c1FlexGrid1[e.Row, 2] == null ? 0 : double.Parse(this.c1FlexGrid1[e.Row, 2].ToString()); double grossMargin = proceeds - payments; this.c1FlexGrid1[e.Row, 3] = grossMargin; this.c1FlexGrid1[e.Row, 4] = proceeds != 0 ? grossMargin / proceeds : 0;
粗利金額を計算するために、売上金額、仕入金額の内容をdouble型に変換します。null値の場合は、0に変換しておきましょう。粗利は「売上金額-仕入金額」で求まります。また、「粗利率は粗利÷売上金額」になりますが、売上金額が0の場合が想定されるので、0の場合は粗利率も0に変換します。
以上で売上金額、仕入金額を入力した後に粗利と粗利率を計算できます。