|
|
Hidemi Oya
(06/03/26 22:58)
|
|
|
| |
農薬検査所農薬登録情報検索システムの詳細検索は、下記のようなプログラム構成になっています。
実際の検索画面は、左側が農薬名等を設定して「検索」ボタンにより vtllg303.do を実行するフレーム、右側が作物名等または病害虫名等を設定して vtllk101.do/vtllk102.do を実行するフレームです。左側フレームの「絞込み」ボタンをクリックすることにより、JavaScript で vtllk101.do/vtllk102.do が切り替えられます。作物名等あるいは病害虫名等を設定して「選択」ボタンをクリックすると vtllk101.do/vtllk102.do が実行され、検索語に該当する作物名/病害虫名等が表示されます。分類名等のリンクをクリックすると JavaScript により分類を展開したり、名称テキストボックスにクリックした作物名/病害虫名等を書き込みます。「追加」ボタンをクリックすると、JavaScript により左側フレームに作物コード・作物名等/病害虫コード・病害虫名等が書き込まれます。
「検索」ボタンをクリックすると vtllg303.do が実行され、その結果として農薬一覧が表示されます。農薬一覧の登録番号のリンクをクリックすると、JavaScript によりその登録番号をパラメータとして vtllg304.do が実行され、農薬登録票が表示されます。農薬登録票の「適用表」リンクをクリックすると、JavaScript により登録番号をパラメータとして vtllg103.do が実行され、適用表が表示されます。
ファイル名 内容 パラメータ
----------- ------------------ --------------------------------
vtllk101.do 作物名等検索 CGI skmt_name(作物名)
vtllk102.do 病害虫名等検索 CGI byg_name(作物名)
vtllg303.do 農薬検索メイン CGI skmt[0].label(作物名),
byg[0].value(病害虫コード),
byg[0].label(病害虫名),
nyk_syu_name(農薬の種類),
nyk_name(農薬の名称),
zai.value(剤型コード),
zai.value(剤型名),
currentPage, trk_date.year,
trk_date.month, trk_date.day,
yuko_date.year, yuko_date.month,
yuko_date.day, その他
vtllg304.do 農薬登録票表示 CGI clickTrk_no(登録番号)
vtllg103.do 適用表表示 CGI clickTrk_no(登録番号)
各 CGI の呼び出しは全て POST メソッドで行われていますが、GET メソッドでも使用可能です。
vtllg303.do の()無しパラメータは必須パラメータで、値は無くても必ず設定する必要があります。()有りパラメータは、当サイトの検索システムで検索条件として使用しているパラメータです。skmt[0].label パラメータは、呼び出す際には設定不要ですが、「大分類 > 中分類 > 作物名」の形に展開されて返されるというおもしろい特徴があります。skmt/byg は [0]..[2] のそれぞれ3個設定できますが、skmt[n].label が返ってこなくなるため、当サイトの用途には不向きです。
vtllg304.do/vtllg103.do を呼び出す際は、clikTrk_no 以外に vtllg303.do で使用されている全てのパラメータを渡します。vtllg303.do 同様、出力 HTML にも hidden パラメータで返ってきます。
|
|
|
|
|
|
Hidemi Oya
(06/03/27 23:48)
|
|
|
| |
当サイトの検索システムは、薬検詳細検索の各 CGI を呼び出して、それを携帯電話でも見られるように変換作業を行っています。
しかし、薬検詳細検索が5本の CGI で構成されているのに対し、当サイトの検索システムはたった1本の CGI でできています。これは、当サイトの検索システムが基本的に翻訳機だからです。
薬検詳細検索のどの CGI を呼び出す場合でも、処理工程は下記のとおり全く変わりません。このため、薬検の全ての CGI に対して、こちら側は1本の CGI で間に合ってしまうわけです。
(1) 共通前処理
(2) 薬検 CGI 呼び出しのためのパラメータ設定
(3) 薬検 CGI 呼び出し
(4) 薬検 CGI 出力の携帯端末対応翻訳
もちろん、(2) と (4) は呼び出す薬検側の CGI によって処理内容が異なります。が、それぞれの CGI に合わせたプログラムをインクルードすることで、簡単に対応できます。
この方法の利点は、(2), (4) の部分を個別に変更しても他への影響がない、検索システム全体に共通する大きな変更もメインの CGI プログラム1本を変更するだけですみ(場合によって (2) の変更は必要かもしれないが、(4) は変更不要)、開発効率と保守性が非常に高いところにあります。
もうひとつの方法として、薬検側の CGI に1対1で対応する CGI を作成する方法もあります。この場合でも、(1) と (3) の処理をインクルードファイルにする手法を採れば、ある程度の開発効率と保守性を確保することが可能です。こちらの方法のメリットは、拡張性の高さにあります。複数の検索結果を比較するような拡張を行う場合は、こちらの方法が必須になります。
では、なぜ当サイト検索システムが前者の方法を採っているかというと、開発当初は複数の人が (2), (4) の部分を分担して開発することを想定していたからです(結局一人で開発したのでこの点では意味がなかったわけですが^^;)。さらに、薬検 CGI 呼び出しの流れの制御が1か所にまとまるため、パスワード認証機能の搭載やサーバサイドセッションの利用がしやすかったというのもあります。
|
|
|
|
|
 |
 |