Magic Software Japan K.K - 連載 Magic 講座

丹田昌信*)
はじめに：
本書は、2001年6月から2002年12月にかけて、Magic Software Japan のホームページ上で連載された、丹田昌信氏（タンダコンピュータ）による「V9で作るWebアプリケーション」の全号を掲載したものです。
最新の V9Plus 製品とは、画面などが若干異なるところもありますが、基本は同じですので、当時の原稿のまま掲載いたしました。
- V9のインストール -
Magicをインストールする上での準備や注意事項、実際のインストールの手順などについて説明します。
  • 第1回 V9のインストール（その1） 2001年6月18日号
  • 第2回 V9のインストール（その2） 2001年7月2日号
  • 第3回 V9のインストール（その3） 2001年7月16日号
  • 第4回 V9のインストール（その4） 2001年7月30日号
  • 第5回 V9のインストール（その5） 2001年8月13日・27日合併号
  • 第6回 V9のインストール（その6） 2001年9月10日号
- APGによるテーブル操作 -
APGによるテーブル操作の解説に入ります。テーブル（データベーステーブル）の作成は通常のアプリケーションのみならず、Webアプリケーションにおいてもアプリケーション作成の基礎となる手順であり、Magicおよび外部DBMSの動きを理解するうえでも重要なポイントとなります。
  • 第7回 APGによるテーブル操作（その1） 2001年9月25日号
  • 第8回 APGによるテーブル操作（その2） 2001年10月9日号
  • 第9回 APGによるテーブル操作（その3） 2001年10月22日号
  • 第10回 APGによるテーブル操作（その4） 2001年11月5日号
- Webアプリケーションの移植 -
V8 Webアプリケーションの移植について解説いたします。V9ではオンラインタスクとバッチタスクに加えて、ブラウザタスクという新しいタイプのタスクが導入されましたが、V8で作成された旧来のバッチタスクによるWebアプリケーションも、基本的にリポジトリ入出力を行うだけでV9上でも動作することを確認しておきます。
  • 第11回 V8 Webアプリケーションの移植（その1） 2001年11月19日・12月26日合併号
  • 第12回 V8 Webアプリケーションの移植（その2） 2002年1月15日号
  • 第13回 V8 Webアプリケーションの移植（その3） 2002年2月26日号
  • 第14回 V8 Webアプリケーションの移植（その4） 2002年3月7日号
  • 第15回 V8 Webアプリケーションの移植（その5） 2002年4月30日号
- V9 Webアプリケーションの基礎 -
ここでは、V8を所有していないユーザ（あるいはV9から初めてWeb関連のアプリケーションを作成するユーザ）のために、V9オリジナルで作るWebアプリケーションについて解説していきます。最初にMagicを使用してHTMLフォームを作成する基本を学びます。HTMLエディタではなく、Magic V9だけを使用してWebブラウザ上に文字列を表記する仕組みを解説します。
  • 第16回 V9 Webアプリケーションの基礎（その1） 2002年5月31日号
  • 第17回 V9 Webアプリケーションの基礎（その2） 2002年6月30日号
  • 第18回 V9 Webアプリケーションの基礎（その3） 2002年7月31日号
  • 第19回 V9 Webアプリケーションの基礎（その4） 2002年8月26日号
- Webアプリにおけるフォームの送信方法 -
Webブラウザ上からHTMLフォームを経由して文字列を送信する技法を学びます。Magic側に変数として取り込まれたデータが、Webサーバを経由して再びWeb ブラウザ側に返されるまでの仕組みを理解します。
  • 第20回 V9 Webアプリケーションの基礎（その5） 2002年9月2日号
  • 第21回 V9 Webアプリケーションの基礎（その6） 2002年9月9日号
  • 第22回 V9 Webアプリケーションの基礎（その7） 2002年9月17日号
  • 第23回 V9 Webアプリケーションの基礎（その8） 2002年9月24日号
  • 第24回 V9 Webアプリケーションの基礎（その9） 2002年9月30日号
- Webアプリにおけるフォームの受信とデータベース連携 -
HTMLフォームを通してMagic側に取り込まれたデータがMagic側のデータベースに反映される仕組みを理解します。これにより、WebベースのアプリケーションがどのようにしてDBMSと連携をとるかを学びます。
  • 第25回 V9 Webアプリケーションの基礎（その10） 2002年10月7日号
  • 第26回 V9 Webアプリケーションの基礎（その11） 2002年10月15日号
  • 第27回 V9 Webアプリケーションの基礎（その12） 2002年10月21日号
  • 第28回 V9 Webアプリケーションの基礎（その13） 2002年10月28日号
- Webアプリにおけるサブフォームの作成方法 -
Webブラウザ上のシングルウィンドウにてフォームを複式化させる技法を学びます。これにより、一般的な受注明細入力画面をWeb化させる基本を習得します。
  • 第29回 V9 Webアプリケーションの基礎（その14） 2002年11月5日号
  • 第30回 V9 Webアプリケーションの基礎（その15） 2002年11月11日号
  • 第31回 V9 Webアプリケーションの基礎（その16） 2002年11月18日号
  • 第32回 V9 Webアプリケーションの基礎（その17） 2002年11月25日号
- Webアプリにおける１対多のサブフォーム構築技法 -
サブフォームを利用してWebブラウザ上で受注明細入力画面を具現化させる技法を解説します。これにより、Magic V4～V7で蓄積された一般アプリを、いよいよWebアプリケーション化させるための方針を確定付けます。
  • 第33回 V9 Webアプリケーションの基礎（その18） 2002年12月2日号
  • 第34回 V9 Webアプリケーションの基礎（その19） 2002年12月9日号
  • 第35回 V9 Webアプリケーションの基礎（その20） 2002年12月16日号
  • 第36回 V9 Webアプリケーションの基礎（その21） 2002年12月24日号
  • 第37回 V9 Webアプリケーションの基礎（その22） 2002年12月30日号
丹田昌信（たんだまさのぶ）氏プロフィール

1989年にdbMAGICと出会い、翌年の1990年にMS-Networksを利用して国内で初のdbMAGICセミナーを開講。その後、キャノンソフトウェア等にてdbMAGIC講師を歴任。主な著書に、「dbMAGIC入門編（1992年、星雲社）」、「dbMAGICシステムガイド基礎編（1992年、ソフトバンク）」、「dbMAGIC for Windows95システムガイド入門編（1996年、ソフトバンク）」等がある。 雑誌の連載は、「LAN TIMES（ソフトバンク刊）」にて1992年11月号から18ヶ月、および「DataBase System（同ソフトバンク刊）」にて1996年1月号から8ヶ月、通算26ヶ月間にわたりdbMAGIC関連記事を執筆。1994年のNIFTYServe時代から、現在（2006年）のMagicニューズフォーラムに至るまでの12年間、Magicユーザーズフォーラムのシスオペとして累計5千名以上の会員を対象にコンサルティングを実施。ノベルCNE-J、dbMAGIC上級認定講師。


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第1回

2001.6.18掲載
丹田昌信*)

  皆さん、こんにちは。dbMAGICユーザーズフォーラム・シスオペの丹田昌信です。本日より、このコーナーにてMagic eDeveloper V9によるWebアプリケーション開発技法に関する連載をスタートすることになりました。V8の連載同様、末永くお付き合いくださいますよう、よろしくお願い申し上げます。

  待望のMagic eDeveloper V9がいよいよリリースされることになりました（製品版出荷は6月25日）。この原稿は製品版リリースの直前に執筆しておりますが、すでに配布されているプレリリース版（RC1版）は、マニュアル類を除いては製品版同等の仕様ということですので、製品版が出荷されるまではプレリリース版を基準に解説を進めてまいりたいと思います。なお、製品版が出荷された時点で修正事項等があれば、その都度お知らせしていきたいと思います。

◆ インストール前の環境整備

  さて、Magic eDeveloper V9のCD-ROMを手にして、いきなりインストール作業を開始するのは得策ではありません。Magic eDeveloper V9はWebアプリケーション開発に主眼を置いた製品である関係上、外部アプリケーションであるWebサーバやWebブラウザ、およびWebオーサリングツール（HTMLエディタ）等と密接な関係を持ちながら動作いたします。したがって、外部の環境が適切に整備されていない状態でV9のインストール作業を行うと、あとで環境整備に多くの時間を費やすことになります。この項では、Magic eDeveloper V9を正しくインストールするための手順（準備作業）について解説いたします。

  Magic eDeveloper V9をインストールするには、あらかじめ次のような環境整備がなされていることが推奨されます（必須ではありませんが、インストール後に環境設定の変更を行うことは、少なからずの知識と労力を必要とします）。

１．パソコンにLANアダプタ（NIC=ネットワークインターフェイスカード）が装着されていて、TCP/IPプロトコルがバインドされていること（画面1）。また、適切なIPアドレスが割り振られていること(画面2)。

  IPアドレスはプライベートアドレス、グローバルアドレスのどちらでも構いません。また、DHCPサーバから自動的に取得したものでも構いません。

クリックすると拡大表示されます。

↑画面 1　TCP/IPプロトコルのバインド

クリックすると拡大表示されます。

↑画面 2　IPアドレスの割当て

２．パソコンにPWS（Personal Web Server）、またはIIS4/5（Internet Information Server 4またはInternet Information Service 5）等のWebサーバがインストールされていること（画面3はPWS、画面4はIIS4）。

クリックすると拡大表示されます。

↑画面 3　Windows 98 SE上のPersonal Web Server

クリックすると拡大表示されます。

↑画面 4　Windows NT 4.0上のInternet Information Server

  Windows 98/98SEの場合は、Windows 98/98SEのCD-ROM\add-ons\pws\setup.exeを起動してPWSをインストールします（画面5）。Windows NT 4.0の場合は、Windows NT 4.0 Option PackからIIS4をインストールします（画面6）。Windows 2000の場合は、付属のIIS5をインストールします。

  Webサーバが事前にインストールされていれば、Magic eDeveloper V9のインストールに際して、適切なファイルが所定のフォルダに正しくコピーされ、エイリアスの定義やWebフォルダに対する権利設定も自動で行われます。

クリックすると拡大表示されます。

↑画面 5　Personal Web Serverのインストール

クリックすると拡大表示されます。

↑画面 6　Windows NT 4.0 Option Packのインストール

３．パソコンにMicrosoft Internet Explorer 5.5以上（Service Pack1以降を推奨）がインストールされていること（画面7）。

クリックすると拡大表示されます。

↑画面 7　Internet Explorer 5.5（SP1）

  V9の新機能の要であるブラウザクライアントを利用するには、Microsoft Internet Explorer 5.5以降のWebブラウザが必須となります。残念ながら、現時点ではNetscape Communicator 4.75やNetscape 6には対応しておりません。

  なお、V9ではMagicのプログラムリポジトリ上から直接、Webブラウザを起動させて、ブラウザクライアントタスクの動作確認を行うことができるようになりました。

４．パソコンにMicrosoft FrontPage 2000等のWebオーサリングツール（HTMLエディタ）がインストールされていること（画面8）。

クリックすると拡大表示されます。

↑画面 8　Microsoft FrontPage 2000

  Webオーサリングツールが事前にインストールされていれば、Magic eDeveloper V9のインストールに際して動作環境テーブルの「Webオーサリングツール」欄への登録が自動で行われ（画面9）、MagicのHTMLコントロールテーブルからこれを自動で起動することができるようになります（画面10）（*1）。

（*1）複数のWebオーサリングツールがインストールされている場合は、OSがデフォルトHTMLエディタとして認識しているものが自動登録されます。

クリックすると拡大表示されます。

↑画面 9　動作環境のWebオーサリングツール

クリックすると拡大表示されます。

↑画面 10　HTMLエディタの自動起動

  以上で、インストール前の環境整備は完了です。続いて、Magic eDeveloper V9のインストールに入ります。

（以上、2001年6月18日号（隔週掲載）。次回7月2日号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第2回

2001.7.2掲載
丹田昌信*)

  インストール前の環境整備が完了したら、さっそくMagic eDeveloper V9のインストールに入ります。なお、2001年6月25日の時点でMagic eDeveloper V9の製品版がリリースされましたので、今回より製品版を基準に解説を行っていきたいと思います（*1）。

（*1）本稿で解説する内容は、製品版添付の「インストールガイド」の補足説明となるものです。インストールにあたっては、製品版添付の「インストールガイド」を必ずご一読ください。

◆ ライセンスコードの取得

  製品版のCD-ROMを入手したら、インストール作業と並行して行っておきたい手続きが、FAXによるライセンスコードの取得です。同封の「はじめにお読みください」を参考に、マジックソフトウェア・ジャパン社のMagicユーザ登録センターにFAXを送信して「ライセンスコード」と「Activation Key」の発行を申請しておきます（*2）。これらのコードを取得するまでは、CD-ROMから製品版をインストールしても、それは「体験版」としての機能しか動作いたしません。体験版上に「ライセンスコード」と「Activation Key」を登録することによって、インストールされたプログラムが製品版として正しく動作するようになります。このあたりの手順は、dbMAGIC V8（旧バージョン）のインストール作業とほぼ同じ手順となっています。

（*2）本稿執筆後、Magicユーザ登録センターではFAXによる申請以外に、インターネット上からのオンラインによる申請も受付できるようになりました。オンラインによる申請は365日、24時間受付可能で、申請と同時にリアルタイムでコードが自動発行されるシステムになっていますので、できる限りこちらを利用されることをお勧めいたします。オンライン申請は、MSJ社ホームページから、ユーザ登録ページに進み、User's Data Center で行ってください。

  なお、Magic eDeveloper V9では、ハードウェアプロテクタとして、PCに装着するHASP（ハスプ）が必要となっています。HASPはパラレルポート（通常、プリンタポート）用とUSBポート用が用意されていますので、Magicを購入されたときの種別に応じてHASPを適切なポートに装着します。HASPの装着は、Magicのインストール後であっても構いません。

◆ セットアッププログラムの起動

  Magic eDeveloper V9のCD-ROMをCD-ROMドライブに挿入すると、画面11のようなセットアッププログラムが自動的に起動されます（OSの設定で自動起動を不可にしてある場合は、CD-ROMドライブから\SETUP.EXE）を起動してください）（*3）。

（*3）本稿では、Windows 98＋Microsoft Personal Web Server＋Microsoft FrontPage 2000の環境にMagicをクリーンインストールするケースを例に、解説を行っています。Windows 2000／NT上にインストールする場合や、あるいはdbMAGIC V8等の旧バージョンがインストールされている環境、またはBtrieve 6.15がインストールされている環境等においては、本稿の解説以外に追加の設定画面が表示されますので、その都度、製品版添付のインストールガイドに沿って作業を行うようにしてください。

クリックすると拡大表示されます。

↑画面 11　セットアッププログラムの起動

  ここでは3つのメニュー（Magic eDeveloper V9、Magic Client、Magic Application Server）が表示されていますが、インストールして実行することのできるメニューは、購入された製品用のものだけです。購入されていないものは、インストールしても製品版として正常に動作させることはできません。なお、これら3つの製品を総称して、「Magic eBusiness Platform」という名称が付与されています。

◆ Magic eDeveloper V9のインストール

  セットアップメニューから「Magic eDeveloper」を選択すると、アプリケーション開発用の製品であるMagic eDeveloper V9のインストールが開始されます。インストール用のウィザードが起動されると、画面12のようなセットアップウィンドウが表示されます。

クリックすると拡大表示されます。

↑画面 12　セットアップウィンドウ

  「次へ」ボタンを押して次に進み、画面13の使用許諾契約に合意したうえで、「はい」ボタンを押します。

クリックすると拡大表示されます。

↑画面 13　使用許諾契約

  画面14では、標準セットアップかカスタムセットアップかの選択を行います。インストール内容を確認しながら作業を進めるには、「カスタム」セットアップを選択されることをお勧めします。

クリックすると拡大表示されます。

↑画面 14　セットアップタイプの選択

  カスタムセットアップを選択すると、次に画面15が表示されます。

クリックすると拡大表示されます。

↑画面 15　インストール先の選択

  ここでは、インストール先のフォルダを指定しますが、インストール後の環境設定を簡潔に行うには、デフォルトのフォルダをそのまま使用されることをお勧めします（他のフォルダを指定した場合は、インストール後に若干の環境修正が必要となる場合があります）。

  画面16では、新規フォルダの作成確認メッセージが表示されます。よろしい場合は、「はい」を押して次に進みます。

クリックすると拡大表示されます。

↑画面 16　フォルダ作成の確認画面

  画面17は、インストールコンポーネントの選択画面です。「＋」記号を押すと、さらにサブコンポーネントが表示されます。

クリックすると拡大表示されます。

↑画面 17　コンポーネントの選択

  この選択画面では、次のようなコンポーネントの意味合いに留意します。

  １．ミドルウェアゲートウェイ（画面18）

クリックすると拡大表示されます。

↑画面 18　ミドルウェアゲートウェイ

  ここでは、リクエストブローカとブローカーモニタにチェックが入っています。リクエストブローカとはMagicリクエスト・ブローカのことで、Webアプリケーションを作成したり、アプリケーションパーティショニングを行ったりする際に必要となります。

  ブローカーモニタは必須ではありませんが、プログラムのデバッグを行ったり、ブローカを遠隔操作したりする際に重宝するアプリケーションです（ブローカーモニタはMagic自身で作成されたアプリケーションです）。

  ２．インターネットリクエスタ（画面19）

クリックすると拡大表示されます。

↑画面 19　インターネットリクエスタ

  チェックマークで選択されているサブコンポーネントは、インストーラがそのパソコンにインストールされているWebサーバの種類を自動認識してチェックを入れたものです。パソコンにInternet Information Server、もしくはPersonal Web Serverがインストールされている場合はISAPIの欄に自動的にチェックが入ります。パソコンにNetscape Enterprise Serverがインストールされている場合は、NSAPI欄に自動的にチェックが入ります。

  ３．データベースゲートウェイ（画面20）

クリックすると拡大表示されます。

↑画面 20　データベースゲートウェイ

  デフォルトではBtrieveゲートウェイだけにチェックが入っています。これは必須選択になっています。Btrieveゲートウェイとしては、Btrieve 6.15用のゲートウェイ（MGbtrv.dll）とPervasive.SQL 2000用のゲートウェイ（MGpv2k.dll）の両方がインストールされます。ただし、Pervasive.SQL 2000用のゲートウェイはSQLには対応しておらず、ISAM用のゲートウェイとして機能します。ここでは必要に応じて、他のゲートウェイを選択します。

  ４．データベース（画面21）

クリックすると拡大表示されます。

↑画面 21　データベース

  デフォルトデータベースは、旧来のBtrieve6.15から、Pervasive.SQL 2000 Workgroup Engineに変更されています。但し、Magic側で用意されているゲートウェイ（MGpv2k.dll）はISAM用ゲートウェイですので、Pervasive.SQL 2000 のSQL機能は利用できません。

  さて、必要なコンポーネントを選択して「次へ」ボタンを押すと、画面22のようなMRB用のパスワード設定画面が現れます。

クリックすると拡大表示されます。

↑画面 22　MRB用のパスワード設定

  MRB用のパスワードとは、管理者以外の者から不正にMagicリクエスト・ブローカ（画面18）にアクセスされないためのセキュリティです。インターネット上の外部からの不正アクセスに対しても有効となります。

  Magicリクエスト・ブローカとは、（Webアプリケーションにおいては）Webブラウザからのコマンドを、Webサーバ→インターネットリクエスタ（画面19）→Magicリクエスト・ブローカ（画面18）という経路でMagicエンジンに伝達するためのミドルウェア的アプリケーションです。ここで設定するパスワードは、次の3箇所に反映されます。

1．Mgrb.iniファイルの「PasswordSupervisor」欄
2．Magicプルダウンメニューの「設定」→「サーバ」→「Defualt Broker」→「サーバ特性」→「パスワード」欄（Magic.iniの[MAGIC_SERVERS]セクションのDefault Broker行に反映）
3．「MRBモニタ」の「パスワード設定」ダイアログ

  パスワードを入力して次に進むと、画面23のプログラムフォルダの選択が表示されます。プログラムフォルダとは、Windowsのスタートから表示される「プログラム」メニューのことです。

クリックすると拡大表示されます。

↑画面 23　プログラムフォルダの選択

  デフォルトのフォルダでよければ、そのまま次に進みます。

  続いて表示される画面24は、画面19においてISAPI（Microsoft）が選択されている場合に表示される、Webサーバ用セットアップ画面の例です。

クリックすると拡大表示されます。

↑画面 24　ISAPIの場合のWebサーバ設定例

  設定はあとでも変更できますので、とりあえずデフォルトのまま次に進まれることをお勧めします。デフォルトの設定を利用したとしても、Webサーバ上の既存のエイリアス（/scriptsや/）はそのまま有効となります。

  続いて表示される画面25と画面26は、「警告」として表示されてはいますが、特にこれは警告でもなく、画面24のそれぞれのエイリアスに対して実行アクセス権や読み取りアクセス権を自動設定するというお知らせメッセージになります。

クリックすると拡大表示されます。

↑画面 25　実行アクセス権の自動設定案内

クリックすると拡大表示されます。

↑画面 26　読み取りアクセス権の自動設定案内

  ちなみに、V8ではdbMAGICのインストール後にこれらの設定を手動で行う必要がありました。V9ではこれが自動化されて、設定漏れがないように改良されたことになります。

  最後に、セットアップ情報の確認画面が表示されます（画面27）。

クリックすると拡大表示されます。

↑画面 27　セットアップ情報の確認画面

  内容を確認して「次へ」ボタンを押すと、いよいよMagic eDeveloper V9のインストール（ファイル転送）が開始されます（画面28）。

クリックすると拡大表示されます。

↑画面 28　ファイル転送の開始

  ファイル転送が開始されてしばらくすると、画面29ようにPervasive.SQL Workgroupのインストール確認ウィンドウが表示されます。ここでは特別な理由がない限り、「はい」を押して作業を継続します。

クリックすると拡大表示されます。

↑画面 29　Pervasive.SQL Workgroupのインストール確認

  この先しばらくは、Pervasive.SQL 2000 Workgroupのインストール画面に切り替わります（画面30）。

クリックすると拡大表示されます。

↑画面 30　Pervasive.SQL 2000インストール画面

  Pervasive.SQL 2000のインストールが終了すると、画面は再びMagic eDeveloper V9に戻り、Magicのインストール作業が続行されます（画面31）。

クリックすると拡大表示されます。

↑画面 31　Magic eDeveloper V9のインストール続行

  しばらくすると、今度はHASPドライバのインストール確認画面が表示されます（画面32）。

クリックすると拡大表示されます。

↑画面 32　HASPドライバのインストール確認

  HASPドライバは後からでもインストールすることができます。体験版として使用する場合はHASPドライバは不要ですので、ここで「いいえ」を選択することができます。

  画面33は、HASPドライバのインストール完了確認ウィンドウです。HASPドライバはAladdin社のドライバが使用されていますので、このような英文のオリジナルメッセージとなっています。

クリックすると拡大表示されます。

↑画面 33　HASPドライバインストール完了の確認

  画面34は、Magic eDeveloper V9のインストール完了確認画面です。長い道のりでしたが、これが表示されればインストールは正常に完了したことになります。

クリックすると拡大表示されます。

↑画面 34　インストール完了の確認ウィンドウ

  そして、完了ボタンを押すと、画面35のようにWebブラウザが自動的に起動されて、readme.htmの表示となります。

クリックすると拡大表示されます。

↑画面 35　readme.htmの自動表示

  以上でCD-ROMからのインストール作業は完了です。インストールが完了したら、念のためにパソコンを再起動しておきます。

  次回は、インストール後のライセンス登録とMagic環境設定をお送りします。

（以上、2001年7月2日号。次回は7月16日（隔週掲載）です。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第3回

2001.7.16掲載
丹田昌信*)

  CD-ROMからのインストールが完了したら、次にライセンス登録とMagicの環境設定を行います。ライセンス登録を行わないうちは、インストールしたMagicは体験版としての機能しか果たしません。

◆ ライセンス登録

  ライセンスの登録には、第2回でご案内した「ライセンスコード」と「Activation Key」、および製品に記載されている「シリアル番号」と、ライセンス取得の際に申請した「ユーザ登録名」を使用します。これら4つのコードが手元にそろっていることを確認しておきます。

１．ライセンスコード（Magicユーザ登録センターより取得）
２．Activation Key（Magicユーザ登録センターより取得）
３．シリアル番号（製品に記載）
４．ユーザ登録名（ライセンスコード申請時に取り決めしたもの）

  4つのコードがそろっていることを確認したら、Windowsのスタートメニューから、「プログラム」→「Magic eDeveloper V9」→「ライセンスマネージャ」を選択して、ライセンスマネージャを起動します。ウィンドウのサイズは適当に大きくします（画面36）。

クリックすると拡大表示されます。

↑画面 36　ライセンスマネージャの起動

  現在、ライセンスマネージャのテーブル上には、「MGDEMO」、「MGRTDEMO」、「MGCSRT」、「MGENT1」という4つのライセンスがすでに登録されています。4つのライセンスはそれぞれ次のような意味を持っています。

MGDEMO - Magic eDeveloper V9の体験版用ライセンスです。体験版として機能させるうえで必要なライセンスです。
MGRTDEMO - ライセンスマネージャを実行させるために必要なライセンスです。ライセンスマネージャ自体もMagicで作成されています。
MGCSRT - 期限付きのMagic Clientβ版です。画面上では有効期限は2001年8月31日までとなっています。
MGENT1 - 同じく、期限付きのMagic Application Serverβ版です。こちらも有効期限は2001年8月31日までとなっています。

  それでは、このテーブル上に新たにMagic eDeveloper V9製品版用のライセンス登録を行います。次の手順で操作してください。

1. 「ライセンスの追加」ボタンを押す（画面37）。

クリックすると拡大表示されます。

↑画面 37　ライセンスの追加

2. ライセンスコード欄に、ライセンスコードを入力してTABキーを押す（画面38）。

クリックすると拡大表示されます。

↑画面 38　ライセンスコードの入力

3. Activation Key欄に、Activation Keyを入力する（画面39）。

クリックすると拡大表示されます。

↑画面 39　Activation Keyの入力

4. シリアル番号欄に、シリアル番号を入力する（画面40）。

クリックすると拡大表示されます。

↑画面 40　シリアル番号の入力

5. ユーザ登録名欄にユーザ登録名（ライセンスコード申請時に登録したもの）を入力してTABキーを押す。

  しばらくすると、画面41のようなライセンス情報の表示画面に切り替わります。

クリックすると拡大表示されます。

↑画面 41　ライセンス情報の表示

  ここで表示されているライセンス名「MGCSTK」というコードがMagic eDeveloper 用に割り当てられた製品コードになります。Magic ClientやMagic Application Serverでは、この製品コード名が異なります。

6. ライセンスコード名とユーザ数を確認したら、「ライセンスの確認」ボタンを押す。

  4つのコードが正しく入力されていると、画面42のようなウィンドウが表示されます。正しく入力されていない場合は、画面43のようなエラーメッセージが表示されることになります。

クリックすると拡大表示されます。

↑画面 42　ライセンス情報の確認メッセージ

クリックすると拡大表示されます。

↑画面 43　ライセンス情報のエラーメッセージ

