2009年09月30日

Notesクライアントアプリケーションでよく使う共有アクション

Notesクライアント用アプリケーションでは、文書を開いたり閉じたりという一般的な操作が、ある程度定型化しています。

次の図は、ありふれた操作の一例です。
続きを読む
posted by Wind at 23:30| Comment(0) | TrackBack(0) | クックブック | このブログの読者になる | 更新情報をチェックする

2009年04月19日

Notes C++ API覚え書きその2

QtをVisual C++から使う場合、IDE統合ツール(Visual Studio Addin)を使わないのであれば、必ず環境変数を整備する必要がある。

PATH
MSVCのコンパイラディレクトリ(bin)
Notesプログラムディレクトリ
Notesデータディレクトリ
Notes C++ API DLLディレクトリ(lib\mswin32)


LIB
MSVCのライブラリディレクトリ(lib)
Notes C++ APIライブラリディレクトリ(lib\mswin32)


INCLUDE
MSVCのインクルードディレクトリ(include)
Notes C++ APIインクルードディレクトリ(include)

posted by Wind at 01:28| Comment(0) | TrackBack(0) | Notes C/C++ API | このブログの読者になる | 更新情報をチェックする

Notes C++ API 覚え書き

Notes C++ APIを使う場合、APIのヘッダファイル名とVisual C++が持つヘッダファイル名とで競合が発生する。ヘルプには、例えば次のようなヘッダファイルが競合すると書いてある。

mq.h、neterr.h、stats.hなど

ただし、Microsoft Visual C++ Express Editionでは、少なくともincludeディレクトリにそれらのファイルは存在しない。
ちなみに、Microsoft Visual C++ Express Editionでは、このうちstats.hは確かにないが、mq.hとneterr.hは、システムドライブ(通常C:)のProgram Files\Microsoft SDKs内に含まれている。

もし、競合が起きる場合は、原則Notes C++ APIのヘッダを優先するようにINCLUDE環境変数を設定するなどし、VCのヘッダを強制的に読み込ませたい場合は、#includeプリプロセッサでフルパスを指定するようにする。
ちなみに、Microsoft Visual C++ Express Editionでは、IDEの他にツールとして、自動で環境変数を整えて、プロンプトを出力するが、INCLUDEやLIB環境変数に定義しておいたものは、このバッチファイルによって後回しにされてしまうので、注意が必要。

また、VCのsqltypes.hを読み込むと、APIのglobal.hで定義しているSWORDデータ型と競合してしまう。もし両方とも使いたい場合は、別々のモジュールとしてコンパイルするようにする。
posted by Wind at 00:54| Comment(0) | TrackBack(0) | Notes C/C++ API | このブログの読者になる | 更新情報をチェックする

2009年03月09日

Qtのインストール

Qt

Lotus C APIを使ったアプリケーションを作成する時、どのコンパイラを使用しようか?
Qtに付いてくるMinGWを使おうか?
だけど、Lotus C APIに付属のnotes.libをリンクする時に、COFF形式で構成されているそうだ。
僕ごときでは、COFF形式のnotes.libがMinGWで使えるか、変換できるのか、さっぱりわからない。
なので、素直にMicrosoft Visual C++(Express版)で作成することに。
2009年3月3日にリリースされた4.5では、Qt CreatorなるIDEもリリースされた。とはいえ、使いたいVCがどうも使えないらしい。

インストール例

1.Qtのサイトに行く。
http://www.qtsoftware.com/title-jp

2.ダウンロードページに移動する。
00000-00.jpg

3.無償ダウンロードのフレームワークをダウンロードする。
00000-01.jpg
有償版は非常に高い!
まず、無償ダウンロードを選択する。
Qt Creatorは使えないので「フレームワークのみ」を選択する。
そして、「仕方なく」Windows版を選択する。

4.自動ダウンロードをキャンセルする。
00000-02.jpg
自動的にダウンロードしようとする。ファイル名の最後にMinGWと付いているので、おそらくこれは、GNU Cコンパイラが付いてきてしまいそうだ。
なので、キャンセルしておく。

5.ソース版をダウンロードする。
00000-03.jpg

6.ダウンロードファイルを展開する。
例) C:\Qt\4.5.0

7.環境変数PATHを設定する。
マイコンピュータのプロパティなどから、PATHにQtのBINディレクトリを追加する。
例) C:\Qt\4.5.0\BIN

8.VCのコマンドラインプロンプトを開く。
00000-04.jpg
普通のコマンドラインではなく、このようにメニューを開く。これで、VCのコマンドラインツールにアクセスするための環境変数設定を、自動的に設定してくれる。

9.configureを実行する。
Qtソースから、マシンに合った構成になるように設定する。

10.nmakeを実行する。
ライブラリを作成したり、デモをコンパイルしたりする。

これでインストール完了。
posted by Wind at 01:49| Comment(0) | TrackBack(0) | Notes C/C++ API | このブログの読者になる | 更新情報をチェックする

2008年11月22日

Prototypeを勉強する

Ajaxライブラリの草分け的存在のPrototypeを、Notes/Dominoに活用すべく、勉強をしてみましょう。
(書き込み途中)
posted by Wind at 08:40| Comment(0) | TrackBack(0) | Ajax | このブログの読者になる | 更新情報をチェックする

