ColdFusionカフェテリア
SAMURAIZ

 

サンプルシステムを作ってみましょう4

作成日: 2010年2月8日
作成者:ハイミン・エンタープライズ(株) 千葉 博胤
佐藤 弘一
最終更新日: 2010年2月8日

サンプルシステムを作ってみましょう4

前回の第7回の記事にて、工程登録・変更・削除機能を解説しました。ここまでで、このプロジェクト管理機能の大もととなる機能は完成しました。残るはマスタ管理機能です。
今回紹介するマスタ管理機能は、CFGRIDというColdFusionが持つグリッド機能を使ってみます。他のColdFusionの機能と同様、わずかなコーディングによってグリッドを実装する事ができます。
では実際に詳しく見てみましょう。

 

■工程マスタ

工程マスタを例に解説します。顧客マスタに関しては、まったく同じ仕組みなので割愛します。
ColdFusionのグリッドは非常に簡単なプログラミングで実装することができます。
process01.cfmを見てみましょう。難しいことは何もやっていません。まずは、グリッドを表示するところです。グリッドの表示方法はいくつかありますが、以下の方法で実装しています。

<cfform name="frm1" action="process01.cfm" method="post" enablecab="yes">
    <cfgrid format="html" name="grdProcess" sort="true" striperows="yes"
        insert="yes" delete="yes" selectmode="edit" query="retProcessMST"
        insertbutton="追加する" deletebutton="削除する">
    </cfgrid>
    <cfinput type="submit" name="sbmt" value="更新">
</cfform>

<cfgrid>タグの属性として、selectmode=editとします。これを指定しないと、insert属性、delete属性を指定しても、insert、deleteのボタンが表示されません。そして、query属性にて顧客マスタを取得するクエリを指定します。これでグリッドに顧客マスタのデータを表示することができます。

そしてもう1点。ここが肝です。
グリッド上にてデータの追加もしくは、変更、削除を行った後、更新ボタンを押す仕様になっています。更新ボタンが押され、データがサブミットされると、<cfgridupdate>タグにて更新内容がデータベースに反映されます。登録・変更・削除のSQL文は不要で、ColdFusion側で自動的に行ってくれます。

<cfif IsDefined("form.sbmt")>
    <cfgridupdate grid="grdProcess" dataSource="#Application.dsname#"
        Keyonly="false" tableName="M_PROCESS">
</cfif>

dataSource属性にて、データソースを指定し、tableName属性にて更新するテーブルを指定します。非常に簡単に編集可能なグリッドを実装できますね。

今回のサンプルでは使用していませんが、もう1つの実装方法があります。
クエリを使用したやり方です。
グリッドのデータがPOSTされると、以下のような配列が渡されます。
grdProcess.RowStatus.Action・・・グリッドの更新内容の区分(追加:I、変更:U、削除:D)
grdProcess.process_cd・・・グリッドの工程コードの内容
grdProcess.process・・・グリッドの工程の内容
grdProcess.Original.process_cd・・・process_cdの変更前の内容
grdProcess.RowStatus.Actionの値に応じて、Insert・Update・Deleteの処理を行います。
こちらの実装方法の方が手間はかかりますが、より細かい処理を行うことができます。例えば、グリッドに表示されていない項目の更新や、複数テーブルへの更新などです。そういった事がないのであれば、<cfgridupdate>タグでもいいかと思います。
 
これで、マスタの新規追加、変更、削除を行うことができるようになりました。

 

■ダウンロード

完全版のプログラムソースは以下からダウンロードして下さい。

  ファイル名 サイズ  
Download 33_source.zip 22kb プログラムソース

 

■さいごに

CFGRIDについて・・・
紹介しておいて何ですが、このCFGRIDはいまいち安定しません。参考程度に、こういう機能もあるんだなという程度で覚えておいてください。グリッドを実装するのであれば、Flexで作った方がより高度なものが作れます。
 
ここまででこのプロジェクト管理システムは完成となります。どうでしたか、他の言語にくらべて非常に簡単にできたのではないでしょうか?
ここでは、基本的な機能をサンプルとして示しただけなので、もし実用的なシステムとするには、実装しなければいけない機能はもっとあります。例えば、バリデーションチェックや例外処理であったり、プロジェクトで使用しているマスタは削除できないようにするなど。今回はColdFUsionの仕組みやColdFusionでできる事を知ってもらうために極力シンプルにし、そういった機能は省略しました。
ColdFusionを勉強しているエンジニアの方は、このプロジェクト管理システムに、不足している部分を追加してみてはどうでしょうか。勉強になると思います。

 
さて、今回の第8回連載でプロジェクト管理システムの構築を完了します。
次回は、ColdFusioでの開発を、より実践的なものにするために、もうワンランクアップするために、知っておくと便利ないくつかの手法を紹介したいと思います。

ColdFusionの各種情報の配信


最新情報
■2017/6/26
『ColdFusion 実験室』
実験6

■2017/3/27
ColdFusion 2016 対応
インストール セットアップ情報
CFサーバーのインストール
CFビルダーのインストール

■2016/9/20
『ColdFusion 2016 リリース
Enterprise Edition 活用資料』
記事一覧

■2016/3/30
『ColdFusion 実験室』
実験4、実験5

■2015/8/10 〜
『ColdFusion クリニック』
記事一覧(随時更新中)

■2015/4/8
『JasperReportsによる帳票出力』
2. JasperReportsによる帳票出力【後編】

■2015/3/12
アップクロス株式会社
西元 貞昭様
『JasperReportsによる帳票出力』
1. JasperReportsによる帳票出力【前編】


■2015/2/25
『ColdFusionでエクセルを使いこなそう!』
4. 【上級】ColdFusionのエクセル機能を利用したPDF帳票の紹介

ColdFusionトレーニング


ColdFusionユーザーグループ
ColdFusionユーザーグループ
Copyright 2012 Samuraiz Corporation. All Rights Reserved.