7. 正しいライセンス情報を確認したら、OKボタンを押してライセンスの入力画面に戻る（画面44）。

クリックすると拡大表示されます。

↑画面 44　ライセンスの入力画面に戻る

8. ライセンスの入力画面に戻ったら、右下の「追加」ボタンを1回押す。

  すると、しばらくして再びライセンスマネージャの画面に戻ります。テーブルの5行目には、「Magic eDeveloper」という新しい行が登録されていることが確認されます（画面45）。

クリックすると拡大表示されます。

↑画面 45　Magic eDeveloperの製品名確認

  この行が確認されれば、ライセンスマネージャ上にMagic eDeveloper V9製品版のライセンス登録が正しく行われたことになります。

  そして最後に、このテーブル上に表示されたライセンス名、「MGCSTK」という文字列をMagic eDeveloper V9の本体側に登録します。

9. 「閉じる」ボタンを押してライセンスマネージャを閉じる。
10. Windowsのスタートメニューから、「プログラム」→「Magic eDeveloper V9」→「Magic eDeveloper V9」を選択して、Magic eDeveloper V9の本体を起動する（画面46）。

クリックすると拡大表示されます。

↑画面 46　Magic eDeveloper V9本体の起動

11. プルダウンメニューから、「設定」→「動作環境」で動作環境テーブルを表示する。
12. 「システム」タブの「ライセンス」の行を表示させる（画面47）。

クリックすると拡大表示されます。

↑画面 47　システムタブのライセンス行

13. 現在表示されているライセンスコード「MGDEMO（体験版用コード）」を、画面45で確認した「MGCSTK」というコードに変更する（画面48）。

クリックすると拡大表示されます。

↑画面 48　製品版用のライセンスコードに変更する

14. OKボタンを押して、動作環境テーブルを閉じる。
15. 一旦、Magic eDeveloper V9を終了して、再起動する。

  これで、Magic eDeveloper V9は製品版として正しく起動されたことになります。プルダウンメニューから「ヘルプ」→「MAGIC情報」を選択すると、画面49のようにライセンス情報として登録ユーザ名とシリアル番号が表示されるのが分かります。

クリックすると拡大表示されます。

↑画面 49　ライセンス情報の表示

  なお、実際にアプリケーションを開発するにあたっては、Magic eDeveloper V9を起動する前に、ハードウェアプロテクタであるハスプ（HASP）を所定のポートに正しく装着しておく必要があります。ハスプが装着されていないと、画面50のようにアプリケーション開発途中の任意のタイミングで、ステータス行に「プロテクトエラー 15」というエラーメッセージが表示されることになります。

クリックすると拡大表示されます。

↑画面 50　プロテクトエラーの表示

◆ 環境設定

  さて、ライセンスの登録が完了したら、ここで若干の環境設定を行っておきます。まずはオーナ名の登録を行います。

16. プルダウンメニューから、「設定」→「動作環境」で動作環境テーブルを開く。
17. 「システム」タブの「オーナ名」の欄に、任意のオーナ名を登録する（画面51）。

クリックすると拡大表示されます。

↑画面 51　オーナ名の登録

  ここで登録されたオーナ名は、アプリケーション内部でOWNER()関数によって参照することができるようになります。したがって、アプリケーションを顧客先に納品する場合は、納品先のオーナ名をここに登録しておくことになります（実際には、動作環境テーブルの内容が記録されているMAGIC.INIファイルを配布することになります）。

  次に、動作環境テーブルの「アプリケーションサーバ」タブの内容を確認しておきます。

18. 動作環境テーブルの「アプリケーションサーバ」タブをクリックする（画面52）。

クリックすると拡大表示されます。

↑画面 52　アプリケーションサーバタブの内容

  この中の、「HTTPリクエスタ」、「Webドキュメントパスの別名」、および「Webドキュメントパス」の内容が、第2回の画面24で設定した内容となります。これらを手動で変更する場合（もしくは変更した場合）は、第2回の画面25と画面26で表示されたように、手動でエイリアスのアクセス権（実行の権利と読み取りの権利）を設定しなおす必要があります。

  また、同じテーブル上の「Webオーサリングツール」という項目が、第1回の画面9および画面10でご紹介したHTMLエディタの自動起動の設定です。ここに登録されているプログラムが、HTMLコントロールテーブル上から自動で起動される、外部HTMLエディタとなります。

  以上で、Magic eDeveloper V9のインストール作業は完了です。次回は、「Magic eDeveloper V9付属のデモアプリケーション（eTicket）を起動する（画面53）」をお送りします。

クリックすると拡大表示されます。

↑画面 53　デモアプリケーション「eTicket」

（以上、2001年7月16日号。次回は7月30日（隔週掲載）です。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第4回

2001.7.30掲載
丹田昌信*)

  さて、Magic eDeveloper V9のインストールが完了したら、アプリケーションの開発環境が正常に設定されているかどうかを確認する意味を兼ねて、製品付属のデモアプリケーションを動作させてみることにします。

  デモアプリケーションはデフォルトではインストールされていませんので、インストールCDからコンポーネントの追加インストールを行うことになります。

◆ デモアプリケーションのインストール

  それでは、次の手順にそってコンポーネントの追加インストールを行ってください。

1. Magic eDeveloper V9のCD-ROMをCD-ROMドライブに挿入する（画面54）。

クリックすると拡大表示されます。

↑画面 54　インストールCDの起動

2. インストールメニューから「Magic eDeveloper」を選択する。

  しばらくして画面55のようなセットアップウィンドウが表示されます。

クリックすると拡大表示されます。

↑画面 55　セットアップウィンドウ

  この画面は初回インストール時のウィザード起動画面（第2回の画面12）とは異なりますが、すでにMagic eDeveloper V9がインストールされている場合は、2回目からはこのようなセットアップ画面が表示されるようになっています。

3. セットアップ画面から「変更（M）」を選択して「次へ」ボタンを押す（画面56）。

クリックすると拡大表示されます。

↑画面 56　追加／削除コンポーネントの指定

4. 追加／削除コンポーネントの指定画面が表示されたら、画面57のように「Magic eDeveloper Ver9用のデモプログラム」にチェックを入れる。

クリックすると拡大表示されます。

↑画面 57　デモプログラムの追加指定

  画面57においては、右側の「説明」欄に表示された内容をよく読んでおきます。デモアプリケーションのインストールとともに実行版エンジンが自動的にインストールされること、およびインターネットリクエスタ関係のエイリアスをデフォルト以外に設定するとデモアプリケーションが正常に動作しない等の内容が記載されています。

5. 「説明」欄を読んだら、「次へ」ボタンを押す。

  すると今度は、画面58のように使用DBMSの選択ウィンドウが表示されます。

クリックすると拡大表示されます。

↑画面 58　使用DBMSの選択

  デフォルトDBMSを使用するのであれば、とくに変更することなく、「Pervasive.SQL 2000」をそのまま選択します。

6. 「Pervasive.SQL 2000」を選択して、「次へ」ボタンを押す（画面59）。

クリックすると拡大表示されます。

↑画面 59　インストール内容の確認

  画面59ではインストール内容の確認が表示され、ファイルの転送準備が完了します。

7. 「次へ」ボタンを押して、ファイル転送を開始する（画面60）。

クリックすると拡大表示されます。

↑画面 60　ファイル転送

  ファイル転送が終了すると、画面61のようなウィンドウが表示されます。

クリックすると拡大表示されます。

↑画面 61　メンテナンスの完了画面

  これで、デモアプリケーションの追加インストール作業は完了です。

8. 「完了」ボタンを押して、インストール作業を完了する。
9. CD-ROMのインストールメニューを閉じる。

  それでは早速、デモアプリケーションが正しくインストールされたかどうかを確認してみることにしましょう。

  デモアプリケーションがインストールされると、Windowsの「スタート」メニュー→「プログラム」→「Magic eDeveloper V9」フォルダの中に、「Magic9Demo」というメニューが追加されます。そして、このメニューフォルダには、画面62のようなメニューが追加されています。

↑画面 62　デモアプリケーション用のメニュー

  メニューの1行目にある「Magic eDeveloper Demo ReadME」は日本語で記述されていますので、デモアプリケーションを起動するまえに一読されることをお勧めします。

  それでは順を追ってデモアプリケーションを起動していくことにしましょう。

◆ デモアプリケーションの起動

  はじめに、デモアプリケーションを実行するための、デモデータ初期化作業を行います。

10. Windowsの「スタート」メニューから「プログラム」→「Magic eDeveloper V9」→「Magic9Demo」→「クライアント用デモアプリケーション実行（MLSで変換）」を起動する（画面63）。

クリックすると拡大表示されます。

↑画面 63　クライアント用デモアプリケーション実行

11. プルダウンメニューから、「テーブルデータ入力」→「アプリケーション用のデータの入力」を実行する（画面64）。

クリックすると拡大表示されます。

↑画面 64　アプリケーション用データの入力

12. 「アプリケーションのデータを入力（I）」を押す。

  すると、画面65のようにバッチタスクが実行され、しばらくすると表示は画面63に戻ります。

クリックすると拡大表示されます。

↑画面 65　データ入力バッチの実行

13. 画面63に戻ったら、一旦Magic eDeveloper V9（デモアプリケーション）を終了する。

  次に、サーバ用エンジンをバックグラウンドで稼動させ、ブラウザクライアント用のデモを実行します。下記の手順で操作してください。

14. Windowsの「スタート」メニューから「プログラム」→「Magic eDeveloper V9」→「Magic9Demo」→「サーバ用エンジンの実行（バックグランド）」を起動する（画面66）。

↑画面 66　サーバ用エンジンの実行

  すると、WindowsのタスクトレイにはMagicリクエスタブローカのアイコンが表示されます。画面上は何も起こらなかったかのようにWindowsに戻りますが、実はこれでサーバ用エンジンがバックグラウンド（メモリ上）で稼動されたことになります。それを確認するには、Windows上でCtrl+Alt+Delを押して、Windowsのタスク一覧画面を表示させます（画面67）。

クリックすると拡大表示されます。

↑画面 67　バックグラウンドジョブの確認

  ここにMgrntwとMgrqmrbが表示されていれば、MagicエンジンとMagicリクエスタブローカがメモリ上に正しく常駐したことになります（*1）。

（*1）Mgrqmrbが2つあるのは、それで正常です。ひとつはブローカを監視するためのブローカで、万が一ブローカが落ちた場合に監視用のブローカが自動的にそれを復旧する役割を果たします。

  画面67のタスク一覧ウィンドウを閉じるには、「キャンセル」ボタンを押します。

  さて、サーバエンジンが常駐したら、次にブラウザクライアントを実行します。

15. Windowsの「スタート」メニューから「プログラム」→「Magic eDeveloper V9」→「Magic9Demo」→「ブラウザクライアントのデモ（英語）」を起動する（画面68）。

クリックすると拡大表示されます。

↑画面 68　ブラウザクライアントの起動

  この画面が表示されれば、デモアプリケーションは基本的に無事に起動されたことになります。さっそくログインを行って、デモアプリケーション（eTicket）の一部を覗いてみることにしましょう。

16. ブラウザ上の左側のメニューから「Login」を選択する（画面69）。

クリックすると拡大表示されます。

↑画面 69　ログイン画面

17. DemoReadme.htm（画面66）に記載された次のIDとPasswordを入力して、Loginボタンを押す。
●ID： 1600700
●Password： July

  これでログインは完了したことになります。画面69が閉じて画面68に戻り、ログインしたアカウントで（管理者用の作業を含めて）各種作業が行えるようになります。試しに、チケットの座席予約画面を開いてみることにしましょう（ただし、この画面はログインしなくても匿名アカウントで操作を行える画面です）。

18. 画面68の左側のメニューから「Start」を選択する（画面70）。

クリックすると拡大表示されます。

↑画面 70　イベント検索画面

19. 「Category」テーブルの「Children」行の右端の虫眼鏡を押す（画面71）。

クリックすると拡大表示されます。

↑画面 71　カテゴリー絞込み画面

20. 先頭行の「Alice in wonderland」右端の虫眼鏡を押す（画面72）。

クリックすると拡大表示されます。

↑画面 72　ショー内容の詳細画面

21. 右下の「Show Seat Map」を押す（画面73）。

クリックすると拡大表示されます。

↑画面 73　ショーの座席予約画面

  これで、「不思議の国のアリス」の座席予約画面が表示されたことになります。あとは、ご自由にデモアプリケーション内を散策してみてください。

（以上、2001年7月30日号。次回は8月27日（8月13／27日合併号）です。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第5回

2001.8.27掲載
丹田昌信*)

  Magic eDeveloper V9では標準でMSDE（Microsoft DATAエンジン）が同梱されるようになりました。MSDEはSQLの機能を備えたマイクロソフト社純正のデータベースエンジン（SQL Server 7.0互換のエンジン）です。Magic eDeveloper V9のセットアップではオプションインストールとなっておりますが、当面はSQLがデータベース操作言語の主流となることは否定できませんので、この機会にMSDEも併せてインストールしておくことにします。

◆ MSDEのインストール

  MSDEをインストールするには、Magic eDeveloper V9のインストールCDをCD-ROMドライブに挿入して、追加コンポーネントを選択します。次の手順にそって操作してください（*2）。

（*2）インストール手順は、Windows 98 Second Editionを基準としています。Windows NT／2000等をお使いの場合は、適宜読み替えて操作してください。

1. Magic eDeveloper V9のインストールCDをCD-ROMドライブに挿入して、インストーラを起動する（画面74）。

クリックすると拡大表示されます。

↑画面 74　インストーラの起動

2. インストールメニューから「Magic eDeveloper」を選択する（画面75）。

クリックすると拡大表示されます。

↑画面 75　メンテナンスメニュー

3. メンテナンスメニューから「変更(M)」を選択して、「次へ」ボタンを押す（画面76）。

クリックすると拡大表示されます。

↑画面 76　追加コンポーネントの指定

4. コンポーネント一覧から「データベースゲートウェイ」のサブメニューを開いて、「MS-SQL Serverゲートウェイ」にチェックを入れる（画面77）。

クリックすると拡大表示されます。

↑画面 77　MS-SQL Serverゲートウェイの選択

5. 同じく、コンポーネント一覧から「データベース」のサブメニューを開いて、「Microsoft Dataエンジン」にチェックを入れる（画面78）。

クリックすると拡大表示されます。

↑画面 78　Microsoft Dataエンジンの選択

6. 以上2ヵ所にチェックを入れたら、「次へ」ボタンを押して次に進む（画面79）。

クリックすると拡大表示されます。

↑画面 79　追加コンポーネントの確認

7. メンテナンス情報の画面にて追加コンポーネントの内容を確認し、「次へ」ボタンを押す（画面80）。

クリックすると拡大表示されます。

↑画面 80　インストール開始の確認メッセージ

  画面80では、セットアップステータスのウィンドウが表示されたあと、MSDEのインストール確認のメッセージが表示されます。

  メッセージには、「サイレントインストールで実行されます」とありますが、これはインストール作業がバックグラウンド上で開始され、終了しても通知メッセージは何も表示されないので注意すること、という意味を表しています。では、インストールを行ってみましょう。

8. 「OK」ボタンを押してサイレントインストールを開始する（画面81）。

クリックすると拡大表示されます。

↑画面 81　メンテナンスの完了

  画面上は何も起こらなかったかのように「メンテナンスの完了」ウィンドウが表示されますが、実は、この状態でバックグラウンドではインストール作業が続行されています。

  では、インストール作業が続行中であるか、あるいはインストールが完了したかどうかは、どのようにして確認したらよいでしょうか。それには、Windowsのタスクマネージャを表示させて、プロセスの起動状態を確認してこれを行います。Windowsのタスクマネージャを表示させるには、キーボードからCtrl＋Alt＋Delを押します。

9. Ctrl＋Alt＋Delを押して、Windowsのタスクマネージャを表示させる（画面82）。

クリックすると拡大表示されます。

↑画面 82　Windowsのタスクマネージャ

  このリストの中に「Msdex86」というプロセスの表示があればインストール作業は続行中であり、この表示が消えた時点でインストール作業は完了したというように判断します（*3）。

（*3）このインストーラの仕様は、マイクロソフト社の製品仕様です。Microsoft Office 2000 Professional以上のCD-ROM（MSDEの開発用ライセンス）をお持ちであれば、画面上でインストール作業を確認しながら続行することができます。

  なお、タスクマネージャを表示させたままの状態ではバックグラウンド上のインストール作業も一時停止した状態になっていますので、プロセスの存在を確認したらタスクマネージャを一旦、終了させます。
  5～10分経過してタスクマネージャを再び表示させ、Msdex86の表示が消えてなくなっていればMSDEのインストールは完了したことになります。

10. 5～10分後、Ctrl＋Alt＋Delを押して、Windowsのタスクマネージャを再表示させる（画面83）。

クリックすると拡大表示されます。

↑画面 83　Msdex86のプロセスが消えていることを確認

  Msdex86のプロセスが消えていることを確認したら、これにてMSDEのインストールは完了です。念のためにWindowsを再起動しておきます。

11. すべてのウィンドウを閉じて、Windowsを再起動する。

  Windowsを再起動させたら、タスクトレイにMSDEのアイコンが常駐していること（画面84）、およびWindowsのプログラムメニューに「Msde」の項目が追加されていること（画面85）を確認しておきます。

↑画面 84　MSDEのアイコン

↑画面 85　MSDEのプログラムメニュー

  さて、MSDE本体のインストールはこれで完了したことになりますが、実はMagic eDeveloper V9のCD-ROMにはMSDEのService Pack 3も併せて同梱されています。このサービスパックには重要な不具合修正も含まれていますので、これもついでにインストールしておくことにします。引き続き、手順にそって操作してください。

12. Magic eDeveloper V9のCD-ROMをCD-ROMドライブに挿入し、インストールメニューから「CDを参照」を選択する（画面86）。

クリックすると拡大表示されます。

↑画面 86　インストールメニューから「CDを参照」

13. Msdeのフォルダを開く（画面87）。

クリックすると拡大表示されます。

↑画面 87　Msdeフォルダ

  Service Pack 3をインストールするには、この中から「jp_sql70sp3i.exe」の圧縮ファイルをクリックします。

14. jp_sql70sp3i.exeファイルをクリックして、Service Pack 3の解凍先を指定する（画面88）。

クリックすると拡大表示されます。

↑画面 88　SP3の解凍先の指定

  デフォルトのフォルダでよければ、そのまま「完了」ボタンを押します。

15. 「完了」ボタンを押して、圧縮ファイルを解凍する。

  ファイルが解凍されると、解凍先のフォルダは画面89のようになります。

クリックすると拡大表示されます。

↑画面 89　SP3解凍先のフォルダ

  Service Pack 3をインストールするには、このフォルダの中の「setup.bat」をクリックします。

16. 「setup.bat」をクリックして、Service Pack 3のインストールを開始する。

  セットアップ開始の準備が整うと、画面90のようなウィンドウが表示されます。

クリックすると拡大表示されます。

↑画面 90　Service Pack 3のセットアップ開始

17. 「次へ」ボタンを押して、セットアップを開始する。

  「サーバーの接続」画面まで進み、「SAログインのパスワード」は空白にしたまま、「次へ」ボタンを押す（画面91）。

クリックすると拡大表示されます。

↑画面 91　SAログインのパスワード

  しばらくすると、ファイルコピーの開始ウィンドウが表示されます（画面92）。

クリックすると拡大表示されます。

↑画面 92　ファイルコピーの開始

18. 「次へ」ボタンを押して、ファイルのコピーを開始する。

  途中で、読み取り専用ファイルの上書き確認メッセージが表示された場合は、「はい」を押して上書きを承認します。

  インストールの終盤でsaログインのパスワードが空白である旨の警告が表示されますが、ここはOKを押して先に進めます（画面93）。

クリックすると拡大表示されます。

↑画面 93　パスワードに関する警告

  次に、「認証モード」のウィンドウが表示されます。このウィンドウにてSAログインのパスワードを設定することができますが、テスト段階では「空のパスワード（非推奨）」を選択しておいても特に支障はありません（画面94）。

クリックすると拡大表示されます。

↑画面 94　SAログインのパスワード設定

  最後に、「セットアップの完了」ウィンドウが表示されます（画面95）。

クリックすると拡大表示されます。

↑画面 95　セットアップの完了

  このウィンドウが表示されたら、Service Pack 3のインストールは正常終了したことになります。「完了」ボタンを押して、パソコンを再起動させてください。

  以上で、MSDEのインストール作業はすべて終了です。次回は、MSDE上にMagic専用のデータベースを作成します。

（以上、2001年8月13／27日合併号。次回は9月10日です。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第6回

2001.9.12掲載
丹田昌信*)

  MSDEのインストールが完了したら、続いてMSDE側にMagic専用のデータベース（任意のデータベース）を作成する作業に入ります。SQLを使用するうえでは、データベースの作成は必須となります。これにより、Magicアプリケーションで使用される個々のテーブルは、専用データベース上で統合管理されることになります。

◆ データベースの作成

  ここでは、データベースを作成する方法として、MSDE付属のコマンドラインユーティリティ（osql.exe）、およびMagic eDeveloper付属のInstMagic.sqlというスクリプトファイルを使用することにします。

  それでは、手順にそって操作してください。はじめに、MSDE（MS SQLServer）のサービスを稼動させるところから入ります。

1. WindowsのタスクトレイにあるMSDEのアイコンをダブルクリックし、MSDEのサービスマネージャ（SQLServerのサービスマネージャ）を開く（画面96）。

↑画面 96　MSDEのサービスマネージャ

2. 「開始／再開」ボタンを押して、サービスを開始する（画面97）。

↑画面 97　MSDEのサービスの開始

  サービスが開始されると、アイコンの絵やステータス行の表示が「実行中」の表示に切り替わることが確認されます。

  上記のようにMSDEが稼動されたことを確認したうえで、データベースの作成に入ります。データベースの作成には、すでにパソコンにインストールされているMSDEコマンドラインユーティリティ（osql.exe）、およびMagicのインストールCD-ROM内に用意されているSQLスクリプトファイル（InstMagic.sql）を使用します。

3. Magic eDeveloper V9のインストールCD-ROMをCD-ROMドライブに挿入する（画面98）。

クリックすると拡大表示されます。

↑画面 98　インストールCD-ROMの挿入

4. 「CDを参照」のボタンを押し、さらに「msde」のフォルダを開く（画面99）。

クリックすると拡大表示されます。

↑画面 99　msdeフォルダを開く

  使用するスクリプトファイルは、そこに含まれているInstMagic.sqlというファイルになります。このファイルはSQL文を記述した通常のテキストファイルとなっていますので、画面100のようにテキストエディタ等でオープンすることができます。

クリックすると拡大表示されます。

↑画面 100　InstMagic.sqlの内容

  Magic上でMSDEを操作するぶんには特にスクリプトの内容を理解する必要はありませんが、あえて内容を解析すれば、「magic」という名称のデータベースを作成するスクリプトであることが分かります。そして、このスクリプトを実行させるには、MSDEのインストールフォルダ内にあるosql.exeというコマンドラインユーティリティを使用します。引き続き、手順にそって操作してください。

5. WindowsのMS-DOSプロンプトを開き、MSDEのインストールフォルダ内のBinnフォルダ（例：C:\MSSQL7\Binn）に移動する（画面101）。

クリックすると拡大表示されます。

↑画面 101　\MSSQL7\Binnフォルダ

6. そこで次のコマンドを起動する（*2）。

osql -Usa -P -n -i D:\msde\InstMagic.sql

（*2）オプションパラメータはそれぞれ次のような意味を表しています。

-Usa：SQLServerにsaアカウントでログインする
-P：パスワードは空白
-n：入力行はナンバリング無し
-i：スクリプトファイルの指定
D:\msde\InstMagic.sql：スクリプトファイル

  コマンドが実行されると、MS-DOSプロンプトのウィンドウには画面102のような実行メッセージが表示されます。

クリックすると拡大表示されます。

↑画面 102　コマンド実行時の画面表示

  メッセージによると、magicデータベースに1MBを割り当て、magic_logデータベースに0.49MBを割り当てたと表示されています（*3）

（*3）割り当てバイト数はデフォルト値です。SQLServer 7以降は、データの増分に対してデータベースの割り当て値も自動増加されるようになっています。

  それでは早速、これらのデータベースが実際にディスク上に作成されているかどうかを確認してみることにします。データベースが作成されるフォルダは、C:\MSSQL7\Dataフォルダとなります。

7. Windowsのエクスプローラを起動し、C:\MSSQL7\Dataフォルダを開く（画面103）。

クリックすると拡大表示されます。

↑画面 103　C:\MSSQL7\Dataフォルダを開く

  そこには確かに、magic.mdfファイルとmagic_log.LDFファイルが作成されていることが確認されました。これで、MSDE上にはMagic専用のmagicデータベースが作成されたことになります。

◆ Magic側のデータベース設定

  MSDE側でデータベースの作成が完了したら、次にMagic側にそのデータベース（magicという名称のデータベース）を使用する旨の宣言（設定）を行うことになります。

8. Windowsの「スタート」メニューから「プログラム」→「Magic eDeveloper V9」→「MAGIC.INIの編集」を選択し、magic.iniファイルを開く。

9. [MAGIC_GATEWAYS]セクションに、「MGDB20=Gateways\mgms7.dll」という記述があることを確認する（画面104）。

クリックすると拡大表示されます。

↑画面 104　mgms7.dllの記述の確認

  この設定は、MSDEの追加コンポーネントのインストール時に自動設定されているはずです。

10. 確認が済んだら、magic.iniファイルを閉じる。

11. Windowsの「スタート」メニューから「プログラム」→「Magic eDeveloper V9」→「Magic eDeveloper V9」を選択して、Magic eDeveloper V9を起動する（画面105）。

クリックすると拡大表示されます。

↑画面 105　Magic eDeveloper V9の起動

12. プルダウンメニューから「ヘルプ」→「MAGIC情報」を選択し、MSSQLゲートウェイがロードされていることを確認する（画面106）。

クリックすると拡大表示されます。

↑画面 106　MSSQLゲートウェイのロード確認

13. 確認が済んだらOKボタンを押してMAGIC情報を閉じる。

14. プルダウンメニューから「設定」→「データベース」を選択し、データベーステーブルを開く（画面107）。

クリックすると拡大表示されます。

↑画面 107　データベーステーブル

15. データベーステーブルの4行目に新しい行を作成し、名前欄に「SQLServer」（文字列は任意）と記述する（画面108）。

クリックすると拡大表示されます。

↑画面 108　名前欄の設定

16. 同じ行の「DBMS」欄をダブルクリックしてDBMS一覧を開き、2番の「MSSQL」ゲートウェイを選択する（画面109）。

クリックすると拡大表示されます。

↑画面 109　DBMS一覧からMSSQLを選択

17. 選択ボタンを押してDBMS一覧を閉じ、データベーステーブルのDB名の欄に「magic」と記述する（画面110）。

クリックすると拡大表示されます。

↑画面 110　DB名欄の記述

  このDB名の欄が、画面103で確認したmagic.mdf（magicデータベース）を指定していることになります（*4）。

（*4）「magic」の記述はデフォルトの「MAGIC」という大文字の記述のままでも構わないのですが、設定の意味を理解するために、あえて小文字の指定にしています。

