Magic 新連載スタート
から 669 日経過

Magic 連載購読

Magic 連載購読コーナーはこちらです。

ログインには購読のお申込みと Google へのアカウント登録が必要です。

Google のアカウントは Gmail アドレスである必要はありません。現在、お使いの会社のメールアドレスや Yahoo! メール、Hotmail などのメールアドレスでもご使用になれます。

連載購読コーナーへのログイン手順のヘルプはこちらです。

Google サイト

この Web サイトは、Google 社の Google サイト の機能を使用して構築されています。

Google サイトの日本語版は2008年10月22日にリリースされました。

Google サイトを利用してのサイトの構築は、お気軽にご用命ください。

ドメイン名の取得から DNS の設定、Web サイトのデザインまで、包括してお引き受けいたします。

ホーム‎ > ‎Magic eDeveloper‎ > ‎

Magic V10 新連載概要


記事概要 Magic V10 で作るイベントドリブン型プログラム

2010/08/16 19:11 に Masanobu Tanda が投稿

第28回 ウィザードを用いて Excel にデータを取り込む(2)

 前回は、Excel 2003 のウィザードを用いて Magic のデータを全件 Excel に取り込む方法について解説しました。今回は、全件のレコードを取り込むのではなく、レコードを特定の条件で絞り込んで Excel に取り込む方法、あるいは取り込みが完了しているデータからさらにレコードを絞り込む方法について解説します。

前回からの続き

 前回の操作で取り込みが完了したときの画面は、画面1の通りです。

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

記事概要 Magic V10 で作るイベントドリブン型プログラム

2010/07/04 0:30 に Masanobu Tanda が投稿

第27回 ウィザードを用いて Excel にデータを取り込む

 今回は、Excel 2003 のウィザードを用いて Magic のデータを Excel に取り込む方法について解説します。DBMS に SQL Server を使用している場合は、Microsoft Excel からダイレクトに SQL Server のデータを読み込むことが可能です。ここでは、Excel 2003 を用いて、その基本操作を解説します。

商品ファイルのレコードを確認する

 はじめに、Magic 側のデータリポジトリに登録されている、任意のテーブルの全件レコードを Excel に取り込む方法について見ていきます。

 画面1は、文具店管理システムのデータリポジトリです。

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

記事概要 Magic V10 で作るイベントドリブン型プログラム

2010/05/10 6:46 に Masanobu Tanda が投稿   [ 2010/05/10 6:55 に更新しました ]

第26回 コンテキストメニューの作り方(3) 

 今回は、コンテキストメニューの作り方の最終回です。これまでに、フォーム上の任意の位置からコンテキストメニューを開く方法と、フォーム上の特定のコントロール上からコンテキストメニューを開く方法を学んできました。そして、いずれの場合も、Magic の内部イベントを経由してプログラムをコールする方法の解説でした。 

 今回は、特定のコントロール上から、Magic の内部イベントではなく、開発者定義のユーザイベント経由でバッチタスク等のプログラムをコールするためのコンテキストメニューの作り方を学びます。 

コンテキストメニューからパラメータを渡す 

 はじめに、完成後のプログラムの動作確認をご覧ください。画面1は、受注伝票入力プログラムの修正モードでの表示です。

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

記事概要 Magic V10 で作るイベントドリブン型プログラム

2010/04/11 5:35 に Masanobu Tanda が投稿

第25回 コンテキストメニューの作り方(2)

 前回に続き、コンテキストメニューの作り方、その2です。前回はフォーム上の任意の位置からマウスの右クリックでコンテキストメニューを表示させる方法を学びましたが、今回は、フォーム上の特定のコントロール上からマウスの右クリックでコンテキストメニューを表示させ、そこから特定のプログラムを起動させる方法について学びます。

顧客コードを右クリックしてコンテキストメニュー

 画面1は、おなじみの文具店の受注伝票入力画面です。登録モードでプログラムが起動されており、カーソルは現在「顧客コード」にパークしています。

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

記事概要 Magic V10 で作るイベントドリブン型プログラム

2010/03/13 23:12 に Masanobu Tanda が投稿   [ 2010/04/11 5:52 に更新しました ]

第24回 コンテキストメニューの作り方

 Magic V9Plus までは、基本プルダウンメニュー以外に基本コンテキストメニューというメニューオプションが用意されていましたが、これはアプリケーションの初期実行画面を右クリックして実行プログラムなどを選択するといった、ごく単純なコンテキストメニューの機能でした。 

 Magic V10 以降では、従来の基本コンテキストメニュー以外に、大幅にコンテキストメニューの機能が強化され、個々のコントロール、あるいはタスクの実行フォーム全体といった単位でコンテキストメニューを配置することが可能になっています。 

 今回はまず最初に、タスクのフォーム全体に対してコンテキストメニューを割り当て、マウスを右クリックして表示されるメニューから、実行の処理を分岐させる方法について解説いたします。 

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

記事概要 Magic V10 で作るイベントドリブン型プログラム

2010/02/08 7:45 に Masanobu Tanda が投稿

