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

最後にこれまで解説してきた処理や作成してきた関数を組み合わせて、工程表を更新するUpdate関数を作成します。

これまで同様、処理を簡単に説明すると

  1. データの読み込む
  2. 描画するシートの取得する
  3. チャートの最終日を計算する
  4. チャートを描画するためにデータの予備処理を行う
  5. 分類区分により必要なBinデータを生成する
  6. 描画に必要な最大行数を計算する
  7. 以降、画面の描画を伴うので更新処理を一時停止させる
  8. 日付欄を更新する
  9. 休日の塗り分けを行う
  10. チャートを描画するための図形を準備する
  11. 入力済みのセルの内容を消去する
  12. 分類、項目、工程のデータに合わせて、チャートを描画する
  13. 停止した描画処理を再開させる
となります。

Sub Update
    
    LoadAll
    
    If Not getProperty Then Exit Sub
    
    oSheet = mdlMain.Sheets(oProperty._SheetName)
    
    CulcEndDate
    checkData
    
    Select Case oProperty._CategorizeType
        Case CATEGORIZETYPE_CATEGORY
            mdlBin.CreateBins(False)
        Case CATEGORIZETYPE_Person
            mdlBin.CreateBinsByPerson(False)
    End Select
    
    setMaxRows
    
    setScreenUpdating(False)
    
    printDateHeader
    paintHoliday
    
    setChartBars
    setProgressBars
    
    '*** Clear Contents ***
    oSheet.getCellRangeByPosition( _
        oProperty._LeftColumn - 1, _
        oProperty._TopRow + ChartHeaderRows - 1, _
        oProperty._LeftColumn + oProperty._DrawColumns + _
            ChartHeaderColumns - 1, _
        oProperty._TopRow + oProperty._DrawRows + _
            ChartHeaderRows - 2 _
    ).clearContents( _
        com.sun.star.sheet.CellFlags.STRING + _
        com.sun.star.sheet.CellFlags.VALUE _
    )
    
    Dim i As Integer
    
    RectPos = 0
    LinePos = 0
    PrgsPos = 0
    
    For i = 1 To mdlBin.Count
        DrawChart(Bins(i))
    Next i
    
    For i = 1 To 20
        DrawProgressLine(i)
    Next i
    
    setScreenUpdating(True)
    
End Sub

ここで作成したUpdate関数をシート上に配置したフォームのボタンに割り当てれば、この工程表マクロは完成です。

スポンサーサイト

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

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