要件:ユーザー\ビジネスは、さまざまなテンプレートによって生成されたドキュメントに挿入されるパラグラフ(段落)のライブラリを持ちたいと考えています。 ライブラリ内のアイテムを変更すると、これらのテンプレートによって生成されたドキュメント内のこのアイテムが変更されます。 ビジネス自体は、ITの参加なしにアイテムを変更したいと考えています。 ライブラリのポイントをさまざまな場所に挿入することを考慮して、テンプレートの作成(ドキュメントの生成に応じて)を行うと、テンプレートのサイズが小さくなり、多態性になるため、テンプレートの数が減り、メンテナンスが簡素化されます。
初期データ:アイテムの操作の便宜上、ライブラリは、たとえばMS Wordで作成されたドキュメントフラグメントで構成できます。 すなわち それらの作成と編集はMS Wordで行われます。 ライブラリアイテムは、たとえばデータベースやファイルフォルダーに保存されます。 生成中にドキュメントに挿入される特定のポイントは、ジェネレーターモジュールを使用するアプリケーションの実行中に決定されます。
解決する必要がある最初のタスクは、テンプレートで指定されたテキストのインデントとライブラリから追加されたアイテムのペアリング、フォントサイズのペアリングなどのタスクです。 この問題は、ポイントのコンパイル規則、事前に選択されたフォント、およびそのサイズによって部分的に解決されます。 ジェネレータは、アイテムが挿入されるテンプレート内の場所のコンテキストに基づいて、インデント自体を決定する必要があります。 幸いなことに、そのようなコンテキストを定義することは難しくないため、このタスクの概要をここで簡単に説明します。
2番目のタスクはより複雑です。 段落の例を考えてみて、それに基づいて問題をリストします。
[1.2] , - [] , [2.3] [3.1] [" "][ ]
与えられた例では、括弧[...]に置かれたテキストの断片は、パラメータで指定されるべきです。 すなわち このライブラリ項目は、実際のドキュメントに挿入されると次のようになります。
3.1 , - .. , 4.1 4.6 " "
実行時のアプリケーションがS. Gorbunkovについて知ることができる場合 また、説明が説明であれ文であれ、アプリケーションはテンプレートのアイテム番号1.2または3.1を認識せず、認識すべきではありません。 複数のライブラリポイントがあり、それらは異なるテンプレートの異なる場所に挿入でき、セクション内のセクションの番号付けは一致しません。また、ポイントはアプリケーションに認識されない番号を持つ他のポイントを参照できます。 アプリケーションは、アイテム番号を計算するタスクをジェネレーター自体に委任する必要があります。 ただし、テンプレートとジェネレータは、独自のポイントとライブラリポイント自体の番号付けを提供し、ポイントへのリンクの数を決定する必要があります。
たとえば、あるテンプレートでは特定のライブラリアイテムがアイテム4.1および4.6を参照し、別の(または同じものでは)アイテム2.5.1のみを参照する場合があります。 さらに、アイテムの番号付けが1つのドキュメント内で実行される場合、リンクは別のドキュメント内のアイテムを参照できます。たとえば、「概要」は現在生成されているドキュメントではなく、すでに存在します。 これはすべて、ライブラリ項目をパラメータ化する必要があることを示唆しています。 ジェネレータがそのような操作を実行できない場合、その人はドキュメントを手動で変更する必要があり、その人は誤っている可能性があります。
たとえば、ライブラリアイテムのマークアップは次のようになります。
[:X] , - [ ] , [ :A][ [ :B]] [[:1=" "]|[:2= ]]
そのため、ジェネレーターモジュールがカウンターの値を知っている場合:ライブラリアイテムを挿入する前のX、[著者名]フィールドの値を知っており、「短い説明」ドキュメントに関する情報があり、その名前のグローバルカウンター(他のドキュメントから利用可能)の特定の値を見つけることができますこのドキュメントのAとB、および彼が代替案1または2を知っている場合、ライブラリー項目の最終値は入力パラメーターに従ってジェネレーターによって計算され、この項目は問題なく異なるテンプレートで使用できます。
IT従業員だけでなく、組織単位の訓練を受けた従業員もMS Wordでそのようなライブラリアイテムを変更できることを追加するだけです。 何が嬉しい。