18. 次に、その状態のまま（カーソルが4行目にある状態のまま）Ctrl+Pを押してデータベース特性のウィンドウを開く（画面111）。

クリックすると拡大表示されます。

↑画面 111　データベース特性

19. データベースサーバの欄にSQLServerのサーバ名（*5）を記述し、ユーザ名の欄に「sa」（SQLServerのデフォルトアカウント名）を記述する（画面112）。

クリックすると拡大表示されます。

↑画面 112　データベース特性の設定

（*5）サーバ名は、MSDEのサービスマネージャの「サーバー」欄（画面97）に表示されている名称を記述します。なお、データベースがローカルにある場合はデータベースサーバ名の記述を省略することもできます。

20. OKボタンを押してデータベース特性のウィンドウを閉じる。

21. さらにOKボタンを押してデータベーステーブルも閉じる（画面113）。

クリックすると拡大表示されます。

↑画面 113　データベースの設定完了

  以上でMagic側のデータベースの設定は完了です。Magic eDeveloper V9のウィンドウを閉じ、開いている他のすべてのウィンドウも終了してください。

  次回は、APGによるテーブルの操作をお送りします。

（以上、2001年9月10日号。次回は9月25日です。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第7回

2001.10.2掲載
丹田昌信*)

  本稿より、APGによるテーブル操作の解説に入ります。テーブル（データベーステーブル）の作成は通常のアプリケーションのみならず、Webアプリケーションにおいてもアプリケーション作成の基礎となる手順であり、Magicおよび外部DBMSの動きを理解するうえでも重要なポイントとなります。

  V9のAPGにはV8のAPGオプションである「B=照会」、「E=出力」、「I=入力」、「P=プリント」、「N=インターネット」に加えて、「R=ブラウザ」というオプションが追加されました。本稿では、「R=ブラウザ」オプションを使用してWebブラウザ（Internet Explorer 5.5以上）上からレコードの登録や修正を行えるところまでを目指します。外部DBMSには、前回までにインストールした MSDEを使用します。

   なお、9月3日にMagic eDeveloper V9のService Pack 2aがリリースされましたので、本稿よりService Pack 2aを使用しての解説となります。

◆ アプリケーションの登録

  はじめに、Magicのアプリケーションテーブルに練習用のアプリケーションを登録します。手順にそって操作してください。

1. WindowsタスクトレイのMSDEアイコンをダブルクリックしてSQL Serverサービスマネージャを起動し、MSDEのサービスを開始する（画面1）。

↑画面 1　MSDEサービスの開始

2. Magic eDeveloper V9付属のハスプがパラレルポート、またはUSBポートに装着されていることを確認し、Windowsのスタートメニュー、またはWindowsのデスクトップ上からMagic eDeveloper V9を起動する（画面2）。

クリックすると拡大表示されます。

↑画面 2　Magic eDeveloper V9の起動

3. プルダウンメニューから「設定」→「アプリケーション」を選択し、アプリケーションテーブルを開く（画面3）。

クリックすると拡大表示されます。

↑画面 3　アプリケーションテーブル

4. テーブルの2行目に新しい行を作成し、名前を「exercise」、識別子を「ex」とする（画面4）。（*1）

クリックすると拡大表示されます。

↑画面 4　アプリケーションの登録

（*1）アプリケーションの名前ですが、Webアプリケーションを作成する場合は、2バイト文字の使用は避けたほうが無難かもしれません。プログラムが実行される際に、アプリケーション名が直接、URLの一部として使用されるからです。

  右端のデータベース欄は、デフォルトの「Default Database（Pervasiveゲートウェイの使用）」のままにしておきます。

5. OKボタンを押して、アプリケーションテーブルを閉じる。

◆ テーブルの作成

  続いて、テーブルの作成に入ります。

6. プルダウンメニューから「ファイル」→「アプリケーション・オープン」を選択し、アプリケーション一覧から「exercise」を選択する（画面5）。

クリックすると拡大表示されます。

↑画面 5　アプリケーションの選択

  アプリケーションを選択すると、Pervasive.SQL 2000のエンジンがロードされたあと、Magic eDeveloper V9の初期画面が表示されます（画面6）。

クリックすると拡大表示されます。

↑画面 6　Magic eDeveloper V9の初期画面

7. 左側のリポジトリ一覧から「テーブル」を選択し、テーブルリポジトリを開く（画面7）。

クリックすると拡大表示されます。

↑画面 7　テーブルリポジトリ（最大化表示）

  それではこのテーブルリポジトリ上に、練習用として簡単な顧客名簿を作成してみることにします。テーブルのカラム定義は次のようなものとします。

# | 名前 | 型 | 書式
1 | 顧客コード | N=数値 | 6P0
2 | 顧客名 | A=文字 | 30
3 | フリガナ | A=文字 | 30
4 | 電話番号 | A=文字 | 12
↑表 1　顧客名簿のカラム定義

  なお、テーブルの名前はアプリケーション名のときと同じく、Webアプリケーションを意識して半角英数字で命名することにします。

8. Ctrl+Tabを押して（またはマウスをクリックして）カーソルをテーブルリポジトリ上に移動し、テーブルリポジトリの1行目に新しい行を作成する（画面8）。

クリックすると拡大表示されます。

↑画面 8　新しいテーブルの作成

9. 名前欄に「customers」と入力し、データベース欄をダブルクリックしてデータベース一覧を開く（画面9）。

クリックすると拡大表示されます。

↑画面 9　データベース一覧

10. データベース一覧から「SQLServer」を選択してテーブルリポジトリに戻る（画面10）。

クリックすると拡大表示されます。

↑画面 10　データベース欄の設定

  これで、このテーブルにはMicrosoft SQL Server（MSDE）を使用することを宣言したことになります。

11. 続いて、customers行のカラム欄をダブルクリックして、カーソルを下段のカラムテーブルに移動し、新しい行を4行作成して、表1のカラム定義を入力する（画面11）。

クリックすると拡大表示されます。

↑画面 11　顧客名簿のカラム定義

12. 入力が済んだらリターンキーを押してカラムテーブルの入力を終了し、カーソルを上段のテーブルリポジトリに戻す。

  次に、顧客名簿のインデックス定義を行います。インデックスの定義は、表2の通りとします。

# | 名前 | セグメント | タイプ | 順
1 | 顧客コード | 顧客コード | 重複不可 | 昇順
2 | フリガナ | フリガナ | 重複可 | 昇順
↑表 2　顧客名簿のインデックス定義

13 テーブルリポジトリのcustomers行のインデックス欄をダブルクリックして、インデックステーブルを開く（画面12）。

クリックすると拡大表示されます。

↑画面 12　インデックステーブルの表示

14. インデックステーブルに新しい行を作成して、名前を「顧客コード」、タイプを「U=重複不可」とする（画面13）。

クリックすると拡大表示されます。

↑画面 13　顧客コードインデックスの定義

15. カーソルを下段のセグメントテーブルに移動し、新しい行を作成してカーソルをカラム欄に置く。

16. セグメントテーブルの右側のテーブルから「顧客コード」をダブルクリックして、左側のテーブルに代入する（画面14）。

クリックすると拡大表示されます。

↑画面 14　セグメントの定義

  これで、ひとつ目のインデックス定義は完了です。続いて、ふたつ目のインデックスを定義します。

17. カーソルを中段のインデックステーブルに戻し、2行目に新しい行を作成して名前を「フリガナ」とする。タイプは「N=重複可」とする（画面15）。

クリックすると拡大表示されます。

↑画面 15　フリガナインデックスの定義

18. カーソルを下段のセグメントテーブルに移動し、先ほどと同じ要領で「フリガナ」をセグメントとして選択代入する（画面16）。

クリックすると拡大表示されます。

↑画面 16　フリガナセグメントの定義

19. リターンキーを押してセグメントテーブルの入力を終了する。

20. もう一度リターンキーを押し、インデックステーブルの入力も終了してカーソルをテーブルリポジトリに戻す（画面17）。

クリックすると拡大表示されます。

↑画面 17　インデックス定義の完了

  これで、表2のインデックス定義は完了したことになります。

◆ APGの起動

  ではさっそく、この顧客名簿テーブルを使用して、従来通りの「B=照会」オプションのAPGを起動してみたいと思います。

21. プルダウンメニューから「オプション」→「APG」を選択してAPGを起動する（画面18）。

クリックすると拡大表示されます。

↑画面 18　APGの起動

22. APGパラメータはすべてデフォルトのまま、OKボタンを押してAPGを実行する。

  すると、しばらくして画面には画面19のようなエラーメッセージ（DBエラー）が表示されてしまいます。

クリックすると拡大表示されます。

↑画面 19　DBエラーの出現

  メッセージによると、オブジェクト名‘magic..customers’は無効であるということになっています。さて、このエラーの原因はどこにあるのでしょうか。

  次回は、上記のエラー対策に続いて、「R=ブラウザ」オプションのAPG操作をお送りします。

（以上、2001年9月25日号。次回は10月9日です。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第8回

2001.10.9掲載
丹田昌信*)

  前回の画面19においてDBエラーが出てしまった原因ですが、SQLの場合は、データベーステーブルのテーブル特性において、デフォルトでは「テーブルの存在チェックを行わない」という設定になっているからです。

  テーブルの存在チェックを行わないという設定になっていることによって、既存のテーブルはAPGでも開くことができるのですが、Magic側で新規に定義したテーブルはSQL側ではテーブルが見つからなくて無効であるというDBエラーになってしまうわけです。

  したがって、これを回避するには「テーブルの存在チェック」を有効にしてやり、テーブルが存在しなかった場合は新たなテーブルをMSDE側に自動作成するという設定にしてやれば良いわけです。

  では具体的にその設定を行います。手順にそって操作してください。

23. OKボタンを押してDBエラーのウィンドウを閉じる。

24. プルダウンメニューの「ファイル」→「アプリケーション・クローズ」で一旦、アプリケーションを閉じる（画面20）。

クリックすると拡大表示されます。

↑画面 20　アプリケーションを一旦、閉じる

25. プルダウンメニューから「設定」→「データベース」を選択し、データベーステーブルを開く（画面21）。

クリックすると拡大表示されます。

↑画面 21　データベーステーブル

26. カーソルを「SQLServer」の行に移動し、プルダウンメニューの「編集」→「特性」（またはCtrl+Pを直接押して）でデータベース特性ダイアログを開く（画面22）。

クリックすると拡大表示されます。

↑画面 22　SQLServerのデータベース特性

27. データベース特性の「SQL」タブをクリックし、「テーブルの存在チェック」欄にチェックを入れる（画面23）。

クリックすると拡大表示されます。

↑画面 23　テーブルの存在チェック

  これで、設定はOKです。さっそく、exerciseのテーブルリポジトリを開いて、もう一度APGを起動してみることにしましょう。

28. OKボタンを押して、データベース特性ダイアログを閉じる。

29. OKボタンを押して、データベーステーブルも閉じる。

30. プルダウンメニューから「ファイル」→「アプリケーション・オープン」で、exerciseアプリケーションを開く。

31. ナビゲータペインのテーブルリポジトリを選択し、カーソルをテーブルリポジトリのcustomers行に移動する（画面24）。

クリックすると拡大表示されます。

↑画面 24　テーブルリポジトリのオープン

  それでは、再びAPGを起動してみることにします。

32. プルダウンの「オプション」→「APG」を選択し（またはCtrl+Gを押して）、APGを起動する（画面25）

クリックすると拡大表示されます。

↑画面 25　APGの起動

33. そのままOKボタンを押して、APGを実行する（画面26）

クリックすると拡大表示されます。

↑画面 26　APGの実行

  今度はDBエラーもなく、めでたく登録モードで新しいテーブルがMSDE側のデータベース上にオープンされたことになります。

  では続いて、この状態でサンプルレコードを5件ほど登録しておくことにしましょう。

34. 表3に基づき、適当なデータを5件ほど登録する（*1）。

顧客コード | 顧客名 | フリガナ | 電話番号
1 | 株式会社パソコン商会 | パソコンショウカイ | 03-1234-5678
2 | 株式会社コンピュータ販売 | コンピュータハンバイ | 06-2345-6789
3 | マイコンショップ有限会社 | マイコンショップ | 052-345-6789
4 | ソフトウェア販売株式会社 | ソフトウェアハンバイ | 075-456-7890
5 | 株式会社ハードウェア商事 | ハードウェアショウジ | 092-567-8901
↑表3　サンプルデータの登録

（*1）フリガナの項目は、Webアプリケーションであることを意識して、ここでは全角カナを用いることにします。半角カナの使用はインターネット上では敬遠されます。

  入力が完了すると、テーブルの表示は画面27のようになります。

クリックすると拡大表示されます。

↑画面 27　サンプルデータの入力

  ではこのテーブルを一旦、閉じて、照会モードのAPGでもテーブルをオープンすることが可能かどうか確認しておくことにします。

35. テーブルの「閉じる」ボタンを押すか、またはESCキーを押して、customersテーブルを閉じる（画面28）。

クリックすると拡大表示されます。

↑画面 28　customersテーブルを一旦、閉じる

36. Ctrl+Gを押して再びAPGを起動し、APGダイアログのOKボタンを押して、テーブルをオープンする（画面29）。

クリックすると拡大表示されます。

↑画面 29　照会モードでテーブルをオープン

  テーブルは無事にオープンされました。これでサンプルデータは正常にMSDE側のデータベースに登録されていることが確認できたことになります。

◆ ブラウザモードのAPGの起動

  続いて、今回のメインテーマであるところのブラウザモードのAPGを起動してみることにします。ブラウザモードのAPGはテーブルリポジトリからでも作成自体は行うことができますが、ここではプログラムリポジトリから起動してみることにします。

37. customersテーブルを閉じて、テーブルリポジトリの表示に戻る。

38. ナビゲータペインの「プログラム」をクリックして、プログラムリポジトリを開く。

39. Ctrl+Tabを押して、カーソルをプログラムリポジトリ側に移動する（画面30）。

クリックすると拡大表示されます。

↑画面 30　プログラムリポジトリ

  プログラムリポジトリの先頭にすでに登録されている「メインプログラム」という行は、V9になって新しく追加された機能です。この解説については後日、行うことにします。削除せずに残しておいてください。

40. プログラムリポジトリの2行目に新しい行を作成し、名前を「customers」とする（画面31）。

クリックすると拡大表示されます。

↑画面 31　customersプログラムの登録

41. Ctrl+Gを押して、APGを起動する。

42. APGパラメータの「オプション」欄の選択肢の中に、「R=ブラウザ」があることを確認する（画面32）。

クリックすると拡大表示されます。

↑画面 32　「R=ブラウザ」オプション

43. 「R=ブラウザ」があることを確認したら、それを選択する。

44. 続いて、「メインテーブル」欄をダブルクリックしてテーブル一覧を開き、「customers」テーブルを選択する（画面33）。

クリックすると拡大表示されます。

↑画面 33　メインテーブルの選択

  APGダイアログの設定は、画面34のようになります。

クリックすると拡大表示されます。

↑画面 34　APGダイアログの設定

  HTMLファイル欄を見ると、ファイル名がcustomers.htmとなっていますが、これはこのプログラム用の外部HTMLファイルをカレントパスにこの名称で登録するということを示しています。ファイル名を変更したり、パスを変更したい場合はここをダブルクリックして修正します。

  さて、この設定で良ければOKボタンを押してAPGを実行するのですが、プログラムリポジトリからのAPGの実行はテーブルリポジトリからの実行と違って、処理モードが「G=作成」オプションのみの実行となります。「E=実行」オプションはありません。では、OKボタンを押してプログラムを作成してみましょう。

45. OKボタンを押して、APGを実行する。

  プログラムリポジトリの表示は画面35のようになります。

クリックすると拡大表示されます。

↑画面 35　プログラムの作成完了

  「R=ブラウザ」オプションのAPGプログラムはこれで完成したことになります。ではさっそく、この状態から、記念すべきWebアプリケーションの第1号を実行してみることにしましょう。

   なお、このプログラムを実行するには、あらかじめIIS（Internet Information Server 4／Internet Information Service 5）もしくはPWS（Personal Web Server）等のWebサーバが稼動しており、なおかつMicrosoft Internet Explorer 5.5以上がインストールされていることが前提となります。これらがまだインストールされていない場合は、「第1回 V9のインストール（その1）」に基づいて、WebサーバとWebブラウザの設定を行ってください。

（以上、2001年10月9日号。次回は10月22日です。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第9回

2001.11.14掲載
丹田昌信*)

◆ プログラムの実行

  それではプログラムを実行してみましょう。まずはプログラムのチェックからです。

46. F8キーを押して、プログラムをチェックする。

  このとき、画面36のようにウィンドウのステータス行に「プログラムは正常です．」と表示されればOKです。

クリックすると拡大表示されます。

↑画面 36　プログラムチェック

  プログラムの実行は、通常の照会プログラムや修正プログラムのときと同様に、F7キーで実行させることができます（*1）。

（*1）旧V8では、Webプログラムの実行はあらかじめdbMAGICを実行モードにしたうえ、なおかつ手動でWebブラウザを起動する必要がありました。これがV9では、Magic側はプログラムリポジトリを開いたまま、F7キーを押すだけでWebブラウザも自動的に起動されるようになりました。

47. F7キーを押して、プログラムを実行する。

  これでWebブラウザが自動的に起動され、そしてたいていの場合、同時に画面37のようなセキュリティ警告ウィンドウが表示されることになります。

クリックすると拡大表示されます。

↑画面 37　セキュリティ警告ウィンドウ

  このセキュリティ警告ウィンドウは、Internet Explorer 5.5の「ツール」→「インターネットオプション」→「セキュリティ」→「レベルのカスタマイズ」で、「Microsoft VM」→「Javaの許可」欄が「安全性 - 低」になっている場合は表示されません。デフォルトでは「安全性 - 高」の設定になっています（画面38）。

クリックすると拡大表示されます。

↑画面 38　Javaの許可欄の設定

   さて、画面37のメッセージによると、Launcherをインストールして実行しますか？とありますので、ここでは「はい」ボタンを押してJavaアプレットのインストールを承認しておくことにします。

48. 画面37で「はい」ボタンを押す。

  すると、今度は画面39のように、Browser Clientをインストールして実行しますか？という2つめのセキュリティ警告ウィンドウが表示されますので、こちらも「はい」と答えてインストールを承認しておきます。

クリックすると拡大表示されます。

↑画面 39　２つめのセキュリティ警告ウィンドウ

49. 画面39において「はい」ボタンを押す。

  そしていよいよ、待ちに待った画面40のようなプログラム実行画面が表示されることになります。

クリックすると拡大表示されます。

↑画面 40　APGプログラムの実行画面

  なお、Webブラウザのプルダウンメニューから「表示」→「ソース」を選択すると、このページのHTMLソースコードが表示され、その末尾に下記のようなHTMLが記述されていることが分かります（画面41）。

<APPLET VIEWASTEXT CODEBASE="C:\WINDOWS\java\classes\magic"
               code="browserClient.ClientManager.class" name="ClientManager"
               archive="MGBC901_04S.cab"

クリックすると拡大表示されます。

↑画面 41　HTMLソースコードの表示

  これにより、画面37と画面39においてインストールを許可したLauncherおよびBrowser ClientのJavaアプレットが、"C:\WINDOWS\java\classes\magic"というパスにコピーされていることが確認できます（画面42）。

クリックすると拡大表示されます。

↑画面 42　ローカルにコピーされたJavaアプレット

  ちなみに、cabファイルの中身は、これをダブルクリックすることでJava Classファイルのリストを参照することができます（画面43）。

クリックすると拡大表示されます。

↑画面 43　Javaアプレットのリスト

  なお、画面37のセキュリティ警告ウィンドウにおいて「いいえ」と答えた場合でも、Javaアプレット自体は実行されます。ただし、アプレットはローカルディスクにはコピーされず、必要に応じてWebサーバからロードするという動作になりますので、プログラムの実行速度がいくらか落ちることになります。そのときのHTMLソースコード上のパス表示は画面44のようになります。

クリックすると拡大表示されます。

↑画面 44　インストールを拒否した場合のパス表示

◆ レコードの修正と登録

  さて、画面40においてはWebアプリケーションの第1号である「ブラウザ - customers」というプログラムがめでたく実行されたわけですが、果たしてこの画面においてはデータの修正やデータの追加登録も可能になっているのでしょうか？さっそく、これらについて検証してみることにします。

50. 画面40において、「株式会社パソコン商会」の社名を変更してみる。

  ところが、いくら社名を変更しようとしても、「株式会社パソコン商会」という文字列は頑固にそこに居座り続け、これを上書き修正させてくれません（画面45）。

クリックすると拡大表示されます。

↑画面 45　データの上書き修正ができない？！

  さて、データの修正ができない原因はいったいどこにあるのでしょうか？プログラムリポジトリに戻って、これを調査してみることにします。

51. Webブラウザの「×」ボタンを押して、ブラウザ画面を閉じる。

  ここでMagicは自動的にプログラムリポジトリの表示に戻ります。

52. 「ブラウザ - customers」のプログラムをダブルクリックしてタスク定義を開く（画面46）。

クリックすると拡大表示されます。

↑画面 46　「ブラウザ - customers」のタスク定義

53. プルダウンメニューから「編集」→「特性」を選択するか、あるいはCtrl+Pを直接押して、タスク特性を開く（画面47）。

クリックすると拡大表示されます。

↑画面 47　「ブラウザ - customers」のタスク特性

  タスク特性の「初期モード」の欄を見ると、APGで作成されたこのプログラムは、「Q=照会」モードの設定になっていることが分かりました。なんと、Webブラウザ上でデータの上書き修正ができなかった原因は、どうやらここの設定が効いていたことにあるようです。

（以上、2001年10月22日号。次回は11月5日です。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第10回

2001.11.15掲載
丹田昌信*)

  それではさっそく、「Q=照会」の設定を「M=修正」の設定に変更して、もう一度プログラムを実行してみることにしましょう。

54. 前回の画面47において、初期モード欄を「Q=照会」から「M=修正」に変更する（画面48）。

クリックすると拡大表示されます。

↑画面 48　初期モード欄の変更

55. OKボタンを押して、タスク特性を閉じる。
56. リターンキーを押して、タスク定義も閉じる（画面49）。

クリックすると拡大表示されます。

↑画面 49　プログラムリポジトリ

  それでは再び、プログラムを実行してみます。

57. F8キーでプログラムをチェックする。
58. 「プログラムは正常です．」と表示されたら、F7キーでプログラムを実行する（画面50）。

クリックすると拡大表示されます。

↑画面 50　Launcherのインストール確認

59. セキュリティ警告（Launcherのインストール確認）にて、「はい」ボタンを押す（画面51）。

クリックすると拡大表示されます。

↑画面 51　Browser Clientのインストール確認

60. セキュリティ警告（Browser Clientのインストール確認）にて、「はい」ボタンを押す（画面52）。

クリックすると拡大表示されます。

↑画面 52　プログラムの実行画面

  それではここで再び、データの上書き修正が可能であるかどうかを試してみます。

61. 前回と同じく、「株式会社パソコン商会」の社名を、適当に「株式会社パソコン商事」に変更してみる（画面53）。

クリックすると拡大表示されます。

↑画面 53　社名を「株式会社パソコン商事」に変更

  こんどはうまく上書き修正されたもようです。念のために、「フリガナ」の欄も「パソコンショウカイ」から「パソコンショウジ」に変更しておきます。

62. 「フリガナ」の欄を、「パソコンショウカイ」から「パソコンショウジ」に変更する（画面54）。

クリックすると拡大表示されます。

↑画面 54　フリガナを「パソコンショウジ」に変更

  こちらもうまく上書き修正されたもようです。ただし、このままの状態では修正されたデータはまだWebブラウザ上に表示されているだけであり、Magic側のデータベース上には反映されておりません。データベース上に更新データを反映させるには、Webブラウザ上のデータをWebサーバ側に送信して、データベースを書き換える処理を行ってやる必要があります（通常のWebアプリケーションにおいては、フォーム上の送信ボタン等を押してフォームを送信するという操作になります）。Magic V9においては、これがカーソルを別のレコードに移動するという操作だけで、新しいデータがWebサーバ側に自動的に送信されることになります。これが、Browser ClientのJavaアプレットの効果です。

  それでは、画面54においてカーソルを別のレコードに移動させて、データを更新してみます。

63. 画面54において、下矢印キーを1回押してカーソルを次の行に移動させる（画面55）。

クリックすると拡大表示されます。

↑画面 55　下矢印キーを押してレコードを移動する

  では、これで本当に1行目の更新データがデータベース上にも反映されているかどうかを、Magic側のテーブルリポジトリを開いて確認してみることにします。

64. Webブラウザの「×」ボタンを押して、一旦、プログラムを終了する（画面56）。

クリックすると拡大表示されます。

↑画面 56　プログラムリポジトリに戻る

65. プログラムリポジトリに戻ったら、ナビゲータペインの「テーブル」をクリックしてテーブルリポジトリを開く（画面57）。

クリックすると拡大表示されます。

↑画面 57　テーブルリポジトリを開く

66. カーソルをテーブルリポジトリ1行目の「customers」の行に移動し、Ctrl+Gを押してAPGを起動する（画面58）。

クリックすると拡大表示されます。

↑画面 58　APGの起動

67. APGが起動されたら、そのままOKボタンを押してcustomersテーブルを開く（画面59）。

クリックすると拡大表示されます。

↑画面 59　customersテーブルのデータ確認

  どうやら、間違いなく「株式会社パソコン商会」という名称は、「株式会社パソコン商事」という名称に変更されているもようです。Webブラウザ上におけるデータの更新検証はこれで実証されたことになります。

  では次に、Webブラウザ上におけるデータの追加登録作業の検証を行ってみることにします。

68. 画面59において、ESCボタンを押してAPGを終了する。
69. ナビゲータペインの「プログラム」をクリックして、再びプログラムリポジトリを開く。
70. カーソルをプログラムリポジトリ上の「ブラウザ - customers」の行に移動し、F7キーを押してプログラムを実行する（画面60）。

クリックすると拡大表示されます。

↑画面 60　Launcherのインストール確認

71. 「はい」ボタンを押して、インストールを承認する（画面61）。

クリックすると拡大表示されます。

↑画面 61　Browser Clientのインストール確認

72. 同じく「はい」ボタンを押して、インストールを承認する（画面62）。

クリックすると拡大表示されます。

↑画面 62　プログラムの実行画面

73. プログラムが実行されたら、下矢印キーを4回押して（あるいはマウスでクリックして）カーソルを「株式会社ハードウェア商事」の行に移動させる（画面63）。

クリックすると拡大表示されます。

↑画面 63　カーソルをテーブルの末尾に移動

74. そして更に下矢印キーを1回押して、テーブルの末尾に空白の行が登録されることを確認する（画面64）。

クリックすると拡大表示されます。

↑画面 64　空白行の追加登録

  これで、新規のレコードを追加登録する準備ができたことになります。あとは、読者ご自身で適当なデータを入力して、登録モードの動作検証を行ってみてください。

（以上、2001年11月5日号。次回は11月19日です。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第11回

