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

データの削除処理を簡便にするため、Delete関数を作ります。
ここで、考えないといけないのは担当データに関連付けられている項目データの扱いです。そこで、Swap関数から見直しと訂正を行い、その後Delete関数を作ってみます。まず、改造後のSwap関数を示します。

mdlPerson

Public Sub Swap(Data1 As PersonType, Data2 As PersonType)
    
    Dim wk As PersonType
    
    Copy(Data1, wk)
    Copy(Data2, Data1)
    Copy(wk, Data2)
    
    Dim i As Integer
    
    For i = 1 To mdlItem.Count
        
        If Items(i)._PersonId = Data1._Id Then
            Items(i)._PersonId = Data2._Id
        ElseIf Items(i)._PersonId = Data2._Id Then
            Items(i)._PersonId = Data1._Id
        End If
        
    Next i
    
End Sub

こうすると、Swap関数でデータを交換するのに合わせて項目データの関連付けも修正されます。

次に、Delete関数を示します。

mdlPerson

Public Sub Delete(Id As Integer)
    
    Dim i As Integer
    
    For i = Id To Count - 1
        Swap(Persons(i), Persons(i+1))
    Next i
    
    i = Count
    Redim Preserve Persons(i-1)
    
    Dim j As Integer
    
    For j = 1 To mdlItem.Count
        
        If Items(j)._PersonId = i Then
            Items(j)._PersonId = 0
        End If
        
    Next j
    
End Sub

Swap関数で削除対象のデータを配列の一番最後に移動させ、配列数を一つ減らします。
その後、削除対象の担当データに割り当てられていた項目データの担当IDを0(担当無し)に設定しています。

スポンサーサイト

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

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