投稿

1月, 2011の投稿を表示しています

リッチテキスト内の特定の文字属性を変更する

イメージ
8.5の資格試験の勉強中ですが、なにやら頭がパンクしそうです。
中級の資格の中に、xPagesとか盛り込まないで欲しい!と思っているのは筆者だけではないはずです。
上級がLotusScriptっておかしいよなぁ。まぁ、筆者はLotusScriptの試験は合格済みなので、アップデートすれば良いだけなのですが。


ということで、恒例のクリックの時間です。昨日、クリックした方もそうでない方もクリックしてくださいね。



さて、今日もどこぞの懇談室の話題について書いてみます。
既存の文書のリッチテキストの内容を変更してみるというものです。

NotesRichText関連のクラスは、たくさんあり、それぞれの役目がどういったものなのか難しいので、使いこなすのが大変かと思いますが、今回は以下のように考えます。
リッチテキストの中を検索する(NotesRichTextNavigatorクラス)。変更後のスタイルを決定する(NotesRichTextStyleクラス)。 変更したい範囲を決定する(NotesRichTextRangeクラス)。範囲に対して、スタイルをセットする(NotesRichTextRangeクラス)。

では、サンプルです。
以下のサンプルは、エージェントとして作成してあります。
ビューで選択した文書の、"Body"というリッチテキストフィールド中のフォントスタイルを変更するというものです。
変更する文字列は、「あいうえお」で始まり、「さしすせそ」の前にある文字までです。
「さしすせそ」の文字は変更対象にならないことに注意してください。

また、サンプルはエラー処理とかは施していませんので、実際に利用する際は、注意してください。
Sub Initialize     Dim session As New NotesSession     Dim curdb As NotesDatabase     Dim docs As NotesDocumentCollection     Dim doc As NotesDocument     Dim ritem As NotesRichTextItem     Dim rnavi As NotesRichTextNavigator     Dim rrange As NotesRichTextRange     Di…

リストの中の最小値を取得する

イメージ
1月も終わりが近づいてきました。そろそろ花粉の時期です。筆者は万年アレルギー症らしいので、すでに準備はできています!?
今年は花粉の量が多いと騒がれているようなので、早めに対策をしましょう。

ということで、こちらのボタンをクリックしましょう。花粉対策が見つかるかもしれません。



さて、今日はどこぞの懇談室に出ていた質問の回答を探ってみました。
リストの中の最小値を取得すると言うことです。
最小値なので、@Minかなぁとか思うのですが、デザイナーヘルプを読むと、「1つのリスト内で最小の数値、または2つの数値や2つの数値リストの小さい方の数値が返されます。」とあります。つまり、数値を対象とした関数であることが分かります。
となると、日付は使えません。

ここは、1つ考え方を変えてみます。
最小値が分かるには・・・そう、小さい順に並べればよいのです。
幸い、ノーツにはリリース6から追加された「@Sort」というソート用の関数があります!さすが!
これを使ってみましょう。

以下は、サンプルとその実行結果です。
date_1 := @TextToTime("2011/01/03"); date_2 := @TextToTime("2011/01/12"); date_3 := @TextToTime("2011/01/05"); date_4 := @TextToTime("2011/01/01"); date_5 := @TextToTime("2011/01/25"); date_6 := @TextToTime("2011/01/07"); tmp := @Sort(date_1:date_2:date_3:date_4:date_5:date_6); @Prompt([Ok];"最小値";@Text(tmp[1]))

確かに、日付の中で1番小さいものが表示されます。
ここで気をつけて欲しいのは、このリストの中に、空白が含まれている場合は、エラーになると言うことです。

値が空白の場合は、@Sort関数のリストに含めないようにするなどの工夫が必要です。


ということで、今日はこの辺で・・・


【PR】ノーツ/ドミノに関するお問い合わせは…

金曜日(2011/1/21)はテクてくで懇親会がありましたよ

ツイッターでも何名かがつぶやいているように、3/2にLotusphere comes to you 2011が開催されます。
筆者も行きます。皆さんも今からスケジュール調整をして是非来場しましょう!
ちなみに、その日は筆者の4x歳の誕生日です。見かけたら祝ってやってください(笑)


さてさて、先週の金曜日はテクてくLotusの夜会がありました。
今回は、Dojoについてのお話しとハンズオンでした。普段は、ハンズオンには出席せずにBOFという製品についての話し合いに参加するのですが、さすがにDojoはほとんど手を付けていないので、おさらいということでハンズオンに出席したのでした。
なお、Dojoについては、IBMのdeveloperWorksJapanのサイトの中に、Dojoツールキット・ファンというページがあります。
また、CodeZineというサイトの中にもDojo道場というコーナーがありますので、そこを見ると詳しくなれるそうです。


このテクてく夜会の後、初めての懇親会が開催されました。
IBMの方や、夜会の参加者、あわせて20名弱の方が参加するというものでした。
筆者はもっぱら、Lotus製品についてIBMの方、夜会のメンバーの方と楽しくおしゃべりさせていただきました。
きっとまた開催されると思いますので、今回参加できなかった方も、次回は参加してくださいね。
ところで、参加者の中にはこのブログの読者の方もいらっしゃったようで、「ネタがないとか言ってたくさん持っているじゃないか!もっと書いて欲しい!」と言われてしまいました。
なるべくたくさんの情報をお届けできるように頑張りますので、許してやってくださいな。



ところで・・・テクてくの資料の12月分がまだアップされませんね。
12月の分は、内容が良かったので、復習をしたいので、テクてくスタッフの皆様、早くアップしてください。お願いします。



では、ネタができたら、ブログを更新します。お楽しみにぃ~。

ビューの列の値を取得する

イメージ
2011年です。アナログ放送が終わり、地デジになってしまいます。
先日、電気屋さんに行ったら、46型の液晶テレビが12万円で売っていました。筆者はその倍近くの値段で買ったのに・・・
ひどい、ひどすぎる。

ということで?今年1回目のお届けです。


ボタンをクリックしてから読むと、きっと良いことがあります。



今回はLotus Notes/Domino 8.0からの新機能についてです。
デザイナーヘルプには記載されていないものなので、見落としがちなのとどう使えば良いか分からないと困るので掲載しておきます。
っていうか、IBMさん、ヘルプに載せてください。

NotesViewクラスにGetColumnValuesというメソッドが追加されています。
この事は評価ガイド等を見れば書いてあることなので、たいした話ではないかと思います。
問題なのは、前述したとおり、ヘルプに記載がないのです。
つまり、どうやって使えば良いのか、構文はどうなっているのか?等の情報がないのです。

ただし、オートコンプリートの設定を有効にしておく(下図)と、メンバが自動的に表示されます。
さらに、構文のパラメタも自動的に表示してくれます。


さて、ではこの新しいGetColumnValuesメソッドの構文はどうなっているのかを見てみましょう。
どうも、列番号を指定すれば良いようです。
しかし、戻り値が分かりません。こればっかりは試してみないと分かりません。

まずは列番号から。
0から始まるのか、1から始まるのかのどちらかでしょうが、Integer型なので0~32767までの数値というのが妥当でしょう。
また、ビューに存在する列以上の数値は指定できないでしょう。

戻り値ですが、列の値を取得するようなメソッドなので、Variant型の配列が返ってくることが予想できます。

ということを踏まえて、サンプルを作ってみました。
単純に指定したビューの最初の列の値をダイアログとして表示するだけです。

Sub Click(Source As Button) Dim session As New NotesSession Dim db As NotesDatabase Dim view As NotesView Dim ret As String Dim titlenum As Integer Set db =…