メニューの作成

Baseによるアプリケーション
開発とサポート
●
鎌滝雅久/OpenOffice.org日本ユーザー会
●
OSC2007 Hokkaido
●
2007年6月30日土曜日 10:55-11:40
●
北海道大学学術交流会館 第4会議室
本日の予定
●
デモ(どこでもPDF/見積書作成)
●
Basicでプログラム~Visual Studioはいらない?
●
Microsoft Officeからの移行
●
OpenOffice.orgのサポート
ここでちょっとアンケート
●
OpenOffice.org Basicを使ったことのある方
–
Yes/No
デモ/どこでもPDF
●
Basicで作成された単独アプリケーション
●
ダイアログベースのアプリケーション
●
動作条件
–
●
OpenOffice.orgがインストールされていること
拡張機能として配布可能
デモ/どこでもPDF
どこでもPDF
●
オリジナル PDF_Export/はにゃ?さん
–
●
http://hermione.s41.xrea.com/pukiwiki/pukiwiki
.php?OOobbs2%2F4
どこでもPDFは上記に筆者が若干のBasicとダイア
ログを加えたもの
デモ/見積書作成プログラム
●
Calc/BaseとBasicによるアプリケーション
●
秋田パソコンステーション作成
–
●
http://www.ne.jp/asahi/pa/sta/
拡張機能とCalc、Baseファイルを配布
デモ/見積書作成プログラム
見積書作成プログラム
●
旧バージョンは
ダイアログベース
Basicでプログラム
OpenOffice.org Basic IDE
●
Basicを用いてプログラムを作成するためのツール
●
呼び出し方
–
–
●
[ツール]-[マクロ]-[マクロの管理]-
[OpenOffice.org Basic]
マクロを選び[編集]
使い方はVisual Basicとほぼ同じ
Basicでプログラム
IDEの使い方
ライブラリ名
プロシージャ名
モジュール名
ダイアログ名
Basicでプログラム
コントロールへのマクロ割り当て
ボタンの名前
ボタンに割り当てる
プロシージャ名
コントロールを配置できるツールバー
Basicでプログラム
Calc/Writerでのコントロールの扱い
フォームコントロール、フォーム
デザインの2つのツールバー
は表示メニューから呼び出す
Basicでプログラム
ダイアログを直接起動する
●
OpenOffice.orgでは、以下の起動オプションで
Basicの呼び出しが可能
–
–
–
soffice.exe macro:///Standard.Mdule1.main
バッチ、シェルスクリプトファイルで起動
どこでもPDFの場合はVBシェルでダイアログを呼び出し
Set shell = WScript.CreateObject("WScript.Shell")
shell.Run "OpenOfficePortable.exe -minimized macro:///PDF_Export.Module2.MainMenu ", 3, true
Basicでプログラム
あなたもにもできる拡張機能
●
●
Basicプログラムは拡張機能(エクステンション/拡
張子oxt)にすることで配布可能なプログラムに
マクロの管理の機能で作成は実に簡単
–
–
[ツール]-[マクロ]-[マクロの管理]-
[OpenOffice.org Basic]
[管理]ボタンをクリック
Basicでプログラム
マクロの管理で拡張機能を作成
Basicでプログラム
拡張機能で「文字の均等割り付け」
●
はにゃ?さん、satoさん、筆者で作成
–
–
–
●
http://hermione.s41.xrea.com/pukiwiki/pukiwiki
.php?OOobbs2%2F32 よりダウンロード
JapaneseJustify.oxt ファイルをダブルクリック
もしくは[ツール]-[拡張機能マネージャ]で
WordにあってWriterにない機能の実現
Basicでプログラム
マクロのメニューへの登録
●
[ツール]-[カスタマイズ]
Microsoft Officeからの移行
マクロ
●
Basicで書かれたもの
–
●
マクロの記録で作成されたもの
–
●
新たにコーディングしましょう
OpenOffice.orgでもマクロの記録を使いましょう
SUSEなどLinux版CalcではExcel互換機能あり
Microsoft Officeからの移行
マクロの格納場所
●
Microsoft Office
–
–
●
ファイルごと/マクロの警告あり
マクロ入りファイルに鈍感になる→ウイルス感染の恐れ
OpenOffice.org
–
–
マイマクロ/マクロの警告なし
配布は拡張機能で→将来的には何らかの認証
Microsoft Officeからの移行
Accessのスタートメニュー
●
Baseフォームでは起動時のメニューにはできない
●
Basicのダイアログでメニューを作成
●
soffice.exeの起動時オプションでメニューを表示
Microsoft Officeからの移行
スタートメニューからフォーム呼び出し
●
下記のBasicで実現/レポートも同様
Sub FormStart
'**** プロパティを入れるところ
Dim pProp(1) As New com.sun.star.beans.PropertyValue
'**** データベースを開く
sURL = ConvertToURL("C:\PathName\FileName.odb")
oDoc = starDesktop.loadComponentFromURL(sURL,"_default",0,Array())
'**** フォームとコネクションの接続
oForms = oDoc.getFormDocuments()
oAConnection = oDoc.DataSource.getConnection("","")
'**** プロパティを設定 Nameが属性 Valueが値
pProp(0).Name = "ActiveConnection" 'コネクション
pProp(0).Value = oAConnection
pProp(1).Name = "OpenMode"
pProp(1).Value = "open"
'**** フォームを開く
oFormulario = oForms.loadComponentFromURL("FormName","_default",0,pProp())
End Sub
Microsoft Officeからの移行
Accessのレポート
●
Access
–
●
フィールドに計算式を設定でき、小計、合計欄の設置が
簡単
Base
–
–
ユニオンクエリーで小計、合計欄を設定しレポート化
Basicで直接Calcへ出力する方法も
Microsoft Officeからの移行
更新系クエリー
●
SQLを埋め込んだBasic
–
–
–
テーブル作成クエリー→CREATE TABLE
更新クエリー→UPDATE
クエリーからテーブル作成→SELECT INTO
Microsoft Officeからの移行
Excelシートのテーブル化
●
Access
–
●
ワークシート変換コマンドで簡単に実現
Base
–
–
Excel→Calc→テーブルへと変換するBasicを作成
2.1以降ではシートのコピー&貼り付けでもOK
OpenOffice.orgのサポート
●
OpenOffice.orgの導入支援サポート
–
アシストが6月より開始
●
–
http://www.ashisuto.co.jp/solution/oss/openoffice/
グッデイ
●
http://ooosupport.good-day.net/ja/enterprise
コミュニティによる
OpenOffice.orgのサポート
●
OOo Q&A
–
–
–
●
http://oooug.jp/faq/
質問登録は1500件以上/完了率6割
企業・自治体も利用
メーリングリスト
–
http://ja.openoffice.org/ml_info.html
参考資料
●
OpenOffice.org Basic
–
StarSuite 8 Basicプログラミングガイド
●
–
オープンガイドブック OpenOffice.org 2.0
●
–
http://docs.sun.com/app/docs/doc/8191332?l=ja&q=starsuite+8
http://ooosupport.goodday.net/ja/documents/manual/
OOo Basic Wiki
●
http://hermione.s41.xrea.com/pukiwiki/