1. 説明
フリーフォームの例からわかるように、フォームを作成するうえでもっとも重要なステップは、データベースの表中のフィールドに保存する値を紐付けることです。テンプレート>レポートフォームプロパティの設定で管理することができます。
フィールドに値を紐付けるためによく使われるのは、内蔵SQLを通してセルに紐付けることです。これはExcelに似て、スマートにセルに追加することができます。セルへの紐付けのほか、データ列の値を定数、数式、パラメータなどにすることもできます。
また、イベントをユーザー定義することで、送信をユーザー定義するのも方法の一つです。以下でそれぞれ紹介します。
2.
内蔵SQL
テンプレート>レポートフォームプロパティをクリックしてレポートフォームプロパティ設定インターフェイスを開き、下図のように内蔵SQLを追加します(1件の内蔵SQLは1枚のデータベース表の操作に対応しています)。
内蔵SQLパネル設定のステップは下図の通りです。
2.1 送信タイプ選択
FineReportはフォームデータの送信タイプに4種類の方法(スマート送信、挿入送信、削除送信、更新送信)を用意しています(下図参照)。
送信タイプの詳しい紹介は
送信タイプをご覧ください。
注:デフォルトの送信タイプはスマート送信です。一般的によく使用されるのもスマート送信です。
2.2
データベース表選択
レポートフォームは、データをデータベースに入力するために使います。では、入力されるデータベースやデータ表はどのように判断されるのでしょうか。これは入力されるデータベース表をフォームプロパティで選択する必要があります(下図参照)。
オラクルデータベースについては、モード(オラクルのユーザー名)を選択する必要があります。表を選択するときは1文字目でクイック検索することができます。
注:データベース名と表名はプルダウンで選択したり、手動で名称を入力したりすることができます。また、パラメータ名を入力して動的フォームにすることもできます。動的にフォームのデータベースまたはデータ表を変更します。詳しい例は
動的にフォームのデータベース表を変更する(日報、月報フォーム)をご覧ください。
2.3
フィールド追加
表選択後、フィールドスマート追加ボタンをクリックすると、自動的にデータベース中の表のすべてのフィールドを読み込みます。すべてを追加したくない場合は、フィールドの左側のチェックを外します(下図参照)。
フィールドスマート追加を使用して一度に複数のフィールドを追加するほか、フィールド追加ボタンをクリックして直接に一つのフィールドを追加することもできます(下図参照)。
あるフィールドを選択し、フィールド除外をクリックすると、リストから削除することができます。
2.4
セル追加
フィールド追加を完了し、セルスマート追加またはセルグループスマート追加をクリックすると、データ列にセルを紐付けることができます(下図参照)。セルスマート追加をクリックすると表示されるダイアログに、レポート本体中のセルを選択すると、データ列にセルを紐付けることができます。
注:セルグループスマート追加とは、あるデータ列に複数のセルを紐付けることです。複数のセルのデータがすべてそのフィールドに入力されます。詳しい設定と使用の方法は
複数のセルを一つのフィールドに紐付けるをご覧ください。
データ列にセルを紐付けることができるほか、文字列、定数、数式、パラメータなどさまざまなタイプのデータを使用することもできます(下図参照)。
テンプレートに行または列を挿入するとフォームのセルがずれてしまう場合、セル全体修正を使用し、全体的に修正することができます(下図参照)。
これで、フォームプロパティの必要なステップの設定が完了しました。
2.5
送信条件設定
内蔵SQLフォームデータを使用し、フォームデータをフィルタリングすることができます。ウェブクライアントから送信されるデータが条件を満たしている場合、データが入力され、満たしていない場合、データは入力されません。送信条件設定をクリックすることで、フィルター条件を追加することができます(下図参照)。
送信条件を設定すると、フォームデータがSQLステートメントを実行するときに、実行中のSQLステートメント中の送信条件に関するフィールドが送信条件を満たしていれば正常に実行されます。条件を満たしていなければ、実行されないためデータベースに入力されず、次のSQLステートメントを実行します。たとえば、送信条件を「原価を空にしない」に設定したとします。入力するときに、ある記録の原価が空になっている場合、その記録はデータベースに入力されません。
応用例は
空白のデータを入力しない(送信条件設定)をご覧ください。
3.
ユーザー定義イベント
下図のように、レポートフォームプロパティページで、ユーザー定義イベントを追加することができます。ユーザー定義イベントはFineReportが提供するAPIを通してさまざまなタイプのものを実行することができます。これをデザイナーにインポートすると、ユーザー定義イベントを実行することができます。詳しくは
ユーザー定義イベントを参照してください。
注:複数の内蔵SQLを追加(内蔵SQLを追加するシート数を問わない)したうえで送信するときに、実行できないものがある場合、そのあとの内臓SQLは実行されません。その前に実行されたものも無効となります(FineReportはトランザクションロールバックシステムを備えています)。
また、データデータコミット時またはロールバック時に異常が発生し、最終的に失敗した場合、バックエンドでエラーを表示します。前者の場合は「データ送信エラー。ロールバックできません」、後者の場合は「データロールバック失敗」と表示されます。フロントエンドではいずれも「失敗」と表示されます。
索引:
|
|
トップに戻る
CopyRight@2014
帆軟軟件(中国)有限公司がすべての権利を留保しています。 |