2001.12.26掲載
丹田昌信*)

  この項では、V8 Webアプリケーションの移植について解説いたします。V9ではオンラインタスクとバッチタスクに加えて、ブラウザタスクという新しいタイプのタスクが導入されましたが、V8で作成された旧来のバッチタスクによるWebアプリケーションも、基本的にリポジトリ入出力を行うだけでV9上でも動作することを確認しておきます。

  なお、2001年11月1日付けでMagic eBusiness Platform V9.01J SP3アップデートがリリースされましたので、本稿よりSP3を使用しての解説となります。

◆ V8アプリケーションのリポジトリ出力

  はじめに、V8で作成されたWebアプリケーションのリポジトリ出力を行います。リポジトリ出力とは、アプリケーションファイル（MCFファイル）の一部、または全部を内部コード形式で外部のテキストファイルに出力することを意味します。外部に出力されたコードは、上位バージョンのMagicにリポジトリ入力を行うことによってアプリケーションの移植が簡単に実現されます。

  V8 Webアプリケーションは、前シリーズ「V8からはじめるdbMAGIC入門」の第29回から第41回で作成した「登録・修正・削除プログラムの作成」を使用します。画面1から画面7がそれらのプログラムのサンプル画面となります。

クリックすると拡大表示されます。

↑画面 1　V8 Webアプリケーション・サンプル１

クリックすると拡大表示されます。

↑画面 2　 V8 Webアプリケーション・サンプル２

クリックすると拡大表示されます。

↑画面 3　 V8 Webアプリケーション・サンプル３

クリックすると拡大表示されます。

↑画面 4　 V8 Webアプリケーション・サンプル４

クリックすると拡大表示されます。

↑画面 5　 V8 Webアプリケーション・サンプル５

クリックすると拡大表示されます。

↑画面 6　 V8 Webアプリケーション・サンプル６

クリックすると拡大表示されます。

↑画面 7　 V8 Webアプリケーション・サンプル７

  それでは、手順にそってリポジトリ出力を行います。

1. dbMAGIC V8を起動し、旧連載の第29回以降で作成した「顧客管理システム」のアプリケーションを開く（画面8）。

クリックすると拡大表示されます。

↑画面 8　使用するV8 Webアプリケーション

2. プルダウンメニューの「リポジトリ」→「リポジトリ入出力」を選択し、「操作」欄を「E=出力」、「リポジトリタイプ」欄を「A=アプリケーション」、「ファイル名」欄を任意のパス（ズーム可）＋「DBA」とする（画面9）。

クリックすると拡大表示されます。

↑画面 9　リポジトリ出力の設定

3. OKボタンを押して、リポジトリ出力を実行する。
4. リポジトリ入出力の画面に戻ったら、取消ボタンを押してリポジトリ出力を終了する。
5. Windowsのエクスプローラを開いて、所定のパスにDBAファイルが保存されていることを確認する（画面10）。

クリックすると拡大表示されます。

↑画面 10　DBAファイルの確認

  リポジトリ出力はこれで完了です。なお、V8のデータベーステーブルでは、「顧客管理」というデータベースを作成して、「C:\Magic\V8GEN\Clients\」というパス（任意のパス）に指定しておいたことを覚えておきます（画面11）。

クリックすると拡大表示されます。

↑画面 11　データベーステーブルの確認

  続いて、V9側でのリポジトリ入力を行います。

（以上、2001年11月19日・12月26日合併号。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第12回

2002.1.15掲載
丹田昌信*)

◆ V9側でのリポジトリ入力

6. dbMAGIC V8を終了し、Magic eDeveloper V9を起動する（画面12）。（*1）

（*1）V8とV9において、Btrieve 6.15とPervasive.SQL 2000を使い分けている場合は、V9を起動する前にBtrieve 6.15エンジンを明示的に停止しておくことをお勧めします。

クリックすると拡大表示されます。

↑画面 12　Magic eDeveloper V9の起動

7. V9を起動したらプルダウンメニューの「設定」→「データベース」を選択し、V8のときと同じように「顧客管理」というデータベースを任意のパスに作成する（画面13）。

クリックすると拡大表示されます。

↑画面 13　顧客管理データベースの登録

8. 画面13で指定したパスには、前回の画面10のV8用パスからDBAファイル（前回の画面9で出力したもの）、およびDBFIL001.DATファイルをコピーしておく（画面14）。

クリックすると拡大表示されます。

↑画面 14　ファイルのコピー

9. 画面13のデータベーステーブルを閉じ、プルダウンメニューから「設定」→「アプリケーション」を選択してアプリケーションテーブルを開く。
10. 任意の箇所に新しい行を作成して、名前を「顧客管理システム」、識別子を「db」とする（画面15）。

クリックすると拡大表示されます。

↑画面 15　アプリケーションテーブルへの登録

11. 同じ行の「データベース」欄をダブルクリックしてデータベース一覧を開き、「顧客管理」を選択する（画面16）。

クリックすると拡大表示されます。

↑画面 16　使用するデータベースの選択

  「顧客管理」というデータベースは、先ほど画面13で登録したものです。アプリケーションテーブルの表示は画面17のようになります。

クリックすると拡大表示されます。

↑画面 17　アプリケーションテーブル

12. OKボタンを押してアプリケーションテーブルを閉じ、次にプルダウンメニューの「ファイル」→「アプリケーション・オープン」を選択して「顧客管理システム」を選択する（画面18）。

クリックすると拡大表示されます。

↑画面 18　アプリケーションの選択

  「顧客管理システム」のアプリケーションがオープンされたら、次に画面14でコピーしたDBAファイルをリポジトリ入力します。

13. プルダウンメニューから「ファイル」→「リポジトリ入出力」を選択する（画面19）。

クリックすると拡大表示されます。

↑画面 19　リポジトリ入出力

14. 操作欄を「I=入力」とし、ファイル名の欄をダブルクリックして「ファイルを開く」ダイアログからDBAファイルを選択して戻る（画面20）。

クリックすると拡大表示されます。

↑画面 20　リポジトリ入力の設定

15. 準備ができたらOKボタンを押してリポジトリ入力を実行する。
16. 「メニューの入力」ダイアログが表示されたら、いずれもYesの設定にしてメニューの上書き入力を指定する（画面21）。

クリックすると拡大表示されます。

↑画面 21　メニューの上書き指定

17. リポジトリ入出力のダイアログに戻ったら、キャンセルボタンを押してダイアログを閉じる。

◆ プログラムの動作確認

  これでV9側のリポジトリ入力は完了です。さっそく、Webブラウザを起動して前回の画面1～画面7のようなウィンドウが表示されるかどうか確認してみることにしましょう。

18. プルダウンメニューから「ファイル」→「開発／実行モード」を選択してMagic eDeveloper V9を実行モードにする（画面22）。

クリックすると拡大表示されます。

↑画面 22　Magic eDeveloper V9の実行モード

19. バックグラウンドでWebサーバが稼動していることを確認して（画面23）、Webブラウザを起動する（画面24）。

クリックすると拡大表示されます。

↑画面 23　Webサーバの稼動確認

クリックすると拡大表示されます。

↑画面 24　Webブラウザの起動

20. Webブラウザのアドレス欄に下記のアドレスを入力する（kermitは任意のWebサーバ名）。

http://kermit/Magic9Scripts/mgrqispi9.dll?AppName=顧客管理システム&PrgName=default

  プログラムが正常に実行されると、Webブラウザの表示は画面25のようになります。

クリックすると拡大表示されます。

↑画面 25　プログラムの実行画面

  「顧客データ一覧」や「顧客データ登録」、「顧客データ修正」、および「顧客データ削除」メニューの選択も、画面26、画面27、画面28、画面29のように正常に表示されることが確認されました。

クリックすると拡大表示されます。

↑画面 26　顧客データ一覧

クリックすると拡大表示されます。

↑画面 27　顧客データ登録

クリックすると拡大表示されます。

↑画面 28　顧客データ修正

クリックすると拡大表示されます。

↑画面 29　顧客データ削除

  以上で、dbMAGIC V8からMagic eDeveloper V9へのWebアプリケーション移植作業は完了です。次回からは、移植されたアプリケーションにV9のブラウザタスクを追加していく作業を行います。

（以上、2002年1月15日号。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第13回

2002.2.26掲載
丹田昌信*)

  この項では、前回の画面25の画面に「顧客データ保守」というメニューを追加して、そこにV9の新機能である「ブラウザタスク」を利用したプログラムを配置する作業を行います。

◆ ブラウザタスクの追加

  ブラウザタスクは、手始めにAPGで作成しただけの簡単なプログラム構造とします。前回に引き続き、手順にそって操作してください。

21. 顧客管理システムのプログラムリポジトリを開く（画面30）。

クリックすると拡大表示されます。

↑画面 30　V9のプログラムリポジトリ

  この中で、顧客管理システムのコンテンツメニュー（画面25の左側のメニュー）を表示しているプログラムは、8番の「コンテンツ」というプログラムです。このプログラムのフォームテーブルを開いて、内容を確認してみます。

22. 8番の「コンテンツ」プログラムをズームし、フォームテーブルを開く（画面31）。

クリックすると拡大表示されます。

↑画面 31　コンテンツプログラムのフォームテーブル

23. 3行目の「H=HTML形式」のフォームを開く（画面32）。

クリックすると拡大表示されます。

↑画面 32　コンテンツプログラムのフォーム

  このフォームの末尾に、まず「顧客データ保守」というメニューを追加します。

24. フォームを閉じてフォームテーブルに戻り、フォーム特性を開いて「高さ」を2行増やす（画面33）。

クリックすると拡大表示されます。

↑画面 33　フォームの「高さ」の変更

25. 再びフォームを開き、高さが2行増えていることを確認する（画面34）。

クリックすると拡大表示されます。

↑画面 34　高さの増分を確認

  そして、最下行に「顧客データ保守」のメニューを追加します。

26. コントロールパレットから「テキスト」コントロールを選択し、フォームの最下行にドロップする（画面35）。

クリックすると拡大表示されます。

↑画面 35　テキストコントロールの貼り付け

27. テキストコントロールのコントロール特性を開き、「テキスト」欄の内容を「顧客データ保守」に変更する（画面36）。

クリックすると拡大表示されます。

↑画面 36　テキスト欄の変更

28. 同じく、「段落整列」の欄を「L=左寄せ」から「C=センタリング」に変更する（画面37）。

クリックすると拡大表示されます。

↑画面 37　段落整列欄の変更

29. コントロール特性を閉じて、配置を確認する（画面38）。

クリックすると拡大表示されます。

↑画面 38　配置の確認

30. コマンドパレットの「B（強調）」を押して、「顧客データ保守」の文字列を太線にする（画面39）。

クリックすると拡大表示されます。

↑画面 39　太線の設定

  これでメニューは完成です。このメニューには、これから新たに作成する「顧客データ保守」プログラムを後ほどリンクさせることになります。

31. フォーム、およびタスク定義画面を閉じてプログラムリポジトリに戻る。

  では、「顧客データ保守」プログラムを作成します。

32. プログラムリポジトリの最下行に新しい行を作成し、CTRL+Gを押してAPGを起動する（画面40）。

クリックすると拡大表示されます。

↑画面 40　APGの起動

33. 「オプション」欄を「R=ブラウザ」の設定にし、メインテーブルに「顧客ファイル」を選択する（画面41）。

クリックすると拡大表示されます。

↑画面 41　APGパラメータの設定

34. 「選択カラム数」欄をズームしてカラム選択テーブルを開き、「顧客コード」、「顧客名」、「電話番号」、および「FAX番号」の4つを選択する（画面42）。

クリックすると拡大表示されます。

↑画面 42　カラム選択テーブルの設定

35. 「選択」ボタンを押して、カラム選択テーブルを閉じる（画面43）。

クリックすると拡大表示されます。

↑画面 43　APGダイアログの設定

  では、APGを実行します。

36. 「OK」ボタンを押して、APGを実行する。

  画面はプログラムリポジトリに戻ります（画面44）。

クリックすると拡大表示されます。

↑画面 44　APGによるプログラム作成の完了

  これで、「顧客データ保守」プログラムは自動的に作成されたことになります。ついでに、この画面において公開プログラム名を「ブラウザ - 顧客ファイル」から「mainte」に変更しておくことにします。

37. 公開プログラム名の欄を「ブラウザ - 顧客ファイル」から「mainte」に上書き修正する（画面45）。

クリックすると拡大表示されます。

↑画面 45　公開プログラム名の変更

  これでプログラムは完成です。では、プログラムチェックを掛けたのちにプログラムを実行してみることにしましょう。

38. F8キーを押してプログラムをチェックする（画面46）。

クリックすると拡大表示されます。

↑画面 46　プログラムチェック

  画面左下に、「プログラムは正常です.」と表示されればOKです。では、このプログラムを実行します。

39. Webサーバが稼動されていることを確認し、画面46の状態でF7キーを押してプログラムを仮実行する。

  Webブラウザが自動的に起動され、ブラウザの表示は画面47のようになります。

クリックすると拡大表示されます。

↑画面 47　顧客データ保守プログラムの仮実行

  では、このプログラムを先ほどの画面39のコンテンツメニューにリンクさせてみましょう。

40. Webブラウザを閉じて、プログラムリポジトリの表示に戻る。

（以上、2002年2月26日号。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第14回

2002.3.7掲載
丹田昌信*)

  前回からの続きです。顧客管理システムのプログラムリポジトリを開き、手順にそって操作してください。なお、今回よりMagic eDeveloper Ver.9.01J SP3aを使用しての操作となります。

41. プログラムリポジトリ8番の「コンテンツ」プログラムをズームし、フォームテーブルを開く（画面48）。

クリックすると拡大表示されます。

↑画面 48　コンテンツプログラムのフォームテーブル

42. 3行目の「H=HTML形式」のフォームを開く（画面49）。

クリックすると拡大表示されます。

↑画面 49　コンテンツプログラムのHTMLフォーム

43. 最下行の「顧客データ保守」のコントロール特性を開き、「ハイパーリンク」欄の右端のボタンを押して「ハイパーリンクの設定」ダイアログを開く（画面50）。

クリックすると拡大表示されます。

↑画面 50　ハイパーリンクの設定

44. 「アプリケーション名」の欄からズームして「アプリケーション一覧」を開き、「顧客管理システム」を選択する（画面51）。

クリックすると拡大表示されます。

↑画面 51　アプリケーションの選択

45. 続いて、「公開プログラム名」の欄からズームして「公開プログラム一覧」を開き、前回の画面45で作成した「mainte」プログラムを選択する（画面52）。

クリックすると拡大表示されます。

↑画面 52　公開プログラムの選択

46. 最後に、「出力先フレーム」の欄に「main」と記述する（画面53）。

クリックすると拡大表示されます。

↑画面 53　出力先フレームの設定

47. OKボタンを押して、ハイパーリンクの設定ダイアログを閉じる。
48. コントロール特性も閉じて、フォームの画面に戻る（画面54）。

クリックすると拡大表示されます。

↑画面 54　フォームの完成

  以上で、ハイパーリンクの設定は完了です。それでは、プログラムが正常に動作するかどうかを確認してみることにしましょう。

49. フォームを保存して、プログラムリポジトリに戻る。
50. F8キーを押してプログラムをチェックする。
51. CTRL+Tを押して、Magic eDeveloperを実行モードに切り替える（画面55）。

クリックすると拡大表示されます。

↑画面 55　顧客管理システムの実行モード

52. Webサーバが稼動していることを確認して、Webブラウザを起動する。
53. Webブラウザのアドレス欄に下記のアドレスを入力する（kermitはWebサーバ名）。

http://kermit/Magic9Scripts/mgrqispi9.dll?AppName=顧客管理システム&PrgName=default

  プログラムが正常に動作すると、Webブラウザの表示は画面56のようになります。

クリックすると拡大表示されます。

↑画面 56　プログラムの実行

  この画面の左側メニューの一番下が、画面54で追加したメニューです。では、それをクリックしてプログラムが正常に動作するかどうか確認してみましょう。

54. 「顧客データ保守」をクリックする。

  プログラムが正常に動作すると、Webブラウザの表示は画面57のようになります。

クリックすると拡大表示されます。

↑画面 57　Webブラウザ上のプログラム実行画面

  これで、V8から移植されたアプリケーション上においても、V9のブラウザタスクを追加することが容易であることが確認されました。

  では最後の仕上げとして、画面57のデザインを外部のWebオーサリングツール（Microsoft FrontPage等）を用いて修正していく方法について解説しておくことにします。

55. Webブラウザの「×」ボタンを押して、プログラムを終了する。
56. Magic eDeveloperに戻り、CTRL+Tを押して開発モードに戻る。
57. プログラムリポジトリを開く。
58. 19番の「ブラウザ - 顧客ファイル」をズームして開き、フォームテーブルを表示する（画面58）。

クリックすると拡大表示されます。

↑画面 58　mainteプログラムのフォームテーブル

59. カーソルが2行目の「ブラウザ - 顧客ファイル」にある状態で、ズームする（画面59）。

クリックすると拡大表示されます。

↑画面 59　HTMLコントロールテーブルの表示

60. 「HTMLエディタ」のボタンを押して、外部オーサリングツールを起動する。

  表示は画面60のようになります。

クリックすると拡大表示されます。

↑画面 60　Microsoft FrontPageの自動起動

  なお、このときに自動的に起動される外部ツールは、動作環境テーブルの「Webオーサリングツール」欄で指定されているプログラムとなります（画面61）。

クリックすると拡大表示されます。

↑画面 61　指定されている外部オーサリングツール

  では、画面60の状態で背景画像やテーブルの見出し行の色などを変更してみることにします（一連の操作はMicrosoft FrontPageの操作となります）。

61. 見出し行のセルの背景色をグレーとし、文字のフォント色を白として太字にする（画面62）。

クリックすると拡大表示されます。

↑画面 62　ヘッダ行のアレンジ

62. ページの背景画像に画面56と同じ画像を指定する（画面63）。

クリックすると拡大表示されます。

↑画面 63　背景画像の指定

  これでデザインの修正は完了したことにします。

63. 変更内容を上書き保存して、Microsoft FrontPageを終了する。
64. Magic eDeveloper上でESCキーを押して、HTMLコントロールテーブルの表示に戻る（画面64）。

クリックすると拡大表示されます。

↑画面 64　HTMLコントロールテーブルに戻る

65. プログラムを保存して、プログラムリポジトリに戻る（画面65）。

クリックすると拡大表示されます。

↑画面 65　プログラムリポジトリに戻る

  では改めて、プログラムを実行してみることにしましょう。

66. CTRL+Tを押して、Magic eDeveloperを実行モードに切り替える。
67. Webサーバが稼動していることを確認して、Webブラウザを起動する。
68. Webブラウザのアドレス欄に下記のアドレスを入力する（kermitはWebサーバ名）。

http://kermit/Magic9Scripts/mgrqispi9.dll?AppName=顧客管理システム&PrgName=default

69. コンテンツメニューから「顧客データ保守」を選択する。

  ブラウザの表示が画面66のようになれば、プログラムは正常動作となります（*2）。

クリックすると拡大表示されます。

↑画面 66　プログラムの実行画面

（*2）Webブラウザ上でデータの上書き修正を可能とさせるには、あらかじめmainteプログラムの「タスク特性」→「初期モード」を「Q=照会」から「M=修正」に変更しておく必要があります（画面67）。

クリックすると拡大表示されます。

↑画面 67　初期モードの変更

（以上、2002年3月7日号。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第15回

2002.4.30掲載
丹田昌信*)

  さて、前回の画面66では、V9のブラウザタスクが無事にフレーム上からも動作することが確認できたわけですが、ここでもうひとつだけ検証しておきたいことがあります。それは、ブラウザタスクを交えた場合であっても、フレーム上のコンテンツメニューが正しく動作するかどうかという問題です。では、さっそくそれを確認してみることにしましょう。

◆ フレーム上のブラウザタスクの動作検証

  なお、今回よりMagicのバージョンはV9.20J SP1となります。また、WindowsのバージョンはWindows XP Professionalとします。では、手順にそって操作してください（前回の画面66からの続きです）。

70. Magic V9.20J SP1＋Windows XP Professionalの環境で画面66を再現する（画面68）。

クリックすると拡大表示されます。

↑画面 68　新環境での画面66の再現

71. この状態で、左側のコンテンツメニューから「顧客データ一覧」を選択する。

  すると、しばらくしてブラウザの表示は画面69のようにエラー表示となってしまいます。

クリックすると拡大表示されます。

↑画面 69　エラー表示

  エラーメッセージは「All Application Servers are busy (code -104)」となっています。いったい、何が原因でこのようなエラーとなってしまったのでしょうか？

  実は、その原因は次の2つの理由によるものです。

(1) ブラウザタスクは、タスクを抜け出るときに一時的に2つのスレッドを必要とする。
(2) Magicサーバは、フォアグラウンドモードで実行されているときは常にシングルスレッドのエンジンとして動作している。

  つまり、Magicがフォアグラウンドモード（シングルスレッドエンジン）で動作している限りは、フレーム上におけるブラウザタスクがらみのアプリケーションは常にこのようなエラーメッセージに遭遇する可能性があると言えるわけです。

  したがって、これを解決するにはMagicをバックグラウンドモード（マルチスレッドエンジン）で動作させてやれば良いことになります。

  では、実際にMagicをバックグラウンドモードで動作させて、画面68から画面69への切り替えがうまくいくかどうかを検証してみることにしましょう。

  なお、Magic開発版（Magic eDeveloper）をバックグラウンドモードで実行させるには、次のような様々な方法があります。

(1) magic.iniの「ApplicationStartup = T」の行を「ApplicationStartup = B」に変更して再起動する（画面70）。

クリックすると拡大表示されます。

↑画面 70　magic.iniを変更する場合

(2) Magic起動のショートカットに「/ApplicationStartup = B」オプションを付けて起動する（画面71）。

クリックすると拡大表示されます。

↑画面 71　ショートカットを変更する場合

(3) mgrb.iniの「AutoLoad = Background」を使用してMagicを自動的にバックグラウンドモードで実行させる（画面72）。

クリックすると拡大表示されます。

↑画面 72　AutoLoad=Background を利用する場合

  ここでは、もっとも簡単な(3)番の方法を利用して、Magicを自動的にバックグラウンドモードで起動させることにします。(3)番の方法を利用するということは、一旦すべてのMagicエンジンを終了して、Webブラウザからプログラムアドレスを入力するだけということになります。では、手順にそって操作してください。

72. すべてのMagicを一旦、終了する。
73. Webサーバが稼動していることを確認する（画面73）。

クリックすると拡大表示されます。

↑画面 73　Webサーバの稼動確認

74. Magic 9 Brokerが稼動していることを確認する（画面74）。

クリックすると拡大表示されます。

↑画面 74　Magic 9 Brokerの稼動確認

75. Magicは起動しないで、Webブラウザだけを起動する（画面75）。

クリックすると拡大表示されます。

↑画面 75　Webブラウザの起動

76. アドレス欄に下記のアドレスを入力する（bigbirdはWebサーバ名）。（*1）

http://bigbird/Magic9Scripts/mgrqispi92.dll?AppName=顧客管理システム&PrgName=default

（*1）V9.20では、インターネットリクエスタのモジュール名が「mgrqispi9.dll」から「mgrqispi92.dll」に変更になっています。注意してください。

  すると、しばらくしてWebブラウザの表示は画面76のように切り替わります。

クリックすると拡大表示されます。

↑画面 76　defaultプログラムの実行

  Magicのウィンドウはどこにも表示されておりませんので、MagicエンジンはBrokerの「AutoLoad=Background」オプションを通じてバックグラウンドで実行されたことになります。念のために、Windowsのバックグラウンドで動作しているMagicプロセスを確認しておくことにしましょう。

77. Windowsのデスクトップ上でCtrl＋Alt＋Deleteを押す。
78. 「タスクマネージャ」を選択する（画面77）。

クリックすると拡大表示されます。

↑画面 77　タスクマネージャ

  その中にある、「MGgenw.exe」というのがバックグラウンドで動作しているMagicアプリケーションサーバです。

79. 「×」ボタンを押してWindowsタスクマネージャを閉じる。

  では画面76に戻り、フレームの切り替えがうまくいくかどうかを確認してみます。

80. 画面76上で、ブラウザタスクである「顧客データ保守」をクリックする（画面78）。

クリックすると拡大表示されます。

↑画面 78　顧客データ保守

  画面68と同じく、正常にブラウザタスクが表示されました。では、「顧客データ一覧」への切り替えがうまくいくかどうかをチェックしてみます。

81. コンテンツメニューの「顧客データ一覧」をクリックする（画面79）。

クリックすると拡大表示されます。

↑画面 79　顧客データ一覧プログラム

  こんどは、画面69のようなエラーは表示されず、正常にタスクの切り替えが行われました。他のタスクへの切り替えも正常のようです（画面80、画面81、画面82）。

クリックすると拡大表示されます。

↑画面 80　顧客データ登録

クリックすると拡大表示されます。

↑画面 81　顧客データ修正

クリックすると拡大表示されます。

↑画面 82　顧客データ削除

  以上で、「V8 Webアプリケーションの移植」は終了です。

（以上、2002年4月30日号。）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第16回

2002.5.31掲載
丹田昌信*)

  前回までにおいて、V8Webアプリケーションの移植について解説いたしました。今回からは、V8を所有していないユーザ（あるいはV9から初めてWeb関連のアプリケーションを作成するユーザ）のために、V9オリジナルで作るWebアプリケーションについて解説していきたいと思います。題して、「V9Webアプリケーションの基礎」となります。

◆ 開発環境の確認

  はじめに、開発環境の確認、および各種設定の確認作業から行います。この連載では、主として次のような環境のもとでアプリケーションを開発していきます。

1. 使用するOS
  Windows XP Professional
2. 使用するWebブラウザ
  Internet Explorer 6.0（Windows XP付属のもの）
3. 使用するWebサーバ
  Internet Information Services 5.1（Windows XP Professional付属のもの）
4. 使用するWebオーサリングツール
  Macromedia Dreamweaver 4（別売）
5. Magic eDeveloperのバージョン
  V9.20J SP1（2002年4月18日リリース）

◆ 動作環境における注意事項

  動作環境における注意事項は、V9付属のreadme.htmにも記載されておりますが、その中から重要と思われるものを掻い摘んで説明します。

1. インターネットリクエスタモジュール名の変更

  インターネットリクエスタ（HTTPリクエスタ）のモジュール名が、旧バージョンから変更になっています。動作環境テーブルのHTTPリクエスタ欄における記述（画面1）を確認するとともに、旧バージョンで作成されたWebアプリケーションの場合は、外部のマージファイル（HTMLファイル）内に記述されたコマンド行も変更する必要があります。

V9.01 | V9.20
mgrqispi9.dll | mgrqispi92.dll
mgrqcgi9.exe | mgrqcgi92.exe
mgrqnspi9.dll | mgrqnspi92.dll
mgrqgnrc9.dll | mgrqgnrc92.dll
mgrqhttp9.dll | mgrqhttp92.dll

クリックすると拡大表示されます。

↑画面 1 動作環境テーブルのHTTPリクエスタ欄

2. MRBデフォルトポート番号の変更

  MRBのデフォルトポート番号が3001から3100に変更になりました。これは特に修正しなくても動作はいたしますが、3001番というポート番号が他社の規格ですでにアサインされていたのが理由のようです（画面2参照）。