第23回 汎用ボタンの作り方

 アプリケーションを作り込んでいくと、タスクごとに何度も同じようなボタンの作成を強いられることがあります。このような時に便利なのが、モデルリポジトリにおけるボタンの登録です。

 ただし、モデルリポジトリにボタンの書式を登録するだけで、ユーザイベントの定義や実行イベントとの関連付けをタスクごとに定義しているとしたら、それはそれでまだ活用レベルが低いと言えます。

 今回は、これらの定義をすべて汎用的に事前登録し、個々のタスク内ではイベントハンドラを定義するだけという手法があることを紹介いたします。

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

記事概要 Magic V10 で作るイベントドリブン型プログラム

2010/01/06 6:54 に Masanobu Tanda が投稿   [ 2010/01/06 7:28 に更新しました ]

第22回 数値型カラムの「差分更新」

 前回の、「更新レコード特性の位置と更新項目」では、文字型カラムに対する排他制御の効率的な活用法について解説しました。今回は、数値型カラムに対する排他制御の効率的な活用法について説明します。

 Magic V9 以降、数値型カラムに対しては従来の「値更新」に対して、「差分更新」という機能が追加されました。ただし、この機能は SQL 系の DBMS に対してのみ有効であり、Pervasive.SQL では使用することができません。SQL Server もしくは Oracle 等の使用が必須となります。

 「差分更新」という機能は、ひと言でいうと、在庫引落しや在庫引当てに際して、元の在庫数がいくつであったかに関わらず、無条件に足し算や引き算を行ってくれるという機能です。したがって、マルチユーザ環境において楽観的ロックを引き起こすことなく、値の更新処理に整合性が取れるようになります。

 では具体的にどのようなものなのかを順を追って見て行くことにしましょう。

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

記事概要 Magic V10 で作るイベントドリブン型プログラム

2009/12/01 2:44 に Masanobu Tanda が投稿   [ 2010/01/06 7:29 に更新しました ]

第21回 更新レコード特性の「位置と更新項目」

 前回は、遅延トランザクションにおいても Magic ロックを使用すれば正しくレコードレベルの排他制御が行えることの解説をしました。ただし、リッチクライアントのアプリケーション上では Magic ロックが使用できないことの補足も説明しました。

 今回は、遅延トランザクションを使用した場合の、更新レコードの識別特性について解説します。更新レコードの識別特性を活用すれば、リッチクライアントを含めたすべての遅延トランザクションにおいて、更新の喪失を防ぐことが可能となります。

Pervasive における更新の喪失の問題点

 はじめに、Pervasive の物理トランザクションを用いて、排他制御をまったく行わなかった場合に起こる問題点について見ていきます。

 画面1と画面2はユーザ A さんとユーザ B さんがほぼ同時に商品ファイル更新プログラムを起動してレコードを修正しようとしている場合の例です。排他を解除するために、ロック方式は「N=なし」にしてあります。

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

記事概要 Magic V10 で作るイベントドリブン型プログラム

2009/11/03 5:16 に Masanobu Tanda が投稿   [ 2010/01/06 7:31 に更新しました ]

第20回 遅延トランザクションとレコードロック

 今回は遅延トランザクションとレコードロックについて解説いたします。遅延トランザクションと聞くと、残念ながらレコードロックは掛からないという誤解を抱いている方が多いようですが、実はそうではありません。遅延トランザクションを使用すると RDBMS 側の排他制御がリアルタイムで使用できなくなるだけで(実際には遅延から物理に入るときに制御されるのですが)、本来の Magic が得意とするところのレコードロックは健在なのです。

 ここでは始めに、物理トランザクションを使用した場合の排他制御のデフォルトの動作と、遅延トランザクションを使用した時の排他制御のデフォルトの動作を比較するところから検証を始めてみたいと思います。

物理トランザクション使用時のデフォルト動作

 画面1は Pervasive.SQL で作成した商品ファイル更新プログラムを、クライアント A とクライアント B で同時に起動したときの実行画面です。左上をクライアント A とし、右下をクライアント B とします。

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

記事概要 Magic V10 で作るイベントドリブン型プログラム

2009/10/07 23:36 に Masanobu Tanda が投稿   [ 2010/01/06 7:32 に更新しました ]

第19回 遅延トランザクションを利用した、処理の取消

 今回はトランザクションにまつわる話題を取り上げます。トランザクションと聞くと、障害時の復旧対策がまず思い付きますが、実はトランザクションの機能はプログラムのロジックの一部として利用されることも多いのです。

 例えば、受注伝票入力のプログラムがあったとして、オペレータが受注伝票の入力途中で入力作業をキャンセルしたいと思ったときの場面を想定します。

 通常、受注入力プログラムの構造は親子タスクの構造となっており、ヘッダ・フッタ部分の入力と、明細入力部分が分離しています。このとき、明細入力を終えて親タスクのヘッダ部分に戻ったときに、取消キーである「F2」キーまたは V10 以降では「Ctrl + F2」キーを押すと、親タスクは入力が取り消されてレコードは作成されませんが、子タスクでは明細レコードがゴミデータとしてテーブルに残ってしまいます。

 たいていの場合はこれに対処するために明細行の削除バッチを作成して、親レコードの入力がキャンセルされたら子レコードはバッチで削除するというロジックを組み込むかと思うのですが、実はトランザクションの機能を利用すればバッチタスクを作成しなくても、簡単に子レコードの入力をキャンセルすることができるようになるのです。

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

‹ 前へ    1 - 10 / 28 件    次へ ›

  Sign in   Terms   Report Abuse   Print page  |  Powered by Google Sites