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

最後に、リスナー用関数を作成します。Initialize関数中にて、btnOKへActionListener、imgPlanColor・imgActColorにMouseListenerを割り当てているので、これに対応した関数を作成すると共に、ActionListenerで示したように各コントロール用の処理としてbtnOK_actionPerformed関数、imgColor_mousePressedも合わせて定義します。

まず、追加するコードを下記に示します。

mdlEditSchedule

Private Sub imgColor_mousePressed(oEvent)
    
    Dim imgModel As Object
    Dim s As String
    imgModel = oEvent.Source.getModel
    Select Case imgModel.Name
        Case "imgPlanColor"
            s = dlgEditSchedule_PlanColor
        Case "imgActColor"
            s = dlgEditSchedule_ActColor
    End Select
    
    imgModel.BackgroundColor = _
        mdlSelectColor.Show(s,imgModel.BackgroundColor)
    
End Sub
 
Private Sub btnOK_actionPerformed
    getValues
    flgUpdate = True
    oDialog.endExecute
End Sub
 
Private Sub dlgEditScheduleActionListener_actionPerformed(oEvent)
    Select Case oEvent.Source.getModel().Name
        Case "btnOK"
            btnOK_actionPerformed
        Case Else
        
    End Select
End Sub
 
Private Sub dlgEditScheduleActionListener_disposing: End Sub
 
Sub dlgEditScheduleMouseListener_mousePressed(oEvent As Object)
    Select Case oEvent.Source.getModel().Name
        Case "imgPlanColor", "imgActColor"
            imgColor_mousePressed(oEvent)
        Case Else
        
    End Select
End Sub
Sub dlgEditScheduleMouseListener_disposing(): End Sub
Sub dlgEditScheduleMouseListener_mouseReleased(oEvent): End Sub
Sub dlgEditScheduleMouseListener_mouseEntered(oEvent): End Sub
Sub dlgEditScheduleMouseListener_mouseExited(oEvent): End Sub

各関数の説明をします。

  1. Sub imgColor_mousePressed(oEvent)
    クリックされたコントロール名から予定か実績かを判断し、ダイアログに表示するタイトルを決め、色選択用ダイアログを表示する。ダイアログで色を選択したら、その色を設定します。
  2. Sub btnOK_actionPerformed
    コントロールの値をデータに記録し、データが変更されたことを認識するためのフラグをTrueにしてからダイアログを閉じます。
  3. Sub dlgEditCategoryActionListener_actionPerformed(oEvent As ActionEvent)
    引数のActionEventオブジェクトから実行元のコントロール名を取得し、各コントロール毎の処理に振り分けます。
  4. Sub dlgEditCategoryActionListener_disposing
    ダイアログを終了時、ActionListenerを破棄するタイミングで実行される関数ですがこのダイアログでは必要ないので空白のままとます。但し、ActionListenerは必ずこの関数を実行しようとしますので、空白のままでも宣言しておかないとエラーになります。
  5. Sub dlgEditScheduleMouseListener_mousePressed(oEvent As Object)
    マウスリスナーを割り当てたコントロールをクリックすると呼び出される関数です。コントロール名から処理を振り分けます。
  6. Sub dlgEditScheduleMouseListener_disposing()
    Sub dlgEditScheduleMouseListener_mouseReleased(oEvent)
    Sub dlgEditScheduleMouseListener_mouseEntered(oEvent)
    Sub dlgEditScheduleMouseListener_mouseExited(oEvent)
    マウス動作時の処理内容ですが、特に指定する内容が無くても作成しておかないとエラーになります。

以上で工程編集ダイアログの完成です。

このダイアログの動作確認をするために、仮のデータを1つ入力して以下のマクロを実行してみます。表示されたダイアログで値を変更し、設定後正しく変更内容が反映されているか確認してみて下さい。

mdlMain

Sub Test
    Initialize
    mdlSchedule.LoadAll
    If mdlEditSchedule.Show(1) Then mdlSchedule.SaveAll
End Sub
スポンサーサイト

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

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