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

次に項目名の表示で作ったDrawChart関数で使用しながら、全く解説していなかったDrawChartBar関数を作成します。

これは項目データのIDに割り当てられた工程データを探し、それをsetSchdule関数(後述)に送ります。その処理を項目ID回数繰り返す事で、それぞれの項目に割り当てられた工程のチャートを描画することができます。多少非効率的な処理ですが、単純な作業なのでそのままコードにしてみました。

Sub DrawChartBar(ItemId As Integer, Row As Integer)
    
    Dim i As Integer
    
    For i = 1 To mdlSchedule.Count
        
        If Schedules(i)._ItemId = ItemId Then
            
            setSchedule(Schedules(i), Row)
            
        End If
        
    Next i
    
End Sub

上述のsetSchedule関数は下記となります。渡された工程データから予定と実績のそれぞれについて、描画処理が必要か否かのフラグを確認し、必要ならば前回作成したsetChartBar関数に渡します。また工程の名称を表示する設定になっていれば、工程の左端のセルにその名称を入力するというものです。

Sub setSchedule(Schedule As Object, Row As Integer)
    
    Dim flgPrintLabel As Long
    
    If oProperty._PrintLabel Then
        flgPrintLabel = True
    Else
        flgPrintLabel = False
    End If
    
    If Schedule._DrawPlan Then
        setChartBar("Plan", Schedule, Row)
        If flgPrintLabel Then
            Cells(oSheet, _
                Int(getColumnIndexByDate(Schedule._PlanBegin)+1), _
                Row).String = Schedule._Name
            flgPrintLabel = False
        End If
    End If
    
    If Schedule._DrawAct Then
        setChartBar("Act", Schedule, Row)
        If flgPrintLabel Then
            Cells(oSheet, _
                Int(getColumnIndexByDate(Schedule._PlanBegin)+1), _
                Row).String = Schedule._Name
            flgPrintLabel = False
        End If
    End If
    
End Sub
スポンサーサイト

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

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