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

研究会

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

〔482〕ACFinder 060911版[12]  /  〔489〕当掲示板の RSS2.0 配信開...[0]  /  〔480〕ACFinder 060905版[1]  /  〔474〕ACFinder 060831版[3]  /  〔463〕ACFinder 060828版[12]  /  〔461〕ACFinder 060820版[1]  /  〔440〕ACFinder 060815版[10]  /  〔454〕2006年8月16日登録反映分...[2]  /  〔449〕ACFinder 060817test版[5]  /  〔438〕ACFinder 060810版[1]  /  

〔482〕ACFinder 060911版
 kabe WEB  (06/09/11 23:18)

引用なし
   kabeです。

060911版です。
http://acfinder.kabe.info/

Hidemi Oya さんより定型処理タブ部分の新版、その他、SQLite 関連ライブラリの修正版をお送りいただき、組み込みました。
定型処理テンプレートも一新されています。
regexp 演算子を活用して、より意図した検索ができるよう改善されています。

詳しい解説は Hidemi Oya さんよりお願いします。

〔492〕Re:行選択モード
 kabe WEB  (06/09/20 22:04)

引用なし
   >Hidemi Oyaさん

kabe です。

> 単純に、ツールバーに行選択/セル選択のモード切替アイコンを追加して、行選択モードで複数行選択されてる場合は、その行を一括削除するってのが現実的で使い勝手も良いかもしれません。
将来的には行セレクタを付けたいと思いますが、当面このあたりが簡単で良さそうです。

> ま、そういう意味では、対象作物だけでなく、対象病害虫でも絞り込めればもっと便利かもしれません。
そうなると逆に作物タブに有効成分で絞り込める機能を付けた方が良さそうな気もします。有効成分名で右クリックした時に、「マンゼブで絞り込む」とか。

〔493〕Re:右クリックコピー
 kabe WEB  (06/09/20 22:23)

引用なし
   >Hidemi Oyaさん

kabe です。

> 手っ取り早い対策は、
>>「○○」をコピーというメニューを追加していただけるとありがたいです。
>の方でしょうか…。
単純に、右クリックした時のセルをコピーする方式に統一しますか。
(複数範囲選択時は従来どおり選択範囲のコピー)

〔494〕Re:右クリックコピー
 Hidemi Oya WEB  (06/09/20 23:23)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>単純に、右クリックした時のセルをコピーする方式に統一しますか。
>(複数範囲選択時は従来どおり選択範囲のコピー)
 元々は、Google 検索等では右クリックしたセルの値が使われるのに、コピーでは現在選択されているセルの値が使われるのは分かりにくいというのが主旨なので、これが一番素直な解ですかね。

〔496〕右クリック絞り込み
 Hidemi Oya WEB  (06/09/20 23:52)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>そうなると逆に作物タブに有効成分で絞り込める機能を付けた方が良さそうな気もします。有効成分名で右クリックした時に、「マンゼブで絞り込む」とか。
 なるほど。Google 検索等と同様に、各タブの各列で、右クリックしたときのセルの値で絞り込む機能があれば、Excel のオートフィルターのような感じで結構便利そうですね。
 できれば、右クリックではなく、コンボボックス2つを配置した絞り込みペイン(あるいはツールバー)を設置して、左側のコンボボックスで列を選択、右側のコンボボックスで値を選択という感じなら、さらに良いかも…。各タブのコンボボックスタイプの絞り込み機能が不要になりそうですが(^_^;)。

 薬剤タブの全農薬・全適用一覧表示と両方実装してもらえるなら、願ったりかなったりです。

・ツリー全体表示

〔489〕当掲示板の RSS2.0 配信開始
 Hidemi Oya WEB  (06/09/20 21:15)

引用なし
    この掲示板の RSS2.0 配信を開始しました。もともと (SS)C-BOARD が持っている機能なので、RSS1.0 や Atom には対応していません(RSS0.91 には対応しているようです)。
 とりあえず、最新 10 記事のタイトルを配信するようにしました。内容配信には (SS)C-BOAR が対応していないようですが、記事数や最新ツリーの親記事だけ表示といった変更は可能です。ご意見があればここに書き込んでください。

・ツリー全体表示

〔480〕ACFinder 060905版
 kabe WEB  (06/09/05 23:46)

引用なし
   kabeです。

060905版です。
http://acfinder.kabe.info/