クリックすると拡大表示されます。

↑画面 2　予約済みポート番号

  なお、ポート番号の変更箇所は次の3箇所です。

(1) プルダウンメニューの「設定」→「サーバ」→「サーバアドレス」（画面3）

クリックすると拡大表示されます。

↑画面 3　ポート番号の変更箇所その１

(2) mgreq.iniファイルの[REQUESTER_ENV]欄（画面4）

クリックすると拡大表示されます。

↑画面 4　ポート番号の変更箇所その２

(3) mgrb.iniファイルの[MRB_ENV]欄（画面5）

クリックすると拡大表示されます。

↑画面 5　ポート番号の変更箇所その３

3. ブラウザタスクで使用するエンコード

  V9.20Jの新機能として、ブラウザタスクで使用するエンコード（文字セット）を指定できるようになりました。これにより、Webアプリケーション上における文字化けを防ぐことができます。日本語環境では、常に「Shift_JIS」をセットする必要があるようです。設定は、動作環境テーブルの「外部参照ファイル」→「ブラウザタスクで使用するエンコード」欄で行います（画面6）。

クリックすると拡大表示されます。

↑画面 6　ブラウザタスクで使用するエンコード

4. Windows XPの場合はハスプドライバの更新

  Windows XPの環境では、ハスプドライバをV4.65にアップグレードする必要があります。V4.65は、Magicインストールフォルダの「\Development\Util\4.65」にあります（画面7）。

クリックすると拡大表示されます。

↑画面 7　ハスプドライバの更新

  なお、現在どのバージョンのドライバがインストールされているかを知るには、次のコマンドで確認することができます。

hinstall -info（画面8）

クリックすると拡大表示されます。

↑画面 8　ハスプドライバのバージョン確認

5. 外部オーサリングツールの設定

  V8講座では外部オーサリングツール（HTMLエディタ）にMicrosoft FrontPage 2000を使用しました。V9講座では、試しにMacromedia社のDreamweaver 4Jを使用してみることにします（画面9）。

クリックすると拡大表示されます。

↑画面 9　Macromedia Dreamweaver 4

  Magic内からDreamweaverを起動させるためには、Magic動作環境テーブルの「アプリケーションサーバ」→「Webオーサリングツール」欄からズームして、Dreamweaver.exeへのパスを指定します（画面10）。

クリックすると拡大表示されます。

↑画面 10　Dreamweaver.exe自動起動の設定

  「ファイルを開く」ダイアログを閉じると、パスの設定が動作環境テーブルに記述されたことが確認できます（画面11）。

クリックすると拡大表示されます。

↑画面 11　外部オーサリングツールの設定

◆ Magic eDeveloperの起動

  さて、動作環境の確認ができたらMagic eDeveloper V9.20J SP1を起動します。起動の手順は次の通りです。

(1) Pervasive.SQL 2000i（画面12）が正しくインストールされていて、テーブルの呼び出しがあった場合にMagicから自動起動される設定になっていること（タスクトレイに常駐している場合は自動起動は不要）。

クリックすると拡大表示されます。

↑画面 12　Windows XPでは2000iを使用

(2) Internet Information Servicesが正しくインストールされていて、サービスが稼動中になっていること（画面13）。

クリックすると拡大表示されます。

↑画面 13　IISの稼動確認

(3) ハスプが正しく装着されていて、最新のハスプドライバがインストールされていること。

  以上を確認したら、Windowsのプログラムメニュー、またはMagic起動アイコンからMagic eDeveloperを起動します（画面14）。

クリックすると拡大表示されます。

↑画面 14　Magic eDeveloperの起動

（以上、2002年5月31日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第17回

2002.6.30掲載
丹田昌信*)

  （前号からの続きです）
  Magic eDeveloperを起動したら、次にこれから作成する練習用のアプリケーションを登録します。アプリケーション名は「eTraining」とします。手順にそって操作してください。

◆ アプリケーションの登録

1. プルダウンメニューから「設定」→「アプリケーション」を選択して、アプリケーションテーブルを開く（画面15）。

クリックすると拡大表示されます。

画面　15　アプリケーションテーブル

2.アプリケーションテーブルの末尾に新しい行を作成して、名前を　「eTraining」、識別子を　「et」　とする（画面16）。

クリックすると拡大表示されます。

画面　16　アプリケーションの登録

3.OKボタンを押して、アプリケーションテーブルを閉じる。
4.プルダウンメニューから「ファイル」→「アプリケーション・オープン」を選択して、アプリケーション一覧を開く（画面17)。

クリックすると拡大表示されます。

画面　17　アプリケーション一覧

5.アプリケーション一覧から「eTraining」を選択して、選択ボタンを押す。

  Magic 9 BrokerとPervasive.SQL 2000iが自動的に起動され、画面18のようにeTrainingのアプリケーションがオープンされます（*１）。

（*１） 設定により初期画面のレイアウトが多少異なる場合があります。

クリックすると拡大表示されます。

画面　18　eTrainingのオープン

  では手始めに、ここではデータベースを何も使用せず、単にWebブラウザの画面に「こんにちは」という文字列を表示するだけの簡単なプログラムを作成してみることにします。引き続き、手順にそって操作してください。

◆ Webプログラムの作成

6. ナビゲータペインから「プログラム」を選択して、プログラムリポジトリを開く（画面19）。

クリックすると拡大表示されます。

画面 19　プログラムリポジトリ

7. プログラムリポジトリの2行目に新しい行を作成し、名前を「こんにちは」、公開プログラム名を「hello」とする（画面20）。

クリックすると拡大表示されます。

画面 20　プログラムの登録

8. ズームしてタスク特性を開き、タスクタイプを「B=バッチ」、タスク終了条件を「Yes」とする（画面21）。

クリックすると拡大表示されます。

画面 21　タスク特性の設定

  ブラウザタスクは別として、基本的にWebプログラムの構造はバッチタスクとなります。つまり、Webブラウザにデータをバッチ表示して終わりという形式です。印刷プログラムがプリンタにデータを送って終わりという形式と同じです。

  タスク終了条件を「Yes」としたのは、バッチを一回だけ実行してタスクを終了させるための処置です。一回で終了させなければ、このタスクが延々と実行されて無限ループに陥ってしまいます。

  次にタスク制御画面の設定です。

9. OKボタンを押してタスク特性を閉じ、次にタスク制御ダイアログを開いて、メニュー使用欄を「No」とする（画面22）。

クリックすると拡大表示されます。

画面 22　メニュー使用「No」の設定

  これを「Yes」のままにしておくと、タスクが実行される際にアプリケーションサーバ側でバッチタスク実行確認のダイアログが表示されたまま、実行待機という事態に陥ってしまいます（画面23）。

クリックすると拡大表示されます。

画面 23　実行確認のダイアログ

10. 設定がすんだら、OKボタンを押してタスク制御を閉じる。

  次に、入出力ファイルの設定を行います。入出力ファイルの設定とは、Magic側で生成されるデータをどこに送ったらよいか（どのデバイスに送ったらよいか）という設定です。データをプリンタに送るのか、コンソール（モニター）に送るのか、あるいはWebブラウザの画面に送るのかという設定です。ここではもちろん、Webブラウザ側に送るという設定を行います。

11. 入出力ファイルテーブルを開き、名前を「hello（任意）」、メディアを「R=リクエスタ」とする（画面24）。

クリックすると拡大表示されます。

画面 24　入出力ファイルテーブルの設定

  この設定で、プログラム内からデータの出力先にインターネットリクエスタ（Webブラウザ）を指定することができるという設定になります。

12. OKボタンを押して入出力ファイルテーブルを閉じる。

  次に、Webブラウザ上に「こんにちは」という文字列を表示させるためのフォームを作成します。フォームの作成はフォームテーブルで行います。

13. フォームテーブルを開き（フォーム特性は一旦、閉じる）、3行目に新しい行を作成して、名前を「hello（任意）」、インタフェースタイプを「H=HTML形式」とする（画面25）。

クリックすると拡大表示されます。

画面 25　フォームテーブルの設定

14. カーソルが3行目にある状態でフォーム特性を開き、入力フォームの欄を「Yes」から「No」に変更する（画面26）。

クリックすると拡大表示されます。

画面 26　フォーム特性の設定

  この設定は、ここで作成するHTML形式がHTMLフォームの形式ではないことを指定するためのものです。HTMLフォームの形式になっていると、フォームの送信先としてハイパーリンクの定義を行う必要が出てきます。ここではWebブラウザ上にデータを表示するだけの処理が目的ですから、表示だけしておしまいという設定にします（*2）

（*2）dbMAGIC V8では、フォームテーブル上のインターフェイスタイプ欄で「HTMLフォーム形式」と「HTMLドキュメント形式」が分類されていましたが、Magic V9ではこれらが統合されて、フォーム特性ダイアログ上で設定を切り替えられるようになりました。

15. 設定が済んだらフォーム特性を閉じ、ズームしてHTMLフォームを開く（画面27）。

クリックすると拡大表示されます。

画面 27　HTMLフォーム

16. コントロールパレットからテキストコントロールをドロップし、テキスト欄に「こんにちは」と記述する（画面28）。

クリックすると拡大表示されます。

画面 28　「こんにちは」の記述

17. 記述が済んだら、フォームを保存して閉じる。
18. OKボタンを押してフォームテーブルも閉じ、タスク定義に戻る。

  次に、今作成したフォームを画面24で定義した入出力ファイルにデータ出力する処理を施します。

19. タスク定義のタスク後処理レベルを選択し、処理コマンドテーブルの1行目に「O=データ出力」を設定する（画面29）。

クリックすると拡大表示されます。

画面 29　タスク後処理の記述

20. 処理コマンド欄の「:0」からズームしてフォーム一覧を開き、画面25で作成した「hello」のフォームを選択する（画面30）。

クリックすると拡大表示されます。

画面 30　出力フォームの選択

21. タスク一覧を閉じてタスク定義に戻り、データ出力行の「ファイル：」欄の値が自動的に「1」になっていることを確認する。

  ちなみに、この「1」をズームして入出力ファイル一覧を開くと、入出力ファイルテーブルの「hello」が選択されていることが確認されます（画面31）。

クリックすると拡大表示されます。

画面 31　入出力ファイルの選択

22. 確認が済んだら入出力ファイル一覧を閉じて、タスク定義に戻る。

  さて、これでプログラムは完成です。ではうまく動作するかどうか、早速実行してみることにしましょう。

23. タスク定義を閉じてプログラムリポジトリに戻る。
24. F8キーを押してプログラムをチェックする。
25. Ctrl+Tを押して、Magic eDeveloperを開発モードから実行モードに切り替える（画面32）。

クリックすると拡大表示されます。

画面 32　実行モードの状態

26. マシン上でWebサーバが実行されていることを確認して、Webブラウザを起動する。

クリックすると拡大表示されます。

画面 33　Webブラウザの起動

27. Webブラウザのアドレス欄に次のアドレスを入力する（*3）。
http://bigbird/magic9scripts/mgrqispi92.dll?appname=etraining&prgname=hello

（*3）「bigbird」は、実行中のWebサーバ名です。環境に合わせて変更してください。

  プログラムが正しく実行されると、Webブラウザの表示は画面34のようになります。

クリックすると拡大表示されます。

画面 34　プログラムの実行画面

  これで、Webブラウザ上に「こんにちは」という文字列を表示させるプログラムは完成です。

（以上、2002年6月30日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第18回

2002.7.31掲載
丹田昌信*)

  では次に、Webブラウザ上に任意の文字列を入力して、それをWebサーバ側に送信するというプログラムを作成してみます。完成後のプログラムの動作は画面35と画面36のようになります。画面35において任意の文字列を入力し、送信ボタンを押すとその結果が画面36のように返されるというプログラムです。

クリックすると拡大表示されます。

画面　35　完成後のプログラム１

クリックすると拡大表示されます。

画面 36　完成後のプログラム２

  今回のプログラムにおいてもデータベースファイルは使用せず、変数項目だけを用いてプログラムを記述します。では早速、プログラムを作成してみましょう。手順にそって操作してください。

1. 「eTraining」アプリケーションのプログラムリポジトリを開き、3行目に新しい行を作成して、名前を「文字列送信１」、公開プログラム名を「send1」とする（画面37）。

クリックすると拡大表示されます。

画面 37　プログラムリポジトリへの登録

2. ズームしてタスク特性を開き、タスクタイプを「B=バッチ」、タスク終了条件を「Yes」とする（画面38）。

クリックすると拡大表示されます。

画面 38　タスク特性の設定

3. 次にタスク制御ダイアログを開いて、メニュー使用欄を「No」とする（画面39）。

クリックすると拡大表示されます。

画面 39　タスク制御の設定

4. 次に入出力ファイルテーブルを開き、新しい行を作成して、名前を「send1（任意）」、メディアを「R=リクエスタ」とする（画面40)。

クリックすると拡大表示されます。

画面 40　入出力ファイルテーブルの設定

5. 入出力ファイルテーブルを閉じて、タスク定義に戻る（画面41) 。

クリックすると拡大表示されます。

画面 41　タスク定義

6. レコードメインの処理テーブルに新しい行を作成し、処理コマンドに「S=セレクト」を選択する（画面42）。

クリックすると拡大表示されます。

画面 42　レコードメインの記述

7. 処理コマンド欄の「1」からズームして変数項目テーブルを開き（変数特性ダイアログは閉じる）、名前欄を「文字列」、書式欄を「20」とする（画面43）。

クリックすると拡大表示されます。

画面 43　変数項目テーブルの設定

  この変数は、画面35において「お元気ですか？」を入力させるための変数項目です。

8. 変数項目テーブルを閉じて、タスク定義に戻る。

  次に、画面35を描画するためのフォームを作成します。このフォームはフォームの送信を受け付けるHTMLフォームの形式になります。

9. フォームテーブルを開き、3行目に新しい行を作成して、名前を「send1」、インタフェースタイプを「H=HTML形式」とする（画面44）。

クリックすると拡大表示されます。

画面 44　フォームテーブルの設定

  なお、今回のフォームはHTMLフォームの形式（フォーム送信）を使用しますので、前回の画面26とは違って入力フォームの特性は「Yes」のままであることを確認しておきます（画面45）。

クリックすると拡大表示されます。

画面 45　入力フォームの特性を確認

10. フォームテーブルの「send1」からズームしてフォームを開き、項目パレットから先ほど作成した変数項目「文字列」を選択してフォーム上に配置する（画面46）。

クリックすると拡大表示されます。

画面 46　変数項目の配置

11. 「文字列」というテキストコントロールは不要なので削除する（画面47）。

クリックすると拡大表示されます。

画面 47　不要なテキストを削除

12. 次に、コントロールパレットからプッシュボタンのコントロールを選択して、フォームの3行目あたりに配置する（画面48）。

クリックすると拡大表示されます。

画面 48　送信ボタンの配置

  これでフォームは完成です。

13. フォームを保存して、タスク定義まで戻る。

  次に、今作成したフォームをWebブラウザにデータ出力するための処理を記述します。

14. タスク後処理の処理テーブルを開き、新しい行を作成して、処理コマンドに「O=データ出力」を選択する（画面49）。

クリックすると拡大表示されます。

画面 49　データ出力の設定

15. 処理コマンド欄の「0」からズームしてフォーム一覧を開き、3行目の「send1」を選択する（画面50）。

クリックすると拡大表示されます。

画面 50　出力フォームの選択

  タスク後処理の記述は画面51のようになります。

クリックすると拡大表示されます。

画面 51　タスク後処理の記述

  これで画面35用のプログラムは一部を残して、ほぼ完成です。

16. タスク定義を閉じて、プログラムリポジトリまで戻る（画面52）。

クリックすると拡大表示されます。

画面 52　プログラムリポジトリに戻る

  なお、この状態でプログラムチェックを掛けると、画面53のようにハイパーリンクの設定のエラーが出ますが、現時点ではこれで正常です。ハイパーリンクの設定は、画面36用のプログラムを作成した後にこれを行います。

クリックすると拡大表示されます。

画面 53　ハイパーリンクの設定エラー

（以上、2002年7月31日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第19回

2002.8.26掲載
丹田昌信*)

  それでは続いて、画面36用のプログラムを作成します。こちらのプログラムは、画面35で入力された文字列の値を受け取り、その値をWebブラウザの新しい画面に描画するというプログラムになります。

17. プログラムリポジトリの4行目に新しい行を作成し、名前を「文字列送信２」、公開プログラム名を「send2」とする（画面54）。

クリックすると拡大表示されます。

画面 54　2つ目のプログラムの作成

18. ズームしてタスク特性を開き、タスクタイプを「B=バッチ」、タスク終了条件を「Yes」とする（画面55）。

クリックすると拡大表示されます。

画面 55　タスク特性の設定

19. 次にタスク制御を開き、メニュー使用を「No」とする（画面56）。

クリックすると拡大表示されます。

画面 56　タスク制御の設定

20. 入出力ファイルテーブルを開き、名前を「send2」、メディアを「R=リクエスタ」とする（画面57)。

クリックすると拡大表示されます。

画面 57　入出力ファイルテーブルの設定

  次に、「send1」のプログラムから送られてくる文字列を受け取るための、パラメータ項目を設定します。

21. タスク定義を開き、レコードメインの処理テーブルに新しい行を作成する。
22. 処理コマンド欄に「S=セレクト」を選択する。
23. 「V=変数」を「P=パラメータ」に変更する（画面58）。

クリックすると拡大表示されます。

画面 58　レコードメインの記述

  なお、ここの設定は「V=変数」のままでも正常動作しますが、V9になって追加された「パラメータ」という項目を使用すればプログラムの見通しがよくなります。

24. 処理コマンド欄の「1」からズームしてパラメータテーブルを開き、名前欄に「受信文字列」、書式欄に「20」と記述する（画面59）。

クリックすると拡大表示されます。

画面 59　パラメータテーブルの設定

  続いて、受けとったパラメータをWebブラウザに描画するためのフォームを作成します。

25. フォームテーブルを開き、3行目に新しい行を作成して、名前を「send2」、インタフェースタイプを「H=HTML形式」とする（画面60）。

クリックすると拡大表示されます。

画面 60　フォームテーブルの設定

26. フォーム特性を開き、入力フォーム欄を「No」にする（画面61）。

クリックすると拡大表示されます。

画面 61　フォーム特性の設定

  この設定により、このフォームはHTMLフォーム形式ではなく、HTMLドキュメント形式のフォームとなります。

27. フォーム特性を閉じ、フォームテーブルの「send2」からズームしてフォームを開く。
28. 項目パレットから「受信文字列」のパラメータを選択してフォーム上に配置する（画面62）。

クリックすると拡大表示されます。

画面 62　パラメータの配置

29. 不要な「受信文字列」というタイトルを削除する（画面63）。

クリックすると拡大表示されます。

画面 63　タイトルの削除

  そして、このフォームをWebブラウザに描画するためのデータ出力処理を行います。

30. フォームを保存して、タスク定義まで戻る。
31. タスク後処理の処理テーブルに新しい行を作成して、「O=データ出力」のコマンドを選択する（画面64）。

クリックすると拡大表示されます。

画面 64　タスク後処理の記述

32. 処理コマンド欄の「0」からズームしてフォーム一覧を開き、3行目の「send2」を選択する（画面65）。

クリックすると拡大表示されます。

画面 65　フォームの選択

  タスク後処理は画面66のようになります。

クリックすると拡大表示されます。

画面 66　タスク後処理の記述

  これで2つ目のプログラムは完成です。

（以上、2002年8月26日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第20回

2002.9.2掲載
丹田昌信*)

  最後に、「send1」から「send2」へのハイパーリンクを設定します。

33. タスク定義を閉じて、プログラムリポジトリに戻る。
34. 「文字列送信１」のプログラムに戻り、ズームしてフォームテーブルを開く（画面67）。

クリックすると拡大表示されます。

画面 67　文字列送信１のフォームテーブル

35. 「send1」のフォームのフォーム特性を開き、ハイパーリンク欄からズームしてハイパーリンクの設定を開く（画面68）。

クリックすると拡大表示されます。

画面 68　ハイパーリンクの設定

36. アプリケーション名の欄からズームしてアプリケーション一覧を開き、「eTraining」を選択する（画面69）。

クリックすると拡大表示されます。

画面 69　プリケーションの選択

37. ハイパーリンクの公開プログラム名の欄からズームして公開プログラム一覧を開き、3行目の「文字列送信２」を選択する（画面70)。

クリックすると拡大表示されます。

画面 70　公開プログラムの選択

38. ハイパーリンクのパラメータ欄からズームしてパラメータテーブルを開く（画面71）。

クリックすると拡大表示されます。

画面 71　パラメータテーブル

39. パラメータテーブルに新しい行を作成し、項目欄からズームして項目一覧を開く（画面72）。

クリックすると拡大表示されます。

画面 72　項目の選択

  これで、ハイパーリンクの設定は画面73のようになります。

クリックすると拡大表示されます。

画面 73　ハイパーリンクの設定

  これでプログラムはすべて完成です。では早速、Webブラウザを起動して動作確認を行ってみましょう。

40. プログラムを保存して、プログラムリポジトリに戻る。
41. 「文字列送信１」と「文字列送信２」の両方にプログラムチェックを掛ける。

  今度はどちらも、「プログラムは正常です」と表示されるはずです。

42. Webサーバが稼動していることを確認して、Webブラウザを起動する（画面74）。

クリックすると拡大表示されます。

画面 74　Webブラウザの起動

43. Webブラウザのアドレス欄に次のようなアドレスを入力する（*1）。
http://bigbird/magic9scripts/mgrqispi92.dll?appname=etraining&prgname=send1

（*1）「bigbird」は、実行中のWebサーバ名です。環境に合わせて変更してください。

  プログラムが正しく実行されると、Webブラウザの表示は画面75のようになります。

クリックすると拡大表示されます。

画面 75　プログラムの実行

  では、文字列の入力枠に適当な文字列を入力して送信ボタンを押してみましょう。

44. 入力枠に「お元気ですか？」と入力して、送信ボタンを押す（画面76）。

クリックすると拡大表示されます。

画面 76　文字列の入力

  プログラムが正しく実行されると、Webブラウザの表示は画面77のように切り替わります。

クリックすると拡大表示されます。

画面77　プログラムの実行２

  以上で、文字列の送信プログラムは完成です。次回からは、実際のデータベースファイルに文字列を送信するプログラムを作成します。

（以上、2002年9月2日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第21回

2002.9.9掲載
丹田昌信*)

  今回は、Webブラウザ上で入力したデータを実際にMagic側のデータベースに登録するためのサンプルプログラムを作成します。これは、Webアプリケーションを作成する上において最も基本となるプログラムのひとつとなりますので、しっかりと身に付けるようにしてください。

◆ データ登録プログラム作成

  MagicではWebブラウザへの入出力とデータベーステーブルへの入出力を容易に連動させることが可能です。他の開発ツールのように複雑なスクリプトを記述したり、面倒な手続きを踏んだりする必要がありません。基本的な内部処理はMagicが自動で行いますので、開発者はもっぱら画面のデザインやウィンドウの遷移などの作りに専念することができます。
  ここでは、Webブラウザ上で入力した氏名、電話番号のデータを、画面表示と同時にMagic側のデータベースに書き込むためのプログラムを作成します。完成後のプログラムの動作は、画面1～画面3のようになります。画面1において「氏名」、「電話」を入力して送信ボタンを押すと、画面2でその確認画面が表示されると同時に、画面3の住所録テーブルにはそのデータが保存されることになります。

クリックすると拡大表示されます。

画面 1　Webブラウザ上でデータ入力

クリックすると拡大表示されます。

画面 2　入力データの確認

クリックすると拡大表示されます。

画面 3　データベースへの登録完了

  それではプログラムを作成します。はじめに、データを保存するための住所録テーブルを作成します。手順にそって操作してください。

1. eTrainingのテーブルリポジトリを開き、新しい行を作成して名前を「住所録」とする（画面4)。

クリックすると拡大表示されます。

画面 4　住所録テーブルの作成

2. カラムテーブルに「氏名」と「電話」の項目を登録し、書式をそれぞれ「20」とする（画面5）。

クリックすると拡大表示されます。

画面 5　カラムの登録

3. インデックステーブルに「氏名」を登録し、「タイプ」は「N=重複可」とする（画面6）。

クリックすると拡大表示されます。

画面 6　インデックスの登録

4. テーブルリポジトリ上でAPGを起動し、テーブルが正しく作成されていることを確認する（画面7）。

クリックすると拡大表示されます。

画面 7　住所録テーブルのオープン

5. テーブルのオープンを確認したら、テーブルリポジトリを閉じてプログラムリポジトリを開く（画面8）。

クリックすると拡大表示されます。

画面 8　プログラムリポジトリ

  プログラムリポジトリには、前回までに作成した3つのプログラムがすでに登録されています。ここに、これから作成する5つめのプログラムを登録します。

6. プログラムリポジトリの末尾に新しい行を作成し、名前を「データ登録１」、公開プログラム名を「entry1」とする（画面9）。

クリックすると拡大表示されます。

画面 9　データ登録１のプログラム

7. ズームしてタスク特性を開き、タスクタイプを「B=バッチ」、タスク終了条件を「Yes」とする（画面10）。

クリックすると拡大表示されます。

画面 10　データ登録１のタスク特性

8. 次にタスク制御を開き、メニュー使用を「No」とする（画面11）。

クリックすると拡大表示されます。

画面 11　データ登録１のタスク制御

9. 入出力ファイルテーブルを開き、新しい行を作成して名前を「entry1」、メディアを「R=リクエスタ」とする（画面12）。

クリックすると拡大表示されます。

画面 12　データ登録１の入出力ファイルテーブル

10. レコードメインの処理テーブルを開き、新しい行を2行作成して、2つの変数項目をセットする（画面13）。

クリックすると拡大表示されます。

画面 13　変数項目の登録

11. 変数項目の名前はそれぞれ「氏名」、「電話」とし、書式はいずれも「20」とする（画面14）。

クリックすると拡大表示されます。

画面 14　変数項目の定義

  レコードメインの記述は画面15のようになります。

クリックすると拡大表示されます。

画面15　レコードメインの記述

  これで、画面1用の2つの変数が定義できたことになります。

（以上、2002年9月9日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第22回

2002.9.17掲載
丹田昌信*)

（前号からの続きです）
  続いて、画面1用のHTMLフォームを作成します。

12. フォームテーブルを開き、新しい行を作成して名前を「entry1」、インタフェースタイプを「H=HTML形式」とする（画面16）。

クリックすると拡大表示されます。

画面 16　データ登録１のフォームテーブル

13.ズームしてフォームを開き、項目パレットから「氏名」、「電話」の2つの項目を貼り付ける（画面17）。

クリックすると拡大表示されます。

画面 17　変数項目の貼り付け

14. コントロールパレットからプッシュボタンを選択し、1行の空白行を置いて張り付ける（画面18）。

クリックすると拡大表示されます。

画面 14　プッシュボタンの貼り付け

  フォームが完成したら、最後にこれをタスク後処理にて「データ出力」します。

15. フォームを保存してタスク定義に戻り、タスク後処理の処理テーブルを開く（画面19)。

クリックすると拡大表示されます。

画面 19　データ登録１のタスク後処理

