Re: ACFinder 作物タブUI修正中
OhYeah!
投稿数: 983
オンライン

UI については雰囲気だけと言うことですが、1点だけ。検索タブの検索結果ですが、作物名のレベルが分かるようにしていただけるとありがたいです。
それと、SQL の修正を1点。たとえば、検索タブで「根深ねぎ」を「上位分類含む」で選択した場合、SQL が下記のようになり、根深ねぎ以外の level = 4 の作物まで検索されてしまいます。分類タブで「ねぎ、根深ねぎ、ねぎ類、ねぎ(露地栽培)」を選んだ場合も同様ですね。
ついでに、「(○○を除く)」の削除部分ですが、新 UI では適用検索時は常に正式な作物名が使用されるので、別名を処理する必要はないはずです。上の根深ねぎの例で言うと、
それと、SQL の修正を1点。たとえば、検索タブで「根深ねぎ」を「上位分類含む」で選択した場合、SQL が下記のようになり、根深ねぎ以外の level = 4 の作物まで検索されてしまいます。分類タブで「ねぎ、根深ねぎ、ねぎ類、ねぎ(露地栽培)」を選んだ場合も同様ですね。
SELECT idSaku FROM m_sakumotsu WHERE idSaku REGEXP '^(02000000|02990051|0299005109)'
level = 4 の作物名を含む場合、level = 3 の作物 ID は 10 桁にする必要があります。SELECT idSaku FROM m_sakumotsu WHERE idSaku REGEXP '^(02000000|0299005100|0299005109)'
この「02000000|0299005100|0299005109」を生成するロジックを SQL だけで書くと、下記のようになります。select concat('|', if(level = 4, idsaku, if(level < 3, substr(idsaku, 1, 8),if((select max(level) from sakumotsu where sakumotsu in ('野菜類','その他野菜類','ねぎ','根深ねぎ')) = 4, idsaku, substr(idsaku, 1, 8))))) from sakumotsu where sakumotsu in ('野菜類','その他野菜類','ねぎ','根深ねぎ')
複雑そうに見えて実行速度はほとんどかかりませんが、level = 4 を含むかどうかの判定は Delphi 側でやっちゃった方が分かりやすいですかねえ…。select max(level) from sakumotsu where sakumotsu in ('野菜類','その他野菜類','ねぎ','根深ねぎ')
これで maxlevel を取得して、maxlevel = 4 のときはselect concat('|', if(level < 3, substr(idsaku, 1, 8), idsaku)) from sakumotsu where sakumotsu in ('野菜類','その他野菜類','ねぎ','根深ねぎ')
maxlevel < 4 のときはselect concat('|', substr(idsaku, 1, 8)) from sakumotsu where sakumotsu in ('野菜類','その他野菜類','ねぎ')
ついでに、「(○○を除く)」の削除部分ですが、新 UI では適用検索時は常に正式な作物名が使用されるので、別名を処理する必要はないはずです。上の根深ねぎの例で言うと、
concat('、', sakumotsu, betsumei) NOT REGEXP '\((.*、)?(野菜(類)?|その他野菜(類)?|ねぎ|根深ねぎ)(、.*)?を(除|のそ)く'
の部分は、sakumotsu NOT REGEXP '\((.*、)?(野菜(類)?|その他野菜(類)?|ねぎ|根深ねぎ)(、.*)?を除く'
と単純化できます。
投票数:2
平均点:5.00
投稿ツリー
-
ACFinder 作物タブUI修正中 (kabe, 2013.10.16 23:16)
-
Re: ACFinder 作物タブUI修正中 (kabe, 2013.10.17 06:52)
-
Re: ACFinder 作物タブUI修正中 (OhYeah!, 2013.10.19 22:24)
-
ACFinder 131024test版 exeのみ (kabe, 2013.10.24 22:14)
-
Re: ACFinder 131024test版 exeのみ (OhYeah!, 2013.10.24 23:21)
-
Re: ACFinder 131024test版 exeのみ (OhYeah!, 2013.10.25 09:47)
-
Re: ACFinder 131024test版 exeのみ (OhYeah!, 2013.10.25 14:10)
-
ACFinder 131027test版 exeのみ (kabe, 2013.10.27 22:57)
-
Re: ACFinder 131027test版 exeのみ (OhYeah!, 2013.10.27 23:57)
-
Re: ACFinder 131027test版 exeのみ (OhYeah!, 2013.10.28 10:56)
-
未削除屋号 (OhYeah!, 2013.10.28 13:50)
-
登録日/有効期限 (OhYeah!, 2013.10.28 16:12)
-
Re: 登録日/有効期限 (OhYeah!, 2013.10.29 09:05)
-
-
分類ツリーの全開/全閉 (OhYeah!, 2013.10.30 08:56)
-
ACFinder:薬剤タブと別窓 (OhYeah!, 2013.11.03 12:06)
-
ACFinder131104test版 exe のみ (kabe, 2013.11.04 21:32)
-
Re: ACFinder131104test版 exe のみ (OhYeah!, 2013.11.05 00:23)
-
-
Re: ACFinder:薬剤タブと別窓 (OhYeah!, 2013.11.08 16:27)
-
-
-
-
-