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

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


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

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

Option Explicit
 
Private oDialog As Object '---(1)
 
Private lblId As Object '---(2)
Private lblName As Object
Private lblPhone1 As Object
Private lblPhone2 As Object
Private lblFAX As Object
Private lblEMail As Object
Private lblNote As Object
Private txtId As Object
Private txtName As Object
Private txtPhone1 As Object
Private txtPhone2 As Object
Private txtFAX As Object
Private txtEMail As Object
Private btnOK As Object
Private txtNote As Object
 
Public dlgEditPerson_Title As String
Public dlgEditPerson_lblId_Text As String
Public dlgEditPerson_lblName_Text As String
Public dlgEditPerson_lblPhone1_Text As String
Public dlgEditPerson_lblPhone2_Text As String
Public dlgEditPerson_lblFAX_Text As String
Public dlgEditPerson_lblEMail_Text As String
Public dlgEditPerson_lblNote_Text As String
Public dlgEditPerson_btnOK_Label As String
 
Private oActionListener As Object '---(3)
 
Private Id As Integer '---(4)
Private flgUpdate As Boolean '---(5)
 
Sub Main
    
End Sub

Function Show(TargetId As Integer) As Boolean '---(6)
    
    Id = TargetId
    If Id < 1 Or mdlPerson.Count < Id Then Exit Function
    
    Initialize
    setValues(Persons(Id))
    flgUpdate = False
    
    With oDialog
        .execute
        .dispose
    End With
    
    Show = flgUpdate
    
End Function

Sub Initialize '---(7)
    
    oDialog = createUnoDialog(DialogLibraries.Standard.dlgEditPerson)
    
    With oDialog
        .Title = dlgEditPerson_Title
        lblId = .getControl("lblId")
        lblName = .getControl("lblName")
        lblPhone1 = .getControl("lblPhone1")
        lblPhone2 = .getControl("lblPhone2")
        lblFAX = .getControl("lblFAX")
        lblEMail = .getControl("lblEMail")
        lblNote = .getControl("lblNote")
        txtId = .getControl("txtId")
        txtName = .getControl("txtName")
        txtPhone1 = .getControl("txtPhone1")
        txtPhone2 = .getControl("txtPhone2")
        txtFAX = .getControl("txtFAX")
        txtEMail = .getControl("txtEMail")
        btnOK = .getControl("btnOK")
        txtNote = .getControl("txtNote")
    End With
    
    oActionListener = CreateUnoListener("dlgEditPersonActionListener_", _
        "com.sun.star.awt.XActionListener") '---(8)
    
    btnOK.addActionListener(oActionListener)
    
    lblId.Text = dlgEditPerson_lblId_Text
    lblName.Text = dlgEditPerson_lblName_Text
    lblPhone1.Text = dlgEditPerson_lblPhone1_Text
    lblPhone2.Text = dlgEditPerson_lblPhone2_Text
    lblFAX.Text = dlgEditPerson_lblFAX_Text
    lblEMail.Text = dlgEditPerson_lblEMail_Text
    lblNote.Text = dlgEditPerson_lblNote_Text
    btnOK.Label = dlgEditPerson_btnOK_Label

End Sub

各部の解説を行います

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

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

mdlMainのInitialize関数に追記

    dlgEditPerson_Title = "担当編集"
    dlgEditPerson_lblId_Text = ControlLabelString("ID")
    dlgEditPerson_lblName_Text = ControlLabelString("氏名")
    dlgEditPerson_lblPhone1_Text = ControlLabelString("電話1")
    dlgEditPerson_lblPhone2_Text = ControlLabelString("電話2")
    dlgEditPerson_lblFAX_Text = ControlLabelString("FAX")
    dlgEditPerson_lblEMail_Text = ControlLabelString("E-Mail")
    dlgEditPerson_lblNote_Text = ControlLabelString("備考")
    dlgEditPerson_btnOK_Label = ControlLabelString("設定")

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

スポンサーサイト

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

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