16. タスク後処理の処理テーブルに新しい行を作成し、「O=データ出力」のコマンドを設定する（画面20）。

クリックすると拡大表示されます。

画面 20　データ出力コマンドの登録

17. 処理コマンド欄の「0」からズームしてフォーム一覧を開き、画面16で登録した「entry1」を選択する（画面21）。

クリックすると拡大表示されます。

画面 21　出力フォームの選択

  フォーム一覧を閉じると、処理テーブル行には「ファイル：１」が自動的に登録されていることが分かります。ズームして確認すると、これは画面12で登録した「R=リクエスタ」用の入出力ファイルであることが分かります（画面22）。

クリックすると拡大表示されます。

画面 22　入出力ファイルの確認

  さて、これで画面1用のプログラムは、ハイパーリンクの設定を除いてほぼ出来上がりです。試しに、このプログラムを単独で動作させるとどうなるか検証してみることにしましょう。

18. プログラムを保存して、プログラムリポジトリに戻る。
19.F8キーにてプログラムチェックを掛ける。

  すると、画面23のようにハイパーリンクの設定エラーが表示されますが、ひとまずこれは無視してプログラムを実行させてみることにします。

クリックすると拡大表示されます。

画面 23　ハイパーリンクの設定エラー

20.プログラムチェックをキャンセルして、プログラムリポジトリに戻る。
21.Magicを開発モードから実行モードに切り替える（画面24）。

クリックすると拡大表示されます。

画面 24　実行モード

22. Webサーバが稼動していることを確認して、Webブラウザを起動する。
23. アドレス欄に次のアドレスを入力して、entry1のプログラムを実行する（*1）。
http://bigbird/magic9scripts/mgrqispi92.dll?appname=etraining&prgname=entry1

（*1）「bigbird」は、実行中のWebサーバ名です。環境に合わせて変更してください。

  プログラムが正しく実行されると、Webブラウザの表示は画面25のようになります。

クリックすると拡大表示されます。

画面 25　entry1プログラムの実行

  プログラムはまだ作成途中にありますので、この段階でデータを入力して送信ボタンを押すと、Magic側のエラーメッセージが表示されることになります。どのようなエラーが表示されるか、ためしにデータを入力してエラーを表示させてみることにしましょう。

24. 氏名、電話の欄に適当なデータを入力して送信ボタンを押す（画面26）。

クリックすると拡大表示されます。

画面 26　適当なデータを入力

  表示が切り替わって、画面27のようなエラーが表示されました。

クリックすると拡大表示されます。

画面27　エラーメッセージの表示

  この段階では、このエラーメッセージの表示で正常ということになります。

（以上、2002年9月17日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第23回

2002.9.24掲載
丹田昌信*)

  それでは引き続き、データの送信とデータベースへの書き込みを行うプログラムを作成します。

25. Webブラウザを閉じてMagicに戻り、実行モードから開発モードに切り替える。
26. プログラムリポジトリを開き、末尾に新しい行を作成して名前を「データ登録２」、公開プログラム名を「entry2」とする（画面28）。

クリックすると拡大表示されます。

画面 28　データ登録２のプログラム

27. ズームしてタスク特性を開き、タスクタイプを「B=バッチ」、初期モードを「C=登録」、タスク終了条件を「Yes」とする（画面29）。

クリックすると拡大表示されます。

画面 29　データ登録２のタスク特性

  なお、このタスクにおいてはデータベーステーブルへの書き込みも並行して行うことになりますので、メインテーブルの指定も行うことにします。

28. タスク特性のメインテーブル欄からズームしてテーブル一覧を開き、画面4で作成した住所録テーブルを選択する（画面30）。

クリックすると拡大表示されます。

画面 30　メインテーブルの指定

  インデックスはデフォルトの1番（氏名）をそのまま使用します（画面31）。

クリックすると拡大表示されます。

画面 31　インデックスの設定

29. 次にタスク制御を開き、メニュー使用の欄を「No」とする（画面32）。

クリックすると拡大表示されます。

画面 32　データ登録２のタスク制御

30. 続いて入出力ファイルテーブルを開き、新しい行を作成して名前を「entry2」、メディアを「R=リクエスタ」とする（画面33）。

クリックすると拡大表示されます。

画面 33　データ登録２の入出力ファイル

31. タスク定義のレコードメインを開き、処理テーブルに新しい行を2行作成して「P=パラメータ」の変数項目を設定する（画面34）。

クリックすると拡大表示されます。

画面 34　パラメータ項目の設定

  これらの2つのパラメータは、データ登録１のプログラムから送信される、氏名および電話の変数項目の値を受け取るための器となります。

32. ズームして変数項目テーブルを開き、2つのパラメータの名前と書式の値を画面35のように定義する。

クリックすると拡大表示されます。

画面 35　2つのパラメータの設定

  次に、データベーステーブルへのデータの書き込みを行うために、レコードメインの処理テーブル上に2つの実データを設定します。

33. レコードメインの処理テーブルに新しい行を2行作成し、「R=実データ」のセレクトコマンドを設定する（画面36）。

クリックすると拡大表示されます。

画面 36　2つの実項目の記述

34. 2つの実データは、それぞれ住所録テーブルの項目一覧から「氏名」と「電話」を選択する（画面37と画面38）。

クリックすると拡大表示されます。

画面 37　氏名の実データ

クリックすると拡大表示されます。

画面 38　電話の実データ

  これでレコードメインの処理テーブルは画面39のようになります。

クリックすると拡大表示されます。

画面 39　レコードメインの処理テーブル

  では次に、このプログラムが実行されたときにWebブラウザ側に返されるHTML形式のフォームを作成します。

35. フォームテーブルを開き、末尾に新しい行を作成して名前を「entry2」、インタフェースタイプを「H=HTML形式」とする（画面40）。

クリックすると拡大表示されます。

画面 40　データ登録２のフォームテーブル

36. フォーム特性を開き、入力フォームの欄を「Yes」から「No」に変更する（画面41）。

クリックすると拡大表示されます。

画面 41　入力フォームの可否

  なぜなら、このプログラムは画面2のようにWebブラウザ上にデータを表示させるだけのプログラムであり、HTMLのフォーム送信は行う必要がないからです。

37. ズームしてフォームを開き、空白のフォーム上に、項目パレットから氏名と電話のパラメータ変数項目を選択して貼り付ける（画面42）。

クリックすると拡大表示されます。

画面 42　データ登録２のフォーム

  データ登録２のフォームは画面2を表示させるだけのフォームですから、これでおしまいです。

38. フォームを保存して閉じ、タスク定義に戻る（画面43）。

クリックすると拡大表示されます。

画面 43　ここまでのタスク定義

（以上、2002年9月24日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第24回

2002.9.30掲載
丹田昌信*)

（前号からの続きです）
  次に、このタスクのレコード後処理にて、パラメータ項目の内容を実データ項目に複写するための処理を施します。

39. レコード後処理の処理テーブルを開き、新しい行を作成して「U=項目更新」の処理コマンドを設定する（画面44）。

クリックすると拡大表示されます。

画面 44　レコード後処理の記述

40. 処理コマンド欄の「???」からズームして項目一覧を開き、住所録の「C 氏名」を選択する（画面45）。

クリックすると拡大表示されます。

画面 45　実データ項目の選択

41. レコード後処理の同じ行にある、「式：0」欄からズームして式テーブルを開き、新しい行を作成して「A」（パラメータ項目の氏名）と記述する（画面46）。

クリックすると拡大表示されます。

画面 46　式テーブルの記述

42. レコード後処理の処理テーブルに戻り、2行目に新しい行を作成して、同じく「U=項目更新」を設定する（画面47）。

クリックすると拡大表示されます。

画面 47　2つめの項目更新の設定

43. 同じ行の「???」欄からズームして項目一覧を開き、住所録の「D 電話」を選択する（画面48）。

クリックすると拡大表示されます。

画面 48　2つめの実データの選択

44. 同じ行の「式：0」欄からズームして式テーブルを開き、2行目に新しい行を作成して「B」と記述する（画面49）。

クリックすると拡大表示されます。

画面 49　2つめの式の記述

  これで、レコード後処理の記述は画面50のようになります。

クリックすると拡大表示されます。

画面 50　レコード後処理の完成

  これで、パラメータとして受け取った2つの値を実データ項目に更新する処理が出来上がりました。次に、画面42で作成したフォームをタスク後処理上でWebブラウザに返す処理を施します。

45. タスク後処理の処理テーブルを開き、新しい行を作成して「O=データ出力」の処理コマンドを設定する(画面51)。

クリックすると拡大表示されます。

画面 51　タスク後処理の記述

46. 処理コマンド欄の「0」からズームしてフォーム一覧を開き、画面42で作成したフォームを選択する（画面52）。

クリックすると拡大表示されます。

画面 52　タスク後処理の完成

  タスク後処理の記述は画面53のようになります。

クリックすると拡大表示されます。

画面 53　タスク後処理の完成

  さて、これでデータ登録２のプログラムはほぼ完成したことになります。それでは、仕上げとしてデータ登録１側のプログラムに戻り、ハイパーリンクの設定を行って、2つのプログラムの完成ということにいたします。

47. プログラムを保存してプログラムリポジトリに戻る。
48. F8のチェックキーでプログラムをチェックする（画面54）。

クリックすると拡大表示されます。

画面 54　F8キーによるプログラムのチェック

49. データ登録１のプログラムに戻り、フォームテーブルを開く（画面55）。

クリックすると拡大表示されます。

画面 55　データ登録１のフォームテーブル

50. フォーム特性のハイパーリンク欄からズームして「ハイパーリンクの設定」を開く（画面56）。

クリックすると拡大表示されます。

画面 56　ハイパーリンクの設定

51. アプリケーション名の欄からズームしてアプリケーション一覧を開き、「eTraining」を選択する（画面57）。

クリックすると拡大表示されます。

画面 57　アプリケーションの選択

52. 公開プログラム名の欄からズームして公開プログラム一覧を開き、「データ登録２」を選択する（画面58）。

クリックすると拡大表示されます。

画面 58　公開プログラムの選択

53. パラメータ欄からズームしてパラメータテーブルを開き、1行目に新しい行を作成する（画面59）。

クリックすると拡大表示されます。

画面 59　ハイパーリンクのパラメータテーブル

54. 項目欄からズームして項目一覧を開き、変数項目の「A 氏名」を選択する（画面60）。

クリックすると拡大表示されます。

画面 60　氏名のパラメータの選択

55. パラメータテーブルの2行目に新しい行を作成し、項目欄からズームして項目一覧を開く（画面61）。

クリックすると拡大表示されます。

画面 61　電話のパラメータの選択

56. 項目一覧から「B 電話」を選択してパラメータテーブルに戻る（画面62）。

クリックすると拡大表示されます。

画面 62　パラメータテーブルの完了

  これでハイパーリンクの設定は完了です。

（以上、2002年9月30日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第25回

2002.10.7掲載
丹田昌信*)

  （前号からの続きです）

57. ハイパーリンクの設定を保存してプログラムリポジトリまで戻る。
58. F8キーでプログラムをチェックする（画面63）。

クリックすると拡大表示されます。

画面 63　F8キーによるプログラムチェック

  ステータス行に「プログラムは正常です」と表示されていれば、ハイパーリンクの設定は完了です。
  それでは早速、2つのデータ登録プログラムを連動させて実行してみることにしましょう。

59. プログラムリポジトリを閉じ、Magicを開発モードから実行モードに切り換える（画面64）。

クリックすると拡大表示されます。

画面 64　Magicの実行モード

60. Webサーバが稼動していることを確認し、Webブラウザを起動してアドレス欄に下記のアドレスを入力する（*1）。
http://bigbird/magic9scripts/mgrqispi92.dll?appname=etraining&prgname=entry1

（*1）「bigbird」は、実行中のWebサーバ名です。環境に合わせて変更してください。

  データ登録１のプログラム（entry1）が実行され、Webブラウザの表示は画面65のようになります。

クリックすると拡大表示されます。

画面 65　データ登録１プログラムの実行

61. 氏名と電話の欄に適当なデータを入力して送信ボタンを押す（画面66）。

クリックすると拡大表示されます。

画面 66　データ入力の動作確認

  Webブラウザの表示が画面67のように切り替われば、画面表示の部分は正常に動作していることになります。

クリックすると拡大表示されます。

画面 67　画面表示の切り替わり

  では、実際にデータがデータベーステーブルに正常に登録されているかどうかを確認してみることにしましょう。

62. Webブラウザを閉じ、Magicを実行モードから開発モードに切り換える。
63. テーブルリポジトリを開き、カーソルが「住所録」にある状態でAPGを起動して、ファイルの内容を表示させる（画面68）。

クリックすると拡大表示されます。

画面 68　住所録のファイル内容

  どうしたことでしょう。残念ながら、テーブルの中身は空っぽです。どうやらプログラムのどこかに問題があって、データが正常に登録されていないことが判明しました。さて、その原因はいったいどこにあるのでしょうか？
  では早速、問題のありそうな「C=登録」モードのプログラムを再点検してみることにします。

64. APGを終了してプログラムリポジトリを開く。
65. データ登録２のプログラムを開き、タスク特性のダイアログを開く（画面69）。

クリックすると拡大表示されます。

画面 69　データ登録２のタスク特性の再点検

  ありました。ありました。どうやら、タスク終了条件の「チェック時期」の設定に問題があったようです。現在の設定は、チェック時期の欄が「B=前置」の設定になっており、これでは実データの更新作業が実行される前にタスクが終了してしまうという動作になってしまいます。さっそくこれを「A=後置」の設定に変更して、レコード後処理を通過してからタスクが終了するという設定に変えてみることにします。

66. チェック時期の設定を「B=前置」から「A=後置」に変更する（画面70）。

クリックすると拡大表示されます。

画面 70　チェック時期の変更

67. プログラムリポジトリに戻り、F8キーでプログラムをチェックする（画面71）。

クリックすると拡大表示されます。

画面 71　プログラムチェック

  では、プログラムを再実行してみましょう。

68. プログラムリポジトリを閉じ、Magicを実行モードに切り替える。
69. Webサーバが稼動していることを確認してWebブラウザを起動する。
70. Webブラウザのアドレス欄に下記のアドレスを入力して再びプログラムを実行する。
http://bigbird/magic9scripts/mgrqispi92.dll?appname=etraining&prgname=entry1

71. 氏名と電話に適当なデータを入力して送信ボタンを押す（画面72）。

クリックすると拡大表示されます。

画面 72　プログラムの実行

  データが送信されると、Webブラウザの表示は画面73のように切り替わります。

クリックすると拡大表示されます。

画面 73　データ送信後の画面

  では、APGを再び起動して、住所録テーブルに画面73のデータが正常に登録されたかどうかを確認してみることにします。

72. Webブラウザを閉じ、Magicに戻って開発モードに切り替える。
73. テーブルリポジトリを開き、APGを起動して住所録テーブルを開く（画面74）。

クリックすると拡大表示されます。

画面 74　住所録テーブルのオープン

  今度は、画面72で入力したデータが住所録テーブルにも正常に登録されていることが確認できました。
  これにて、Webアプリケーション上におけるデータ登録プログラムは完成です。次回からは、Webアプリケーションにおけるサブフォームの作成法を学びます。

（以上、2002年10月7日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第26回

2002.10.15掲載
丹田昌信*)

  今回より、Webアプリケーションにおけるサブフォームの作成方法を学びます。サブフォームとは、複数のプログラムまたはタスクを１つのブラウザフォームとして実行することのできる機能のことで、これを利用すれば受注明細登録画面のようなフォームをWebブラウザ上で実現することができます。

  受注明細登録画面について言えば、dbMAGIC V4～V5の頃は、通常アプリケーションにおいて画面1（受注明細登録）、画面2（顧客リストのズーム）、画面3（商品リストのズーム）のようなフォームを使用していました。

クリックすると拡大表示されます。

画面 1　受注明細登録画面

クリックすると拡大表示されます。

画面 2　顧客リストのズーム

クリックすると拡大表示されます。

画面 3　商品リストのズーム

  dbMAGIC V6、V'7、V8においても基本的には同様なフォームを活用してきたわけですが、時代の移り変わりとともにWebブラウザ上でこれらを実現するニーズが高まってきました。通常、Webブラウザ上においてこれらのような「１対多」の概念を実現する入力フォームを作成しようとすれば、それは非常に困難を極めるか、あるいは実現できたとしても採算ベースに合わないプログラム開発コストを伴うものと思われてきました。

  ところがMagic V9の出現によって、これがいともたやすく実現されるようになってしまったわけです。具体的には、Webブラウザ上において画面4（受注明細登録）、画面5（顧客リストのズーム）、画面6（商品リストのズーム）のようなフォームを作成することができます。

クリックすると拡大表示されます。

画面 4　Webブラウザ上における受注明細登録

クリックすると拡大表示されます。

画面 5　顧客リストのズーム

クリックすると拡大表示されます。

画面 6　商品リストのズーム

  他のWebアプリ開発言語、または他社のWebアプリ開発ツールに少しでも触れた経験のある人であれば、これらのWebフォームを実現するには気の遠くなるようなコードの記述が必要であることが容易に理解できるはずです。

  ところがMagic V9では、開発労力のほとんどを画面のデザインに費やすだけで（画面7）、内部処理やDBMSとの連携部分はわずかなフレーム記述を要するだけという画期的な機能が提供されています。

クリックすると拡大表示されます。

画面 7　Microsoft FrontPage等でデザインを作成

  本項ではこれらの手法を学ぶための基礎を提供します。はじめにサブフォーム作成の基本を習得し、その後、具体的に画面4、画面5、画面6を作成するための応用法を学びます。

  Magic V9を使用して、これを機会に読者の皆さんもぜひWebアプリ開発のプロフェッショナルになってください。

  次回からは具体的な解説に入ります。

（以上、2002年10月15日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第27回

2002.10.21掲載
丹田昌信*)

  画面8は、前回の画面4を簡略化したような画面です。複雑なレイアウトを作成する前に、まずはこのような単純なレイアウトを作成することで、Web上でのサブフォームの作り方の基礎を学びます。

クリックすると拡大表示されます。

画面 8　サブフォームの基本レイアウト

  ちなみに、画面8においてPageDownキーを押すと、通常のWindowsアプリケーションのように上段のヘッダーと下段のテーブルが連動して切り替わるようになっています（画面9）。

クリックすると拡大表示されます。

画面 9　PageDownキーによるレコード移動

  また、画面9においてTabキーを押し続けると、カーソルは自動的に（マウスクリックなしに）下段のテーブルにも移動できるようになっています（画面10）。

クリックすると拡大表示されます。

画面 10　Tabキーによるカーソル移動

  では早速、これらのプログラムを作成してみることにしましょう。なお、Magic Software Japan社のWebサイトでは、2002年10月10日付けでMagic eBusiness Platform Ver9.30J SP3がリリースされていますので、今回よりこのバージョンを使用しての解説となります。

◆ サブフォームプログラムの作成

  はじめに、画面8のサンプルプログラムで使用するためのダミーデータを登録します。使用するテーブルは「受注」テーブルと「明細」テーブルで、第17回から使用している「eTraining」アプリケーション上に定義します。手順に沿って操作してください。

1. eTrainingのアプリケーションを開き、テーブルリポジトリに次の2つのテーブル（受注テーブルと明細テーブル）を登録する（表1、表2、表3、表4）。

(1) 受注テーブル

# | 名前 | 型 | タイプ
1 | 受注番号 | 数値 | 5
2 | 受注日 | 日付 | ####/##/##
↑表 1　受注テーブルのカラム

# | 名前 | セグメント | 重複 | 順
1 | 受注番号 | 受注番号 | 不可 | 昇順
↑表 2　受注テーブルのインデックス

(2) 明細テーブル

# | 名前 | 型 | 書式
1 | 受注番号 | 数値 | 5
2 | 行番号 | 数値 | 5
2 | 商品名 | 文字 | 20
↑表 3　明細テーブルのカラム

# | 名前 | セグメント | 重複 | 順
1 | 受注番号＋行番号 | 受注番号＋行番号 | 不可 | 昇順
↑表 4　明細テーブルのインデックス

  テーブルが出来上がると、それぞれの画面は次のようになります。

      ●受注テーブル→画面11、画面12
      ●明細テーブル→画面13、画面14

クリックすると拡大表示されます。

画面 11　受注テーブルのカラム

クリックすると拡大表示されます。

画面 12　受注テーブルのインデックス

クリックすると拡大表示されます。

画面 13　明細テーブルのカラム

クリックすると拡大表示されます。

画面 14　明細テーブルのインデックス

  2つのテーブルが完成したら、つぎにいくつかのダミーデータを登録します。

2. APGを使用して、受注テーブルに下記のサンプルデータを登録する（表5）。

受注番号 | 受注日
1 | 2002/10/21
2 | 2002/10/28
3 | 2002/11/05
↑表 5　サンプル受注データ

3. 同じく、APGを使用して明細テーブルに下記のサンプルデータを登録する（表6）。

受注番号 | 行番号 | 商品名
1 | 1 | ボールペン
1 | 2 | 消しゴム
1 | 3 | 下敷き
2 | 1 | ハサミ
2 | 2 | 定規
2 | 3 | ガムテープ
3 | 1 | 鉛筆
3 | 2 | 画用紙
3 | 3 | 筆箱
↑表 6　サンプル明細データ

  ダミーデータを登録すると、2つのテーブルはそれぞれ次のようになります。

      ●受注テーブル→画面15
      ●明細テーブル→画面16

クリックすると拡大表示されます。

画面 15　受注テーブルのダミーデータ

クリックすると拡大表示されます。

画面 16　明細テーブルのダミーデータ

  以上ができあがったら、次にプログラムリポジトリを開きます。

（以上、2002年10月21日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第28回

2002.10.28掲載
丹田昌信*)

  eTrainingのプログラムリポジトリは現在、画面17のようになっています。

クリックすると拡大表示されます。

画面 17　eTrainingのプログラムリポジトリ

  ここに、新しいプログラムを追加していきます。作成するプログラムはブラウザタスクです。

4. プログラムリポジトリの7行目に新しい行を作成し、Ctrl+Gを押してAPGを起動する（画面18）。

クリックすると拡大表示されます。

画面 18　APGの起動

5. APGパラメータのオプションを「R=ブラウザ」とし、メインテーブルに2番の「受注」テーブルを指定する（画面19）。

クリックすると拡大表示されます。

画面 19　APGパラメータの指定

6. その状態でスタイルタブをクリックし、表示モードを「S=スクリーン」とする（画面20）。

クリックすると拡大表示されます。

画面 20　スクリーンモードの指定

7. OKボタンを押して、APGダイアログを閉じる（画面21）。

クリックすると拡大表示されます。

画面 21　APGの完了

8. 公開プログラム名を「ブラウザ - 受注」から「order」に変更する（画面22）。

クリックすると拡大表示されます。

画面 22　公開プログラム名の変更

  ではまず、このプログラムを実行してみます。

9. F8キーを押してプログラムをチェックする。
10. Webサーバが稼動していることを確認して、F7キーを押す。

  F7キーでプログラムが実行されると、Webブラウザが自動的に起動して画面23のように表示されます。

クリックすると拡大表示されます。

画面 23　プログラムの実行画面

  PageDownキーを押すと、画面24のようにレコードが切り替わります。

クリックすると拡大表示されます。

画面 24　レコードの切り替わり

  これでひとまず、画面8の上段の部分が完成です。では続いて、画面8の下段のテーブル（サブフォーム）の作成に入ります。

10. Webブラウザの閉じるボタンを押して、Webブラウザを閉じる。

  Webブラウザと閉じると、Magicは自動的にプログラムリポジトリの表示に戻ります。
  サブフォームは一般のWindowsアプリのように、サブタスクとして作成することが可能です。

11. 「ブラウザ - 受注」プログラムをズームし、タスク定義を開く（画面25）。

クリックすると拡大表示されます。

画面 25　「ブラウザ - 受注」のタスク定義

12. レコードメインの3行目に新しい行を作成し、「コールタスク」を選択する（画面26）。

クリックすると拡大表示されます。

画面 26　コールタスクの設定

13. 処理コマンド欄の「0」からズームしてサブタスク一覧を表示する（画面27）。

クリックすると拡大表示されます。

画面 27　サブタスク一覧

14. F4キーを押して、新しいサブタスクのタスク特性を開く（画面28）。

クリックすると拡大表示されます。

画面 28　サブタスクのタスク特性

15. タスク名を「明細」とし、メインテーブルに3番の「明細」テーブルを指定する（画面29）。

クリックすると拡大表示されます。

画面 29　サブタスクのタスク特性の定義

16. OKボタンを押してタスク特性を閉じる。
17. サブタスクのレコードメインに新しい行を3行作成し、セレクトコマンドを選択して明細テーブルの3つのカラム（受注番号、行番号、商品名）を設定する（画面30）。

クリックすると拡大表示されます。

画面 30　レコードメインの定義

  次にフォームを作成します。

18. Ctrl+Fでフォームテーブルを開く（画面31）。

クリックすると拡大表示されます。

画面 31　フォームテーブル

19. Ctrl+Gを押して、「フォームの自動作成」を起動する（画面32）。

クリックすると拡大表示されます。

画面 32　フォームの自動作成

20. 表示パラメータはデフォルトのまま、OKボタンを押す。

  フォーム自動作成のダイアログが閉じて、画面はフォームテーブルに戻ります。これで、サブタスクのフォームは自動的に作成されたことになります。では、それをちょっと確認してみることします。

21. フォームテーブルの3行目をズームして、HTMLコントロールテーブルを開く（画面33）。

クリックすると拡大表示されます。

画面 33　HTMLコントロールテーブル

22. パソコンに外部のオーサリングツール（ここでは、Macromedia社のDreamweaver4）がインストールされていることを確認して、HTMLコントロールテーブル上の「HTMLエディタ」ボタンを押す。

  すると、外部のオーサリングツール（HTMLエディタ）が自動的に起動され、画面34のように表示されます。

クリックすると拡大表示されます。

画面 34　Dreamweaver4によるサブフォームの表示

  これが、さきほどCtrl+Gで自動作成したHTMLフォームです。

23. 確認が済んだら、HTMLエディタを閉じてMagicに戻る。
24. Magicに戻ったら、Escキーを押してフォーカスをHTMLコントロールテーブルに戻す。

  では、ここまでの状態でもう一度、プログラムを仮実行してみることにしましょう。

25. タスクを保存して、プログラムリポジトリまで戻る。
26. F8キーでプログラムをチェックし、F7キーでプログラムを実行する（画面35）。

クリックすると拡大表示されます。

画面 35　Webブラウザの自動起動

  再び、Webブラウザが自動起動され、画面23と同じような画面が表示されました。この段階ではまだ、画面34のフォームは利用されていないことになります。

（以上、2002年10月28日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第29回

2002.11.5掲載
丹田昌信*)

  では、プログラムリポジトリに戻ってHTMLフォームの微調整を行います。

27. Webブラウザを閉じてプログラムリポジトリに戻る（自動的に戻ります）。
28. 「ブラウザ - 受注」をズームし、タスク定義を開く。
29. Ctrl+Fでフォームテーブルを開き、2行目をズームしてHTMLコントロールテーブルを開く（画面36）。

クリックすると拡大表示されます。

画面 36　HTMLコントロールテーブル

