忍者ブログ

ド壺

脳内がNotes/Domino系からASP.NETに移行しつつあるIT系情報ブログなつもり。

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

過去掘り出し。

R5⇒R7マイグレーション準備で各DBチェックしてたら、
昔自分で作ったモノで「うはっ、こんなもんまで作ったんだっけ」
ってのがあったので紹介。

内容はバカ杉ですが、
要は応用次第なのよねっとことで載せときます。

たしか、「チェックしたい日の15:00から17:00の2時間の
打合せ室予約状況を10分単位でグラフィカルに見たい。」
と言われて作った物がこーんな感じ↓。


設計要素(サブフォーム)はこんなん。

これ、黒い四角の図形オブジェクトを10分毎に配置し、
非表示式で実際に表示するかどうかを決めてます。
上のだと、15時台をa、16時台をbにし、
15時台の左から5つ目(0から数えると4)の黒四角なんでa4。としてます。


このサブフォームを表示するためのアクションボタンに
書かれたコードは↓。
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Dim doc As NotesDocument
Set doc = uidoc.Document

If uidoc.FieldGetText( "Fixture" ) = "" Then
Messagebox "会議予定日が設定されていません。" + Chr(10) _
, 0 , "空き時間検索エラー"
Exit Sub
End If

Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim view As NotesView
Set view = db.GetView( "Fixture" )
Dim dc As NotesDocumentCollection
Dim txtDate As String
txtDate = Format$(doc.Fixture(0) , "YYYY/MM/DD")
Set dc = view.GetAllDocumentsByKey(txtDate)
Dim Sdoc As NotesDocument
Set Sdoc = dc.GetFirstDocument()

'値初期化
For m = 0 To 5
FieldName = "a" + Cstr(m)
Call uidoc.FieldSetText( FieldName, "" )
FieldName = "b" + Cstr(m)
Call uidoc.FieldSetText( FieldName, "" )
Next

While Not(Sdoc Is Nothing)
'時間の取得
HurDataS = Cstr(Hour(Sdoc.StartTime(0)))
MinDataS = Cstr(Minute(Sdoc.StartTime(0)))
HurDataE = Cstr(Hour(Sdoc.EndTime(0)))
MinDataE = Cstr(Minute(Sdoc.EndTime(0)))

Dim c As Integer, d As Integer
c = Cint(Left$(MinDataS, 1))
d = Cint(Left$(MinDataE, 1))
If c = 5 And d = 0 Then
d = 6
End If

Select Case HurDataS
Case "15":
Flag = "a"
Case "16":
Flag = "b"
End Select

If c = d - 1 Then
'■が1つのみ(10分間)
Select Case HurDataS
Case "15":
FieldName = Flag + Left$(MinDataS, 1)
Case "16":
FieldName = Flag + Left$(MinDataS, 1)
End Select
Call uidoc.FieldSetText( FieldName, "■" )
Else
'■が2個以上(20分以上)
If HurDataS = HurDataE Then
'時が同じ場合
For i = c To (d - 1)
FieldName = Flag + Cstr(i)
Call uidoc.FieldSetText( FieldName, "■" )
Next
Else
'時が違う場合
For i = c To 5
FieldName = "a" + Cstr(i)
Call uidoc.FieldSetText( FieldName, "■" )
Next
For l = 0 To (d - 1)
FieldName = "b" + Cstr(l)
Call uidoc.FieldSetText( FieldName, "■" )
Next
End If
End If

Set Sdoc = dc.GetNextDocument(Sdoc)
Wend

Call workspace.DialogBox( "time_off", True, True, True, True, False, False, "空き時間検索")
Exit Sub

End Sub


実際、上のサブフォームの設計要素で、黒四角の下に同じ大きさの
a0~a5、b0~b5のフィールドがいてます。
(↓は黒四角を全部とっぱらった設計上の表示。)

当初、
15:00|■|■|■|■|■|■|16:00|■|■|■|■|■|■|17:00
というような感じで、文字記号の黒塗りつぶし四角を拡大してたため、
スクリプトでは各フィールドに”■”の値が置かれてます。
しかしどんなに■を拡大しようが、|と■の間にスペースが出来てしまうため
なんとなく見栄えが悪いー。ってことで、サブフォームを上の方法に変更。
だけどスクリプトはそのまんま。。。
まるっきり手抜きだけど、どうせ図形の黒四角オブジェクトで
下のフィールド値が見えない状態になってるので、このまんま放置。

拍手[0回]

PR

COMMENT

