ホーム‎ > ‎Magic xpa‎ > ‎

Magic xpa 新連載概要


第175回 位置(0.0.0.0)パラメータの使い方

2022/10/04 0:38 に Masanobu Tanda が投稿   [ 2022/10/04 0:59 に更新しました ]

2022年9月30日

 通常、モバイルアプリは実行時にフルスクリーンで表示されることが多く、さまざまな画面サイズのモバイルが存在する昨今では、各デバイスごとにフォームを作成して用意するというのは実質、不可能に近いものがあります。

 そこでMagicには、フォーム上に配置されたコントールのサイズや実行時の位置を各デバイスの画面サイズに合わせて、常に自動的に拡大・縮小、あるいはレイアウトしてくれるというオプション機能が用意されています。これが、今回ご紹介する「位置パラメータ」です。

 この機能を利用すると、1つのフォームを作成して用意しておくだけで、フォーム設計時の縦幅、横幅とは異なるサイズのモバイル上でプログラムが実行されても、そのサイズに合わせてフォームが自動的にバランス良くレイアウトされます。

 今回は、この「位置パラメータ」の使い方について解説してまいりたいと思います。

 なお今回から、使用するMagicのバージョンはMagic xpa 4.8.1となります(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第175回(2022年9月30日号)目次

1 ボタン配置のバランスの例
2 自動調整なしのiPhone 13とiPad Air
3 自動調整されたiPhone 13とiPad Air
4 位置パラメータの所在
5 コントロールの位置ダイアログ
6 4つのパラメータの意味
7 まずは横幅の自動調整から
8 横幅自動調整後のiPhone 13とiPad Air
9 横幅の拡大率の微調整
10 左余白と右余白を決める計算式
11 横幅の左右余白微調整後の画面
12 各ボタンの高さと Y 座標の調整
13 最初にボタンの高さの自動調整
14 ボタンの Y 座標を求める計算式
15 5つのボタンを植木算式に定義
16 iPhone 13とiPad Airでの最終実行画面

第174回 Edge で Windows RIA のインストーラを実行する

2022/09/04 5:57 に Masanobu Tanda が投稿   [ 2022/09/04 5:59 に更新しました ]

2022年8月31日

 Microsoft が2022年6月15日をもって Internet Explorer のサポートを打ち切り、Web ブラウザを Microsft Edge に一本化するという歴史的な流れがありましたが、このとき、ClickOnce に対応していない Edge でどうやって Magic xpa の Windows RIA インストーラを実行するのかという危機感がありました。

 ところがその後、急遽、Microsoft の方針が変わり、Edge がバージョンアップされて ClickOnce 対応になったことで、Magic Windows RIA のインストーラも無事に実行されるようになりました。ちなみに、Google Chrome は Microsoft 独自のプロトコルをサポートしていませんので、ClickOnce には対応しておりません。

 今回はその歴史的な流れの中で、どのように Edge を用いて Magic Windows RIA のインストーラを実行するのかという手順を、パソコン環境の変化にも合わせて解説してまいりたいと思います(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第174回(2022年8月31日号)目次

1 APG で作成したリッチクライアント
2 外部公開のための設定
3 IIS の稼働確認
4 アプリケーション開発設定
5 IP アドレスの確認
6 インタフェースビルダの実行
7 アプリケーションタイトルと発行元
8 サーバ情報の設定
9 開始プログラムの設定
10 対象 OS の選択
11 インストーラの保存場所
12 アイコンとスプラッシュ画像
13 インストーラへのパスの確認
14 実行モードの設定
15 プロジェクトの実行
16 Microsoft Edge の起動
17 パスを入力して実行
18 ClickOnce のスタート
19 Google Chrome の場合
20 セキュリティの警告
21 インストールの開始
22 初回の実行
23 2回目以降の実行
24 クライアントのアンインストール

第173回 マウスホイールによるレコード間移動を無効にする

2022/08/01 3:26 に Masanobu Tanda が投稿   [ 2022/08/01 3:27 に更新しました ]

2022年7月31日

 マウスに搭載された「マウスホイール」はたいへん便利な機能である反面、Magic の画面を操作するうえでは現場のオペレータの人々にとって不可解な動きであると感じられる場面も出てきます。

 うかつにマウスホイールを回してしまったがために、フォーカスがカレントレコードから移動してしまい、編集中のデータが意図しないタイミングで保存されてしまってパニックに陥るということがまれに発生します。

 実際のところ、プログラムの開発現場では Magic 上でこのマウスホイールの動きを禁止することができないだろうかという要求がよく出るのですが、マウスホイールのイベントを直接取得する方法はこれまでのところ、まだ用意されておりません。

 そこで今回は、このマウスホイールのイベントの代わりになるものを取得し、状況に応じてそれを有効にしたり無効にしたりするテクニックについて解説してまいります(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第173回(2022年7月31日号)目次

1 プログラム実行時の例
2 「登録:No」の問題点
3 空白イベントの登録
4 F4 キーの操作は有効
5 Page Down キーの操作も有効
6 なぜそのような動きになるのか
7 イベント特性にその仕組みが
8 F4 キーと Page Down キーのイベント
9 個々のタスクでの設定は不要
10 ラインモード時での副作用
11 ラインモード時の対処法
12 定義式の意味
13 ラインモード時の動作確認
14 スクロールバー使用時の注意点

第172回 印刷プログラムで出力先を PDF にする(2)

2022/07/04 0:52 に Masanobu Tanda が投稿   [ 2022/07/04 0:54 に更新しました ]

2022年6月30日

 前回は、「印刷プログラムで出力先を PDF にする」と題して、オンラインタスクでの利用法を解説しました。今回は、これをリッチクライアントタスクで利用する方法について解説してまいります。

 リッチクライアントタスクでは、PDF 出力先のパスの指定がポイントとなり、これを Windows の物理パスで記述するのではなく、IIS のエイリアスで指定する必要があります。

 それにともない、動作環境を Magic の開発版から Magic の RIA サーバ版へ移行する際の論理名の設定も合わせて解説してまいります。

 まずは、前号で作成したオンラインタスクのプログラムをすべてリッチクライアント化して実行したときの画面の紹介からです(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第172回(2022年6月30日号)目次

1 リッチクライアント化して実行
2 PDF の表示形式もリッチクライアント化
3 Windows の印刷ダイアログも表示
4 バッチタスクの修正
5 RIAサーバで稼働させるときの論理名
6 プロジェクトフォルダを指定する場合
7 物理パスからURLに
8 データビューにおけるダミー変数
9 デフォルトはモーダル表示
10 ウィンドウタイプの変更
11 リッチクライアントを MDI 化
12 プロジェクトの実行タイプ

第171回 印刷プログラムで出力先を PDF にする

2022/05/29 22:42 に Masanobu Tanda が投稿   [ 2022/05/29 22:44 に更新しました ]

2022年5月31日

 今回は、Magic の印刷プログラムにおいて、印刷出力をプリンタに対して行うのではなく、PDF ファイルに対して行う手法について解説します。PDF ファイルに出力すれば、印刷データをプレビューしたうえでプリンタに印刷したり、メールとして送信したりすることもできるようになります。

 近年、Windows のバージョンアップにともない、Windows10 または Windows Server 2016 以降において、Windows 自体が印刷データを PDF ファイルとして出力することが可能となりました。

 これにより、Magic の印刷プログラムにおいても、出力先を直接、PDF に指定することが可能となりました。この機能を利用すれば、オンラインタスクとリッチクライアントタスクの両方において、PDF によるプレビューとプリンタへの印刷が簡単に行えることになります。

 本連載では2回に渡って、オンラインタスクでの利用法とリッチクライアントタスクでの利用法について解説してまいります。

 ※オンラインタスクでは、Magic xpa 3.3 より、リッチクライアントタスク同様、Magic のフォーム内に PDF ファイルを表示することが可能となりました。

 まずは、オンラインタスクのサンプルプログラムからご覧いただきます(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第171回(2022年5月31日号)目次

1 オンラインタスクのサンプル
2 プリンタテーブルの設定
3 サンプルプログラムの構造
4 ルートタスクの定義
5 PDF 出力イベントの設定
6 イベントハンドラの設定
7 PDF 出力のロジック
8 入出力ファイルの設定
9 出力先の式の定義
10 PDF 表示のデータビューとロジック
11 フォームの定義
12 フォーム表示の式の定義
13 PDF 標準ツールバーの表示
14 高負荷実行への対応

第170回 Magic SQL の驚異的な検索能力

2022/05/05 2:05 に Masanobu Tanda が投稿   [ 2022/05/05 2:05 に更新しました ]

2022年4月30日

 今回は、Magic の検索スピードに関する話題です。本連載の第38回(2011年4月)~第40回(2011年6月)で、「SQL Where 句の書き方」と題して Magic SQL に関して少し触れましたが、当時はまだ SQL が今ほど普及しておらず、SQL を使用するメリットについても知る機会が少なかったのですが、あれから11年の歳月が流れ、今や SQL なしの業務アプリは考えられない程まで業界が成長してきました。

 とはいえ、Magic 開発者にとっては SQL コマンドを駆使してプログラムを書くにはまだまだハードルが高いという感があります。そこで今回は、プログラム内に SQL コマンドを全く記述することなく、SQL が持つ検索能力をフルに味わえるようなプログラムの作り方を皆さんとご一緒に学んでまいりたいと思います。SQL コマンドの知識は一切、必要ありません。

 画面1は日本郵便株式会社が公開している全国郵便番号帳データをもとに、SQL 以前の作法で作成した Magic の検索プログラムです。12万3千件の住所レコードの中から、3つの文字列を含むものを検索して抽出するというプログラムです。文字列が部分一致するものを探し出すという検索ですので、先頭一致を目的としたインデックスは使用することができません。つまり、12万3千件のレコードをインデックス無しで全件検索して、該当データを探し出すという動きになります(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第170回(2022年4月30日号)目次

1 12万3千件のレコードで検索テスト
2 3つの複合検索文字列を指定
3 検索結果の表示までに9秒掛かった
4 11年前のスペックでは52秒掛かった
5 Magic SQL を使用した場合の検証
6 検索結果の表示までにわずか1秒
7 いったいどこが違うのか
8 使用している関数はまったく同じ
9 その答えは Magic のヘルプに
10 SQL ゲートウェイの判別は自動
11 Magic のロギングでこれを確認
12 12万3千件のフェッチと8件のフェッチ

第169回 iPhone の UDID とデバイスの追加登録

2022/04/09 1:28 に Masanobu Tanda が投稿   [ 2022/04/09 6:15 に更新しました ]

2022年3月31日

 新しい iPhone を購入したら、マジッシャンならまず何はさておき、最初に行うべきことは Apple 開発者サイトへの UDID の登録です。これを怠ると、iPhone を買い換えた途端に Xcode 上でケーブル接続のビルドができなくなるという事態に陥ります。

 エラーメッセージは「Unable to install(インストールできません)」と出るだけなので、いったい何が原因なのか、判断に窮してしまいます(画面1)。

 実はこの場合のエラーは、単に新品の iPhone が Ad Hoc インストール用にデバイス登録されていないというだけの理由によるものです。このデバイス登録という作業は新しい iPhone に対して最初に1回だけ行う作業であるため、つい見過ごしてしまいがちです(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第169回(2022年3月31日号)目次

1 Unable to install のエラー
2 デバイスの自動登録画面
3 デバイス登録の目的と理念
4 UDID を取得する方法
5 UDID を Xcode から取得する方法
6 UDID を Finder から取得する方法
7 UDID の登録先
8 デバイスの登録
9 デバイス名と UDID の入力
10 登録内容の確認
11 Xcode からのビルド確認

第168回 Settings Bundle の活用法

2022/03/02 2:35 に Masanobu Tanda が投稿   [ 2022/03/02 2:35 に更新しました ]

2022年2月28日

 今回は、Magic に添付されている iOS プロジェクトの中から、カスタマイズ可能なオプションの1つである「Settings Bundle」の使い方について解説します。この機能を利用すると、iPhone 上のアプリアイコン1つで複数のアプリケーションを切り替えて操作できるという便利な機能が導入されます。開発者にとってもエンドユーザにとっても便利な機能ですので、ぜひご活用ください(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第168回(2022年2月28日号)目次

1 2021年10月31日号の app 実行画面
2 アクセス先 URL の手入力
3 Magic アプリケーションの実行
4 App Store 提供の汎用クライアント
5 接続先の項目
6 PROJECT_TARGET の設定画面
7 第164回でロードした iOS プロジェクト
8 iOS フォルダの内容確認
9 Settings bundle の導入
10 物理コピーの確認
11 Settings フォルダの追加確認
12 Root フォルダの内容確認
13 app の上書きインストール
14 app の再実行確認
15 PROJECT_TARGET の設定画面

第167回 macOS の Finder による配布と OTA による配布法

2022/02/02 2:55 に Masanobu Tanda が投稿   [ 2022/02/02 2:56 に更新しました ]

2022年1月31日

 前号では、Xcode の Archive を用いて iOS デバイスへのインストーラである .ipa ファイルを生成するところまでの手順を学びました。今回は、その .ipa ファイルを用いて、カスタマイズされた Magic クライアントを手元の iPhone にインストールするところまでの手順を学びます。

 インストール方法はいくつか用意されていますが、ここでは macOS の Finder によるインストール法と Web サーバを経由した OTA(Over-the-Air)によるインストール法の2通りを学びます。前者は iPhone を USB ケーブルで Mac に接続してインストールする方法であり、後者は Web ブラウザ上から Web サーバのリンクをクリックしてインストールする方法です。

 ちなみに、前者は iOS デバイスの台数が少ない場合に最も手軽なインストール法として利用されており、後者は数多い iOS デバイスに対して、ユーザごとに個別にインストールしてもらう方法として向いています。

 では順を追って解説してまいりましょう(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第167回(2022年1月31日号)目次

1 PROJECT_TARGET.ipa の所在確認
2 iPhone を USB ケーブルで接続
3 デバイスの詳細を表示
4 ファイルのドラッグ&ドロップ
5 app インストールの開始
6 app インストールの完了
7 クライアントアプリの起動
8 開始プログラムの実行
9 iPhone の接続解除
10 OTA による配布
11 3つのファイルの確認
12 Web サーバへの配置
13 manifest.plist の編集
14 install.htm の編集
15 iPhone からのインストール開始
16 インストール用のリンク
17 インストールの開始
18 インストールの完了
19 開始プログラムの実行

第166回 Archive による iOS インストーラの作成

2022/01/05 0:08 に Masanobu Tanda が投稿   [ 2022/01/05 0:13 に更新しました ]

2021年12月31日

 前号では、Magic xpa 付属のインタフェースビルダを用いて、カスタマイズされた Xcode プロジェクトを自動生成するところまでを学びました。今回はその続きとして、自動生成された Xcode プロジェクトをまるごと macOS 側にコピーし、iOS 用 Magic クライアントのビルド作業を行うところまでの手順を学びます。

 まず、前号の最終画面で表示された iOS フォルダを、USB メモリ、あるいはネットワーク共有フォルダ等を通じて macOS 側の任意のフォルダ、ここでは例として「書類¥Magic47¥FruitShop」にコピーします。

 そして、そのフォルダの直下に「¥build¥MagicApp.xcodeproj」ファイル(実態はフォルダ)があることを確認し、これをダブルクリックしてこのプロジェクトを Xcode 上に読み込みます。

 ※Xcode13 があらかじめインストールされている必要があります(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第166回(2021年12月31日号)目次

1 iOS フォルダのコピー
2 Xcode の起動
3 General タブの表示
4 Display Name と Bundle ID の入力
5 プロビジョニングプロファイルの選択
6 アーカイブ用デバイスの選択
7 アーカイブの実行
8 アーカイブ準備のゲージ
9 キーチェーンアクセス用のパスワード
10 アプリの配布
11 アプリ配布方法の選択
12 配布のオプション
13 プロビジョニングプロファイルの選択
14 アーカイブの実行
15 アーカイブの完了
16 アーカイブの保存
17 アーカイブリストを閉じる
18 .ipa ファイルの確認

1-10 of 175