30. HTMLエディタボタンを押し、HTMLエディタを自動起動する（画面37）。

クリックすると拡大表示されます。

画面 37　HTMLエディタの自動起動

  これが、画面23の元となっているHTMLフォームです。したがって、ここでは画面37に画面34のフォームを合成してやる処理を施します。

31. 画面37を開いたまま、フォーカスをMagicに戻す。
32. 終了ボタンを押して、HTMLコントロールテーブルを閉じる。
33. OKボタンを押して、フォームテーブルを閉じる。
34. Magicタスクナビゲータの「明細」をクリックして、タスク定義の表示をサブタスクに切り替える（画面38）。

クリックすると拡大表示されます。

画面 38　サブタスクのタスク定義

35. この状態でCtrl+Fを押して、サブタスクのフォームテーブルを表示する（画面39）。

クリックすると拡大表示されます。

画面 39　サブタスクのフォームテーブル

36. フォームテーブルの3行目をズームして、サブタスクのHTMLコントロールテーブルを開く（画面40）。

クリックすると拡大表示されます。

画面 40　サブタスクのHTMLコントロールテーブル

37. HTMLエディタボタンを押して、外部のHTMLエディタを起動する（画面41）。

クリックすると拡大表示されます。

画面 41　サブタスクのHTMLフォーム

38. 中ほどのテーブルの部分だけを選択（テーブル選択）して、Ctrl+Cで「コピー」をする（画面42）。

クリックすると拡大表示されます。

画面 42　テーブル部分をコピー

  そして、これを画面37の下ほどの部分にペーストします。

39. 画面37に戻り、受注日の下ほどにコピーした内容をペーストする（画面43）。

クリックすると拡大表示されます。

画面 43　画面37と画面41の合成

  ただし、ここでひとつ注意することがあります。おおかたのHTMLエディタは、フィールドの名称が重複しないように（重複した場合は自動的に）、ネーム変更を行うようになっています。たとえば、画面43では「受注番号」のフィールドが重複してしまっており、Dreamweaverはここで、後から追加された「受注番号」の名称を自動的に「受注番号2」という名称に変更しているのが分かります（画面44）。

クリックすると拡大表示されます。

画面 44　受注番号の自動ネーム変更

  したがって、ここでは後から追加された「受注番号」（不要となった受注番号）を削除してやることにします。

40. 画面43に戻り、下段のテーブル内の「受注番号」の列を削除する（画面45）。

クリックすると拡大表示されます。

画面 45　テーブル内の受注番号の削除

  そして、画面40のHTMLコントロールテーブル上の「受注番号」も削除します。

41. 画面40にフォーカスを移動し、HTMLコントロールテーブル2行目の「受注番号」を削除する（画面46）。

クリックすると拡大表示されます。

画面 46　重複する「受注番号」の削除

  では、ここまでで再びプログラムを仮実行してみることにしましょう。

42. タスクを保存して、プログラムリポジトリに戻る。
43. 画面45のHTMLフォームを上書き保存して閉じる。
44. 画面42のHTMLフォームはそのまま閉じる。
45. F8キーでプログラムをチェックし、F7キーでプログラムを仮実行する。

  プログラムが実行されると、Webブラウザの表示は画面47のようになります。

クリックすると拡大表示されます。

画面 47　Webブラウザの表示

  ここまでできたら、画面8まではあとひと息です。

46. Webブラウザを閉じて、プログラムリポジトリに戻る。

（以上、2002年11月5日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第30回

2002.11.11掲載
丹田昌信*)

  では、もう一度「ブラウザ - 受注」のプログラムを開きます。

47. 「ブラウザ - 受注」プログラムをズームして開く。
48. Ctrl+Fでフォームテーブルを開く。
49. フォームテーブルの2行目をズームして、HTMLコントロールテーブルを開く（画面48）。

クリックすると拡大表示されます。

画面 48　親タスクのHTMLコントロールテーブル

  さて、前回の画面47において下段のテーブルを認識させるには、この画面48のテーブルにおいてサブフォームの指定をしてやらなければなりません。では、手順にそって操作してください。

50. HTMLコントロールテーブルの3行目に新しい行を作成し、名前を「明細入力」とする（画面49）。

クリックすると拡大表示されます。

画面 49　HTMLコントロールの追加

51. 続いて、タイプ欄で「S=サブフォーム」を指定する（画面50）。

クリックすると拡大表示されます。

画面 50　サブフォームの指定

52. 次に、Ctrl+Pを押して、このコントロールのコントロール特性を開く（画面51）。

クリックすると拡大表示されます。

画面 51　コントロール特性の定義

53. 接続先の欄を「T=サブタスク」とする（画面52）。

クリックすると拡大表示されます。

画面 52　接続先の設定

54. 「プログラム／タスク番号」からズームしてサブタスク一覧を開き、「明細」のサブタスクを選択する（画面53）。

クリックすると拡大表示されます。

画面 53　タスク番号の指定

  コントロール特性の表示は画面54のようになります。

クリックすると拡大表示されます。

画面 54　コントロール特性

  では、この状態でもう一度プログラムを仮実行してみます。

55. タスクを上書き保存して、プログラムリポジトリに戻る。
56. F8キーでプログラムをチェックし、F7キーでプログラムを実行する（画面55）。

クリックすると拡大表示されます。

画面 55　プログラムの仮実行

  かなり良くなってきたようです。あとは、明細行のテーブルを3行程度の大きさに縮め、明細内容の表示を、上段の「受注番号」の値で絞り込むことができればフォームは完成ということになります。

57. Webブラウザを閉じて、プログラムリポジトリに戻る。

  まずは、明細行の表示を受注番号の値で絞り込む処理を施します。この処理はとても簡単で、従来のWindowsアプリ同様、レコードメインで範囲指定を行うだけです。

58. サブタスク「明細」のレコードメインを開く（画面56）。

クリックすると拡大表示されます。

画面 56　サブタスク「明細」のレコードメイン

59. レコードメインの「受注番号」の範囲小（左側の0）からズームして、式テーブルを開く（画面57）。

クリックすると拡大表示されます。

画面 57　範囲指定の式テーブル

60. 式テーブルに新しい行を作成し、右側のテーブルから「A 受注番号」を選択する（画面58）。

クリックすると拡大表示されます。

画面 58　「A 受注番号」の指定

61. その式を選択して戻る（画面59）。

クリックすると拡大表示されます。

画面 59　範囲小の指定

62. 範囲大（右側の0）にも1番の式を指定する（画面60）。

クリックすると拡大表示されます。

画面 60　範囲大の指定

  これで、範囲指定の設定は完了しました。それではもう一度、プログラムを実行してみることにします。

63. タスクを保存してプログラムリポジトリに戻る。
64. F8キーでプログラムをチェックし、F7キーでプログラムを実行する（画面61）。

クリックすると拡大表示されます。

画面 61　プログラムの仮実行

  一応、範囲指定は効いたようです。ただし、このままではあと2つの問題を抱えています。

（以上、2002年11月11日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第31回

2002.11.18掲載
丹田昌信*)

  さて、2つの問題点というのは次の通りです。
(1) 画面61下段のテーブルは、空白行の余白が多すぎる（ゴミ罫線が残る）。
(2) 画面61の状態でPageDownキーを押しても、下段テーブル内のデータが親レコードに連動して変化しない（画面62）。

クリックすると拡大表示されます。

画面 62　下段テーブル内のデータが変化しない

  それでは早速、この2つの問題を解消したいと思います。まずは(1)の問題点です。手順にそって操作してください。

65. Webブラウザを閉じ、プログラムリポジトリに戻る。
66. 「ブラウザ - 受注」をズームしてタスクを開く。
67. サブタスクの「明細」をクリックして、サブタスクのタスク定義に切り替える（画面63）。

クリックすると拡大表示されます。

画面 63　サブタスクのタスク定義

68. Ctrl+Fでサブタスクのフォームテーブルを開く。
69. Ctrl+Pで「明細」フォームのフォーム特性を開く（画面64）。

クリックすると拡大表示されます。

画面 64　サブタスクのフォーム特性

  そこにある、「繰返し行数」という欄の値が、画面61のテーブルの行数を指定している値です（10行がデフォルト）。したがって、この値を「10」から「3」に変更してやれば、画面61のテーブルの行数は3行固定という設定になります。

70. 「繰返し行数」の値を10から3に変更する（画面65）。

クリックすると拡大表示されます。

画面 65　繰返し行数の値を変更

  (1)の問題点はこれで解決されるはずです。では次に、(2)の問題に入ります。
  (2)の問題点は、親タスクのフォームからサブタスクのフォームに受注番号の変化を知らせるパラメータがうまく渡っていないために発生する問題です。パラメータを受け渡すための処理は、親タスク側のHTMLコントロールテーブル上で行います。

71. サブタスクを保存して閉じ、親タスクのタスク定義を開く。
72. Ctrl+Fで親タスクのフォームテーブルを開く（画面66）。

クリックすると拡大表示されます。

画面 66　親タスクのフォームテーブル

73. 「ブラウザ - 受注」のフォームをズームして、HTMLコントロールテーブルを開く（画面67）。

クリックすると拡大表示されます。

画面 67　親タスクのHTMLコントロールテーブル

74. カーソルを「明細入力」の行（サブフォームの行）に合わせ、Ctrl+Pでコントロール特性を開く（画面68）。

クリックすると拡大表示されます。

画面 68　明細入力のコントロール特性

  ここにあるパラメータの欄が、サブタスクのサブフォームに「受注番号」の値を受け渡すための設定箇所です。

75. 「パラメータ」欄でズームして、パラメータテーブルを開く（画面69）。

クリックすると拡大表示されます。

画面 69　パラメータテーブル

76. パラメータテーブルに新しい行を作成し、「項目」の欄からズームして項目一覧テーブルを開く（画面70）。

クリックすると拡大表示されます。

画面 70　項目一覧テーブル

77. 項目一覧テーブルから「A 受注番号」を選択してパラメータテーブルに戻る（画面71）。

クリックすると拡大表示されます。

画面 71　パラメータテーブルの設定

  これで、2つの問題はすべて解決したはずです。では早速、プログラムリポジトリに戻ってプログラムを実行してみることにします。

78. タスクを保存して、プログラムリポジトリに戻る（画面72）。

クリックすると拡大表示されます。

画面 72　プログラムリポジトリ

79. F8キーでプログラムをチェックし、F7キーでプログラムを仮実行する（画面73）。

クリックすると拡大表示されます。

画面 73　プログラムの仮実行

  今度は、テーブルもきれいに3行で表示されたようです。PageDownキーを押したときに、テーブル内のデータも表示が切り替わるかどうかもチェックしてみます。

80. 画面73の状態で、PageDownキーを1回押す（画面74）。

クリックすると拡大表示されます。

画面 74　PageDownキーを1回押した状態

81. さらに、もう一度PageDownキーを押してみる（画面75）。

クリックすると拡大表示されます。

画面 75　さらにPageDownキーを押す

  ご覧のように、これでプログラムは正常に動作したことになります。
  ちなみに、画面75の状態でTabキーを2回押すと、カーソルは下段テーブル内の行番号の項目に自動的に移動します（画面76）。

クリックすると拡大表示されます。

画面 76　Tabキーでカーソルが下段にも移動

  皆さんもいろいろな動作を確認してみてください。
  次回からは、いよいよ画面77のような受注登録画面を作成します。

クリックすると拡大表示されます。

画面 77　受注登録画面

（以上、2002年11月18日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第32回

2002.11.25掲載
丹田昌信*)

  今回からは、前回までに作成した画面1を応用して、画面2のような受注登録プログラムを作成します。

クリックすると拡大表示されます。

画面 1　前回までに作成した基本画面

クリックすると拡大表示されます。

画面 2　これから作成するWeb用受注登録画面

  なお、このプログラムはdbMAGIC V5上の受注登録画面（画面3）をV9のWebアプリケーション用に再編成したものとなります。

クリックすると拡大表示されます。

画面 3　dbMAGIC V5上の受注登録画面

  WindowsアプリケーションがこのようにWebアプリケーションに変身できてしまうMagic V9のすごさは、筆舌に尽くし難いものがあります。

◆ Web用受注登録画面の作成

  画面2では、顧客名選択と商品名選択においてコンボボックス（リストボックス）を使用していますが、プログラムの構造を理解しやすくするために、手始めにコンボボックス（リストボックス）を使用しない画面（画面4）を作成することにします。

クリックすると拡大表示されます。

画面 4　コンボボックスを使用しない基本画面

  まずは、使用するテーブルレイアウトの作成からです。dbMAGIC V4もしくはV5の「ペットショップ管理システム」に触れたことのある方ならよくご存知かと思いますが、この受注登録画面では下記のような6つのテーブルを使用します。

(1) 制御ファイル
(2) 顧客ファイル
(3) 商品ファイル
(4) 受注ファイル
(5) 受注明細ファイル
(6) 備考ファイル

  そして、それぞれのテーブルレイアウトは次のような定義となっています。

(1) 制御ファイル（SEIGYO.DAT）

カラム定義
# | 名前 | 型 | 書式
1 | 制御キー | 数値 | 5Z
2 | 消費税率 | 数値 | 3.2Z
3 | 最終受注番号 | 数値 | 3Z
4 | メッセージ | 文字 | 40
インデックス定義
# | 名前 | セグメント | 重複 | 順
1 | 制御キー | 制御キー | 不可 | 昇順

表 1　制御ファイルの定義

(2) 顧客ファイル（KOKYAKU.DAT）

カラム定義
# | 名前 | 型 | 書式
1 | 顧客番号 | 数値 | 5Z
2 | 顧客名 | 文字 | 40
3 | 住所 | 文字 | 40
4 | 割引率 | 数値 | 3.2Z
5 | 条件 | 文字 | 20
6 | 受注累計額 | 数値 | N8CZ
7 | 取引回数 | 数値 | N5CZ
8 | メモ | メモ | 200
インデックス定義
# | 名前 | セグメント | 重複 | 順
1 | 顧客番号 | 顧客番号 | 不可 | 昇順
2 | 顧客名 | 顧客名 | 可 | 昇順

表 2　顧客ファイルの定義

(3) 商品ファイル（SHOHIN.DAT）

カラム定義
# | 名前 | 型 | 書式
1 | 商品番号 | 数値 | 5Z
2 | 商品名 | 文字 | 30
3 | 商品タイプ | 文字 | U
4 | 単価 | 数値 | N7CZ
5 | 在庫数 | 数値 | N5CZ
6 | 受注数 | 数値 | N5CZ
7 | 発注数 | 数値 | N5CZ
インデックス定義
# | 名前 | セグメント | 重複 | 順
1 | 商品番号 | 商品番号 | 不可 | 昇順
2 | 商品名 | 商品名 | 可 | 昇順
3 | 商品タイプ | 商品タイプ | 可 | 昇順

表 3　商品ファイルの定義

(4) 受注ファイル（JUCHU.DAT）

カラム定義
# | 名前 | 型 | 書式
1 | 顧客番号 | 数値 | 5Z
2 | 受注番号 | 数値 | 5Z
3 | 最終明細番号 | 数値 | 3Z
4 | 最終備考番号 | 数値 | 3Z
5 | 受注日 | 日付 | ##/##/##
6 | 明細合計額 | 数値 | N8CZ
7 | 受注割引額 | 数値 | N8CZ
8 | 消費税額 | 数値 | N8CZ
9 | 受注合計額 | 数値 | N8CZ
インデックス定義
# | 名前 | セグメント | 重複 | 順
1 | 受注番号 | 受注番号 | 不可 | 昇順
2 | 顧客番号 | 顧客番号 | 可 | 昇順

表 4　受注ファイルの定義

(5) 受注明細ファイル（MEISAI.DAT）

カラム定義
# | 名前 | 型 | 書式
1 | 受注番号 | 数値 | 5Z
2 | 明細番号 | 数値 | 3Z
3 | 商品番号 | 数値 | 5Z
4 | 商品タイプ | 文字 | U
5 | 数量 | 数値 | N5CZ
6 | 単価 | 数値 | N7CZ
7 | 合計 | 数値 | N8CZ
インデックス定義
# | 名前 | セグメント | 重複 | 順
1 | 受注番号＋明細番号 | 受注番号＋明細番号 | 不可 | 昇順
2 | 受注番号＋商品番号 | 受注番号＋商品番号 | 可 | 昇順

表 5　受注明細ファイルの定義

(6) 備考ファイル（BIKO.DAT）

カラム定義
# | 名前 | 型 | 書式
1 | 受注番号 | 数値 | 5Z
2 | 受注番号 | 数値 | 3Z
3 | 備考内容 | 文字 | 30
インデックス定義
# | 名前 | セグメント | 重複 | 順
1 | 受注番号＋備考番号 | 受注番号、備考番号 | 不可 | 昇順

表 6　備考ファイルの定義

  では、テーブル定義を行ってみましょう。

1. eTrainingのテーブルリポジトリを開き、4行目に新しい行を作成して、表1の制御ファイルの定義を行う。このとき、テーブルの名前を「制御ファイル」とし、DBテーブルの名称を「SEIGYO.DAT」とする。

  できあがると、制御ファイルの定義は画面5（カラム定義）と画面6（インデックス定義）のようになります。

クリックすると拡大表示されます。

画面 5　制御ファイルのカラム定義

クリックすると拡大表示されます。

画面 6　制御ファイルのインデックス定義

2. 続いて、テーブルリポジトリの5行目に新しい行を作成し、表2の顧客ファイルの定義を行う。このとき、テーブルの名前は「顧客ファイル」とし、DBテーブルの名称は「KOKYAKU.DAT」とする。

  できあがると、顧客ファイルの定義は画面7（カラム定義）、画面8（インデックス定義）のようになります。

クリックすると拡大表示されます。

画面 7　顧客ファイルのカラム定義

クリックすると拡大表示されます。

画面 8　顧客ファイルのインデックス定義

3. 続いて、テーブルリポジトリの6行目に新しい行を作成し、表3の商品ファイルの定義を行う。このとき、テーブルの名前は「商品ファイル」とし、DBテーブルの名称は「SHOHIN.DAT」とする。

  できあがると、商品ファイルの定義は画面9（カラム定義）、画面10（インデックス定義）のようになります。

クリックすると拡大表示されます。

画面 9　商品ファイルのカラム定義

クリックすると拡大表示されます。

画面 10　商品ファイルのインデックス定義

4. 続いて、テーブルリポジトリの7行目に新しい行を作成し、表4の受注ファイルの定義を行う。このとき、テーブルの名前は「受注ファイル」とし、DBテーブルの名称は「JUCHU.DAT」とする。

  できあがると、受注ファイルの定義は画面11（カラム定義）、画面12（インデックス定義）のようになります。

クリックすると拡大表示されます。

画面 11　受注ファイルのカラム定義

クリックすると拡大表示されます。

画面 12　受注ファイルのインデックス定義

5. 続いて、テーブルリポジトリの8行目に新しい行を作成し、表5の受注明細ファイルの定義を行う。このとき、テーブルの名前は「受注明細ファイル」とし、DBテーブルの名称は「MEISAI.DAT」とする。

  できあがると、受注明細ファイルの定義は画面13（カラム定義）、画面14（インデックス定義）のようになります。

クリックすると拡大表示されます。

画面 13　受注明細ファイルのカラム定義

クリックすると拡大表示されます。

画面 14　受注明細ファイルのインデックス定義

6. 続いて、テーブルリポジトリの9行目に新しい行を作成し、表6の備考ファイルの定義を行う。このとき、テーブルの名前は「備考ファイル」とし、DBテーブルの名称は「BIKO.DAT」とする。

  できあがると、備考ファイルの定義は画面15（カラム定義）、画面16（インデックス定義）のようになります。

クリックすると拡大表示されます。

画面 15　備考ファイルのカラム定義

クリックすると拡大表示されます。

画面 16　備考ファイルのインデックス定義

（以上、2002年11月25日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第33回

2002.12.2掲載
丹田昌信*)

  テーブルの定義が完了したら、次に画面確認用のサンプルデータを登録します。サンプルデータは、下記のリンクからテキストファイルをダウンロードしてMagic側に読み込むこととします。では、手順にそって操作してください。

7. 下記のSEIGYO.TXTファイルを右クリックして、「対象をファイルに保存」を選択する（画面17）。

(1) SEIGYO.TXT

クリックすると拡大表示されます。

画面 17　SEIGYO.TXTを右クリック

8. 保存先のフォルダを指定して、SEIGYO.TXTを保存する（画面18）。

クリックすると拡大表示されます。

画面 18　保存先のフォルダを指定

9. ダウンロードの完了ダイアログが表示された場合は、そのダイアログを閉じる（画面19）。

クリックすると拡大表示されます。

画面 19　ダウンロードの完了ダイアログ

10. 同じようにして、次の5つのテキストファイルもダウンロードする。

(2) KOKYAKU.TXT
(3) SHOHIN.TXT
(4) JUCHU.TXT
(5) MEISAI.TXT
(6) BIKO.TXT

  合計6つのファイルが保存されると、保存先のフォルダ表示は画面20のようになります。

クリックすると拡大表示されます。

画面 20　保存先フォルダの表示

  では続いて、これら6つのテキストファイルをMagic V9側に読み込みます。

11. eTrainingのテーブルリポジトリを開き、「制御ファイル」をクリックする（画面21）。

クリックすると拡大表示されます。

画面 21　制御ファイルの選択

12. プルダウンメニューから「オプション」→「P:APG」を選択するか、あるいは直接CTRL+Gを押して、APGを起動する（画面22）。

クリックすると拡大表示されます。

画面 22　APGの起動

13. APGパラメータの「オプション」欄を「I=入力」に変更する（画面23）。

クリックすると拡大表示されます。

画面 23　オプション欄の設定

14. APGパラメータの「テキストファイル」欄からズームして、先ほどのSEIGYO.TXTファイルの保存先を指定する（画面24）。

クリックすると拡大表示されます。

画面 24　SEIGYO.TXTの保存先の指定

15. SEIGYO.TXTを選択して、「開く」ボタンを押す。

  APGダイアログの表示は、画面25のようになります。

クリックすると拡大表示されます。

画面 25　APGダイアログの表示

  それでは、このテキストファイルをDBテーブル側に読み込みます。

16. APGダイアログの「OK」ボタンを押して、テキストファイルの読み込みを開始する。
17. 「実行しますか？」の確認が出たら、Yesを選択する（画面26）。

クリックすると拡大表示されます。

画面 26　実行確認のダイアログ

  制御ファイルのレコードは1レコードしかありませんので、読み込みはほぼ瞬時に完了し、表示は画面27のようになります。

クリックすると拡大表示されます。

画面 27　読み込み完了の画面

18. 「再実行しますか？」の確認メッセージで「No」を選択してAPGを終了する。

  画面はふたたび、テーブルリポジトリの表示に戻ります（画面28）。

クリックすると拡大表示されます。

画面 28　APGの終了でテーブルリポジトリに戻る

  それでは、SEIGYO.TXTが正常に読み込まれているかどうかを確認してみることにします。

19. カーソルがテーブルリポジトリの制御ファイルにある状態で、再びCTRL+Gを押してAPGを起動する（画面29）。

クリックすると拡大表示されます。

画面 29　APGを再び起動

20. APGパラメータはデフォルトのままで、OKボタンを押す。

  サンプルデータが正常に読み込まれていれば、制御ファイルの表示は画面30のようになります。

クリックすると拡大表示されます。

画面 30　制御ファイルの内容

  では、同じようにして他の5つのファイルもテーブルリポジトリに読み込みます。

21. 「閉じる」ボタンを押して、制御ファイルのテーブルを閉じる。
22. カーソルをテーブルリポジトリの顧客ファイルに合わせ、CTRL+Gを押す。
23. APGパラメータのオプションを「I=入力」とし、顧客ファイルの保存先を指定する（画面31）。

クリックすると拡大表示されます。

画面 31　顧客ファイル読み込みのAPGパラメータ

24. OKボタンを押して、APGを実行する。
25. 「実行しますか？」でYesを選択する。

  読み込みが完了すると、APGの表示は画面32のようになります。

クリックすると拡大表示されます。

画面 32　顧客ファイルの読み込み完了

26. 「再実行しますか？」で、Noを選択してAPGを終了する。

  続いて、商品ファイルです。

27. カーソルをテーブルリポジトリの商品ファイルに合わせ、CTRL+Gを押す。
28. APGパラメータのオプションを「I=入力」とし、商品ファイルの保存先を指定する（画面33）。

クリックすると拡大表示されます。

画面 33　商品ファイル読み込みのAPGパラメータ

29. OKボタンを押して、APGを実行する。
30. 「実行しますか？」でYesを選択する。

  読み込みが完了すると、APGの表示は画面34のようになります。

クリックすると拡大表示されます。

画面 34　商品ファイルの読み込み完了

31. 「再実行しますか？」で、Noを選択してAPGを終了する。

  続いて、受注ファイルです。

32. カーソルをテーブルリポジトリの受注ファイルに合わせ、CTRL+Gを押す。
33. APGパラメータのオプションを「I=入力」とし、受注ファイルの保存先を指定する（画面35）。

クリックすると拡大表示されます。

画面 35　受注ファイル読み込みのAPGパラメータ

34. OKボタンを押して、APGを実行する。
35. 「実行しますか？」でYesを選択する。

  読み込みが完了すると、APGの表示は画面36のようになります。

クリックすると拡大表示されます。

画面 36　受注ファイルの読み込み完了

36. 「再実行しますか？」で、Noを選択してAPGを終了する。

  続いて、受注明細ファイルです。

37. カーソルをテーブルリポジトリの受注明細ファイルに合わせ、CTRL+Gを押す。
38. APGパラメータのオプションを「I=入力」とし、受注明細ファイルの保存先を指定する（画面37）。

クリックすると拡大表示されます。

画面 37　受注明細ファイル読み込みのAPGパラメータ

39. OKボタンを押して、APGを実行する。
40. 「実行しますか？」でYesを選択する。

  読み込みが完了すると、APGの表示は画面38のようになります。

クリックすると拡大表示されます。

画面 38　受注明細ファイルの読み込み完了

41. 「再実行しますか？」で、Noを選択してAPGを終了する。

  最後に、備考ファイルです。

42. カーソルをテーブルリポジトリの備考ファイルに合わせ、CTRL+Gを押す。
43. APGパラメータのオプションを「I=入力」とし、備考ファイルの保存先を指定する（画面39）。

クリックすると拡大表示されます。

画面 39　備考ファイル読み込みのAPGパラメータ

44. OKボタンを押して、APGを実行する。
45. 「実行しますか？」でYesを選択する。

  読み込みが完了すると、APGの表示は画面40のようになります。

クリックすると拡大表示されます。

画面 40　備考ファイルの読み込み完了

46. 「再実行しますか？」で、Noを選択してAPGを終了する。

  これで、6つのテーブルのサンプルデータはすべて読み込みが完了したことになります。

（以上、2002年12月2日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第34回

2002.12.9掲載
丹田昌信*)

  サンプルデータの読み込みが完了したら、続いてプログラムの作成に入ります。手順にそって操作してください。

47. eTrainingのプログラムリポジトリを開く（画面41）。

クリックすると拡大表示されます。

画面 41　eTrainingのプログラムリポジトリ

