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

IDEにて「BASIC ダイアログ」を挿入し、名称を「dlgEditCategory」とします。そして、分類のデータ編集に必要なコントロールを配置すると下図のようになります。

次に、このダイアログを操作するためにモジュールを挿入し、名称を「mdlEditCategory」とします。
このモジュールでダイアログの操作をするため、ダイアログと登録した全コントロール用の変数を宣言し、初期化処理にてそれを割り当てます。
また、ボタンを押した時の処理もマクロ内で割り当てるため、ActionLestener用変数も宣言します。

下記にコードの一部を示し、各部の説明を行います。

Option Explicit
 
Private oDialog As Object '---(1)
 
Private lblId As Object
Private lblName As Object
Private txtId As Object
Private txtName As Object
Private chkVisible As Object
Private btnOK As Object
 
Public dlgEditCategory_Title As String '---(2)
Public dlgEditCategory_lblId_Text As String
Public dlgEditCategory_lblName_Text As String
Public dlgEditCategory_chkVisible_Label As String
Public dlgEditCategory_btnOK_Label As String
 
Private oActionListener As Object '---(3)
 
Private Id As Integer '---(4)
Private flgUpdate As Boolean '---(5)
 
Sub Main
    mdlMain.Initialize
    LoadCategories
    Show(1)
End Sub
 
Public Function Show(TargetId As Integer) As Boolean '---(6)
    
    flgUpdate = False
    
    Id = TargetId
    If Id < 1 Or mdlCategory.Count < Id Then Exit Function
    
    oDialog = _
        createUnoDialog(DialogLibraries.Standard.dlgEditCategory) '---(7)
    Initialize
    setValues(Categories(Id)) '---次回作解説します
    With oDialog
        .execute
        .dispose
    End With
    
    Show = flgUpdate
    
End Function
 
Private Sub Initialize '---(8)
    
    With oDialog
        .Title = dlgEditCategory_Title
        lblId = .getControl("lblId")
        lblName = .getControl("lblName")
        txtId = .getControl("txtId")
        txtName = .getControl("txtName")
        chkVisible = .getControl("chkVisible")
        btnOK = .getControl("btnOK")
    End With
    
    oActionListener = CreateUnoListener( _
        "dlgEditCategoryActionListener_", _
        "com.sun.star.awt.XActionListener") '---(9)
    
    lblId.Text = dlgEditCategory_lblId_Text '---(10)
    lblName.Text = dlgEditCategory_lblName_Text
    chkVisible.Label = dlgEditCategory_chkVisible_Label
    btnOK.setLabel(dlgEditCategory_btnOK_Label)
    btnOK.addActionListener(oActionListener)
    
End Sub

各部の解説を行います

  1. ダイアログおよび各コントロール用変数の宣言
  2. 表示初期化用変数の宣言
  3. アクションリスナー用変数の宣言
  4. 編集中のデータを認識するためのIDを保存する変数を宣言
  5. データの更新を行ったか否かを保存するための変数を宣言
  6. ダイアログ表示用の関数で、編集したい分類IDを引数とします
  7. ダイアログの生成
  8. ダイアログ初期化用関数
  9. 本ダイアログ用のアクションリスナー生成
  10. コントロール変数にそれぞれの設定を割り当てます

次に、表示初期化用変数をmdlMain内のInitialize関数にて定義します。

mdlMainのInitialize関数に追記

    dlgEditCategory_Title = "分類編集"
    dlgEditCategory_lblId_Text = ControlLabelString("ID")
    dlgEditCategory_lblName_Text = ControlLabelString("名称")
    dlgEditCategory_chkVisible_Label = ControlLabelString("表示")
    dlgEditCategory_btnOK_Label = ControlLabelString("設定")

ここで、使用しているControlLabelString関数はアクセスキーを表示しないためのもので、

Function ControlLabelString(Label As String) As String
    ControlLabelString = Label & "~" & chr(13)
End Function
とし、mdlMainに追記しておきます。

このまま実行すると、btnOKに設定したActionListener用の関数が正しく定義されいないので、エラーになります。もし、試しに動作させたい場合は、btnOK.addActionListener(oActionListener)をコメントアウトしてみて下さい。

スポンサーサイト

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

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