<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="../../../../../css/rss/feedRss2.xsl" media="screen" type="text/xsl"?>

<rss version="2.0"> 
  <channel> 
    <title>quitting smoking kills me now.</title>  
    <link>http://ameblo.jp/hattsu/</link>  
    <description>大分備忘録です。 記事の内容は保障いたしかねますので悪しからず。</description>  
    <language>ja</language>  
    <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="self" href="http://feedblog.ameba.jp/rss/ameblo/hattsu/rss20.xml" type="application/rss+xml"/>  
    <item> 
      <title>いや、普通じゃね？</title>  
      <description><![CDATA[<p>
 <script language="JavaScript" src="http://jss.afpbb.com/sdata/newsdelivery/ameba/js/utf8/4921000/4e3dd0ef9bbf563398c3bbe57916acce.js" alt="script_afpbb_news,http://www.afpbb.com/image/logo.gif"></script><br />
<br />
アメリカの保守って、そんなに頭固いのか。<br />
伝統を重んじるのが保守の一面だとすれば、オバマの姿勢を保守が問題視するっておかしいっしょ。<br />
<br />
共和党が民主党を批判する材料にしたいとしか思えない。<br />
ってーか、陛下を引き合いに出すなよ。カウボーイ共。
 
</p>]]></description>  
      <link>http://ameblo.jp/hattsu/entry-10391151971.html</link>  
      <pubDate>Wed, 18 Nov 2009 13:52:07 +0900</pubDate> 
    </item>  
    <item>
      <title><![CDATA[PR: お好きなBMW100日間モニターキャンペーン実施中。]]></title>
      <link>http://rss.rssad.jp/rss/ad/mFTYAyOsWm1U/8dcst8PX7IQQ?type=2</link>
      <description><![CDATA[<table cellspacing="0" cellpadding="0"><tbody><tr><td align="center" valign="center"><a href="http://rss.rssad.jp/rss/ad/mFTYAyOsWm1U/8dcst8PX7IQQ?type=2" target="_blank"><img alt="" style="border: 0;" border="0" src="http://rss.rssad.jp/rss/img/mFTYAyOsWm1U/8dcst8PX7IQQ?type=3"/></a></td><td> &nbsp; </td><td valign="top" > 歓び。それはBMW。100日間モニターやオリジナルQuoカードなどプレゼント。 </td></tr></tbody></table><div style="font-size:10px;"><span style="padding-top:5px;"><br style="display:none"/><a href="http://www.rssad.jp/trendmatch/trendmatch.html">Ads by Trend Match</a></span><br/></div>]]></description>
      <pubDate>Wed, 18 Nov 2009 13:52:07 +0900</pubDate>
    </item>
    <item> 
      <title>[Internal] 備忘録：2009/08/20</title>  
      <description> <![CDATA[ アメンバー限定公開記事です。
]]> </description>  
      <link>http://secret.ameba.jp/hattsu/amemberentry-10324605716.html</link>  
      <pubDate>Thu, 20 Aug 2009 10:04:50 +0900</pubDate> 
    </item>  
    <item> 
      <title>備忘録：2009/07/28 LS2J など</title>  
      <description> <![CDATA[ <p>LS2J の特徴とか：</p>
<p>　・Java Agent でゴリゴリ書かなくてすむ。</p>
<p>　　　　API の一ライブラリを使いたい場合に便利。</p>
<p>　・C API 経由で API 呼び出ししているそうで。</p>
<p>　　　　(Declarelations) に uselsx &quot;*javacon&quot; で、外部 LSX を呼び出します。</p>
<p>　　　　外部参照させるための AIX の設定に癖があるんだなぁ、これが。</p>
<p>　・Public 属性しかアクセスできない。</p>
<p>　　　　自身の private が触れない…。（そういう時は大概設計がまずいんですけどね）</p>
<p>　　　　普通に考えれば、外部 API 呼び出しで private なんか触らないし。</p>
<p>　・呼び出し方に癖がありまくり。</p>
<p>　　　　JNI Signature とかなんなんですか。</p>
<p>　　　　Java が native code 呼び出すために必要なのはわかるんですけど、LotusScript と相まって大変なことになってます。</p>
<p>　　　　とっつきにくさは、初めて外部 C API を VB から触ったときの、byval &amp;h0 とかに似てますかね。</p>
<p>　　　　(最初はおまじないとしか覚えられなかった…)</p>
<br />
<p>使い方とか：</p>
<p>　・JavaSession - NotesSession と考えて使えば問題なし。コンストラクタの引数として山のように引数出ますけど、コマンドライン経由でしか使わないらしいので、通常は new JavaSession() で。</p>
<p>　・JavaClass - JDK のパッケージ、ライブラリを引数に指定して、ライブラリを Script で扱えるようにするクラス。JavaSession.GetClass(&lt;ライブラリ名&gt;) で指定。ライブラリの階層に、通常のドット表記とスラッシュ表記の２つが指定できる。クロスプラットフォーム (Mac を含む場合) での階層指定はスラッシュ表記じゃないと NG.</p>
<p>　・JavaObject - なぜか lsx の type-ahead に出てこない憎いヤツ。JavaClass でパッケージ内のクラスメソッドが利用可能になるので、メソッドから返されるオブジェクトを格納する場合に利用する。オブジェクトなら何でも突っ込めるみたい。</p>
<br />
<p>サンプルとか。</p>
<p>正規表現を使って、ASCII 以外を弾いてる (= DBCS を含むかどうか) を検出します。</p>
<p>Private Function hasDBCS(item As Variant) As Boolean<br />
Dim jSession As JAVASESSION<br />
Dim jClass As JAVACLASS<br />
Dim jPattern As JavaObject 'なぜか lsx リストに出てこない<br />
Dim jMatcher As JavaObject<br />
<br />
Dim concatFullName As String<br />
<br />
Set jSession = New JAVASESSION()<br />
Set jClass = jSession.GetClass(<font color="#0000ff">&quot;java/util/regex/Pattern&quot;</font>)<br />
Set jPattern = jClass.compile(REGEXP_ALLHALF_CHAR)<br />
<br />
concatFullName = Implode(item, STRING_CONCAT_TOKEN)<br />
Set jMatcher = jPattern.matcher(concatFullName)<br />
hasDBCS = jMatcher.find()<br />
End Function</p>
<br />
<p>ヘルプだと JavaClass に必ずコンストラクタがあること前提の書き方だったので、まったく理解できず。</p>
<p>util にコンストラクタって発想ないし。</p>
<p>JNI まで引っ張り出してきて、手がつけられなくなり始めたので、中島さんブログ参考にしました。</p>
<br />
<p>ヘルプにポリモーフィズムメソッドなんかがある場合、JavaMethod 使えって書いてあったけど、どうなんだろ。</p>
]]> </description>  
      <link>http://ameblo.jp/hattsu/entry-10309030410.html</link>  
      <pubDate>Tue, 28 Jul 2009 14:17:36 +0900</pubDate> 
    </item>  
    <item> 
      <title>備忘録：2009/07/16</title>  
      <description> <![CDATA[ <p>市県民税で５万吹っ飛んだ…。</p>
<p>一体市と県は俺に何をしてくれているんだろう…。</p>
<br />
<p>備忘録アジェンダ：</p>
<p>　１．DAOS に関する FAQ</p>
<p>　２．WPS の認証画面なしでのログインを行う際の挙動について</p>
<p>　３．長島さんのところの Lazzy Tool　とか。</p>
<p>　４．マイグレーション資料関係</p>
<br />
<p>１．DAOS に関する FAQ</p>
<p>　8.5 の目玉（だよな）。もともと DB 中に格納されていた添付ファイル (文書の中に格納してないからね。誤解なきよう) を、ファイルシステムに持たせようって仕組み。平たく言うと、BLOB データを FS に任せることで、バックアップ計画立てやすくしましょうと。</p>
<p>　責任を FS に押し付けると、DB メンテナンスもしやすくなります。ポインタにだけ気を配ればいいので。</p>
<p>　ボトルネックはトランザクションロギング (TRL) を有効にしないといけないところ。</p>
<p>　耐障害性は向上するものの、ディスク I/O がとんでもない。RDBMS と同じになったと言われればそれまでですけど。</p>
<p>　<a href="http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090703daos.html">http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090703daos.html</a>
 </p>
<p>　いい加減、技術者の人は、$FILE は FO のためのポインタフィールドだって気づいて欲しいです。</p>
<p>　個人的には TRL 構成を組むのは、H/W, S/W の構成点数増やすので好きではないです。</p>
<p>　この機能が代替不可能なら考えますけど、ボトルネック増やすようなことはしたくないので。</p>
<p><br />
</p>
<p>２．WPS の認証画面なしでのログインを行う際の挙動について</p>
<p>　(7/14 の記事参照)</p>
<p>　WPS チームから、Domino が Get で同一リクエスト送信してるんじゃないの？と疑われたので、HTTP response header 解析しました。</p>
<p>　結果を先に言うと、Domino は一度だけしかリダイレクト (302) してません。あとは WPS 側で、ログインしていた際の session cookie 消すために、Referer を誤魔化しつつ、Location で 302 リダイレクトして、ユーザーのログイン処理を肩代わりしています。</p>
<p>　いくらなんでも Domino はそんなにアホじゃないぞ。</p>
<p>　ヘッダ載せようと思ったけど、マスクしきれないので割愛。</p>
<p>　流れとしては、</p>
<p>　　１．(Domino) 302 : Location=<a href="http://wpsserver01.co.jp/wps/portal/cxml/04_SD9ePMtCP1l800l_KydQvyHFUBADPmuQy?userid=test%20user01&amp;password=ABC"><font color="#333333">http://wpsserver01.co.jp/wps/portal/cxml/04_SD9ePMtCP1l800l_KydQvyHFUBADPmuQy</font><strong><font color="#800080">?userid=test%20user01&amp;password=ABC</font></strong></a>
 </p>
<p>　　２．(UA) Get <a href="http://wpsserver01.co.jp/wps/portal/cxml/04_SD9ePMtCP1l800l_KydQvyHFUBADPmuQy?userid=test%20user01&amp;password=ABC"><font color="#333333">http://wpsserver01.co.jp/wps/portal/cxml/04_SD9ePMtCP1l800l_KydQvyHFUBADPmuQy</font><strong><font color="#800080">?userid=test%20user01&amp;password=ABC</font></strong></a>
 </p>
<p>　　３．(WPS) Set-Cookie で以前まで持っていた LtpaToken を削除。さらに Location で再度同じ URL にリダイレクト。(Cookie 消して、一度未ログイン状態にし、userid, password を持つ URL でリダイレクトすることで、ログイン処理を自動化している)</p>
<p>　こんな流れです。WPS が Referer 消さずにリダイレクトするので、疑われたらしい。</p>
<br />
<p>３．長島さんのところの Laza(Lazzy) Tool　とか。</p>
<p>　【Lotus Notes/Domino問題判別手法解説】</p>
<p>　<a href="http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090710_nd.html">http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090710_nd.html</a>
 </p>
<p>昔は Laza とか使ってたけど、今は Open/Public でこんな記事出てます。</p>
<p>昔載せた解析記事が無意味になって俺涙目。</p>
<p>(実際はツールだけじゃ解析しきれないんですけどね)</p>
<br />
<p>４．マイグレーション資料関係</p>
<p>　仕事で使いそうな資料もろもろ。鉄板ばかりなので、書評載せません。あしからず。</p>
<p>　【Lotus Notes/Domino 4.6/5/6/6.5/7/8/8.5機能比較資料】</p>
<p>　　<a href="http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20080801_ndc.html">http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20080801_ndc.html</a>
 </p>
<p>　【Lotus Notes/Domino 8.5 機能評価ガイド】</p>
<p>　　<a href="http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090227nd.html">http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090227nd.html</a>
 </p>
<p>　【IBM Lotus Domino 8.5.1の主な新機能】</p>
<p>　　<a href="http://www.ibm.com/developerworks/jp/lotus/ldd_tech/nd851.html">http://www.ibm.com/developerworks/jp/lotus/ldd_tech/nd851.html</a>
 </p>
<p>　【Lotus Notes/Domino 8.5へのアップグレード】</p>
<p>　　<a href="http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090401nd.html">http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090401nd.html</a>
 </p>
<p>　【Lotus Notes/Domino 8.5 基本説明資料】</p>
<p>　　<a href="http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090612_nd.html">http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090612_nd.html</a>
 </p>
<p>　【Lotus Notes 7 メールの新機能】</p>
<p>　　<a href="http://www.ibm.com/developerworks/jp/lotus/library/notes7-mail-features/">http://www.ibm.com/developerworks/jp/lotus/library/notes7-mail-features/</a>
 </p>
<p>最近は中の人も資料を出してくれるようになって助かります。</p>
<p>後はお客さん視点でモノが書けるといいんですけどね。私もできないですけど。</p>
]]> </description>  
      <link>http://ameblo.jp/hattsu/entry-10300975394.html</link>  
      <pubDate>Thu, 16 Jul 2009 13:50:19 +0900</pubDate> 
    </item>  
    <item> 
      <title>備忘録：2009/07/14</title>  
      <description> <![CDATA[ <p>備忘録：</p>
<p>　１．パケットキャプチャソフト</p>
<p>　２．Domino ディレクトリを LDAP として利用する場合の WPS 認証画面なしログインについて</p>
<br />
<p>１．パケットキャプチャソフト</p>
<p>　IE しかブラウザがないと思ってる Domino 技術者へ。</p>
<p>せめて Fiddler 使おうぜ。</p>
<p>君が何回も更新ボタン押したところで結果は変わらないから。</p>
<br />
<p>２．Domino ディレクトリを LDAP として利用する場合の WPS 認証画面なしログインについて</p>
<p>WebSphere Portal 上で、パスワード変更後に直接ログイン (認証画面なしでログイン) する場合。</p>
<p><a href="http://www-06.ibm.com/jp/domino04/lotus/support/faqs/faqs.nsf/all/730995">http://www-06.ibm.com/jp/domino04/lotus/support/faqs/faqs.nsf/all/730995</a>
 </p>
<br />
<p>以上の設定を行えばよい。</p>
<p>ただし。</p>
<p>Domino ディレクトリを LDAP として利用する場合、userid=&lt;userID&gt; 部には、ユーザー ID の基本名部分を引数として渡すこと。</p>
<br />
<p>i.g.) <a href="http://wpsserver01.co.jp/wps/portal/cxml/04_SD9ePMtCP1l800l_KydQvyHFUBADPmuQy?userid=test%20user01&amp;password=ABC">http://wpsserver01.co.jp/wps/portal/cxml/04_SD9ePMtCP1l800l_KydQvyHFUBADPmuQy<strong><font color="#800080">?userid=test%20user01&amp;password=ABC</font></strong></a>
 </p>
<br />
<p>組織単位などをつけると Error : 404 コンテンツは利用不能です。エラーが返る。</p>
<p>ってかやった。おのれ。</p>
]]> </description>  
      <link>http://ameblo.jp/hattsu/entry-10299820776.html</link>  
      <pubDate>Tue, 14 Jul 2009 19:18:30 +0900</pubDate> 
    </item>  
    <item> 
      <title>備忘録：2009/07/03</title>  
      <description> <![CDATA[ <p>メモ。</p>
<p>　１．byte 型のデータがアイテムに反映されない。</p>
<p>　２．クラスは相変わらず &quot;オブジェクト指向<strong><font color="#ff0000">性</font></strong>&quot;</p>
<p>　３．プロフィールの新規作成とアクセス権</p>
<br />
<p>１．byte 型のデータがアイテムに反映されない。</p>
<p><font size="2">プリミティブな Byte 型を持つ値を、NotesDocument.ReplaceItemValue() で書き込んでも、</font></p>
<p><font size="2">実際のアイテムに反映されない。</font></p>
<p><font size="3"><br />
</font></p>
<p>Sub Click(Source As Button)<br />
Dim uiws As New NotesUIWorkspace()<br />
Dim uidoc As NotesUIDocument<br />
Dim doc As NotesDocument<br />
<br />
<font color="#0000ff">Dim b As Byte</font><br />
<br />
Set uidoc = uiws.CurrentDocument<br />
Set doc = uidoc.Document<br />
<br />
<font color="#0000ff">b = &amp;hff</font><br />
<br />
<font color="#0000ff">Call doc.ReplaceItemValue(&quot;field1&quot;, b)</font><br />
End Sub</p>
<br />
<p>Integer に変更すると書き込める不思議。</p>
<br />
<br />
<p>２．クラスは相変わらず &quot;オブジェクト指向<strong><font color="#ff0000">性</font></strong>&quot;</p>
<p>(オブジェクト指向の特徴・特性のうち、いくつかを含有するものをオブジェクト指向性と呼ぶそうな。完全に準拠できているのであれば、オブジェクト指向型になるという…）</p>
<br />
<p>このコード。相変わらずコンパイルエラーになります。</p>
<p>Class <font color="#0000ff">Parent</font><br />
Sub new()<br />
End Sub<br />
<br />
Sub method1<font color="#ff0000">()</font><br />
End Sub<br />
End Class</p>
<p>Class <font color="#008000">Child</font> As <font color="#0000ff">Parent</font><br />
Sub new(a As Integer)<br />
End Sub<br />
Sub method1<font color="#ff0000">(a As Integer)</font><br />
End Sub<br />
End Class</p>
<br />
<p>コンストラクタについては、オーバーライドできない。</p>
<p>親→子の順番でコンストラクタが呼ばれてます。</p>
<br />
<p>３．プロフィールの新規作成とアクセス権</p>
<p>Web アプリで、パブリックアクセスによって要件を実現する際に気をつけること。</p>
<p>プロフィール文書を読み込む際に、</p>
<p>プロフィールが存在しない場合は強制的に作成することになるため、</p>
<p>作成者の権限が必要になる。</p>
<br />
<p>@GetProfileField なんかを使うと、張りきって domcfg がしゃしゃり出てくるので注意。</p>
<p>回避策として、WebQueryOpen 時に、代理権限を付与したエージェントが、</p>
<p>プロフィール文書のアイテムをロードすることで解決。</p>
<p>（作成者フィールドなんかで回避できたのかも知れないなぁ）</p>
]]> </description>  
      <link>http://ameblo.jp/hattsu/entry-10292327570.html</link>  
      <pubDate>Fri, 03 Jul 2009 10:06:39 +0900</pubDate> 
    </item>  
    <item> 
      <title>Teamstudio CIAO! Client edition.</title>  
      <description> <![CDATA[ <p>メモ代わりです。</p>
<p>プロモーション：</p>
<p>　　現在作業中の DB の設計を反映するための情報とその一連の処理。</p>
<p>　　プロモート先、プロモート後の CIAO! 内でのバージョン識別方法などを設定。</p>
<p>　　ローカルで自身の設計のみを変更後、プロモーション機能を利用して、</p>
<p>　　１バージョンとして修正モジュール群を登録したり、</p>
<p>　　サーバー上で管理した単体テスト完了後 DB を本番環境下のテストサーバーに配置することができる。</p>
<p>　　プロモーションの定義は複数行えるので、状況に合わせて細かくプロモートできる。</p>
<br />
<p>バージョン作成の注意点：</p>
<p>　　Source および Destination に 個人ビュー、個人エージェントなどが存在すると、 &quot;操作を実行する権限がありません&quot; エラーが発生する。</p>

]]> </description>  
      <link>http://ameblo.jp/hattsu/entry-10031598751.html</link>  
      <pubDate>Mon, 23 Apr 2007 19:05:27 +0900</pubDate> 
    </item>  
    <item> 
      <title>LEI での雑感</title>  
      <description> <![CDATA[ <p>超お久しぶりです。</p>
<p>なんで平日のこんな時間に書いてるんだろう…。</p>
<br />
<p>思い立ったときに書かないと、書く機会を逃すからですね。</p>
<br />
<p>ってことで、 LEI を使ってて気づいたことなど。</p>
<p>　・@ThisValue, @ThisName は正確に動かない。（Notes connection 文書の [Enforce design and field flags] にチェックをつけていると)</p>
<p>　・Notes Connection の Enforce design and field flags は、表示用の計算結果も計算している。</p>
<p>　・Collapse/Expand Connection は Notes 側には不要。</p>
<p>　・Order meta connection も Notes 側には不要。</p>
<p>　・Polling Activity の Dependent Activities の仕様が変更されている。</p>
<p>　・Polling Activity から Polling Acitivty を起動すると、成功回数のカウントが正常に行われない。</p>
<p>　・Meter meta connection 文書の読み方は慣れるまで癖がある。</p>
<p>　・DB2/400 (DB2 for iSeries) の CCSID には要注意。</p>
<p>　・DB2/400 のファイル (テーブル) に ALLOW NULL が指定されている場合、 WRKDBM で表示されるデータは NOT NULL 制約をつけたテーブルにコピーするまで、データは表示されない (データは存在するので WRKDBM コマンドを発行した段階でエラーになることはない)</p>
<p>　・Order meta connection 文書に対して、メタデータの指定は不要。 (ダミー値を入れておいて、 Activity 側で指定すれば柔軟に運用できる)</p>
<p>　・Dependent Activity は、必ずその Activity を呼び出す Activity が終了するまで実行されない。</p>
<p>　・Polling Activity の Reset trigger statement には &quot;Execute XXX&quot; で、 Source Connection に指定した Notes database のエージェントを呼び出すことができる</p>
<p>　・Polling Activity の Execute statement にある &quot;execute after activities&quot; は [Execute Synchronously] にチェックをつけないと意図した動作にならない。</p>
<p>　・Polling Activity の &quot;execute before activities&quot; は [Execute Synchronously] にチェックをつけても、意図した動作にならない。 (Reset trigger statement と Execute Activities が同時にキックされる)</p>
<p>　・6.x では未確認だけど、 LotusScript で open ステートメントをバイナリモードで開いて、データを読み込み、そのデータを BLOB データとして書き出そうとすると、バグにより、バイナリデータが write した瞬間に２倍に膨れ上がる。</p>
<br />
<p>と、このくらいでしょうか。</p>
<p>ヘルプとにらめっこしてると、英語の微妙な言い回しにやられることが多いです…。</p>

]]> </description>  
      <link>http://ameblo.jp/hattsu/entry-10019679473.html</link>  
      <pubDate>Fri, 10 Nov 2006 01:32:23 +0900</pubDate> 
    </item>  
    <item> 
      <title>@Transform &lt;未完&gt;</title>  
      <description> <![CDATA[ <p>久しぶりに恩師に電話したら &quot;blog 更新されてねぇよ、ボケ&quot; と言われたので、</p>
<p>岩間先生からしずかーーーに &quot;blog の更新楽しみにしています&quot; とプレッシャーを掛けられたので、 (ウソです。ごめんなさい)</p>
<p>思い立ったように記事を書いていたのですが…。</p>
<br />
<p>間違って記事を消してしまいました… (泣</p>
<br />
<p>えっと、アレです。言いわけです。</p>
<p>相当負け犬の遠吠えです。</p>
<br />
<p>さわりだけ書いておきます。</p>
<br />
<p>@Transform - LotusScript の Forall 関数をエミュレートする＠関数。</p>
<p>なぜこの関数を使うの？ - </p>
<p>　　　　・背景としては＠関数でリスト添字演算 <font color="#3366cc">(配列演算)</font> が可能になったから。</p>
<p>　　　　・Web アプリケーションを作成する際に、 LotusScript で値を入れると、フォームロード時のフィールドロード <font color="#3366cc">(Default Value や 計算結果フィールドのロード時の式演算)</font> より後にしかデータを入れられないため、 LotusScript の値を利用できないため。</p>
<p>　　　　・LotusScript で、文書内のデータによって、 HTML を出力する場合、出力されたデータを POST で受け取ってもデータをきちんと受け取れないため</p>
<p>　　　　・JavaScript で DHTML を出力するとなると、ブラウザ毎の動作確認が必要になるため</p>
<br />
<p>どういうときに便利なの？ - </p>
<p>　たとえば、Web のアンケートフォーム。</p>
<p>マスタとして UI の形式 <font color="#3366cc">(ラジオボタン、チェックボックス etc.)</font>、質問内容、選択肢を登録しておいて、 Web 上でフレキシブルに表示したい時などに便利。</p>
<p>　この関数を使わずに、＠関数で HTML を生成することは難しい。 <font color="#3366cc">(ラジオボタンフィールド、チェックボックスフィールドなどを用意しても可能だが、質問が５０個あったら？表示非表示の制御はどれだけ修正する必要があるんだろう？)</font></p>
<br />
<p>と、このくらいです。</p>

]]> </description>  
      <link>http://ameblo.jp/hattsu/entry-10014449454.html</link>  
      <pubDate>Sat, 08 Jul 2006 03:00:26 +0900</pubDate> 
    </item>  
    <item> 
      <title>On Event ハンドラ</title>  
      <description> <![CDATA[ <p>分かった。</p>
<p>ようやくちゃんと動いた。</p>
<br />
<p>On Event ハンドラ使って MVC でのコーディングが出来ないかいじってました。</p>
<p>以下、やり方です。</p>
<p>１．イベントをフックしたいインスタンスを生成する (重要です。生成した後じゃないとエラーになります)</p>
<p>２．インスタンス生成行以降で</p>
<p>　　<font color="#0000ff">On Event </font><font color="#009966">&lt;フックしたいイベント名&gt;</font> <font color="#0000ff">From</font> <font color="#999966">&lt;フックするインスタンス&gt;</font> <font color="#0000ff">Call </font>&lt;<font color="#9933cc">マップされた関数&gt;</font></p>
<p>　と記述します。</p>
<p>　<font color="#009999">&lt;フックしたいイベント名&gt;</font> : QuerySave や PostOpen などです。 Notes 標準のイベント名です。</p>
<p>　<font color="#999966">&lt;フックするインスタンス&gt;</font> : １．で生成したインスタンスを指定します。 (uidoc などのクラスからインスタンス化されたオブジェクトの変数名です)</p>
<p>　<font color="#993399">&lt;マップされた関数&gt;</font> : <font color="#009966">&lt;フックしたいイベント名&gt;</font> で書いたイベントの代わりにどの関数が処理を行うかを指定します。定義した関数では <font color="#009999">&lt;フックしたいイベント名&gt;</font> と必ず引数を同じにする必要があります。</p>
<p>　まとめると、 <font color="#999933">&lt;フックするインスタンス&gt;(uidoc)</font> の &lt;フックしたいイベント名&gt;(QuerySave) の代わりに <font color="#993399">&lt;マップされた関数&gt;</font> でそのイベントを処理するよ、となります。</p>
<p>　(まんま On Event の和訳になっちゃうんですけど…)</p>
<p>３．コードが埋め込まれてる設計要素のどこでも良いので、ネイティブオブジェクトのイベント (QuerySave や Initialize など) にアポストロフィをつけてください。これをしないとイベントをフックしてくれません。 (本当)</p>
<p>(Notes/Domino のメールテンプレートでもデバッグ掛けるとアポストロフィだけ入ったところがあったりします。多分イベントの late-binding をこうしないと正常に認識できなかったんだと考えます)</p>
<p>４．定義先の関数を作成します。引数の数、型を合わせないとコンパイル時にはじかれます。</p>
<br />
<p>はい！これで腐るほどのフォームに同じコードを死ぬほどカッペしなくても良くなりました☆</p>
<p>使い方に幅がありそうですねー。</p>
<p>QuerySave イベントでどのフォームでも呼び出すようなコードを ScriptLibrary にまとめたり、文書の採番も管理がずっと楽になりそうですねー。</p>
<p>(ちなみに Notes/Domino で採番ってナンセンスだと思うのは私だけですか？そうですか)</p>
<br />
<p>(Form :: Globals scope.)</p>
<p>Public Sub bindtest(a As NotesUIDocument, b As Variant)<br />
 Msgbox &quot;test&quot;<br />
End Sub</p>
<br />
<p>(Form :: PostOpen)</p>
<p>Sub Postopen(Source As Notesuidocument)<br />
 '何かしらの形でイベントを認識させないとバインドしてくれないのでコメントつけてます。<br />
End Sub</p>
<br />
<p>(Form :: Button)</p>
<p>Sub Click(Source As Button)<br />
 Dim uiws As NotesUIWorkspace <br />
 Dim a As NotesUIDocument<br />
 <br />
 Set uiws = New notesuiworkspace<br />
 Set a = uiws.CurrentDocument<br />
 Set b = uiws.CurrentDocument<br />
 Set c = a<br />
 </p>
<p> 'NotesUIDocument クラスから作成された a インスタンス変数に対してイベントのレイトバインディングをしてます。</p>
<p>'a (NotesUIDocument) の QuerySave のイベントを関数 bindtest が変わりに処理します。<br />
<font color="#0066cc"> On Event QuerySave From a Call bindtest </font><font color="#ff0000"><br />
</font> <br />
 a.Save  'bindtest が呼ばれます。<br />
 b.Save  'bindtest が呼ばれます。<br />
 c.Save　'bindtest が呼ばれます。<br />
End Sub</p>
<br />
<p>これに気づくのに何時間使ったことか…。</p>

]]> </description>  
      <link>http://ameblo.jp/hattsu/entry-10005609787.html</link>  
      <pubDate>Sat, 29 Oct 2005 17:36:35 +0900</pubDate> 
    </item> 
  </channel> 
</rss>
