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

工程の編集に関する部分の処理を解説します。
工程の編集には編集、追加、削除の3つがあり、それぞれbtnEditSchedule、btnAddSchedule、btnDelScheduleのボタン、lstScheduleに処理を割り当てています。

工程のリストボックスにて対象の工程を選択してから処理をするので、まず工程用のリストボックスを初期化する関数を作成します。

Private Sub Update_lstSchedule
    
    Dim i As Integer
    Dim j As Integer
    
    Redim Preserve ScheduleList(0)
    clearListBox(lstSchedule)
    
    j = 0
    For i = 1 To mdlSchedule.Count
        If Schedules(i)._ItemId = Id Then
            j = j + 1
            lstSchedule.AddItem(Schedules(i)._Name, _
                lstSchedule.getItemCount())
            Redim Preserve ScheduleList(j)
            ScheduleList(j) = Schedules(i)._Id
        End If
    Next i
    
End Sub

これは工程一覧用リストボックスを初期化し、編集中の項目に割り当てられた工程をリストボックスに追加し、それに合わせてID記録用の配列に工程のIDを登録しています。編集や追加、削除の操作をした後、この処理を毎回行う必要があるので関数化しておくと楽です。

次に編集処理を作成します。

Private Sub btnEditSchedule_actionPerformed
    
    Dim i As Integer
    i = lstSchedule.getSelectedItemPos + 1
    If i < 1 Then Exit Sub
    
    If mdlEditSchedule.Show(ScheduleList(i)) Then
        Update_lstSchedule
        flgUpdate = True
    End If
    
End Sub

これは、リストボックスから選択済みの工程IDを取得して工程編集用ダイアログを表示し、編集されればリストを更新して変更フラグを真とするという処理です。

次に追加処理を作成します。

Private Sub btnAddSchedule_actionPerformed
    
    Dim i As Integer
    i = mdlSchedule.Add(Id)
    mdlEditSchedule.Show(i)
    Update_lstSchedule
    flgUpdate = True
    
End Sub

工程を編集中の項目IDで初期化して追加します。そして追加した工程IDを使って工程編集用ダイアログを表示し、編集後リストを更新します。

最後に削除処理を作成します。

Private Sub btnDelSchedule_actionPerformed
    
    Dim i As Integer
    i = lstSchedule.getSelectedItemPos + 1
    If i < 1 Then Exit Sub
    
    mdlSchedule.Delete(ScheduleList(i))
    Update_lstSchedule
    flgUpdate = True
    
End Sub

これは、リストボックスから選択済みの工程IDを取得してその担当を削除し、リストを更新するという処理をします。

また、リストボックスのアクションリスナーを設定していますが、これはリストボックスをダブルクリックすると呼び出されるもので、基本的にbtnEditSchedule_actionPerformed関数を同じ動作です。なので、そのまま関数を呼び出してしまいます。

Private Sub lstSchedule_actionPerformed
    
    btnEditSchedule_actionPerformed
    
End Sub
スポンサーサイト

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

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