« 昨日の新聞ですが | トップページ | Palm Preは日本語が通る! »

2009年6月 5日 (金)

のこり日バージョンアップ

遅ればせながら、mizuno-amiさん作の「のこり日」のバージョンアップ版を導入しました。

Screenshotu0035 今回の目玉のひとつは、「直」モードの追加。これは、Palmの標準カレンダーのデータを直接見に行ってのこり日に表示するというものですが、これがすばらしく早く動きます!私のT3だと、待たされる時間は0.5秒あるかないか。私のカレンダーは8300件程度のデータが入っているのですが、NS Basicで、標準カレンダーに対してのアクセスでここまで高速に動くのは驚きです。

さらに、この「直」モードから、のこり日のデータベースへのインポートも行うことが出来ます。以前の「+」ボタンからの追加も出来るのですが、この「直」モードからの追加の方が一覧性が高くて私は好きですね^^

さらに、3日以内の予定には!マークがついたりして、さらに実用性が増しました。ますます手放せませんね。

あと、開発者向けに、のこり日へのデータ追加方法が公開されています。これ、readmeに書かれていないので、自分向けの覚え書きとしてここにコピペ。

データベース名は『NOKORIBI-DB』というファイルです。
ここに、次のようなデータを用意して、KEYモード(DbInsertを使う方法)で書き込んで下さい。

    '最低限必要な変数類
    Dim strDate as String
    Dim strTime as String
    Dim ytDate as Date
    Dim strKey as String
    Dim strDetail as string

    '日付データを文字列で用意します。フォーマットは YYYY/MM/DD です。
    'また、日付型のデータも同時に保存しますので用意しておいて下さい。
    'もちろん、日付型データを用意しておいて、文字列に変換しても構いません。

    strDate = "2009/06/04"
    ytDate = toDate(strDate)

    '時刻データを文字列で用意します。画面表示用で特に意味はありません。
    '時刻がある場合は HH:MM-HH:MM というフォーマットで用意します。
    '時刻がない場合は何でも構いませんが、データの並び順で数字より前にある文字を推奨します。
    '『のこり日』では (No Time) を使っていますので、出来ればこれをお使いください。

    strTime = "10:00-11:00"

    'スケジュールの内容を用意します。
    strDetail = "虫歯の日"

    'キー項目を用意します。
    '日付+時刻+半角縦棒+内容です。

    strKey = strDate + strTime + "|" + strDetail

    '書き込みは以下の順に行います。
    '(サンプルなのでDbOpenなど、標準的手続き部分は割愛しています)

    res=DbInsert(Db, strKey, ytDate, strTime, strDetail, 1, 1, 0)

また、書き込みデータの後ろの方に付いている3つの数字ですが、それぞれ、次のような意味を持っています。単発モードなら「1,1,0」です。

    1つめの引数:予定のモード/Integer

      1:単発モード
      2:再スケジュールモード


    2つめの引数:期日後の動作/Integer

      1:削除する
      2:n日後
      3:n週間後
      4:nヶ月後
      5:n年後

    ※再スケジュールモードで「1」は基本的に有り得ない。

    3つめの引数:サイクル/Integer

      2つめの引数のnの内容

    ※単発モードでは無視される。

せっかくなので、私の手持ちのアプリで何か書き込めるアプリはないかなあ、と思ったのですが、すぐにはないですね。「書いて覚える単語帳」に、「次回勉強予定日」をのこり日に登録するボタンでも作ってみるとかですかね^^

あと、一つバグ報告。T3において、「+」ボタンからの登録で、「手入力」を選択した場合に日付選択画面が表示されますが、ここで日付を選択した結果が、取り込みダイアログボックスの日付セレクターに反映されません。ちなみにCentroでは発生せず、T3の方だけ発生します。実はこの問題、私の「書いて覚える単語帳」でも発生したバグでして、私の場合、下記のように対応しました。(以下、わかりにくかったので12:18修正しました)

まず、日付セレクターの所には、下記のコードを記述(これは、ふつう通り)

    Dim res as Integer

    res=popupdate(q_enterdate,"登録時期")
    selector1107.Text=str(q_enterdate)

ちなみに、q_enterdateはDate型のグローバル変数で、"登録時期"の情報を保持しています。

そして、この日付セレクターを持つ画面のbefore codeに、

selector1107.Text=yearmonth(q_enterdate)+"/"+str(day(q_enterdate))

という文を書いて回避した覚えがあります。(ここは、今見れば、selector1107.Text=str(q_enterdate)でも良かったかも^^;)。お手すきの時にまたご検討くださいませ。

      |

      « 昨日の新聞ですが | トップページ | Palm Preは日本語が通る! »

      コメント

      コメントを書く



      (ウェブ上には掲載しません)




      トラックバック

      この記事のトラックバックURL:
      http://app.cocolog-nifty.com/t/trackback/140067/45239837

      この記事へのトラックバック一覧です: のこり日バージョンアップ:

      « 昨日の新聞ですが | トップページ | Palm Preは日本語が通る! »