abOut.nsf

新旧かまわず、またお役立ち度にあまりこだわらずに、 拡張子がnsfであるNoSQLなデータベースファイルと、それを扱うコラボレーション製品に絡んでのあれこれを。

2016/06

XPagesではなく、クラシックな方法でNotesアプリをWeb化する際のつづきのおはなしです。
    (以前のお話し)
上記の各作文では
$$QueryOpenAgent・$$QuerySaveAgent という、2つの忘れ去られた予約フィールドについて書きました。

それぞれ WebQueryopenイベント、WebQuerySaveイベントに相応します。

お伝えしたかったことは、サブフォームでも使えるってことです。
サブフォームにはイベントがないけど、予約フィールドなら置くことができます。


Web系には正直云って詳しくないのですが、
本作文では、ほかに私が知ってる範囲で、
サブフォームに置くことができるWeb系代替機能について触れます。


HTML Head Contentに相応するもの

    $$HTMLHead という予約フィールドが、
    のちにフォーム上に実装された、HTML Head Contentに相応します。
    こちらは HTMLのヘッダー情報を式で書き込むのに使います。
    イメージ 1

    繰り返しですが、これもサブフォームにはないけど、
    予約フィールドの方ならサブフォームでも使えます。


onLoad イベントに相応するもの
    そもそもデザイナーで見ると、サブフォームには onLoadイベント、あります。
    代わりなんていらないじゃん、と云われそうですが・・・実は、サブフォームのonLoadは、
    動作しないのです。
    今のところIBMさんの記事を見つけられていませんが、経験上動かず。海外サイトでこれを指摘しているページを見かけます。

    では、onLoadを行うための$$予約フィールドで代替する?

    残念ながらこれそのものの予約フィールドはないのです。
    しかし。

    サブフォーム上に直接htmlのbodyタグを書き、そこに「onLoad=」に続けてロード時に実行したいことを記述できます。それらを丸々パススルーHTMLに指定することで動作させることができるわけです。
    イメージ 2



    onLoad イベントから説明を始めちゃいましたが
    「bodyタグを書いてパススルーHTMLに」、という方法自体で、
    フォーム上のHTML Body Attributes の代わりもできると思われます。
    ということは、
    私自身は未確認ですが、ほかのJavascriptベースのイベントを入れ込むことも、この方法で可能だと思います。
    また、$$HTMLFieldという予約フィールドに書き込む手もあるようです。
    これについては確認したら別途。

以上、Webページに必要な要素を、サブフォームに持たせることで
一つ一つのフォームで同じ内容のイベントを、フォーム数分書かなくてもよくなる、共通化できるわけで、クラシックなWeb化での開発負荷を多少軽減できる場合があると思います。



Notesアプリケーションデータベースの目印といえば、ワークスペースのアイコン。
2010年出荷の8.5.2からは、イメージファイルに対応し、色の制限が実質なくなりました。

(ご参考:Lotus 小ワザ集: 第180回 アプリケーションアイコンを写真イメージなどに設定する) http://www.ibm.com/developerworks/jp/lotus/ldd_tips/nd8_180.html

以前のアイコンのことを、「クラシックアプリケーションアイコン」と呼んでいますが その、16色という限られた世界で何とかデザインを工夫してみる醍醐味も、ファミコンの世代ゆえか、捨てがたい味わいはありました。

しかし、いざ色数の不自由がないアイコンを目にすると「やっぱりこっちがいい」
既存アプリケーションのクラシックなアイコンたちを、できれば刷新できないかな、と気になってきます。 競合するコラボレーション製品では、あらかじめきれいな画像を用意してるものも幾つかあり、こういうところでは手を抜かないな、と思わされます。

さて本題ですが、クラシックなアイコンを作るときは簡単にできるのに、 イメージファイルでアイコンを作るときは、しづらいことが、ひとつあります。
    「透過・透明色を使いたい」
クラシックな側は、アイコンエディタで必要な個所を色なしにすれば済みます。
イメージ 1

一方、イメージファイルの加工では、何らかの画像編集ソフトを使います。 手っ取り早いところで「ペイント」ですが、「ペイント」には透明色の機能がありません。

透明色に対応した編集ソフトだったら、フリーウェアを含めいくつか世間に出回ってはいます。

でも、オフィスでは・・セキュリティ対策上、ソフトウェアの勝手なインストールは制限されている場合が多く、 インストールしたい場合には許可が必要だったりします。
Notesの小さなアイコンの、しかも透明色のためだけを理由に、会社の許可を得ようってのはちょっと。。

何とかならないかと、ネット検索すると、画像に透明色を加える対策として、Excelを使う方法が載っています。 Excelに画像を取り込み、透明色を指定後、html(Webページ)として保存すると、透過されたpng画像が取り出せる、というものです。

同様な内容で幾つかありますが、こちらが分かりやすいかな。
http://ameblo.jp/daikin-eakon/entry-11932424905.html


Notesのアイコンづくりに適用すると、こんな段取りです。
    1. ペイントで、画像を編集します。
      新規に描くにせよ、既存の画像を使うにせよ、ここで縦横同サイズの正方形になるよう調整します。
      この時点では、Notesアイコンサイズの32×32より大きくてもよいことにしましょう。
      イメージ 2

    2. Excel上に画像を取り込みます。
      ペイントで保存した画像を挿入するか、もしくはペイントの画面から直接コピー/ペーストするかはお任せします。

    3. 上記リンク先を参考に、画像の任意の部分を透明色に指定します。

    4. Excelの図メニューで画像サイズを変更します。
      私の経験だと、縦横 0.85 cm にしておくと、ちょうど32×32のアイコンサイズで画像が取れるようです。
      (環境によって違うかもしれませんので、ずれた場合は前後のサイズに調整してください)
      イメージ 3

    5. リンク先の方法でWebページとして保存してからpng画像を取り出します。

あとは、冒頭の子ワザ集を参考に、取り出した画像をアプリケーションのアイコンに設定して完了です。
イメージ 4

↑このページのトップヘ