2008年02月14日

DojoMail Hack

とあるきっかけで、DojoというAjaxツールのデモアプリDojoMailDominoで使えるようにならないかお試しHackをしてみた。

Dominoと連携するには、DojoのライブラリをDominoに組み込む必要がある。
ライブラリそのものはDomino側のデータディレクトリ\domino\htmlの下にフォルダを切って入れても良いが、認証の関係で画面本体を構成するHTMLはメールDB内に置いておく必要がある。
Dojoメールのトップhtml「mail.html」は最低限DB内に入れておくようにする。
その他関係する画像やCSSはDB内でも外部でも良いはず。

もう一つ必要なのはパス。
Dojoライブラリに含まれるDojoMailデモは、すでにそこにあることで機能する。
そのため、Dojoライブラリへのパス参照もそこにあることを前提に書かれている。
だから、mail.html内やmail.css内で参照されている各種パスは適宜変更するようにする。
Dominoの場合、パスの先頭を「/」で始めればDominoサーバのルートから検索できる。
もしDojoライブラリをデータディレクトリ\domino\html\dojolibの中に配置したのなら、「/dojolib/〜」と始めれば良い。
データベースに取り込んだリソースなら直接「リソース名?〜(Domino URLコマンド)」とすれば良い。
もし、DojoMail用の画像ファイル「icons.png」をイメージリソースとして取り込んだのなら、「icons.png?OpenImageResource」とすれば良い。

インストールが済んで、Dojoサイトと同じようにメールデモを開くことができたら、まずは日本語化。
これは、HTMLソース内の表記を検索、置換することですぐにクリア。

次に、フォルダ→ビュー→プレビューの連携。
連携そのものの仕組みはすでにできあがっているので、取り込むデータをDominoにあるメールDBに変更する。
DojoMailのデータはJSONファイルから取り込むようになっている。
JSONファイルのURL指定先をDB内のエージェントに変更して、新しく追加するエージェントでJSON形式のテキストを吐くようにする。
そして、そのJSON形式のテキストを、DB内の受信ボックスなどのフォルダと連携すれば、DojoMailでDominoメールが見られるようになる。

実際にHackした感想では、Dojoの構成さえ大まかに把握できれば問題はないけど、JSON形式のデータ取得をたくさんの文書数を持つフォルダから行うと相当に時間かかる。
まとめて持ってくるのに時間がかかるというところを、うまく解決できれば、最先端のAjaxインターフェースでDominoメールを扱うのも現実的になってくるだろう。

ちなみに
posted by Wind at 09:13| Comment(0) | TrackBack(0) | Ajax | このブログの読者になる | 更新情報をチェックする

2008年02月11日

AcrivePerlにGDを組み込めない

【備忘録】

DominoサーバにActivePerl5.8.8(Build817)を組み込んでいたが、GDを使ったサンプルを作っても動作しない。

そこでPPM(Perl Package Manager)なるシステムの存在に気づき、使ってみる。

が、コマンドラインのこの機能がよくわからない。
「何をどこからどう組み込むんじゃ?」

いろいろ検索してみる。
「install /location c:\temp GD」
だと、GDどころか、locationっちゅうオプションがわからないと返してくる(バージョンのせいか?)。

ActiveStateのサイトに行くと、GUIツールの説明が書いてある。

しかし、どうも5.8.8で同じことをしてもGUIは一切出てこない。

そこで、最新版の5.10(Build1002)をインストールし直してみることに。

まあしかし、毎度のことながらインストールにやけに時間がかかるぜ、ActivePerl・・・。

5.10をなんとかインストールして、PPMを立ち上げると、すんなりGUI画面が。

しかし、5.8のコマンドライン同様、「GD」で検索してもGD本体が見つからない。

おかしい、おかしいと散々悩んだ挙げ句、ようやく「リポジトリ」というところに、Web上に存在するライブラリの索引情報のURLを登録することで機能することがわかる。

そこでまた問題。

どうもActiveStateがWeb上のドキュメントで教えているサイトのほとんどが、リポジトリに登録してもパッケージ数0を返してくる。
意味ないじゃん・・・。

そうこう探すうちに、有力な情報が。
ActivePerl5.10Win32版のCPANリポジトリ情報があるという。
The University of Winnipeg(カナダの大学らしい)
ここでこういう記述を見つける。

しかししかししかし!
信用できるであろう同じサイトのPPM情報は「見つからない」。
ブラウザでも、PPMでも。

そこで、もう一つ誘導されているサイトを試してみる。
http://www.bribes.org/perl/ppm
こちらでようやくGDの入ったリポジトリを登録、GDパッケージをインストールすることができ、サンプルコードも無事に動いた。

はてさて、本来の使い方、登録方法もよくわからないのに、Web上で検索したいろいろな情報にも翻弄されて、長い長い旅になってしまった。

ようやく「どこをどうすることでパッケージを組み込める」ことがわかったので、コマンドラインツールを使うときでもある程度勘は働くだろうが、それでももう少し日本語の正しいソースがあっても良さそうだよ。
posted by Wind at 19:40| Comment(1) | TrackBack(1) | Perl | このブログの読者になる | 更新情報をチェックする