[#475][#477]
SQLエディタのキーワード文字列を修正しました。
* + - / はキーワードから除外しました。

検索結果表示グリッドでカーソルキーで左右に移動した場合に表示幅ゼロの列(データが存在しないフィールド)があるためカーソルが見えなくなることがあり、操作に違和感がありました。データが存在しない列は削除するようにしました。

列削除、行削除機能を付けました。
低機能です。範囲選択して複数列、行を削除することはできません。

〔481〕Re:ACFinder 060905版
 Hidemi Oya WEB  (06/09/11 1:20)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

 定型処理を書き換えてて、いつも途中で眠くなってしまい、なかなか返信できずにすみませんでした。

>列削除、行削除機能を付けました。
 これで ToDo リストは全てチェック済みでしょうか…。

>低機能です。範囲選択して複数列、行を削除することはできません。
 列の方はともかく、範囲選択して複数行を一発削除できるようになると完璧ですね。StringGrid は、1行/1列削除でも結構面倒なので、Excel のような行削除は難しいですかねえ…。

・ツリー全体表示

〔474〕ACFinder 060831版
 kabe WEB  (06/08/31 22:58)

引用なし
   kabeです。

060831版です。
http://acfinder.kabe.info/

[#468]
屋号抜き取り辞書に「トクソー」を追加しました。
ただし例によってデータベース更新しないと反映されません。

>SQL タブで、http://www.sqlite.org/lang_expr.html にある標準のスカラー関数、集約関数で色分けされないものがあります。
一応追加してみましたので、確認お願いします。

[#471]
>SQL タブのエディタの右ボタンクリックで、「切り取り」が単なる削除になっていて、クリップボードに切り取ったテキストが入りません。
「切り取り」は修正しました。
ただ、「削除」のみは付けてないんですが、必要ですか?

>あと、エディタの右ボタンメニューに、「全選択」と「全消去」があると便利かな。
追加しました。

[#470]
vTekiyo, vTsushoTekiyo を tekiyoビューからではなく、実テーブル m_tekiyo と m_kihon から作成するようにしてみました。
ただ劇的に速くなったようには感じられないのですが、インデックスの作成方法とか他にテクニックあるんでしょうか。

>vTsushoTekiyo の最後に「ORDER BY LENGTH(meisho) DESC」を追加するといけそうです。
ORDER BY LENGTH(meisho)の部分、薬剤タブのメーカーごとの農薬名を選択するコンボボックスの作成に利用してみました。一番短い農薬名が先頭に来ます。

〔475〕Re:ACFinder 060831版
 Hidemi Oya WEB  (06/09/01 0:28)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>>SQL タブで、http://www.sqlite.org/lang_expr.html にある標準のスカラー関数、集約関数で色分けされないものがあります。
>一応追加してみましたので、確認お願いします。
 どわ〜、あっという間に全部追加しちゃったんですね。ここまで対応してると、微妙に残っているのは残念なので、いくつか気づいた点を…。
 ビット演算子の '|'、単項演算子の '!', '~' が抜けているようです。あと、exists が exist として登録されちゃってるようです。

>ただ、「削除」のみは付けてないんですが、必要ですか?
 と、改めて聞かれてみると…う〜ん、範囲選択後の Delete キーしか使ってないですね(^_^;)。

>ただ劇的に速くなったようには感じられないのですが、インデックスの作成方法とか他にテクニックあるんでしょうか。
 確かに、それほど速くなった感じがしませんね。う〜ん、何でだろう?
 私が自前ソフトで確認した(ACFinder では CREAE VIEW できないので)時は、集約関数を使ったクロス表作成で、tekiyo と全く同様に 0.1 秒で表示まで完了しました(従来の vTsushoTekiyo だと3秒前後)。データベースは UTF-8 版の acis.db なので、インデックスとかは全く同じです。UTF-8/16 の違いですかねえ? 明日もう少し詰めてみます。

>ORDER BY LENGTH(meisho)の部分、薬剤タブのメーカーごとの農薬名を選択するコンボボックスの作成に利用してみました。一番短い農薬名が先頭に来ます。
 う〜ん、従来通りのようですが?

〔477〕SQL エディタの色分け
 Hidemi Oya WEB  (06/09/01 22:05)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

'*' は乗算演算子よりも SELECT 文で使うことの方が多いと思いますが、SELECT 文の '*' がボールドで色分けされてると、結構違和感があります。'SELECT *' や 'DISTINCT *'、あるいは '(*)' なら色分けしないってのは、可能でしょうか?
 無理なら、記号1文字演算子は色分けしない方が良いかなあ…。

〔479〕vTsushoTekiyo
 Hidemi Oya WEB  (06/09/02 11:58)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>明日もう少し詰めてみます。
 試してみたら、従来のビューでも新しいビューでも速度は変わりませんでした。先日確認したときに速かったのは、[#470] のビューなので、DISTINCT を付け忘れてたからというのが真相のようです(^_^;)。

 で、vTsushoTekiyo をビューではなく CREATE TEMP TABLE で一時テーブルとして作成すると(SQLite.pas では標準状態だと一時テーブルはメモリ上に作成)、最初にテーブル作成に若干時間はかかりますが、検索速度は上がりますね。
 検索開始から表示完了までの時間は、私の環境では下記の通りです。(2) のような複雑なクエリには大きな効果がありますが、集約関数を使う場合は vTsushoTekiyo では同通称異適用に対応できないので、定型処理で使うことはないでしょう。作物タブや病害虫タブでは体感できるほどの効果は期待できないので、vTekiyo, vTsushoTekiyo を一時テーブルにする意味はあまりなあそうです。

一時テーブル作成 3.8 秒

(1) の実行
ビュー: 1回目 1.2 秒、2回目以降 0.9 秒
テーブル: 1回目 0.9 秒、2回目以降 0.6 秒

(2) の実行
ビュー: 1回目 3.9 秒、2回目以降 3.7 秒
テーブル: 1回目 0.2 秒、2回目以降 0.2 秒

(1) SELECT * FROM vTekiyo WHERE (sakumotsu LIKE '稲%')

(2) SELECT
 zaikei,
 tsusho,
 sakumotsu,
 jiki,
 kaisu,
 seibun1,
 kaisu1,
 seibun2,
 kaisu2,
 seibun3,
 kaisu3,
 seibun4,
 kaisu4,
 seibun5,
 kaisu5,
 MAX(CASE byochu WHEN 'べと病' THEN baisu ELSE '' END) AS hex("べと病"),
 MAX(CASE byochu WHEN 'うどんこ病' THEN baisu ELSE '' END) AS hex("うどんこ病"),
 MAX(CASE byochu WHEN '灰色かび病' THEN baisu ELSE '' END) AS hex("灰色かび病"),
 MAX(CASE byochu WHEN '菌核病' THEN baisu ELSE '' END) AS hex("菌核病"),
 MAX(CASE byochu WHEN '斑点細菌病' THEN baisu ELSE '' END) AS hex("斑点細菌病"),
 MAX(CASE byochu WHEN '褐斑病' THEN baisu ELSE '' END) AS hex("褐斑病"),
 MAX(CASE byochu WHEN '黒星病' THEN baisu ELSE '' END) AS hex("黒星病"),
 MAX(CASE byochu WHEN '炭疽病' THEN baisu ELSE '' END) AS hex("炭疽病"),
 MAX(CASE byochu WHEN 'つる枯病' THEN baisu ELSE '' END) AS hex("つる枯病"),
 CONCAT(', ', CASE WHEN byochu NOT IN ("べと病","うどんこ病","灰色かび病","菌核病","斑点細菌病","褐斑病","黒星病","炭疽病","つる枯病") THEN byochu||''||baisu ELSE '' END) AS hex("その他")
FROM vTsushoTekiyo
WHERE
 sakumotsu IN ("きゅうり","きゅうり(施設栽培)")
 AND yoto IN ("殺菌剤")
 AND hoho LIKE '%散布%'
 AND (jiki LIKE '収穫%' OR IFNULL(jiki, '-') = '-')
 AND zaikei IN ("乳剤","水和剤","水溶剤","液剤","マイクロカプセル剤","エアゾル")
 AND shurui NOT IN ("プロパモカルブ塩酸塩液剤")
GROUP BY tsusho
ORDER BY seibun1, seibun2, seibun3, seibun4, seibun5

・ツリー全体表示

〔463〕ACFinder 060828版
 kabe WEB  (06/08/28 23:07)

引用なし
   kabeです。

060828版です。
http://acfinder.kabe.info/
修正内容はACFinderサイトを参照してください。

プログラム内部で使用している SQLite用の Delphi ライブラリを Hidemi Oya さん作成のものに変更しました。
ライブラリは追って Hidemi Oya さんのサイトで公開される(?)ものと思いますが、Delphi で SQLiteを扱うにはとても便利です。
ACFinder がアプリケーション第1号かな。

なお今回のバージョンですが、起動時のデータ更新チェック機能にバグがあります。
今まで、私の手抜きで、「2006年8月16日登録反映」などの登録更新情報部分のみ Shift-JIS でデータベースに保存していました。
060828版では全てのデータを UTF16で扱いますが、Shift-JISのデータを読むと文字化けするため、新しいデータがあると勘違いしてデータ更新を促します。
数日中に8/28登録反映データが更新されると思いますので、その際にデータ更新を行うと直りますが、気になる場合は、手動で XLS->データベース更新を1回実行してください。

〔472〕Re:通称の代表適用の変更機能
 kabe WEB  (06/08/31 20:05)

引用なし
   >Hidemi Oyaさん

kabe です。

>通称モードではSTダコニール1000の適用が表示されます。このため、通称モードばかり使用していると、登録変更されたことに気づきにくいです。
というか、全ての適用内容が同じだと、重複を省いて表示しますが、ひとつでも異なると、同一の農薬通称で異なる適用内容が表示されます。
例えば作物タブで「きゅうり」「褐斑病」を検索した場合、農薬の種類か農薬通称でソートするとわかりますが、TPN水和剤、ダコニール1000の表示が2件出てきます。どこが異なるのかはひとつひとつ項目を確認しないとわかりませんが、使用回数をみると8回と4回の2種類の登録があることがわかります。ここで、どうやらメーカーによって登録内容が違うらしいと気付いて、薬剤タブで確認できればいいのですが、いずれにしても、気づきにくいことに変わりはありませんね。

このような場合を想定すると、とりあえずの対策としては検索時のソート項目を農薬の種類か、農薬通称で並べ替えるようにした方が良さそうですね。
(あるいはユーザーがソート条件を設定できるようにするか)

>現在は、登録番号が若いものが代表適用として使用されるようですが
代表適用というよりは、その農薬通称の最大限の登録適用が表示されます。なので
メーカーによっては通称モードで表示された登録が存在しないこともありえます。

ここらへんの注意点は、ACFinder サイトにまとめページを作りますか。

〔473〕Re:通称の代表適用の変更機能
 Hidemi Oya WEB  (06/08/31 22:40)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>というか、全ての適用内容が同じだと、重複を省いて表示しますが、ひとつでも異なると、同一の農薬通称で異なる適用内容が表示されます。
 そうか、作物タブ・病害虫タブではそうなっていますね。ここんとこ定型処理ばかり使ってたので、作物タブ・病害虫タブでも同じだと思ってました。
 なるほど、SELECT DISTINCT の秘密はここにあったんですね。う〜む、こういう便利な使い方があるとは全く気づいてませんでした。実は、1月以上前から複数作物農薬一覧で適用作物が多い順に並べ替えられるようにしたいと思って、通称ごとの対象作物数のカウント方法をサブクエリーなどいろいろトライしてまして、今日
 COUNT(DISTINCT sakumotsu)
という実に簡単な方法でいけることに気がついたばかりでした。なかなか奥が深いですね、DISTINCT は。

 しかし、集約関数を使った定型処理では、通称でグルーピングしたデータを集約関数に渡すのが基本になるので、SELECT DISTINCT を使っても意味がありません。何かほかの手だてを考えなければなりませんが、さてどうやって回避したらいいんだろう…。

>ここで、どうやらメーカーによって登録内容が違うらしいと気付いて、薬剤タブで確認できればいいのですが、いずれにしても、気づきにくいことに変わりはありませんね。
 そういや、先日私の直属の上司が ACFinder 使ってて「ダコ1000が2つ出るけど?」っていってたので、「右ボタンクリックで薬剤タブで検索して、製剤ごとの登録を見てください」と話したところでした。

>ここらへんの注意点は、ACFinder サイトにまとめページを作りますか。
 注意点をまとめるというより、使用方法等も含めて FAQ か逆引きマニュアルのようなものがあるといいかもしれませんね。
 ここんとこ、事務所内で「こんなことできないの?」「これでできますよ」「こんな機能もあったんだ」というような会話が多いです。機能が豊富すぎて、なかなか全ての機能をみんなに知らせることもできませんし。

〔476〕解決:定型処理での対策
 Hidemi Oya WEB  (06/09/01 9:09)

引用なし
   自己レスです。

> しかし、集約関数を使った定型処理では、通称でグルーピングしたデータを集約関数に渡すのが基本になるので、SELECT DISTINCT を使っても意味がありません。何かほかの手だてを考えなければなりませんが、さてどうやって回避したらいいんだろう…。
 meisho でグルーピングしたデータを従来の SELECT 文に渡し、それをさらに SELECT DISTINCT * に渡せば OK でした。従来の SQL よりは若干速度低下しますが、気になるほどではありません(結果のレコード数が多いと顕著な速度低下があるかもしれませんが)。

SELECT DISTINCT * FROM (SELECT 従来設定 GROUP BY meisho)

〔478〕Re:解決:定型処理での対策
 Hidemi Oya WEB  (06/09/02 0:08)

引用なし
   さらに、自己レスです。

>SELECT DISTINCT * FROM (SELECT 従来設定 GROUP BY meisho)
 これって、結局
SELECT DISTINCT 従来設定 GROUP BY meisho
と同じですね(^_^;)。

・ツリー全体表示

〔461〕ACFinder 060820版
 kabe WEB  (06/08/20 21:43)

引用なし
   kabeです。

060820版です。
http://acfinder.kabe.info/

データ更新専用起動オプションを付けてみました。
acfinder /u で更新のみ実行します。
完全に裏で動かす方法がわからず、フォームを最小化して実行しています。
そのため最小化したフォームがデスクトップの片隅に、アイコンがタスクバーに現れます。更新が終わると勝手に消えます。
更新専用で起動し、更新を実行した場合、データベースフォルダに update.log を作成します。

LAN内の共有フォルダからデーターベースファイルをコピーしてくる機能を付けました。
設定>基本設定>接続タブ で
「LAN内の共有フォルダからデーターベースファイルをコピーする」をチェックし、共有フォルダ名を設定しておくと、農薬検査所サイトにはアクセスせず、起動時に共有フォルダのデータベースをチェックして更新があれば自分のPCにコピーします。
この機能が有効であっても、ツールバーの「データ更新」は従来どおりです。

一応、うちの家庭内LAN環境で動作確認していますが、今回の追加機能に関しては想定どおりに動作するという自信がありません。(^^;
動作実験にご協力お願いします。

〔462〕Re:ACFinder 060820版
 Hidemi Oya WEB  (06/08/20 22:27)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

 060820 版は未使用ですが、[#448]
>メインフォームの Createイベントの最後で、データ更新機能を動かすようにしており、データ更新はしているのですが、メモリリークが出たりでまだ実用になりそうもありません。
に関して…。Sample1 のように、メインフォーム OnCreate イベントの最初で Application.Terminate を実行してもメモリリークが発生しますか?
 もし発生するなら、Sample2 はどうでしょう?

----- Sample1 -----
-- sample1.dpr --
program sample1;

uses
 Forms,
 Main in 'Main.pas' {frmMain};

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TfrmMain, frmMain);
 Application.Run;
end.

-- Main.pas --
unit Main;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TfrmMain = class(TForm)
  procedure FormCreate(Sender: TObject);
 private { Private 宣言 }
 public { Public 宣言 }
 end;

function UpdateOnly: boolean;

var
 frmMain: TfrmMain;

implementation

{$R *.dfm}

uses
 Sub;

function UpdateOnly: boolean;
var
 i: integer;
begin
 Result := false;
 for i := 1 To ParamCount do begin
  Result := AnsiSameText(ParamStr(i), '/U');
  if Result then break;
 end;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
 if IsUpdated then
  with TfrmSub.Create(Self) do begin
   ShowModal;
   Release;
  end;
 if UpdateOnly then begin
  Application.Terminate;
  Exit;
 end;
 // 本来のメインフォーム OnCreate イベントハンドラ
end;

end.

-- Sub.pas --
unit Sub;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TfrmSub = class(TForm)
 private { Private 宣言 }
 public { Public 宣言 }
 end;

function IsUpdated: boolean;

var
 frmSub: TfrmSub;

implementation

{$R *.dfm}

function IsUpdated: boolean;
begin
 Result := true; // 本来はアップデートされているかどうかを返す
end;

end.

----- Sample2 -----
-- sample2.dpr --
program sample2;

uses
 Forms,
 Main in 'Main.pas' {frmMain},
 Sub in 'Sub.pas' {frmSub};

{$R *.res}

begin
 Application.Initialize;
 if IsUpdated then
  with TfrmSub.Create(nil) do begin
   ShowModal;
   Release;
  end;
 if UpdateOnly then
  Application.Terminate // これは不要かも
 else begin
  Application.CreateForm(TfrmMain, frmMain);
  Application.Run;
 end;
end.

-- Main.pas --
unit Main;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TfrmMain = class(TForm)
  procedure FormCreate(Sender: TObject);
 private { Private 宣言 }
 public { Public 宣言 }
 end;

function UpdateOnly: boolean;

var
 frmMain: TfrmMain;

implementation

{$R *.dfm}

uses
 Sub;

function UpdateOnly: boolean;
var
 i: integer;
begin
 Result := false;
 for i := 1 To ParamCount do begin
  Result := AnsiSameText(ParamStr(i), '/U');
  if Result then break;
 end;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
 // メインフォーム OnCreate イベントハンドラ
end;

end.

-- Sub.pas --
unit Sub;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TfrmSub = class(TForm)
 private { Private 宣言 }
 public { Public 宣言 }
 end;

function IsUpdated: boolean;

var
 frmSub: TfrmSub;

implementation

{$R *.dfm}

function IsUpdated: boolean;
begin
 Result := true; // 本来はアップデートされているかどうかを返す
end;

end.

・ツリー全体表示

〔440〕ACFinder 060815版
 kabe WEB  (06/08/15 22:35)

引用なし
   kabe です。

060815版です。
http://acfinder.kabe.info/

Hidemi Oya さんよりデータ更新高速化ルーチンを提供いただき組み込んでみました。
その結果データベース更新時間が大幅に短縮しました。
環境にもよると思いますが、今までの半分以下の時間でデータベース更新が完了します。

[#439]
HTML表示ウインドウに文字サイズ調整トラックバーを付けました。
現状の仕様としてフォームを閉じる時に文字サイズを中(5段階の真ん中)に戻します。(定型処理タブのテンプレート処理内容の文字サイズも変わってしまうため)

作物選択ダイアログ、病害虫タブの病害虫選択ダイアログのリスト取得方法にバグがあったので修正しました。(私の環境では確認できないのですが、プロキシの必要な環境でリストが取得できなかったかもしれません)

結果表示グリッドのポップアップメニューに、「weblio で検索」機能を追加しました。成分1〜5フィールドで右クリックした時に成分名でweblio検索を行います。
weblio(http://www.weblio.jp/)というのは統合型辞書検索サイトで、農薬に関しては、まだデータは多くありませんが、動く農薬事典とか、WikiPediaなどを横断的に検索できます。

〔448〕Re:速い速い(^_^)
 kabe WEB  (06/08/17 10:55)

引用なし
   >Hidemi Oyaさん

> ファイルサーバ側で動作する ACFinder のために、データ更新オンリーの起動オプションを付加する。クライアント側はダウンロード先を指定できるようにして、次のどちらかで実装する。…というのでどうでしょうか?
URLを指定するだけでOKならそのようにしてみます。
ただデータ更新専用オプション機能は現在作成中なんですが、まだうまく動かせずにいます。メインフォームの Createイベントの最後で、データ更新機能を動かすようにしており、データ更新はしているのですが、メモリリークが出たりでまだ実用になりそうもありません。
更新専用の場合はメインフォームを起動する必要もないので、プロジェクトソースの段階で起動パラメータを判断するなど何かうまい処理方法あるのでしょうか。

>(2) ファイルサーバから xls ファイルをダウンロード
xlsファイルの日付で更新の有無を判断できるので、この方がいいかもしれません。

〔450〕Re:UrlDownloadToFile … が見えない
 Hidemi Oya WEB  (06/08/17 17:10)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>というか、標準で UrlDownloadToFileを使用するようにしたのでチェックボックスは無くしました。
 なるほど、了解です。ACFinder のサイトのインストールページの方が直ってなかったんですね。

〔459〕Re:速い速い(^_^)
 kabe WEB  (06/08/19 10:45)

引用なし
   >Hidemi Oyaさん

>>(2) ファイルサーバから xls ファイルをダウンロード
>xlsファイルの日付で更新の有無を判断できるので、この方がいいかもしれません。
xlsファイルだと23MBくらいあるので、これだと直接データベースファイルをコピーした方がいいですね。

30MBのデータベースファイルをコピーして終わり、と
5MBのlzhファイルをダウンロードして解凍、変換作業を行うか、
どちらがよろしいでしょうか。

〔460〕Re:速い速い(^_^)
 Hidemi Oya WEB  (06/08/19 14:22)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>30MBのデータベースファイルをコピーして終わり、と
>5MBのlzhファイルをダウンロードして解凍、変換作業を行うか、
>どちらがよろしいでしょうか。
 11Mbps の無線 LAN で実効転送レートが 500KB/sec として、30000KB の転送に 60 秒です。有線 100Mbps なら、実効転送レートがたとえ 3MB/sec だとしても 10 秒ですね。ダウンロードからデータベース変換のトータル速度を考えると、一般的な環境では、おそらく acis.db の転送がもっとも高速に処理できそうです。

 更新プログラムの変更が必要ですが、もし薬検が CSV で提供してくれるならば、解凍後の CSV ファイルを転送するという手もあります。
 CSV + ZIP は、ナローバンドで ACFinder を使う場合はもちろんのこと、レンタルサーバでもタイムアウトになる前に解凍とデータベースへの変換が可能になるので、新たな展開も見込めます。薬検にはぜひ対応してもらいたいところですね。
 薬検が対応してくれないなら、農薬ナビのサーバは Windows 系だったはずなので、lzh の解凍と xls->csv 変換を行うソフトを AT コマンドで定期的に実行して、それを web 上で公開してもらうことは可能かもしれません。菅原さんとの相談になりますが、もしこれが出来るようなら、データソースをそちらに変更する方向もありですね。

・ツリー全体表示

〔454〕2006年8月16日登録反映分はデータ更新不可
 kabe WEB  (06/08/18 0:39)

引用なし
   2006年8月16日登録反映分ですが、登録基本部の項目数が増えたためACFinderでのデータ更新中にエラーが発生します。
修正までお待ちください。

今までの「一般名」が「有効成分」に、これとは別に「総使用回数における有効成分」が付いています。

〔455〕ACFinder 060818版
 kabe WEB  (06/08/18 1:37)

引用なし
   kabeです。

修正しました。
http://acfinder.kabe.info/

2006年8月16日登録反映分の登録基本部のデータ変更に対応しました。
従来のACFinder側で作成していた「有効成分の種類」(seibunフィールド)は、Excelデータの「総使用回数における有効成分」をそのまま利用します。
検索結果で表示される日本語の列名は今までの「一般名」を「有効成分」に、「有効成分の種類」を「総使用回数における有効成分」と表示するよう修正しました。
なお、データベースのフィールド名は変えていません。

[#452][#453]
Hidemi Oya さんより regexp演算子の不具合を修正していただきました。

[#451]
>meisho||shurui MATCH '%pattern%'
に変更してみました。

データ更新を知らせるダイアログで「はい」を押して更新を行った場合、終了すると自動的に更新ダイアログを閉じるようにしました。
(不評であれば元に戻します)

〔458〕Re:ACFinder 060818版
 Hidemi Oya WEB  (06/08/18 13:05)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

 素早い対応に感謝です。うちの事務所では、全員(といっても 12 人しかいませんが) ACFinder を使っているので、今朝早速みんなにアップデートしてもらいました。
 全員使っているので、ファイルサーバに解凍した最新版を入れておき、アップデート用のバッチファイルで必要なファイルだけアップデートできるようにしてあります。バッチファイルは、HTML ファイルのリンクで起動できるようにしてあるので、私がメールでアップデート用の HTML ファイルの URL を知らせて、ユーザはそれを起動してアップデートのリンクをクリックするだけでアップデートできます。

>データ更新を知らせるダイアログで「はい」を押して更新を行った場合、終了すると自動的に更新ダイアログを閉じるようにしました。
>(不評であれば元に戻します)
 いや、いちいち閉じるのは面倒なので、自動的に閉じるようにして欲しいという要望をそのうち出そうと思ってました。自動アップデートは自動で閉じる、手動アップデートは手動で閉じるってのが一貫してて良いですね。

・ツリー全体表示

〔449〕ACFinder 060817test版
 kabe WEB  (06/08/17 13:12)

引用なし
   kabe です。

060817テストバージョンです。
http://acfinder.kabe.info/

Hidemi Oya さんより match regexp 演算子に対応したクラスを作成していただきました。
SQL文で Like演算子の代わりに macth や regexp(正規表現) が使えます。
詳しい使い方は Hidemi Oya さんより解説お願いします。

macth演算子の方は、うまく動いているようですが、regexp の方が正しく動作しているかどうか不明です。
私は正規表現自体がよくわからないので動作確認お願いします。

病害虫タブの病害虫名と、薬剤タブの薬剤候補検索に match 演算子を使うように修正しています。

〔452〕Re:ACFinder 060817test版
 kabe WEB  (06/08/17 23:48)

引用なし
   kabe です。

regexp の方がどうも正しく動作していないようです。
単純な作物名そのものの指定でも、例えば"トマト"、"メロン"はダメです。
"きゅうり"、"すいか"はOKです。

〔453〕'c' オプションが誤動作の元
 Hidemi Oya WEB  (06/08/18 0:39)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

 私も意図通りに動作しないことを確認して、調査していたところです。原因は、'c' オプションですね。SQLite でフィールド名やエリアスに日本語が使えないのと根っこは同じで、UTF-8 といえども、大文字/小文字変換が入ると文字化けを起こすようです。
 で、大文字/小文字同一視を TPerlRegEx の preCaseLess オプションに任せず、match と同様に一端 SJIS に戻して LCMapString で小文字->大文字変換するように修正したら大丈夫でした。

〔456〕Re:'c' オプションが誤動作の元
 kabe WEB  (06/08/18 2:00)

引用なし
   >Hidemi Oyaさん

kabe です。

>SQLite でフィールド名やエリアスに日本語が使えないのと根っこは同じで、UTF-8 といえども、大文字/小文字変換が入ると文字化けを起こすようです。
やはり、文字化けでしたか。
早速、修正いただきありがとうございます。

match と regexp 演算子が使えるのは、SQLiteを利用するデスクトップアプリケーションではもしかしたら、日本初(世界初?)かもしれませんね。
(そんなソフトがあるかどうか知りませんが)
SQLiteSpyでも 3.3.6ベースなので、まだ match は演算子としては使えないようです。regexpも、全角、半角、ひらがな、カタカナの区別なしはできないので、ACFinderの機能は強力です。

いやいや、それにしてもHidemi Oyaさんのおかげで私の当初の想定以上にものすごく高機能なソフトになってきました。
最近PCが不調なのでソースだけは無くさないようにしないと・・・・

〔457〕Re:'c' オプションが誤動作の元
 Hidemi Oya WEB  (06/08/18 12:54)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>やはり、文字化けでしたか。
>早速、修正いただきありがとうございます。
 とりあえずの修正でしたが、ACFinder では関係ないものの \s, \w 等の小文字系メタキャラクタが使えないのはちょっと失敗でした(^_^;)。[^\S], [^\W] で代用する手はありますが、それなら \S, \W 等の大文字系メタキャラクタを使えなくして、[\^s], [^\w] で代用した方が分かりやすいですね。
 'w' オプションがらみの制約を自動的に回避する仕組みも実装しておかないと使いにくいので、次のバージョンで併せて修正します。

>match と regexp 演算子が使えるのは、SQLiteを利用するデスクトップアプリケーションではもしかしたら、日本初(世界初?)かもしれませんね。
 match は 8/12 に仕組みが作られたばかりですし、処理内容はユーザに委ねられているので、おそらく Perl/PHP/Ruby 等のライブラリもまだ対応してないと思います。ウェブアプリを含めても世界初かも?

・ツリー全体表示

〔438〕ACFinder 060810版
 kabe WEB  (06/08/10 22:50)

引用なし
   kabe です

060810版です。
http://acfinder.kabe.info/

HidemiOya さんより、定型処理部分についてHTML形式のテンプレートを扱うように修正していただきました。
定型処理テンプレートの説明文が見やすくなっています。

〔439〕Re:ACFinder 060810版
 Hidemi Oya WEB  (06/08/11 22:32)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

 素早い対応、ありがとうございました。
 ところで、サンプルとして入れておいた TWebBrowser の文字サイズ変更の方は、うまくいきそうでしょうか? これが実装されると、HTML 表示の印刷時にある程度文字サイズの調整ができるので便利なんですが…。

・ツリー全体表示

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