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

各種リスナー用の関数を作成します。

まずアクションリスナーから見てみると、btnOKしかないので、btnOK用の動作をそのまま書込むことにします。

Private Sub dlgEditPropertyActionListener_actionPerformed(oEvent)
    Select Case oEvent.Source.getModel().Name
        Case "btnOK"
            getValues
            flgUpdate = True
            oDialog.endExecute
        Case Else
        
    End Select
End Sub

Private Sub dlgEditPropertyActionListener_disposing: End Sub

値をプロパティ変数に書き戻し、編集フラグの値を真とし、ダイアログを終了させます。

次にアジャストメントリスナーを考えてみます。そこで、スクロールバーを操作した時の動作をsetScrollBarValueOnLabelという関数で作成しておきます。

Private Sub setScrollBarValueOnLabel(oControl As Object)
    
    Dim s As String
    Dim i As Integer
    
    s = oControl.getModel.Name
    
    If s = "scbChartBarWeight" Or _
        s = "scbProgressLineWeight" Or _
            s = "scbMileStoneWeight" Then
        i = 1
    Else
        i = 0
    End If
    
    oDialog.getControl("txt" & Right(s, Len(s) - 3)).Text = _
        oControl.Value + i
    
End Sub

スクロールバーの名前で処理を分岐し、値表示用のラベルコントロールに数値を入力しています。
そしてアジャストメントリスナーから、この関数を呼び出すこととし下記のコードを追加します。

Private Sub dlgEditPropertyAdjustmentListener_adjustmentValueChanged(oEvent)
    
    setScrollBarValueOnLabel(oEvent.Source)
    
End Sub
 
Private Sub dlgEditPropertyAdjustmentListener_disposing: End Sub

最後にマウスリスナーの動作を作成します。

Sub dlgEditPropertyMouseListener_mousePressed(oEvent As Object)
    
    Select Case oEvent.Source.Model.Name
        Case "imgChartBarPlanLineColor",_
            "imgChartBarPlanFillColor",_
            "imgChartBarActLineColor", _
            "imgChartBarActFillColor",_
            "imgChartHolidayColor",_
            "imgProgressLineColor"
            
            oEvent.Source.Model.BackgroundColor = _
                mdlSelectColor.Show("", _
                    oEvent.Source.Model.BackgroundColor)
        Case "txtBeginDate"
            Dim wk As Date
            wk = mdlCalendar.Show(CDate(oEvent.Source.Text), _
                CALENDARTYPE_SELECT)
            If FirstDate < wk Then oEvent.Source.Text = wk
        Case Else
        
    End Select
    
End Sub
Sub dlgEditPropertyMouseListener_disposing(): End Sub
Sub dlgEditPropertyMouseListener_mouseReleased(oEvent): End Sub
Sub dlgEditPropertyMouseListener_mouseEntered(oEvent): End Sub
Sub dlgEditPropertyMouseListener_mouseExited(oEvent): End Sub

これまでに作成した色選択ダイアログや日付選択ダイアログを利用し、チャートの色や日付を選択できるようにしています。

以上でガントチャート作成に必要な準備が一通り終了しました。データやプロパティの編集ができるようになったので、次回からいよいよガントチャートを描画する処理を解説していきます。

スポンサーサイト

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

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