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

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

mdlItem

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

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

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

mdlItem

Public Sub Delete(Id As Integer)
    
    Dim i As Integer
    
    For i = Id To mdlCategory.Count - 1
        Swap(Categories(i), Categories(i+1))
    Next i
    
    i = Count
    Redim Preserve Categories(i-1)
    
    Dim j As Integer
    
    j = 1
    Do
        If mdlItem.Count < j Then Exit Do
        
        If Items(j)._CategoryId = i Then
            mdlItem.Delete(j)
        Else
            j = j + 1
        End If
    Loop
    
End Sub

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

スポンサーサイト

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

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