2007年05月05日

CurlのHello World!

Curlについて、私が語れるものはない。
日本語環境においては、無償で勉強できる機会がなかったからだ。
ところが最近サイトを訪れてみたところ、非商用、個人利用で利用可能な日本語開発環境「Curl/Personal」が提供されるようになった。
しばらく諦めかけていたCurlとNotes/Dominoのコラボレーションを、もう一度始めてみよう。
忘れかけていることも多いので、もう一度最初の一歩から始めることにする。

まずは定番の「Hello World!」とコメントについて。
Curlは「リッチクライアントWeb言語」である。
プログラマーの視点で見ると、マークアップ言語(HTMLなど)+スクリプト(JavaScriptなど)+オブジェクト指向言語(Javaなど)といったところか。サーバーサイド技術(JSPやASP)にも似ているが、どこで動くかで判断すれば、クライアントサイドになる。

そのため、コードに直接表示する文字を書き込むことが可能だ。HTMLでBODYタグ内に「Hello World!」と書けばそれが表示されるように、ヘッダで決まり文句を数行書いた後、直接表示したい文字を書けばいい。特に標準出力を意識しなくていいと言うことである。

コメントは複数行用の「|#〜#|」と、行末までの「||」がある。

次にコード例を示す。

{curl 5.0 applet}
{curl-file-attributes character-encoding = "shift-jis"}
{applet manifest = "manifest.mcurl",
{compiler-directives careful? = true}
}
|# 複数行コメント
この行もコメント
#|
Hello World!{br} || 最初のコードと改行
Hello World Part2! || 二番目のコード

「Curl」の名の所以でもあるカールした中括弧。この中がCurlのコードと判断される部分。
最初の{curl}は「ヘラルド」と呼ばれ、種類やバージョン、パッケージなどを指定する。
次の{curl-file-attributes}はマクロで、主に文字エンコーディングの指定に使われている。
次の{applet}もマクロで、Curlアプレットについての宣言を行う。
ここまでは、Curl/Personalで自動的に生成された。

複数行コメントを挟んでHello World!。
その後の{br}は、いかにもHTMLの<BR>っぽいが、その通り「改行」を表す。
行末コメントの後、2行目のテキストが並ぶ。

ちなみに、このCurlコードを、Dominoサーバ上のデータベースのページに書き込んだら、コンテンツタイプをカスタムして、
text/vnd.curl
と、しておく。
するってーと、次のような実行結果が得られる。

07050501.bmp
posted by Wind at 23:12| Comment(0) | TrackBack(0) | Curl | このブログの読者になる | 更新情報をチェックする

2007年04月24日

NotesDocumentクラス

NotesDocumentクラスは、Notes/Dominoデータベースにストアされているデータレコードの単位です。文書という基本形のほか、プロフィール情報やWebブラウザからのリクエスト情報などもこの形で提供されます。
NotesDocumentプロパティ
プロパティ Ver. R/W データ型 概略 COM 対応Javaクラス
対応Javaメンバ
Authors - R 配列[String] 文書を保存したユーザ名配列 OK Document
getAuthors
ColumnValues - R 配列[Variant] 親ビューの列に対応した値配列 OK Document
getColumnValues
Created - R Variant[日付] 文書の作成日 OK Document
getCreated
EmbeddedObjects - R 配列[NotesEmbeddedObject] 文書に含まれる埋め込みオブジェクト群 OK Document
getEmbeddedObjects
EncryptionKeys - R/W String(R)/配列[String](R/W) 文書の暗号化に使用されるキー OK Document
getEncryptionKeys
EncryptOnSend - R/W Boolean 文書のメール送信時に暗号化するか OK Document
isEncryptOnSend, setEncryptOnSend
以下、更新中
※このリファレンスはヘルプの情報を元にしています。
posted by Wind at 20:50| Comment(0) | TrackBack(0) | Notes/Dominoクラス | このブログの読者になる | 更新情報をチェックする

2007年04月23日

NotesDatabaseクラス

NotesDatabaseクラスは、Notes/Dominoデータベースに対応し、フォームやビューなどの設計情報、文書などのコンテンツ、すべてのストア先になります。
NotesDatabaseプロパティ
プロパティ Ver. R/W データ型 概略 COM 対応Javaクラス
対応Javaメンバ
ACL - R NotesACL このDBのアクセス制御リストの取得 OK Database
getACL
ACLActivityLog 6 R 配列[String] このDBのアクセス制御リストのログ OK -
-
Agents - R 配列[NotesAgent] このDBのすべてのエージェント OK Database
getAgents
AllDocuments - R NotesDocumentCollection このDBのすべての文書 OK Database
getAllDocuments
Categories - R Variant このDBのカテゴリ OK Database
getCategories
Created - R Variant[日付] このDBの作成日 OK Database
getCreated
以下、更新中
※このリファレンスはヘルプの情報を元にしています。
posted by Wind at 20:54| Comment(0) | TrackBack(0) | Notes/Dominoクラス | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。