48. 8行目に新しい行を作成し、CTRL+GでAPGを起動する。
49. APGパラメータのオプション欄を「R=ブラウザ」とし、メインテーブル欄の指定を7番の「受注ファイル」とする（画面42）。（*1）

クリックすると拡大表示されます。

画面 42　APGパラメータの設定

*1) HTMLファイル欄の保存先に同名のファイルが存在する場合は、適当にリネームするか、またはズームしてパスを変更してください。

50. 次に、スタイルタブをクリックし、表示パラメータの表示モードを「S=スクリーン」に変更する（画面43）。

クリックすると拡大表示されます。

画面 43　表示モードの設定

51. OKボタンを押して、APGを実行する。
52. プログラムリポジトリに戻ったら、今作成したプログラムの名前欄を「受注登録」に変更し、公開プログラム名の欄を「order_entry」に変更する（画面44）。

クリックすると拡大表示されます。

画面 44　受注登録プログラムの作成

  ではまずは、APGで作成したプログラムが正常に動作するかどうか確認しておくことにしましょう。

53. Webサーバが稼動していることを確認し、カーソルが「受注登録」の行にある状態で、F7キーを押してこのプログラムを実行する。

  プログラムが実行されると、Internet Explorerが自動的に起動されて、ウィンドウ表示は画面45のようになります。

クリックすると拡大表示されます。

画面 45　APGで作成したプログラムの実行

  この画面に表示されたデータは、最終的には第32回の画面4の上段と下段のような配置構成となります。

  では続いてそのレイアウトの変更作業を行います。

54. 画面45の「×」ボタンを押してプログラムを終了する。
55. プログラムリポジトリの「受注登録」をズームして、タスク定義画面を開く（画面46）。

クリックすると拡大表示されます。

画面 46　受注登録のタスク定義

  ここで、プログラム実行画面上におけるカーソルの移動順序を画面4に合わせるため、レコードメイン上のカラムの並び順を若干変更します。

  現在、「顧客番号」→「受注番号」→「受注明細番号」→「最終備考番号」→「受注日」となっている順序を、画面4のレイアウトに合わせて、「受注番号」→「受注日」→「顧客番号」→「最終明細番号」→「最終備考番号」に変更します。

56. プルダウンメニューの「編集」→「移動登録」の機能を利用して、レコードメインの先頭5行の並びを、「受注番号」→「受注日」→「顧客番号」→「最終明細番号」→「最終備考番号」の順に変更する。

  移動が完了すると、レコードメインの並びは画面47のようになります。

クリックすると拡大表示されます。

画面 47　レコードメインの先頭5行の並び

  では続いて、HTMLフォームの編集に入ります。

57. CTRL+Fを押してフォームテーブルを開く（画面48）。

クリックすると拡大表示されます。

画面 48　受注登録のフォームテーブル

58. 受注登録のフォームをズームして、HTMLコントロールテーブルを開く（画面49）。

クリックすると拡大表示されます。

画面 49　受注登録のHTMLコントロールテーブル

59. 「HTMLエディタ」ボタンを押して、外部のオーサリングツールでこのフォームを開く（画面50）。

クリックすると拡大表示されます。

画面 50　外部のオーサリングツールでフォームを開く

  画面50はDreamweaverが自動的に起動されて、画面45のレイアウトを展開したときの表示です。ここではDreamweaverを使用して、このレイアウトを画面4の上段と下段のように編集します。

60. 外部のオーサリングツールの機能を利用して、画面50のレイアウトを画面51のようなレイアウトに変更する。

クリックすると拡大表示されます。

画面 51　Dreamweaverによる編集

  ちなみに、画面51をDreamweaver側から実行させた場合は、画面52のようなブラウザ画面となります。

クリックすると拡大表示されます。

画面 52　Dreamweaver側からの実行画面

  さて、画面52と画面4を比較してみると、画面52において漏れている部分は、次の6ヶ所となります（「プリンタ出力」のボタンは除きます）。

(1) 顧客名と顧客住所（顧客ファイルにリンク）
(2) 明細行（サブタスクを作成）
(3) 備考欄（サブタスクを作成）
(4) 割引率％（顧客ファイルにリンク）
(5) 小計（変数を立てて計算）
(6) 条件（顧客ファイルにリンク）

  このうち、顧客名、顧客住所、割引率、および条件の合計4項目は顧客ファイルにデータリンクして取得するものとし、小計の項目は変数を立てて、「明細合計額－受注割引額」の値を代入するものとします。

  また、レイアウト中央の明細行の欄とレイアウト左下の備考欄の部分は、それぞれサブタスクをコールして第27回から第31回までにおいて解説したサブフォームを配置するものとします。

（以上、2002年12月9日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第35回

2002.12.16掲載
丹田昌信*)

  それでは、前述の6つの項目の追加を行う前に、プログラムリポジトリに戻って、ここまでの修正が正常動作するかどうかを確認しておくことにします。

61. 画面52のブラウザ実行ウィンドウを閉じる。
62. 画面51のDreamweaver編集ウィンドウを保存して閉じる。
63. Escキーを押して、フォーカスをMagic側のHTMLコントロールテーブルに戻す。
64. タスクを保存して、プログラムリポジトリのテーブルまで戻る。
65. F8のチェックキーでプログラムをチェックする（画面53）。

クリックすると拡大表示されます。

画面 53　F8キーによるプログラムチェック

66. ステータス行に「プログラムは正常です」と表示されたら、Webサーバが稼動していることを確認して、F7キーでプログラムを実行する。

  残念ながら、エラーが2つも表示されてしまったようです（画面54と画面55）。

クリックすると拡大表示されます。

画面 54　1つめのエラー

クリックすると拡大表示されます。

画面 55　2つめのエラー

  画面54のエラーは、「最終明細番号の項目は属性がテキストでなければならない」という内容であり、画面55のエラーは、「最終明細番号と最終備考番号の項目はHTML上では使用されていない」という内容のエラーです。

  画面54のエラーは画面55のエラーに起因するものと思われますので、ここでは画面55のエラーを中心に調べてみることにします。このエラーはおそらく、前回の画面50から画面51への編集過程において発生したものと思われます。チェックする箇所は、HTMLコントロールテーブルです。

67. 画面54と画面55のエラーウィンドウを閉じる。
68. 画面54背面のブラウザ実行画面も閉じる。
69. プログラムリポジトリに戻り、「受注登録」のフォームテーブルを開く（画面56）。

クリックすると拡大表示されます。

画面 56　受注登録のフォームテーブル

70. ズームしてHTMLコントロールテーブルを開く（画面57）。

クリックすると拡大表示されます。

画面 57　HTMLコントロールテーブル

  どうやら、青字の表示になっている「最終明細番号」と「最終受注番号」の2つの項目が、画面50から画面51への編集過程において、HTMLフォーム上から削除されたものであるようです。ではこれらを、HTMLコントロールテーブル上からも削除しておくことにします。

71. 最終受注番号と最終明細番号の項目をHTMLコントロールテーブル上から削除する（画面58）。

クリックすると拡大表示されます。

画面 58　2つの項目の削除

  では、再びプログラムを実行してみます。

72. タスクを保存して、プログラムリポジトリに戻る。
73. F8キーでプログラムをチェックし、F7キーでプログラムを実行する（画面59）。

クリックすると拡大表示されます。

画面 59　正常実行

  今度はどうやら、正常に実行されたようです。ついでに、このタスクの初期モードもAPGによって自動設定された「Q=照会」から「M=修正」に変更しておくことにします。

74. 画面59を閉じて、プログラムリポジトリに戻る。
75. 受注登録プログラムのタスク特性を開き、タスク情報欄の初期モードを「Q=照会」から「M=修正」に変更する（画面60）。

クリックすると拡大表示されます。

画面 60　初期モードの変更

  それでは、前回の6つの追加項目を設定する作業に入ります。まずは、顧客ファイルにリンクして、「顧客名」、「顧客住所」、「割引率」、および「条件」の4つの項目をブラウザ実行画面上に表示する設定からです。手順にそって作成してください。

76. 受注登録プログラムのレコードメインを開く（画面61）。

クリックすると拡大表示されます。

画面 61　受注登録のレコードメイン

77. 3行目の顧客番号の下に、「L=リンク」コマンドを挿入する（画面62）。

クリックすると拡大表示されます。

画面 62　リンクコマンドの挿入

78. 処理コマンド欄の「0」からズームしてテーブル一覧を開き、顧客ファイルを選択して戻る（画面63）。

クリックすると拡大表示されます。

画面 63　顧客ファイルへのリンク

79. 同じ行のインデックス欄からズームしてインデックス一覧を開き、顧客番号を選択して戻る（画面64）。

クリックすると拡大表示されます。

画面 64　インデックスの選択

  インデックスが選択され、その下の行にはインデックス項目である「顧客番号」のセレクトコマンドが自動的に挿入されているのが分かります。

  インデックスが設定されたら、続いてインデックス項目に対する位置付けの設定です。

80. 自動挿入されたセレクト行、「顧客番号」項目の位置付開始（左側）の「0」からズームして式テーブルを開く（画面65）。

クリックすると拡大表示されます。

画面 65　式テーブル

81. 式テーブルに新しい行を作成し、右テーブルから「C」の顧客番号を選択して戻る（画面66）。

クリックすると拡大表示されます。

画面 66　受注ファイル側の顧客番号を選択

82. OKボタンを押して、式テーブルを閉じる。
83. 位置付終了（右側）の「0」欄にも、同じ式である「1」を選択挿入する（画面67）。

クリックすると拡大表示されます。

画面 67　位置付開始と終了の設定

  続いて、顧客ファイルからのリンク項目の引用です。

84. 位置付設定を行った「顧客番号」の行の下に、「顧客名」、「住所」、「割引率」、および「条件」の4つの項目を顧客ファイルから選択して挿入する（画面68）。

クリックすると拡大表示されます。

画面 68　顧客ファイルからのリンク項目

  このとき、リンク項目については右端の条件欄の設定が自動的に「No」（カーソルパーキング不可）の設定になっていることを確認しておきます。

  次に、これらのリンク項目をHTMLコントロールテーブル上にも追加して、オーサリングツールを用いてレイアウトの編集を行います。

85. フォームテーブルを開き、受注登録のフォームをズームしてHTMLコントロールテーブルを開く（画面69）。

クリックすると拡大表示されます。

画面 69　受注登録のHTMLコントロールテーブル

86. 顧客番号の下に新しい行を作成し、項目欄からズームして項目一覧を開く（画面70）。

クリックすると拡大表示されます。

画面 70　項目一覧

87. フォームテーブルを開き、受注登録のフォームをズームしてHTMLコントロールテーブルを開く（画面71）。

クリックすると拡大表示されます。

画面71　顧客名コントロールの追加

88. 同様にして、顧客名の下に住所の項目を挿入する（画面72）。

クリックすると拡大表示されます。

画面72　住所コントロールの追加

89. 同様にして、明細合計額の下に割引率の項目を挿入する（画面73）。

クリックすると拡大表示されます。

画面73　割引額コントロールの追加

90. 同様にして、受注合計額の下に条件の項目を挿入する（画面74）。

クリックすると拡大表示されます。

画面74　条件コントロールの追加

（以上、2002年12月16日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第36回

2002.12.24掲載
丹田昌信*)

  コントロールの追加が完了したら、次に追加したコントロールをHTMLフォーム上に配置します。

91. HTMLコントロールテーブル上の「HTMLエディタ」ボタンを押して、外部のオーサリングツールを起動する（画面75）。

クリックすると拡大表示されます。

画面 75　Dreamweaverの自動起動

  はじめに、顧客名の配置からです。

92. 顧客番号の右側の空白セルに、フォームオブジェクトの「テキストフィールド」を挿入する（画面76）。

クリックすると拡大表示されます。

画面 76　テキストフィールドの配置

93. 挿入したテキストフィールドの文字幅を「45」程度とし、名称を「顧客名」とする（画面77）。

クリックすると拡大表示されます。

画面 77　文字幅と名称の設定

  この時、文字幅の設定は任意で構いませんが、テキストフィールドの名称である「顧客名」という文字列は、Magic側のHTMLコントロールテーブル上のHTMLコントロール名の名称と完全一致している必要があります。

94. 次に、その下の空白セルにもテキストフィールドを挿入し、文字幅を「45」、フィールド名称を「住所」とする（画面78、画面79）。

クリックすると拡大表示されます。

画面 78　住所コントロールの挿入

クリックすると拡大表示されます。

画面 79　住所の文字幅とフィールド名

95. 同じように、「％ 受注割引額」の前にテキストフィールドを挿入し、文字幅を「7」、テキストフィールド名を「割引率」とする（画面80、画面81）。

クリックすると拡大表示されます。

画面 80　割引率コントロールの挿入

クリックすると拡大表示されます。

画面 81　割引率の文字幅とフィールド名

  最後に、条件コントロールの挿入です。

96. 「条件：」欄にテキストフィールドを挿入し、文字幅を「44」、フィールド名を「条件」とする（画面82、画面83）。

クリックすると拡大表示されます。

画面 82　条件コントロールの挿入

クリックすると拡大表示されます。

画面 83　条件の文字幅とフィールド名

  ここまでが完成したら、とりあえずプログラムを実行してみることにします。

97. 画面82を保存して閉じる。
98. Magic側に戻り、タスクを保存してプログラムリポジトリに戻る。
99. F8キーでプログラムをチェックし、Webサーバが稼動していることを確認して、F7キーでプログラムを実行する。

  プログラムが実行されると、Webブラウザの表示は画面84のようになります。

クリックすると拡大表示されます。

画面 84　プログラム実行画面

  顧客名、住所、割引率、および条件の4つの項目が正常に表示されていることが分かります。

  ちなみに、PageDownキーで受注ファイルのレコードを移動させてみると、それに連動して顧客情報の内容も変化していくことが確認できます（画面85）。

クリックすると拡大表示されます。

画面 85　レコードの移動で顧客情報も変化

  Tabキーによる項目移動も正常動作することが確認できます（画面86）。

クリックすると拡大表示されます。

画面 86　Tabキーによる項目移動

  以上が、顧客ファイルへのリンク部分です。続いて、「小計」欄の変数処理に入ります。

100. Webブラウザを閉じて、Magicに戻る。
101. 受注登録のレコードメインを開く。
102. セレクト「受注割引額」の下に新しい変数項目の行を挿入し、変数の名称を「小計」、型を「N=数値」、そして書式を「N8CZ」とする（画面87）。

クリックすると拡大表示されます。

画面 87　変数項目「小計」の設定

103. 変数項目「小計」の代入欄からズームして式テーブルを開き、式テーブルに新しい行を作成して、「K-L」（明細合計額－受注割引額）という式を立てる（画面88）。

クリックすると拡大表示されます。

画面 88　小計算出の計算式

104. 式テーブルを閉じて、レコードメインに戻る。
105. フォームテーブルを開き、受注登録のフォームをズームしてHTMLコントロールテーブルを開く（画面89）。

クリックすると拡大表示されます。

画面 89　HTMLコントロールテーブル

106. 受注割引額の下に新しい行を挿入し、項目欄からズームして項目一覧を開く（画面90）。

クリックすると拡大表示されます。

画面 90　項目一覧

107. さきほど作成した、変数項目「小計」を選択して、HTMLコントロールテーブルに戻る。
108. HTMLコントロールテーブルの「HTMLエディタ」ボタンを押して、外部のWebオーサリングツールを起動するく（画面91）。

クリックすると拡大表示されます。

画面 91　HTMLフォームの編集

109. 小計の右側の空白セルに、テキストフィールドを挿入し、文字幅を「18」、フィールド名を「小計」とする（画面92、画面93）。

クリックすると拡大表示されます。

画面 92　小計コントロールの挿入

クリックすると拡大表示されます。

画面 93　小計の文字幅とフィールド名

  では、ここまででもう一度プログラムの動作確認を行ってみることにします。

110. 画面92を保存して閉じる。
111. Magicに戻り、タスクを保存してプログラムリポジトリに戻る。
112. F8キーでプログラムをチェックし、Webサーバが稼動していることを確認して、F7キーでプログラムを実行する。

  プログラムが実行されると、Webブラウザの表示は画面94のようになります。

クリックすると拡大表示されます。

画面 94　プログラムの実行画面

  これで、親タスクの部分のプログラムは完成です。続いて、明細行サブタスク（サブフォーム）の作成に入ります。

113. Webブラウザを閉じ、Magicに戻る。

（以上、2002年12月24日号。次号に続く）


Magic Software Japan K.K - 連載 V9で作るWebアプリケーション第37回

2002.12.30掲載
丹田昌信*)

  サブタスクの作成は、基本的に第28回以降の基本の応用となります。手順にそって操作してください。

◆ サブタスクの作成

114. プログラムリポジトリを開き、受注登録プログラムをズームして、タスク定義のレコードメインを開く（画面95）。

クリックすると拡大表示されます。

画面 95　受注登録プログラムのレコードメイン

115. セレクト「最終備考番号」の下の新しい行を作成し、コール「T=タスク」を設定する（画面96）。

クリックすると拡大表示されます。

画面 96　コールコマンドの設定

116. 同じ行の、処理コマンド欄の「0」からズームしてサブタスク一覧を表示する（画面97）。

クリックすると拡大表示されます。

画面 97　サブタスク一覧

117. F4キーで新しい行を作成し、サブタスクのタスク特性ダイアログを表示させる（画面98）。

クリックすると拡大表示されます。

画面 98　サブタスクのタスク特性

118. 特性タブのタスク名の欄を「明細行」とし、メインテーブルに「受注明細ファイル」を、インデックスに「受注番号＋明細番号」を指定する（画面99）。

クリックすると拡大表示されます。

画面 99　タスク特性の設定

119. OKボタンを押して、タスク特性を閉じる。
120. レコードメインの処理テーブルに新しい行を作成し、セレクト「R=実データ」を設定する。
121. 処理コマンド欄の「0」からズームして受注明細ファイルの項目一覧を表示し、1番の「受注番号」を選択して戻る（画面100）。

クリックすると拡大表示されます。

画面 100　セレクトコマンドの挿入

122. 同じようにして、「明細番号」、「商品番号」、「商品タイプ」、「数量」、「単価」、および「合計」の項目をセレクトする（画面101）。

クリックすると拡大表示されます。

画面 101　他の項目の選択

  そして、親タスクの「受注番号」の値で、サブタスクのレコードを範囲指定します。

123. セレクト「受注番号」の範囲開始（左側）の「0」からズームして式テーブルを開き、新しい行を作成して、親タスクである受注ファイルの受注番号項目である「A」を選択する（画面102）。

クリックすると拡大表示されます。

画面 102　親タスクの受注番号を指定

124. OKボタンを押してレコードメインに戻り、範囲終了（右側）にも同じ式である「1」を代入する（画面103）。

クリックすると拡大表示されます。

画面 103　範囲終了にも同じ式を指定

  続いて、サブタスクのHTMLフォームを作成します。

125. CTRL+Fでフォームテーブルを開く。
126. カーソルがフォームテーブル3行目の「明細行」にある状態で、CTRL+Gを押してHTMLフォームを自動作成する（画面104）。

クリックすると拡大表示されます。

画面 104　HTMLフォームの自動作成

127. 作成フォームのパラメータはデフォルトのまま、OKボタンを押して自動作成を実行する。

  画面はそのまま、フォームテーブルの表示に戻ります（画面105）。

クリックすると拡大表示されます。

画面 105　フォームテーブルに戻る

  次に、明細行の繰返し行数（表示行数）の設定を行います。表示行数は、第32回の画面4に合わせて、「4行」とします。

128. 画面105の状態で、CTRL+Pを押してフォーム特性を開く（画面106）。

クリックすると拡大表示されます。

画面 106　明細行のフォーム特性

129. 「繰返し行数」の欄を「10」から「4」に変更する（画面107）。

クリックすると拡大表示されます。

画面 107　繰返し行数の設定

130. フォーム特性を閉じ、フォームテーブル3行目の「明細行」をズームして、このサブタスクのHTMLコントロールテーブルを開く（画面108）。

クリックすると拡大表示されます。

画面 108　サブタスクのHTMLコントロールテーブル

131. 明細行のフォームでは、「受注番号」は不要なので、HTMLコントロールテーブルから削除する（画面109）。

クリックすると拡大表示されます。

画面 109　受注番号の削除

132. 「HTMLエディタ」ボタンを押して、外部オーサリングツールでHTMLフォームを開く（画面110）。

クリックすると拡大表示されます。

画面 110　Dreamweaverでフォームを開く

  そして、このフォームを画面4の中段のテーブルに合うように編集します。

133. 受注番号の列を削除する。
134. テーブルタイトルの表示をそれぞれ、画面111のように変更する。

クリックすると拡大表示されます。

画面 111　タイトルの変更

135. そして、その他のレイアウトを画面112のように編集する。

クリックすると拡大表示されます。

画面 112　その他のレイアウト編集

  ここで、「商品名」の欄はのちほど商品ファイルにリンクしてデータの価を取得することにしますが、HTML上のテキストフィールドは先に配置しておいても問題はありませんので、その設定をついでに行っておくことにします。

136. 商品名の下の空白セルにテキストフィールドを挿入し、文字幅を「30」、フィールド名を「商品名」とする（画面113、画面114）。

クリックすると拡大表示されます。

画面 113　商品名フィールドの挿入

クリックすると拡大表示されます。

画面 114　文字幅とフィールド名の設定

  ここまで出来たら、サブタスクのレコードメインに戻って商品ファイルへのリンク処理を行うことにします。

137. 画面113を保存してMagicに戻り、サブタスクのレコードメインを開く（画面115）。

クリックすると拡大表示されます。

画面 115　サブタスクのレコードメイン

138. セレクト「商品タイプ」の下にリンクコマンドを設定し、リンク先ファイルを「商品ファイル」、インデックスを「商品番号」とする（画面116）。

クリックすると拡大表示されます。

画面 116　商品ファイルへのリンク

139. リンク先の「商品番号」の位置付開始からズームして式テーブルを開き、式テーブルに新しい行を作成して、受注明細ファイルの商品番号「R」を選択する（画面117）。

クリックすると拡大表示されます。

画面 117　位置付開始の設定

140. 式テーブルを閉じてレコードメインに戻り、位置付終了の欄にも同じ式番号を指定する（画面118）。

クリックすると拡大表示されます。

画面 118　位置付終了の設定

141. リンク先の商品番号の下に新しい行を作成し、セレクト「商品名」（商品ファイル）を設定する（画面119）。

クリックすると拡大表示されます。

画面 119　商品名を引用

  それでは、今追加した「商品名」という項目をHTMLコントロールテーブル上にも配置することにします。

142. CTRL+Fでフォームテーブルを開き、明細行をズームして、サブタスクのHTMLコントロールテーブルを開く（画面120）。

クリックすると拡大表示されます。

画面 120　HTMLコントロールテーブル

143. 商品タイプの下に新しい行を挿入し、項目欄からズームして項目一覧を開く（画面121）。

クリックすると拡大表示されます。

画面 121　項目一覧

144. 項目一覧から商品ファイルの商品名を選択して戻る（画面122）。

クリックすると拡大表示されます。

画面 122　商品名の追加

145. 「HTMLエディタ」ボタンを押して、外部オーサリングツールで再度、HTMLフォームを開く（画面123）。

クリックすると拡大表示されます。

画面 123　HTMLフォーム

  そして、このフォームを親タスクのHTMLフォームである第36回の画面92にコピー＆ペーストします。

146. 画面123を置いたままMagicに戻り、サブタスクを保存して、親タスクのHTMLコントロールテーブルを開く（画面124）。

クリックすると拡大表示されます。

画面 124　親タスクのHTMLコントロールテーブル

  続いて、サブタスクのHTMLフォームを作成します。

147. 「HTMLエディタ」ボタンを押して、外部ツールでHTMLフォームを開く（画面125）。

クリックすると拡大表示されます。

画面 125　親タスクのHTMLフォーム

148. 画面125の中段部分に、画面123のテーブル部分だけをコピー＆ペーストで貼り付け、横幅を微調整する（画面126）。

クリックすると拡大表示されます。

画面 126　明細行の挿入

  そして、あとはサブフォームのリンク設定だけです。

149. 画面126を保存して閉じる。
150. 画面123も閉じる。
151. MagicのHTMLコントロールテーブルに戻り、受注日の下ほど（任意の位置で良い）に新しい行を挿入して、HTMLコントロール名を「明細入力」、タイプを「S=サブフォーム」とする（画面127）。

クリックすると拡大表示されます。

画面 127　サブフォームの挿入

152.その状態でCTRL+Pを押して、このコントロールのコントロール特性を開く（画面128）。

クリックすると拡大表示されます。

画面 128　明細入力のコントロール特性

153. 接続先の欄を「T=サブタスク」とし、プログラム／タスク番号からズームしてサブタスク一覧を開く（画面129）。

クリックすると拡大表示されます。

画面 129　接続先のサブタスク一覧

154. サブタスク一覧から「明細行」を選択して戻る（画面130）。

クリックすると拡大表示されます。

画面 130　コントロール特性の設定

  次に、サブフォームにパラメータを渡す処理を施します。

155. 画面130のパラメータ欄からズームして、パラメータテーブルを開く（画面131）。

クリックすると拡大表示されます。

画面 131　パラメータテーブル

156. パラメータテーブルに新しい行を作成し、項目の欄からズームして項目一覧テーブルを開く（画面132）。

クリックすると拡大表示されます。

画面 132　項目一覧

157. 項目一覧テーブルから「A 受注番号」を選択してパラメータテーブルに戻る（画面133）。

クリックすると拡大表示されます。

画面 133　パラメータテーブルの設定完了

  これで明細行サブタスクは完成です。さっそく、プログラムリポジトリに戻ってプログラムを実行してみることにしましょう。

158. タスクをすべて保存して、プログラムリポジトリに戻る。
159. F8キーでプログラムをチェックし、Webサーバが稼動していることを確認して、F7キーでプログラムを実行する。

  プログラムが正常に実行されると、Webブラウザの表示は画面134のようになります。

クリックすると拡大表示されます。

画面 134　プログラムの実行画面

  これにて、明細行サブタスクはすべて完了です。あと、残すところはウィンドウ左下の備考欄のテーブル表示ですが、理屈は明細行サブタスクと同じですので、ぜひ皆さんご自身で追加してみてください。

（以上、2002年12月30日号）


  112   1 漢字の文書を同封しました。
  113   1 ありがとうございます。
  113   2 価格表を請求してください。
  114   1 ありがとうございます。


 1008 千葉ペットショップ                       千葉県千葉市高柳    １２３４－１           9.00 ３０日後支払い         2,902,818       4 千葉ペットショップは１２年来のお得意様です。対応には十分に気を付けて下さい。
 1234 ペットセンター神田                       東京都千代田区神田  １－２－３            10.00 現金                   1,340,442       4
 5678 サンシャインペット                       東京都豊島区池袋    ４－１－１２          15.00 ４５日後支払い         1,505,860       2
 9012 動物ランド桜台                           東京都練馬区桜台    ２－５－６             7.00 現金                   1,078,596       3
 9999 浪速ペット　　　　　　　　　　　　　　　 大阪府大阪市難波南  １－１－１０           8.50 ４５日後支払い            94,245       1


    1   3.00 130 皆様のご愛顧に心より感謝しております。