NAME
TITLE
MAIL(非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS(コメント編集に必須です)
SECRET
管理人のみ閲覧できます

参考になります。

  • by たち
  • 2007/03/25(Sun)01:09
  • Edit
他人の凝った設計は観てて面白いです。例えばDJX管理ツールのナビゲータなんて無駄にしか思えない程に見た目だけ凝ってるし。しかしその方が一部の人に受けがいいのも事実。
参考になります。

そうそう、移行するということなので。
昔、懇談室にも書いたのですが、7のDominoディレクトリでClient R5.0.10以上でないとクラッシュするそうです。JPIK6KXQ7Q

今も昔もNotesDBはグラフ系弱いですよね。

  • by NDOMINO-S
  • 2007/03/26(Mon)08:22
  • Edit
今も昔もこの手のグラフィカルな要件はNotesDBは弱いですよね。結局テキストを無理やり見せるしかないのかな~と思います。

過去にやたら凝ったスケジュール表の依頼されて、Notest単体ではどうしてもダメ、OLE(=Notes/FX)もうまくいかない。
困りに困って結局、他の人に「Javaアプレット」で表のグラフ部分のパーツ作ってもらってそれを組み込んだことありますが、他技術の進化であっという間に「Javaアプレット」が陳腐化し今やに「アプレット」という単語さえ誰も知らない状態に・・・・・・。このDB自体は現役で立派に動いてますけど・・・・・・・。(将来の保守が~保守が~)

(結論).Javaの鮮度は生魚並みなので気を付けよう。

どぉーん。。。

  • by nami
  • 2007/03/26(Mon)10:39
  • Edit
たち様
> しかしその方が一部の人に受けがいいのも事実。

特にこれ、お偉方の大好物ですよね(ぁ
中身よりも見た目を変えるだけで喜ばれるものです(爆

>Client R5.0.10以上でないとクラッシュ

やば。こちらでは未だにR5.0.5なんですけど。。。
まー本社が苦労するだけだから、この件は高みの見物っと。(核爆

NDOMINO-S様
> グラフィカルな要件はNotesDBは弱いですよね

ですね。こーいうので苦労している人がかなりいると思ったので、
今回の件はレイアウト領域なら、図形オブジェクトをレイアのように重ねて
非表示制御ができるよー。ってのがミソです。

> (結論).Javaの鮮度は生魚並みなので気を付けよう。

確かに。。。色々ありすぎで訳ワカメ。
というかアプレットまで作成して、呼び出すとは。。。
それってSunのJava VMが全PCにインストされてない時代では??
当時MSとSUNでその辺もめてた気が。(あれ?あの闘争はどうなったんだっけ??
自分ならムリヤリExcel上で表示かけちゃいますね。値の取得なんか無視で(ぁ

JavaVM

  • by NDOMINO-S
  • 2007/03/26(Mon)12:54
  • Edit
Notesaクライアント上のJavaはSunでもMSもなくNotes\jvmに置かれたIBMが独自チューニングかけたJavaVMで動いているみたいです。
Javaの裁判はSunが勝ったのでWindowsXP中期以降のMS版JavaVMはプリインストールされていないはずです。
ですがIEでSun版JavaVM動かすと、遅い、レイアウトが変、落ちるの三重苦なんで事実上使えません。
よって私は
IE--->MS版JavaVM
mizora,FireFox--->Sun版JavaVM
で使っています。

なおNotes+Javaアプレットはパラメータ設定がNotesのフィールドと直結出来て、楽な上にWeb上でも動くのでかなり使えました。
Javaアプレットが陳腐化した、今ではとてもい虚しい話ですけど・・・・・・。

MS-JVMはもう少しサポートするみたいです。

  • by たち
  • 2007/03/26(Mon)23:43
  • Edit
マイクロソフトとサンが包括提携をし、係争の和解に合意
http://www.microsoft.com/japan/presspass/detail.aspx?newsid=1887
ですって。

で、MSJVMのサポートは2007/12/31まで
http://www.microsoft.com/japan/java/default.mspx

TRACKBACK

Trackback URL:

カウンター

ブログ内検索

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

プロフィール

HN:
nami
性別:
女性
自己紹介:
火星人+/ペガサス/ささ女
の完全変人タイプ。

仕事は1事業所のIT管理者。
ノーツDB開発を主に担当。
鯖管理とNetwork管理にも携わる。
ぶっちゃけIT便利屋。
基本は「広く浅く」。
口癖は「メンドクサ。。。」

ついったーやってます。
@namiphoをフォローしてネ


トラバについて
ここの記事のリンクがない記事については、トラバ許可はしませんのでご承知おきください。

最新コメント

No Title(返信済)
(04/25)
No Title(返信済)
(04/12)
No Title(返信済)
(03/01)
(10/07)
(09/29)

最新トラックバック

バーコード

アフェリエイト


デル株式会社
シマンテックダウンロードストア

お天気情報

アクセス解析

Copyright ©  -- ド壺 --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]