Laboratory of Mobile Agricultural Chemicals Searcher
携帯農薬検索実験室

研究会

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
93 / 114 ツリー <前へ | 次へ>

〔129〕プログラム解説 #1: 薬検詳細検索 Hidemi Oya (06/03/26 22:58)
〔130〕プログラム解説 #2: 当サイト検索システムの... Hidemi Oya (06/03/27 23:48)

〔129〕プログラム解説 #1: 薬検詳細検索
 Hidemi Oya WEB  (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 パラメータで返ってきます。

〔130〕プログラム解説 #2: 当サイト検索システム...
 Hidemi Oya WEB  (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か所にまとまるため、パスワード認証機能の搭載やサーバサイドセッションの利用がしやすかったというのもあります。

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
93 / 114 ツリー <前へ | 次へ>
ページ:  ┃  記事番号:   
(SS)C-BOARD vv3.8 is Free.