OpenOffice.org Basicでガントチャート
OpenOffice.org Basicを使ってガントチャート作成用マクロ ガントチャートforOOoを開発する手順を紹介していきます。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カレンダーダイアログ 番外編

カレンダーダイアログを利用するように、工程編集ダイアログの修正を行います。

前回詳しく書かなかったのですが、工程編集ダイアログのInitialize関数にて、

txtPlanBegin.addMouseListener(oMouseListener)
txtPlanEnd.addMouseListener(oMouseListener)
txtActBegin.addMouseListener(oMouseListener)
txtActEnd.addMouseListener(oMouseListener)

という記述を既にしており、準備はしていました。後は、クリック時の処理を作成し、マウスリスナーに必要な命令を追加するだけで完成です。
以下にクリック時の処理を示します。

Private Sub txtDate_mousePressed(oEvent)
    
    If Not State2Bool(chkCalendar) Then Exit Sub
    
    If flgCalendar Then Exit Sub
    
    flgCalendar = True
    
    Dim wk As Date
    wk = mdlCalendar.Show(CDate(oEvent.Source.Text), CALENDARTYPE_SELECT)
    
    Select Case oEvent.Source.getModel.Name
        Case "txtPlanEnd","txtActEnd"
            wk = wk + 1
    End Select
    
    If FirstDate < wk Then oEvent.Source.Text = wk
    
    flgCalendar = False
    
End Sub

まず、chkCalendarコントロールの状態を確認し、カレンダーを使用することにチェックを入れていなければ処理を中断します。
また、カレンダーの表示には多少時間がかかるので、繰り返しクリックをされるとエラーが発生することがあるので、flgCalendar変数を確認し、動作中であれば処理を中断し、動作中でなければ動作中のフラグを設定して処理を継続します。
ここで、カレンダーダイアログを日付選択モードで表示し、選択した日付でそれぞれのテキストボックスの内容を更新するのですが、データの関係上、終了日には1を加算しておきます。

次に、マウスリスナーの関数を変更します。

Sub dlgEditScheduleMouseListener_mousePressed(oEvent As Object)
    Select Case oEvent.Source.getModel().Name
        Case "imgPlanColor", "imgActColor"
            imgColor_mousePressed(oEvent)
        Case "txtPlanBegin","txtPlanEnd","txtActBegin","txtActEnd"
            txtDate_mousePressed(oEvent)
        Case Else
        
    End Select
End Sub

これでテキストボックスをクリックすることにより、日付の変更をカレンダーダイアログで行う事ができるようになります。

スポンサーサイト

テーマ:OpenOffice.org - ジャンル:コンピュータ

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://shinob.blog42.fc2.com/tb.php/79-6f45dd64
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
COPYRIGHT(C) 2004 POWERD BY FC2 ALLRIGHT RESERVED.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。