さて今回は最初本体フォームに用意したサンプルのボタンのロジックを拡張していきます。
◆添付処理と表示制御
それでは、制御用として使用している以下のフィールドを非表示にします。
・処理フィールド番号
・添付ファイルパス
・attach1
先に用意したサンプルのボタンのロジックを以下のように変更します。
---
1: @If( @IsDocBeingEdited;
2: "";
3: @Return("")
4: );
5:
6: @SetField( "処理フィールド番号" ; "1" );
7: @SetField( "添付ファイルパス" ; "" );
8: @Command( [RunAgent] ; "(添付)" );
9:
10:strFieldNum := 処理フィールド番号;
11:strFilePath := 添付ファイルパス;
12:@If( strFilePath = "" ; @Return("") ; @Success );
13:@SetField( "attach" + strFieldNum ; "1" );
14:@Command( [RefreshHideFormulas] );
15:@Command( [EditGotoField] ; "添付" + strFieldNum );
16:@Command( [EditSelectAll] );
17:@Command( [EditInsertText] ; " " );
18:@Command( [EditSelectAll] );
19:@Command( [Clear] );
20:@Command( [EditInsertFileAttachment] ; strFilePath ; "1" );
21:@SetField( "attach" + strFieldNum ; "" );
22:@Command( [ViewRefreshFields] );
23:@SetField( "ファイル名" + strFieldNum ; @Right( strFilePath ; @FileDir( strFilePath ) ) )
---
やっと本丸の添付処理を行うロジックが出てきましたね。20行目の EditInsertFileAttachment コマンドがそれに当たるのですが、この@式言語で現在のカーソルにあるリッチテキストフィールドに添付する、という処理が出来ます。前回説明したリッチテキストフィールドの非表示処理を13、14行目で切替し、15行目でそのフィールドにカーソルをあわせます。
16~19行目で、以前に添付処理を行っていた場合、リッチテキストフィールド内に前回の添付ファイルが残っているので、消すようにしています。17行目でスペースを入れているのは、直接 Clear コマンドで添付ファイルを消すことが出来ないからです。
そして、添付処理が終わったら、リッチテキストフィールドを非表示に戻し、添付したファイル名を保存します。
これで、一応一通りの説明が終わりました。予想通り、後半はかなりいい加減な説明になってしまいました(^^;
あと、次回オマケをつけますね。ではまた~