2024年12月 月 火 水 木 金 土 日 « 4月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 カテゴリー
カテゴリー別アーカイブ: 未分類
ドラッグ可能なウインドウの時の工夫と注意
良く、検索画面や設定画面でTitleWindowなどを使ってポップアップウインドウを利用する。 この場合、ウインドウの位置をドラッグしながら他の操作も出来るようなウインドウの場合困ることがある。 一番簡単なのはウインドウ上でマウスダウンやアップするイベントを取り、dragStartを仕掛ける方法だが、ウインドウの中にTextIpnutなどの入力コンポーネントをはじめ、コンポーネントを配置しておいて操作するとそれを操作してもドラッグされてしまう。 この場合、TitleWindowの上端部にGroupなどの空のコンポーネントを置いて、そこでマウスダウンするとドラッグスタートと言う具合にする方法を使うと、他のコンポーネントの操作には影響されない。 問題は、その時に、その場所に来たらカーソルの形状を変えて手の形のハンドカーソルへ変えてユーザにパネルが移動できると知らせたりするとわかりやすいが、これはuseHandCursor=”true”だけでは実現できない。 これ以外に、buttonMode=”true” mouseChildren=”false”と言う二つのプロパティを設定する必要がある。 意外に、忘れていて「?」となってしまう。
カテゴリー: 未分類
コメントは受け付けていません。
帳票の悩み
業務用のWEBアプリをやると必ず「印刷」と言う要求が出てくる。 今開発中のアプリは、現状、客先がやっているのはWordの差し込み印刷と言うやつなので、それに対応するデータを出力すると言う方法を選択する予定だ。 これはこれで客がフォームを自由に作る事ができるので悪く無いと思うが、標準で自身のアプリから印刷と言う事を考えるとやはりPDFを利用するというのが最も簡単だろう。 以前はPDFlibを使っていたのだが、運良く僕はまだ安い時代だったから良かったが、ある時期から人の足元を見るように非常に高額な金額となってしまった。 その為、エンジニアはフリーのツールを探しているのだが、単にPDFで印刷と言っても決まったフォームで印刷したい場合、PDFlibで言う所のPPSが簡単なのだが、フリーでこれを実現できているのは無さそうだ。 PPSを利用するとAcrobatの拡張機能で既定のテンプレートPDFに対して位置を決めた出力範囲を設定して、その場所を名前で特定してPHPなどから出力できる為コードがシンプルになる。 座標系で出力する。と言うところまで我慢すれば、テンプレートを読み込めるものがある様で、今、調べているのがTCPDF+FPDIと言うもの。フリーだとこれが良さそうだが、これまでPDFlibのPPSを使ってきた経験からすると、座標系で管理するのは若干面倒と言う気がする。 座標系の場合、縦横の座標を指定して出力させるので、出力場所が多い場合などコードがわかりにくくなる。 PDFlibほど高価では無いが、PPSと同じことが出来そうな、Field Reportsと言うLL言語専用のPDF帳票開発ツールがあるようだ。価格からするとサーバへインストールするタイプで1/5程度の様だ。 この手のライブラリはそれぞれ使い方が違うので、一つ使いこなす為に調査・ノウハウを習得したら、他へはそう移行したくない。 フリーを使いこなすか、有償のツールを使うか悩むところだ。 これ以外にもExcelで出力する等、様々なアプローチはあるのだが、例えばAIRアプリから印刷する事を考えると完全にサーバへ依存するのも避けたい。 出来れば、スタンドアロンで印刷したいが、このAIRの印刷機能が、多少マシになったとは言え、まだまだ業務ユースで使えるレベルではない。 せっかく、PDFリーダーの定番のAcrobatを提供しているAdobe社の製品なのだから、この辺の機能が充実したらAIRももっと業務ユースで利用が広がるのにと思うのは僕だけだろうか。
カテゴリー: 未分類
コメントは受け付けていません。
FlashBuilderで「データとサービス」機能を利用した場合のデプロイ
ローカルのXampp環境では稼働する様になったのだが、リモートのCentOS上へサーバサイドのサービスをデプロイしてAIRで稼働させる方法が良く分からない。 恐らく、サービススクリプト内(src.service以下にある_Superの付いたスクリプト)の以下のendpointのlocalhostをリモートサーバへ書き換えれば良いだろうと言うのは想定が付いたが、FlashBuilderで設定する「Flexサーバ」項目の「サーバの場所」にある「WEBルート」「ルートURL」との関連が分からない。 _serviceControl.endpoint = “http://localhost/hoge_app/gateway.php” 色々調べると、結果的に、このWEBルートやルートURLと言うのはローカル環境での設定に関する事で、どうも「開発には必ずこの環境が必要なんだから、用意しておけ。」と言う意味で、ローカルの設定をしておけば良くて、実際のデプロイとは全く関係ない様だ。 上記のendpointと自動的に作られるamf_config.ini内のwebrootをコメントアウトして、自分がデプロイした場所を指定したものをリモートサーバへアップロードしたらちゃんとリモートサーバ上のPHPスクリプトがリモートのMySQLへ接続して動作した。 ;webroot =C:/xampp/htdocs/hoge_app webroot =/var/www/html/hoge_app 当然だがローカルのMySQLと本稼働しているMySQLのユーザやDB名などを統一しておけば、ローカルとリモートの切り替えは上記の2点を変更するのみで良さそうだ。 取り敢えずこれでデータとサービスを利用した開発の流れが理解できた。 しかし、リモートでサービスを動かしていると「操作をテスト」や「更新」をやると java.net.ConnectException: Connection refused: connect のエラーが出る。 なんとなく分からんでもないので、これは放置。
カテゴリー: 未分類
コメントは受け付けていません。