私は、HR の決定 (たとえば、契約の終了、要求された休暇の承認など) を管理するための C# デスクトップ アプリケーションを構築しています。これらの決定により、いくつかの Office ドキュメント (契約書、リストなど) が作成されます。
エンド ユーザーは、次のことができる必要があります。
- 新しいタイプの決定を定義し、
- 対応するドキュメントのコンテンツを定義します (つまり、ボイラープレート テキストと、フィールドからのデータを挿入する必要がある位置を定義します)。
- 特定の DecisionType のドキュメントの内容を変更します。
私が考えているデザイン:
クラス Decision には、フィールド decisionType があります。クラス DecisionType にはFieldsListプロパティがあり、DecisionType が持つすべてのフィールドの名前とそれらのデータ型が一覧表示されます。
エンド ユーザーがボタンをクリックして新しい決定を入力すると、アプリケーションはユーザー フォームを生成します(私はそれを使用したことはありませんが、WinForms よりも WPF の方が適していると思います)。決定タイプ。このフォームには、そのタイプの決定で使用されるフィールドに必要なコントロールのみが含まれています。アプリケーションは、必要なすべてのデータバインディングを追加します。
エンド ユーザーは、DecisionType ごとにドキュメントのコンテンツを管理します。
- ボイラープレートテキスト、
- 永続化されたデータを挿入する必要がある位置。
これは文字列として保存され、フィールドからのデータを挿入する必要がある位置がコードで示されます (たとえば、フィールド BeginDate の場合は「/[bd]」)。
データベースは、すべての決定に対して1 つのテーブルを使用します(ただし、ほとんどの DecisionTypes はすべてのフィールドを使用しません)。
でも...もっと良い方法を知っているかもしれませんか?