当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2012年8月17日金曜日

XPagesで添付ファイルの処理をする(ダウンロード)

おはようございます。今日は金曜日です。お盆休みもこの土日まで。という方も多いのではないでしょうか?来週からまた通常勤務と考えると、ちょっとだけへこみますね。

そんなときは、このボタンをクリックして気を紛らわせましょう。
にほんブログ村 IT技術ブログへ




さて、昨日はXPagesで添付ファイルのアップロードについて検証を行いました。
ということで、今日はダウンロードについてです。

昨日のブログで、複数の添付ファイルをファイルアップロードするには、同時にファイルのダウンロードコントロールも配置する必要があることは書きました。
また、そのオプションについても簡単ですが触れました。

この状態で、すでに既存の文書に添付されているファイルのダウンロードはできる状態なんですね。
でも、これだけじゃつまらないですね。

従来のWebアプリケーションであったように、ビュー上から直接添付ファイルを開く(もしくはダウンロードする)ようにはどうしたら良いのかを検証してみましょう。


XPagesでビューを表現するには、
1.ビューを作成する
2.ビューを表示するためのXPageを作成する

もう、この手順は皆さん覚えていただけたことでしょう。
では、詳しく見ていきましょう。
1.ビューを作成する
ビューの名称は何でも良いです。筆者はこういうときは、「($All)」とします。
ビューの列は「作成日」「Subject」「添付ファイル名(@AttachmentNames)」としておきます。

次に、
2.ビューを表示するためのXPageを作成する
名称は、「home」とします。
このXPageに($All)ビューをバインドしたビューコントロールを配置します。

下図は、そのXPageをWebブラウザでプリビューした画面です。
ビューコントロールを配置したXPageのプリビュー

文書は、前回作成したXPageを使って作成したものです。
ファイルを3つ添付しています。そのため、添付ファイル名が3つ表示されています。
が・・・リンクになっていませんね。

確かに、リンクの設定をしていませんから。
では、XPageのビューコントロールのプロパティで、「列の値をリンクとして表示する」にチェックをつければ良いのでしょうか?


答えは、ノーです。
それでは、文書を開いてしまいます。今、ここでやりたいのは、直接添付ファイルにアクセスするということですので、それではダメですね。

筆者が今のところ、解決策(回避策?)として、持っているのは、ビューの列式に添付ファイルへアクセスするためのHTMLを直接入力してしまうということです。

なんだ、従来のWebアプリと同じじゃないか!といわれるかもしれませんが、そのとおりなんです。
ただし、従来のWebアプリの場合、テキストファイルやPDFは直接Webブラウザ上で開いていたかと思いますが、今回はXPagesのようにどんなファイルもダウンロードするようにしてみましょう。

($All)ビューをLotus Domino Designerで開きます。
3列目の添付ファイル名を表示するところの式を以下のように修正します。
aFile := @AttachmentNames;

@For(i:=1;i<=@Elements(aFile);i:=i+1;ret:=ret + ""
+ aFile[i] + "
"); ret
これで、($All)ビューを保存します。

次に、「home」XPageを開いて、ビューコントロールの中の3列目の添付ファイルの箇所をクリックします。
この状態で、プロパティビューの「表示」 タブを開きます。

コンテンツの種類という項目があるので、そこを「テキスト」から「HTML」に変更します(下図参照)。
コンテンツの種類を変更する

これで「home」XPageを保存して、Webブラウザで表示してみましょう。
ビューの列式を修正したXPage

今度は添付ファイル名が改行されていて、リンクのように表示されています。
実際にクリックすると、ファイルを保存するかどうかのダイアログが表示されます。

先ほどの式は、XPagesで文書を開いたときに、添付ファイルをクリックしたときに実行されるURLを解析したものです。
「/xsp/.ibmmodres/domino/OpenAttachment/」というのが、添付ファイルを処理するエージェントのようで、その後に指定したファイル名をダウンロードするという動きになっているようです。

従来のWebアプリでは、ファイルの種類によってはダウンロードではなく、直接開いてしまうということもあったのですが、それもこれで解消できるようになります。



これで、ビューから直接添付ファイルにアクセスできるようになりましたね。
ぜひ、試してみてください。







ちなみに・・・筆者は、ようやくWindows7搭載のPCを買いました。
まだ、Windows7に慣れていないので???、画面ショット等に見苦しい点があるかもしれませんが、ご容赦ください。



【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: