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

データの並べ替えについて解説します。

次に、データを下方向に移動するbtnDown_actionPerformed関数を作成します。

Private Sub btnDown_actionPerformed
    
    Dim i As Integer
    
    i = lstData.getSelectedItemPos + 1
    If i < 1 Or mdlBin.Count <= i Then Exit Sub
    
    Dim Id1 As Integer
    Dim Id2 As Integer
    
    Id1 = Bins(i)._Id
    
    Dim j As Integer
    For j = i + 1 To mdlBin.Count
        If Bins(j)._Depth < Bins(i)._Depth Then
            Exit For
        ElseIf Bins(j)._Depth = Bins(i)._Depth Then
            Id2 = Bins(j)._Id
            Exit For
        End If
    Next j
    
    If Id2 = 0 Then Exit Sub
    
    Select Case Bins(i)._Type
        Case BINTYPE_CATEGORY
            mdlCategory.Swap(Categories(Id1), Categories(Id2))
        Case BINTYPE_ITEM
            mdlItem.Swap(Items(Id1), Items(Id2))
    End Select
    
    Update_lstData
    
    For j = i + 1 To mdlBin.Count
        If Bins(j)._Depth < Bins(i)._Depth Then
            Exit For
        ElseIf Bins(j)._Depth = Bins(i)._Depth Then
            lstData.SelectItemPos(j - 1, True)
            Exit For
        End IF
    Next j
    
End Sub

まず、下に移動するのだからリストで選択されたアイテムが一番下か、何も選択されていなければ処理を終了します。
選択されたデータと一つ下のデータのIDを保存するための変数を用意し、選択されていたIDをId1に記録します。次にBinデータを選択されたデータから下って行き、一つ下に位置する同じレベルのデータを探します。見つかったらId2にIDを記録しますが、見つからなかったらそこで処理を中断します。
一つ下のデータが見つかったら、選択されたデータのBinタイプを識別し、分類または項目のSwap関数でデータを入れ替えます。
入替後にリストボックスを更新し、データの移動先を選択済みにします。この処理を追加すると連続して移動させる事ができるので、便利度が増すのではないでしょうか。

スポンサーサイト

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

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