ひな型シート3行目
ひな型の3行目
ひな型の3行目は、WriteReportやReadReportコマンドで指定された処理をXCute本体が実行した後の情報が書き込まれるほか、R3C8以降のセルでOverWriteや次ページへのコマンド(コマンド連鎖)を指定することもできます。
R3C1 XCute本体のエラーメッセージ
XCuteで、WriteReport、ReadReportやOverWrite、OverReadでエラーが発生したとき、このセルにエラーメッセージが書き込まれます。このエラーは、R3C6セルでフックできます。
R3C2 WriteReport時の全レコード数 または ReadReport時の読み取り件数
R3C3 WriteReport時の書き始め行数 または ReadReport時の修正件数
R3C4 WriteReport時の書き出した行数 または ReadReport時の追加件数
R3C5 ReadReport時の削除件数
R3C6 エラー・トラップ
R2C6セルは前半のエラートラップですが、R3C6はWriteReportやReadReport処理後のエラートラップを行えます。
ここにはMessageコマンドの他GOTO
R3C20などが記述できます。GOTOとした場合には、飛び先にRollBackやOverReadなどのコマンドを記述します。
下記は、WriteReortコマンドを実行後、R3C2が0でレコードが存在しなかった場合のエラートラップの例です。
=IF(R3C2=0,"Message=レコードはありませんでした","")
DBにエラーが発生した時のエラートラップ
=IF(R3C1<>"","Message=DBでエラーが発生しました","")
XCute側で、DBエラーなどが発生した時のエラーメッセージはR3C1に記述されるとともに、Error.Logにも残されます。
ブラウザの表示には、つぎの3つのパターンがあります。
エラーフックせず、proles.iniファイルのDebug>0なら、下記のように、エラーメッセージをそのまま表示。
エラーフックせず、proles.iniファイルのDebug=0の実行モードでは、エラーメッセージに関わらず下記の表示。
参照
○proles.iniファイル
R3C7 MyCookieを指定
参照
○MyCookieスイッチ
R3C8以降
WriteReportやReadReportがエラー無しで終了した場合、R3C8以降のセルをXCuteは実行します。
ここにOverWrite,OverReadあるいはEXT_SQLコマンドを指定されていればそれらを実行し、全て実行すると、印刷範囲をHTML化してブラウザへHTMLファイルを返しブラウザのリクエストに応えます。
さらに続けてWriteSheetなどのメインコマンドが指定されていればそれらを実行します。後者のメインコマンドの実行は、ブラウザからのリクエストと同じに扱われコマンド連鎖と言っています。コマンド連鎖でメインコマンドが呼ばれると、そのひな型シートが新しくコピーされ、ひな型が変更されてしまいます。
OverWriteとOverReadは、それぞれWriteReportとReadReport対応した処理で、ひな型シートを変更することなく上書き(Over)すると言う意味です。
FilterやCHG_SQLをOverWriteに使う時は、Filter, OverWrite=ReportA, CHG_SQL, OverWrite=ReportBなどとR3C8以降に指定します。(1コマンド1セルで記述します)
このように指定すると、FilterはOverWrite=ReportAに作用し、CHG_SQL,はOverWrite=ReportBに作用します。
OverWriteとOverReadは、何回でも指定できます。複雑なレポートを作成するには、OverWriteを多用して、1つのシートにさまざまなテーブルのデータを貼り付けます。また、OverReadを多用して、たくさんのテーブルを更新することも可能です。
上記のように、OverWriteやOverReadやEXT_SQLコマンドが自由に指定できるR3C8以降のセルは、XCuteで複雑な画面を作成する時の要になります。
また、OverWriteやOverReadやEXT_SQLコマンド実行後、Excelのひな型の中にあるProDebug という名前のマクロをproles.iniファイルのDebug=2の時にコールします。ProDebug
にブレークポイントを張って置けばここで止まりますので、状態のチェックが可能です。
コマンド連鎖の指定は、ブラウザからのクエリーストリングの指定と同じで、1つのメインコマンドと複数のSetコマンドが使われます。コマンド連鎖のSetコマンドは、メインコマンドの前あるいは後どちらに記述しても構いません。
なお、R3C8以降のセルにも、R2C8以降セルと同様に、GOTO RyCx
書式のジャンプ命令が使えます。
参照
○OverReadコマンド
○OverWriteコマンド
○Nextコマンド
○Filterコマンド
○Sortコマンド
○CHG_SQLコマンド
○EXT_SQLコマンド
○INCコマンド
○RPLコマンド
○ProDebugマクロ
○GOTOコマンド