新 FRAC, IRAC, HRAC 公開

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
  • このトピックは管理者もしくはモデレータによりロックされています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2013.12.30 13:07
OhYeah!  管理人   投稿数: 983 オンライン
FRAC, IRAC, HRAC を統合的に扱えるようにする新しいテーブル作成クエリーを公開しました。それぞれ下記からダウンロードできます。
http://macs.o-ya.net/data/spec.frac.txt
http://macs.o-ya.net/data/spec.irac.txt
http://macs.o-ya.net/data/spec.hrac.txt

上記を実行後、下記コードを ACFinder の SQL タブで実行すると、3つを統合的に扱うテンポラリービュー rac ができます。
--/d
/* FRAC, IRAC, HRAC 統合テンポラリテーブル */
drop table if exists rac_mg;
create temp table rac_mg as select 'F:'||mid as mid, sayoten, sayokiko, risk from frac_mg;
insert into rac_mg select 'I:'||mid, sayoten, sayokiko, null from irac_mg;
insert into rac_mg select 'H:'||mid, sayoten, null, null from hrac_mg;
drop table if exists rac_sg;
create temp table rac_sg as select 'F:'||mid as mid, 'F:'||sid as sid, keito, fgroup from frac_sg;
insert into rac_sg select 'I:'||mid, 'I:'||sid as sid, keito, null from irac_sg;
insert into rac_sg select 'H:'||mid, 'H:'||sid as sid, keito, null from hrac_sg;
drop table if exists rac_ai;
create temp table rac_ai as select 'F:'||sid as sid, ippanmei from frac_ai;
insert into rac_ai select 'I:'||sid as sid, ippanmei from irac_ai;
insert into rac_ai select 'H:'||sid as sid, ippanmei from hrac_ai;
/* FRAC, IRAC, HRAC 統合テンポラリビュー */
drop view if exists rac_g;
create temp view rac_g as select mid, sid, keito, sayoten, sayokiko, fgroup, risk from rac_sg left join rac_mg using(mid);
drop view if exists rac;
create temp view rac as select ippanmei, keito, mid, sayoten, sayokiko, fgroup, risk from rac_ai left join rac_g using(sid);


たとえばベトファイターの有効成分の FRAC 分類を見たい場合は、下記で見られます。
select * from seibun left join rac using(ippanmei) where bango in (select bango from m_kihon where meisho like '%ベトファイター%');
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013.12.30 21:19
kabe  長老   投稿数: 231
ありがとうございます。
ACFinder 側も修正します。
少々お待ちください。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013.12.30 22:32 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
引用:上記を実行後、下記コードを ACFinder の SQL タブで実行すると、3つを統合的に扱うテンポラリービュー rac ができます。携帯農薬検索では、ユーザ毎にテンポラリなテーブルとビューを作るわけにもいかないので、MACS SQLite DB では、パーマネントなテーブルとビューを作成することにします。
あと、殺菌剤、殺虫剤、除草剤の系統に関しては、bunrui テーブルの keito ではなく、rac ビューの keito を使った方が良いかもしれません。

--/d
/* FRAC, IRAC, HRAC 統合テーブル */
drop table if exists spec.rac_mg;
create table spec.rac_mg as select 'F:'||mid as mid, sayoten, sayokiko, risk from frac_mg;
insert into spec.rac_mg select 'I:'||mid, sayoten, sayokiko, null from irac_mg;
insert into spec.rac_mg select 'H:'||mid, sayoten, null, null from hrac_mg;
drop table if exists spec.rac_sg;
create table spec.rac_sg as select 'F:'||mid as mid, 'F:'||sid as sid, keito, fgroup from frac_sg;
insert into spec.rac_sg select 'I:'||mid, 'I:'||sid as sid, keito, null from irac_sg;
insert into spec.rac_sg select 'H:'||mid, 'H:'||sid as sid, keito, null from hrac_sg;
drop table if exists spec.rac_ai;
create table spec.rac_ai as select 'F:'||sid as sid, ippanmei from frac_ai;
insert into spec.rac_ai select 'I:'||sid as sid, ippanmei from irac_ai;
insert into spec.rac_ai select 'H:'||sid as sid, ippanmei from hrac_ai;
/* FRAC, IRAC, HRAC 統合ビュー */
drop view if exists spec.rac_g;
create view spec.rac_g as select mid, sid, keito, sayoten, sayokiko, fgroup, risk from rac_sg left join rac_mg using(mid);
drop view if exists spec.rac;
create view spec.rac as select ippanmei, keito, mid, sayoten, sayokiko, fgroup, risk from rac_ai left join rac_g using(sid);
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013.12.30 23:52
kabe  長老   投稿数: 231
http://acfinder.kabe.info/acfinder131230test.zip

対応版作成してみました。
薬剤タブの有効成分表示グリッドにrac 関連列を追加しています。
薬剤候補には fgroup フィールドも検索対象とします。

結合テーブル、ビューは、テンポラリとして作成しています。

なお、zipライブラリを 7z.dll に変更したバージョンを作成中のため、7z.dll を同梱します。
現在のところ、解凍後のファイルのタイムスタンプが解凍した時間になります。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013.12.31 01:24
OhYeah!  管理人   投稿数: 983 オンライン
素早いご対応、ありがとうございます。

引用:薬剤候補には fgroup フィールドも検索対象とします。良い感じですが、RAC 系統、作用点、作用機構も検索対象となればもっと良いかな…。
あと、連用に関しては化学的分類よりも作用点の方が重要です。ということで、他のタブでも RAC コードが表示されると便利になります。コードだけなら場所をとらないし、コードそのものの意味が分からなくても、作用点が同じかどうかはいちいち薬剤タブで確認しなくても判断できるようになりますから。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.02 22:31
kabe  長老   投稿数: 231
明けましておめでとうございます。
今年もよろしくお願いします。
目標はLazarus版の作成ですが、時期は未定です。
現行開発環境の WindowsXP のサポート期限切れまではなんとかとしたいのですが、後3ヶ月しかないので、無理ぽいかもしれません。

RAC関連改良版です。
http://acfinder.kabe.info/acfinder140102test.zip
薬剤タブの薬剤候補にRAC 系統、作用点、作用機構での検索を加えました。
作物タブ、病害虫タブの適用表示に、RACコードを表示するようにしてみました。
列名は RAC1〜RAC5 としています。

なお
DNOC
カーバム
カーバムナトリウム塩
キノキサリン系
ダゾメット
トルフェンピラド
ピリブチカルブ
ベンチオカーブ
マシン油
は2つのRACに存在することから、適用も各コードごとに表示されます。一見同じ行が重複しているように見えますが、RACコードの部分のみ異なります。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.04 00:57 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
あけましておめでとうございます。正月からご苦労様です。

引用:薬剤タブの薬剤候補にRAC 系統、作用点、作用機構での検索を加えました。
作物タブ、病害虫タブの適用表示に、RACコードを表示するようにしてみました。
ありがとうございます。非常に良くなりました。必要とする人がどれくらいいるかは分かりませんが、技術者用ツールとしては、やはりこれくらいの機能は欲しいところです。

引用:2つのRACに存在することから、適用も各コードごとに表示されます。一見同じ行が重複しているように見えますが、RACコードの部分のみ異なります。rac ビューを下記のように修正して、1行で表示された方が間違いがなくて良さそうです。薬剤タブの成分表も1行で表示されるようになります。

drop view if exists rac;
create temp view rac as select ippanmei, keito, concat(', ', mid) as mid, concat(', ', sayoten) as sayoten, concat(', ', sayokiko) as sayokiko, fgroup, risk from rac_ai left join rac_g using(sid) group by ippanmei;
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.04 12:19
OhYeah!  管理人   投稿数: 983 オンライン
すみません。keito も括らなきゃですね。

drop view if exists rac;
create temp view rac as select ippanmei, concat(', ', keito) as keito, concat(', ', mid) as mid, concat(', ', sayoten) as sayoten, concat(', ', sayokiko) as sayokiko, fgroup, risk from rac_ai left join rac_g using(sid) group by ippanmei;
投票数:0 平均点:0.00

なし ACFinder 140105test exe のみ

msg# 1.3.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2014.01.05 22:02
kabe  長老   投稿数: 231
修正版です。
http://acfinder.kabe.info/acfinder140105test_exe.zip

解凍方式は元に戻しました。
lzh は unlha32.dll
zip は 7-zip32.dll
を使います。
正確には、前のコードに戻したつもりが、なぜかZIP解凍がうまくいかず、以前とは別のコードになっています。
解凍がうまくいくか、確認お願いします。

不具合なければ正式版として公開します。
投票数:0 平均点:0.00

なし Re: ACFinder 140105test exe のみ

msg# 1.3.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014.01.06 15:54
OhYeah!  管理人   投稿数: 983 オンライン
ZIP 解凍しか試してませんが、FAMIC CSV と MACS SQLite DB の解凍は OK でした。

ところで、薬剤タブの成分テーブルについては、1成分1行表示のためには新 rac ビューによる表示しか方法がありませんが、作物タブ、病害虫タブについては、対象病害虫のカテゴリに合わせた RAC コードのみを表示した方がより親切で分かりやすいです。これを可能にするため、rac_mg に病害虫カテゴリ ID を追加し、新しい raccode というビューを作りました。
新しいテーブルとビューは、SQL タブで下記コードを実行すれば作成できます。が、すでに spec.frac.txt, spec.irac.txt, spec.hrac.txt で新テーブルとビューを作成するようにしてあるので、ACFinder 側でテンポラリテーブルとビューを作成しないようにしてもらえば OK です。

--/d
/* パーマネント統合テーブル&ビュー作成 */
--旧バージョン個別ビュー削除
drop view if exists spec.frac_g;
drop view if exists spec.frac;
drop view if exists spec.irac_g;
drop view if exists spec.irac;
--ACFinderテンポラリテーブル&ビュー削除 
drop table if exists temp.rac_mg;
drop table if exists temp.rac_sg;
drop table if exists temp.rac_ai;
drop view if exists temp.rac_g;
drop view if exists temp.rac;
--新バージョンテーブル&ビュー作成 
create table if not exists spec.rac_mg (cid integer, mid varchar primary key, sayoten varchar, sayokiko varchar, risk varchar);
delete from spec.rac_mg where mid like 'F:%';
insert into spec.rac_mg select 1, 'F:'||mid, sayoten, sayokiko, risk from frac_mg;
delete from spec.rac_mg where mid like 'I:%';
insert into spec.rac_mg select 2, 'I:'||mid, sayoten, sayokiko, null from irac_mg;
delete from spec.rac_mg where mid like 'H:%';
insert into spec.rac_mg select 3, 'H:'||mid, sayoten, null, null from hrac_mg;
create table if not exists spec.rac_sg (mid varchar, sid varchar primary key, keito varchar, fgroup varchar);
delete from spec.rac_sg where sid like 'F:%';
insert into spec.rac_sg select 'F:'||mid as mid, 'F:'||sid as sid, keito, fgroup from frac_sg;
delete from spec.rac_sg where sid like 'I:%';
insert into spec.rac_sg select 'I:'||mid as mid, 'I:'||sid as sid, keito, null from irac_sg;
delete from spec.rac_sg where sid like 'H:%';
insert into spec.rac_sg select 'H:'||mid as mid, 'H:'||sid as sid, keito, null from hrac_sg;
create table if not exists spec.rac_ai (sid varchar, ippanmei varchar);
delete from spec.rac_ai where sid like 'F:%';
insert into spec.rac_ai select 'F:'||sid as sid, ippanmei from frac_ai;
delete from spec.rac_ai where sid like 'I:%';
insert into spec.rac_ai select 'I:'||sid as sid, ippanmei from irac_ai;
delete from spec.rac_ai where sid like 'H:%';
insert into spec.rac_ai select 'H:'||sid as sid, ippanmei from hrac_ai;
drop index if exists spec.idxrac;
create index spec.idxRac on rac_ai (ippanmei);
create view if not exists spec.rac_g as select cid, mid, sid, keito, sayoten, sayokiko, fgroup, risk from rac_sg left join rac_mg using(mid);
create view if not exists spec.rac as select ippanmei, concat(', ', keito) as keito, concat(', ', mid) as mid, concat(', ', sayoten) as sayoten, concat(', ', sayokiko) as sayokiko, fgroup, risk from rac_ai left join rac_g using(sid) group by ippanmei;
create view if not exists spec.raccode as select cid, mid, ippanmei from rac_ai left join rac_g using(sid);


で、作物タブなら、ttTekiyoSaku を下記のように作成すれば、病害は FRAC、害虫は IRAC、雑草は HRAC の分類コードのみが表示されるようになります。病害虫タブの ttTekiyoByochu も同様です。
--/d
DROP TABLE IF EXISTS ttTekiyoSaku;
CREATE TEMP TABLE ttTekiyoSaku AS SELECT
  bango,shurui,meisho,tsusho,idsaku,sakumotsu,idbyochu,byochu,mokuteki,jiki,baisu,ekiryo,hoho,basho,jikan,ondo,dojo,chitai,tekiyaku,kongo,kaisu,
  seibun1,keito1,kaisu1,(select mid from raccode where ippanmei = seibun1 and cid = substr(idbyochu, 1, 1)) as mid1,
  seibun2,keito2,kaisu2,(select mid from raccode where ippanmei = seibun2 and cid = substr(idbyochu, 1, 1)) as mid2,
  seibun3,keito3,kaisu3,(select mid from raccode where ippanmei = seibun3 and cid = substr(idbyochu, 1, 1)) as mid3,
  seibun4,keito4,kaisu4,(select mid from raccode where ippanmei = seibun4 and cid = substr(idbyochu, 1, 1)) as mid4,
  seibun5,keito5,kaisu5,(select mid from raccode where ippanmei = seibun5 and cid = substr(idbyochu, 1, 1)) as mid5,
  yoto,koka,zaikei,ryakusho
FROM tekiyo WHERE idSaku IN (SELECT idSaku FROM m_sakumotsu WHERE idSaku REGEXP ...);
--/d
DROP TABLE IF EXISTS ttTekiyoByochu;
CREATE TEMP TABLE ttTekiyoByochu AS SELECT
  bango,shurui,meisho,tsusho,idsaku,sakumotsu,idbyochu,byochu,mokuteki,jiki,baisu,ekiryo,hoho,basho,jikan,ondo,dojo,chitai,tekiyaku,kongo,kaisu,
  seibun1,keito1,kaisu1,(select mid from raccode where ippanmei = seibun1 and cid = substr(idbyochu, 1, 1)) as mid1,
  seibun2,keito2,kaisu2,(select mid from raccode where ippanmei = seibun2 and cid = substr(idbyochu, 1, 1)) as mid2,
  seibun3,keito3,kaisu3,(select mid from raccode where ippanmei = seibun3 and cid = substr(idbyochu, 1, 1)) as mid3,
  seibun4,keito4,kaisu4,(select mid from raccode where ippanmei = seibun4 and cid = substr(idbyochu, 1, 1)) as mid4,
  seibun5,keito5,kaisu5,(select mid from raccode where ippanmei = seibun5 and cid = substr(idbyochu, 1, 1)) as mid5,
  yoto,koka,zaikei,ryakusho
FROM tekiyo WHERE bango IN (SELECT bango FROM m_tekiyo WHERE byochu IN (SELECT byochu FROM tByochu) OR mokuteki IN (SELECT byochu FROM tByochu));
投票数:0 平均点:0.00

なし Re: ACFinder 140105test exe のみ

msg# 1.3.1.1.1.1.1.2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.06 16:19
OhYeah!  管理人   投稿数: 983 オンライン
薬剤タブですが、殺菌剤・殺虫剤・除草剤については有効成分表がかなり横長になったので、有効成分表と水産動植物への影響テキストボックスの位置を入れ替えた方が使いやすそうです。
投票数:0 平均点:0.00

なし ACFinder 140106test exeのみ

msg# 1.3.1.1.1.1.1.2.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.06 22:30
kabe  長老   投稿数: 231
投票数:0 平均点:0.00

なし Re: ACFinder 140106test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.06 23:03 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
これって、どこがどう変わってるんでしょうか?
あと、140105test 版ともバージョン情報が 140103test になっています。バージョン情報ダイアログに TFileVerInfo コンポーネントを貼り付け、バージョンラベルのキャプションを次のように設定してやれば、リソースの製品バージョンを修正するだけでバージョン情報ダイアログは自動的に更新されます。
VersionLabel.Caption := FileVerInfo1.ProductVersion;

unit VerInfo;

interface

uses
  Windows, SysUtils, Classes, StrUtils, Forms;

type
  EFileVerInfoError = class(Exception);
  TFileVerInfo = class(TComponent)
  private { Private 宣言 }
    FValid: boolean;
    FPBuf: pointer;
    FSize: DWORD;
    FSub: string;
    FPath: string;
    function GetComments: string;
    function GetCompanyName: string;
    function GetFileDescription: string;
    function GetFileVersion: string;
    function GetInternalName: string;
    function GetLegalCopyright: string;
    function GetLegalTradeMarks: string;
    function GetProductName: string;
    function GetProductVersion: string;
    function GetPrivateBuild: string;
    function GetSpecialBuild: string;
    procedure SetPath(TargetPath: string);
  protected { protected 宣言 }
  public { Public 宣言 }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function GetInfo(Name: string): string;
    property Valid: boolean read FValid;
    property Comments: string read GetComments;
    property CompanyName: string read GetCompanyName;
    property FileDescription: string read GetFileDescription;
    property FileVersion: string read GetFileVersion;
    property InternalName: string read GetInternalName;
    property LegalCopyright: string read GetLegalCopyright;
    property LegalTradeMarks: string read GetLegalTradeMarks;
    property ProductName: string read GetProductName;
    property ProductVersion: string read GetProductVersion;
    property PrivateBuild: string read GetPrivateBuild;
    property SpecialBuild: string read GetSpecialBuild;
  published { Published 宣言 }
    property Path: string read FPath write SetPath;
  end;

procedure Register;
function CopyrightSignToChar(Dst: string): string;
function RegisteredSignToChar(Dst: string): string;
function CopyrightCharToSign(Dst: string): string;
function RegisteredCharToSign(Dst: string): string;

implementation

procedure Register;
begin
  RegisterComponents('Hidemi', [TFileVerInfo]);
end;

function CopyrightSignToChar;
begin
  Result := AnsiReplaceText(Dst, #$A9, '(C)');
end;

function RegisteredSignToChar;
begin
  Result := AnsiReplaceText(Dst, #$AE, '(R)');
end;

function CopyrightCharToSign;
begin
  Result := AnsiReplaceText(Dst, '(C)', #$A9);
end;

function RegisteredCharToSign;
begin
  Result := AnsiReplaceText(Dst, '(R)', #$AE);
end;

function TFileVerInfo.GetInfo;
var
  len: DWORD;
  pinfo: pointer;
begin
  Result := '';
  if not FValid then Exit;
  VerQueryValue(FPBuf, PChar(FSub + Name), pinfo, len);
  if len > 0 then Result := PChar(pinfo);
end;

function TFileVerInfo.GetComments;
begin
  Result := GetInfo('Comments');
end;

function TFileVerInfo.GetCompanyName;
begin
  Result := GetInfo('CompanyName');
end;

function TFileVerInfo.GetFileDescription;
begin
  Result := GetInfo('FileDescription');
end;

function TFileVerInfo.GetFileVersion;
begin
  Result := GetInfo('FileVersion');
end;

function TFileVerInfo.GetInternalName;
begin
  Result := GetInfo('InternalName');
end;

function TFileVerInfo.GetLegalCopyright;
begin
  Result := GetInfo('LegalCopyright');
end;

function TFileVerInfo.GetLegalTradeMarks;
begin
  Result := GetInfo('LegalTradeMarks');
end;

function TFileVerInfo.GetProductName;
begin
  Result := GetInfo('ProductName');
end;

function TFileVerInfo.GetProductVersion;
begin
  Result := GetInfo('ProductVersion');
end;

function TFileVerInfo.GetPrivateBuild;
begin
  Result := GetInfo('PrivateBuild');
end;

function TFileVerInfo.GetSpecialBuild;
begin
  Result := GetInfo('SpecialBuild');
end;

procedure TFileVerInfo.SetPath;
type
  TDWord = packed record Lo, Hi: word; end;
var
  pinfo: pointer;
  ret, len: DWORD;
begin
  FPath := TargetPath;
  if csDesigning in ComponentState then Exit;
  FValid := false;
  if FSize <> 0 then FreeMem(FPBuf, FSize);
  if TargetPath = '' then FPath := Application.ExeName;
  FSize := GetFileVersionInfoSize(PChar(FPath), ret);
  if FSize = 0 then begin
    raise EFileVerInfoError.Create('EFileVerInfoError: Cannot Get FileVerInfo Size');
    Exit;
  end;
  try
    GetMem(FPBuf, FSize);
  except
    FSize := 0;
    raise EFileVerInfoError.Create('EFileVerInfoError: Insufficient Memory');
    Exit;
  end;
  if not GetFileVersionInfo(PChar(FPath), 0, FSize, FPBuf) then begin
    FreeMem(FPBuf, FSize);
    FSize := 0;
    raise EFileVerInfoError.Create('EFileVerInfoError: Cannot Get FileVerInfo');
    Exit;
  end;
  if not VerQueryValue(FPBuf, '\VarFileInfo\Translation', pinfo, len) or (len = 0) then begin
    FreeMem(FPBuf, FSize);
    FSize := 0;
    raise EFileVerInfoError.Create('EFileVerInfoError: Cannot Get FileVerInfo');
    Exit;
  end;
  FSub := '\StringFileInfo\' + IntToHex(TDWord(pinfo^).Lo, 4) +
         IntToHex(TDWord(pinfo^).Hi, 4) + '\';
  FValid := true;
end;

constructor TFileVerInfo.Create;
begin
  inherited Create(AOwner);
  SetPath(FPath);
end;

destructor TFileVerInfo.Destroy;
begin
  if FSize <> 0 then FreeMem(FPBuf, FSize);
  inherited;
end;

end.
投票数:0 平均点:0.00

なし Re: ACFinder 140106test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2014.01.07 08:32
kabe  長老   投稿数: 231
あれ?アップロードするファイルを間違えたのかと思ったのですが、こちらでは大丈夫なんですが....
acfinder.exe のタイムスタンプは
2014.1.6 21:47 ではないでしょうか?

一応下記は修正しています。

引用:新しいテーブルとビューは、SQL タブで下記コードを実行すれば作成できます。が、すでに spec.frac.txt, spec.irac.txt, spec.hrac.txt で新テーブルとビューを作成するようにしてあるので、ACFinder 側でテンポラリテーブルとビューを作成しないようにしてもらえば OK です。
引用:薬剤タブですが、殺菌剤・殺虫剤・除草剤については有効成分表がかなり横長になったので、有効成分表と水産動植物への影響テキストボックスの位置を入れ替えた方が使いやすそうです。
140105test版のバージョン情報は、変更忘れたみたいです。
FileVerInfo は使っています。
投票数:0 平均点:0.00

なし Re: ACFinder 140106test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.07 08:41
kabe  長老   投稿数: 231
すいません。

RACコードの表示で、病害虫タブのテンポラリテーブルの修正忘れました。今晩修正します。
投票数:0 平均点:0.00

なし Re: ACFinder 140106test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2014.01.07 09:49
OhYeah!  管理人   投稿数: 983 オンライン
引用:acfinder.exe のタイムスタンプは 2014.1.6 21:47 ではないでしょうか?昨夜、自宅 PC にインストールしたのは、このタイムスタンプで、acfinder フォルダーに置いた acfinder.exe のリソース情報ではバージョン情報が 140106test になっていました。にもかかわらず、バージョン情報ダイアログは 140103test で、動作は 140105test 版と何も変わっていませんでした。おかしいなと思って、ダウンロードとファイルコピーを3回やり直したんですが、結果は同じでした。
今朝、事務所 PC にインストールしたら、問題なく動作しています。う~ん、自宅 PC の妙な挙動は何だったんだろう?

薬剤タブですが、別窓の一覧表の配置も変更をお願いします。これと、病害虫タブの修正が完了すれば、もう正式公開版で良いと思います。

話は変わりますが、coreserver の PHP PDO SQLite エンジンでは、create view if not exists が使えませんでした(create table if not exists は使えるのに)。ということで、view に関しては、各 rac.txt で削除&作成を繰り返すように変更しています。
多重 JOIN の可否の問題もあるし、SQLite エンジンのバージョンで条件分岐ができる仕組みが必要かも…。
投票数:0 平均点:0.00

なし Re: ACFinder 140106test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.2.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.07 10:57
kabe  長老   投稿数: 231
引用:薬剤タブですが、別窓の一覧表の配置も変更をお願いします。
了解です。

あと、SQLタブのテーブル一覧に spec.db のテーブル名も表示させたいと思ってます。
アタッチしたデータベースのテーブル一覧をどうやって取得したらよいのか、わからなかったのですが、これでできたんですね。

SELECT * FROM spec.sqlite_master WHERE type in ('table','view') ;
投票数:0 平均点:0.00

なし Re: ACFinder 140106test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.2.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014.01.07 11:53
OhYeah!  管理人   投稿数: 983 オンライン
引用:アタッチしたデータベースのテーブル一覧をどうやって取得したらよいのか、わからなかったのですが、これでできたんですね。sqlite_master をデータベース名で修飾してやれば、それぞれのデータベースの sqlite_master にアクセスできるので、jpp.db なら jpp.sqlite_master になります。テンポラリだけは別で、temp.sqlite_master ではなく、sqlite_temp_master になります。
投票数:0 平均点:0.00

なし Re: ACFinder 140106test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.07 16:00
OhYeah!  管理人   投稿数: 983 オンライン
薬剤タブで、RAC 関係がうまく検索できないことがあります。kihon ビューを下記のように変更し、薬剤候補の検索を単純化したところ、意図通りに検索できるようになりました。

kihon view
CREATE TEMP VIEW kihon AS SELECT
  bango, shurui, meisho, tsusho, ryakusho, ippanmei, a.seibun AS seibun, nodo, kongo, zaikei, yoto,
  CONCAT('・',
    (select koka from koka where koka.kokaid = b.kokaid & 3),
    (select koka from koka where koka.kokaid = b.kokaid & 4),
    (select koka from koka where koka.kokaid = b.kokaid & 8),
    (select koka from koka where koka.kokaid = b.kokaid & 16),
    (select koka from koka where koka.kokaid = b.kokaid & 32),
    (select koka from koka where koka.kokaid = b.kokaid & 64),
    (select koka from koka where koka.kokaid = b.kokaid & 128),
    (select koka from koka where koka.kokaid = b.kokaid & 256),
    (select koka from koka where koka.kokaid = b.kokaid & 512),
    (select koka from koka where koka.kokaid = b.kokaid & 1024),
    (select koka from koka where koka.kokaid = b.kokaid & 2048),
    (select koka from koka where koka.kokaid = b.kokaid & 4096),
    (select koka from koka where koka.kokaid = b.kokaid & 8192),
    (select koka from koka where koka.kokaid = b.kokaid & 16384),
    (select koka from koka where koka.kokaid = b.kokaid & 32768)
  ) AS koka,
  iso, b.keito as keito, c.keito as RAC系統, mid, sayoten, sayokiko, fgroup, risk
FROM seibun AS a
LEFT JOIN m_kihon USING(bango)
LEFT JOIN iso USING(ippanmei)
LEFT JOIN bunrui AS b ON a.ippanmei = b.seibun
LEFT JOIN rac AS c USING(ippanmei);


薬剤候補検索
SELECT DISTINCT tsusho FROM kihon
WHERE concat('$',tsusho,shurui,keito,koka,iso,RAC系統,mid,sayoten, sayokiko) MATCH '%...%'
ORDER BY tsusho
SELECT DISTINCT bango,meisho FROM kihon
WHERE concat(' ',tsusho,shurui,keito,koka,iso,RAC系統,mid,sayoten, sayokiko) MATCH '%...%'
ORDER BY bango

投票数:0 平均点:0.00

なし Re: ACFinder 140106test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.08 09:00
kabe  長老   投稿数: 231
WHERE concat('$',tsusho,shurui,keito,koka,iso,RAC系統,mid,sayoten, sayokiko) MATCH '%...%'
WHERE concat(' ',tsusho,shurui,keito,koka,iso,RAC系統,mid,sayoten, sayokiko) MATCH '%...%'

この場合、接続文字列の '$' と ' ' に特に意味はあるのでしょうか。
それとも、何でもいいんでしょうか。
投票数:0 平均点:0.00

なし Re: ACFinder 140106test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.08 11:56 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
引用:この場合、接続文字列の '$' と ' ' に特に意味はあるのでしょうか。実用上はどちらでも特に問題はないと思います。ただ、スペースは「ボーベリア バシアーナ」とか検索対象文字列そのものに含まれる文字なので、予期せぬ副作用が発生するかもしれないってことで、検索対象文字列には含まれない文字で連結したかっただけです。そういう意味では、下記のようにコントロールコード(この例ではTAB)で連結するのが一番確実かも…。

WHERE concat(x'09',tsusho,shurui,keito,koka,iso,RAC系統,mid,sayoten, sayokiko) MATCH '%...%'
投票数:0 平均点:0.00

なし ACFinder 140108test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2014.01.08 23:06
kabe  長老   投稿数: 231
http://acfinder.kabe.info/acfinder140108test_exe.zip

以下の修正を行っています。
病害虫タブのRACコード表示
薬剤タブの薬剤候補検索方式
薬剤タブの別窓レイアウト
SQLタブのテーブル一覧に spec.dbのテーブル表示

不具体がなければ正式版として公開します。
投票数:0 平均点:0.00

なし Re: ACFinder 140108test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.09 00:36 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
kabe さん、お疲れ様です。全て意図通り動作しているようです。
MACS SQLite DB の spec.db は新規に作り直しましたが、FAMIC の CSV/Excel, MACS CSV を使っている場合は、spec.db に古いテーブルやビューが残ることになります。spec.info に frac_code がある場合は、spec.db を一端削除して新規に作り直す仕組みを入れておいた方が良いかもしれません。

ACFinder 側の問題ではありませんが、HRAC には作用機構がないため、薬剤タブの成分表で複数 RAC コードを持つ成分の作用機構が分かりづらくなっていたので、rac ビューを下記のように修正しました。
create view spec.rac as select ippanmei, concat2(', ', keito) as keito, concat2(', ', mid) as mid, concat2(', ', sayoten) as sayoten, concat2(', ', ifnullstr(sayokiko, '-')) as sayokiko, fgroup, risk from rac_ai left join rac_g using(sid) group by ippanmei;
投票数:0 平均点:0.00

なし Re: ACFinder 140108test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014.01.09 10:08 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
細かい話で申し訳ありませんが、薬剤タブの成分表の「耐性リスク」のカラム名については、複数 RAC コードを持つ成分で FRAC 限定ということが分かるように「FRAC耐性リスク」に変更した方が誤解が無くて良さそうです。また、「RAC系統,RACコード」の順番を入れ替えた方が、複数 RAC コードを持つ成分の RAC 系統の順番が分かりやすいかなあという感じがします。

それと、SQL タブは使っている人が極めて少ないとは思いますが、せっかくなら DB でテンポラリも選べるとありがたいなあと…。こちらは急ぎではありません。

rac ビューで、複数 RAC コードを持つ成分の fgroup, risk が表示されなくなっていたので、spec.?rac.txt をそれぞれ修正しました。
create view spec.rac as select ippanmei, concat2(', ', keito) as keito, concat2(', ', mid) as mid, concat2(', ', sayoten) as sayoten, concat2(', ', ifnullstr(sayokiko, '-')) as sayokiko, concat('', fgroup) as fgroup, concat('', risk) as risk from rac_ai left join rac_g using(sid) group by ippanmei;
投票数:0 平均点:0.00

なし rac, raccode ビュー更新

msg# 1.3.1.1.1.1.1.2.1.1.1.2.2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014.01.10 00:48
OhYeah!  管理人   投稿数: 983 オンライン
引用:話は変わりますが、coreserver の PHP PDO SQLite エンジンでは、create view if not exists が使えませんでした(create table if not exists は使えるのに)。ということで、view に関しては、各 rac.txt で削除&作成を繰り返すように変更しています。
多重 JOIN の可否の問題もあるし、SQLite エンジンのバージョンで条件分岐ができる仕組みが必要かも…。
coreserver の Apache モジュール版 PHP のバージョンは 5.2.5 で、この PDO SQLite エンジンのバージョンは 3.3.7 とかなり古いものでした。coreserver では CGI 版 PHP なら 5.2.x だけでなく、5.3.x と 5.4.x も使用可能で、こちらの PDO SQLite エンジンは どちらも 3.7.7.1 と大幅に新しくなっています。3.7.x 系 PDO SQLite エンジンなら、多重 JOIN も create view if NOT exists も問題なく使用できます。
また、CRON ジョブから PHP スクリプトを実行する場合も、/usr/local/bin/php54, /usr/local/bin/php53 でそれぞれ 5.4.x, 5.3.x を使い分けられることが判明しました。

ってことで、データ自動更新 CRON ジョブや MACS では PHP 5.4.x を使用することとし、rac, raccode ビューは、中間ビューの rac_g を使用しないビューに変更しました。
投票数:0 平均点:0.00

なし spec.byochu.txt 追加

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.10 10:44 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
引用:spec.info に frac_code がある場合は、spec.db を一端削除して新規に作り直す仕組みを入れておいた方が良いかもしれません。spec.cbyochu, spec.gbyochu テーブルを作成するクエリーが byochu.txt にるため、spec.db を新規に作り直すと、病害虫タブが正常に動作しなくなります。ということで、当面の対策として、cbyochu, gbyochu を作成するためのクエリーを下記に公開しました。
http://macs.o-ya.net/data/spec.byochu.txt

今後、byochu.txt は m_byochu, byochu テーブル作成、spec.byochu.txt は spec.cbyochu, spec.gbyochu テーブル作成と機能分担し、データ更新時には byochu.txt と spec.byochu.txt の2つを更新するように変更します。
投票数:0 平均点:0.00

なし byochu.txt, spec.byochu.txt 修正

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.12 23:14 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
引用:今後、byochu.txt は m_byochu, byochu テーブル作成、spec.byochu.txt は spec.cbyochu, spec.gbyochu テーブル作成と機能分担し、データ更新時には byochu.txt と spec.byochu.txt の2つを更新するように変更します。FAMIC 版農薬登録情報検索システムのデータから、spec.byochu.txt を自動生成するように修正しました。あわせて、m_byochu の別名を MACS の自動データ更新サーバ側で生成するようにし、ACFinder のデータ更新時が若干速くなるようにしました(もともとほとんど時間がかかっていない処理だったので、体感できるほどの恩恵はありませんが)。
sakumotsu.txt についても、m_sakumotsu の別名を MACS サーバ側で生成するように変更する予定です。
投票数:0 平均点:0.00

なし ACFinder 140113test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.13 21:52
kabe  長老   投稿数: 231
暫時、spec.byochu.txt 取得更新機能を付けました。
http://acfinder.kabe.info/acfinder140113test_exe.zip

spec.db の方、DBファイル削除ではなく、暫時以下のテーブルがあれば削除します。
vFracbunrui
frac_code
frac_codelist
frac_sayoten
frac_sayokiko
削除後にvacuum とか、した方がよいのかと思ったのですが、どうもアタッチした DB は対象にならないみたい。

ところで、新しいbyochu.txt しかないと、古い ACFinder ではcbyochu gbyochu を作成できないので、まずいのでは?
投票数:0 平均点:0.00

なし Re: ACFinder 140113test exeのみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.13 22:09
OhYeah!  管理人   投稿数: 983 オンライン
引用:ところで、新しいbyochu.txt しかないと、古い ACFinder ではcbyochu gbyochu を作成できないので、まずいのでは?いわれてみれば、そうですね。当面、byouchu.txt は byochu.txt + spec.byochu.txt の内容を両方入れておきます。
投票数:0 平均点:0.00

なし byochu.txt を3種類に

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2014.01.15 02:28
OhYeah!  管理人   投稿数: 983 オンライン
古い ACFinder 用は従来どおりの byochu.txt 1ファイル構成、新しい ACFinder 用は main.byochu.txt と spec.byochu.txt の2ファイル構成とし、全部で3ファイル作成することにしました。

作物マスターも、体感的には感じられませんが、従来より効率の良いコードに修正しました。
投票数:0 平均点:0.00

なし ACFinder 140115 TEST版

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2014.01.15 23:07
kabe  長老   投稿数: 231
テスト版フルセットを公開しました。
http://acfinder.kabe.info/

main.byochu.txt をダウンロードし、更新処理します。
SQL タブのテーブル表示にテンポラリテーブルも表示するようにしました。

不具合なければ正式版として公開します。

この掲示板にリンクした最近のテスト版を使用した場合、acfinder.exe と同一フォルダに req.txt というファイルが作成されている場合があります。デバック用のコードを消すのを忘れてました。動作には影響ないものですので、削除してください。
投票数:0 平均点:0.00

なし Re: ACFinder 140115 TEST版

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.16 00:20 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
kabe さん、お疲れ様でした。
またまた細かい話で、しかも今回のバージョンアップの本筋とは関係ない話ではありますが、薬剤タブのキーワードに ISO 名が使用できるにも関わらず、どこにも ISO 名が表示されません。成分一覧表を下記のようにして、ISO 名も表示するようにしてはどうでしょうか?

SELECT DISTINCT
  ippanmei, seibun, ifnullstr(iso, ippanmei) as ISO物質名, s.keito as 系統,koka, JPP系統名, kagakumei, nodo, nodochu,
  MAX(gyodoku) AS gyodoku, seizaieikyo, seibuneikyo, dokusei, jogai, jyogai1, jyogai2, biko,
  mid, rac.keito as RAC系統, sayoten, sayokiko, fgroup, risk
FROM tvSeibun AS s LEFT JOIN rac using(ippanmei) LEFT JOIN iso using(ippanmei)
WHERE bango = nnnn GROUP BY ippanmei
投票数:0 平均点:0.00

なし Re: ACFinder 140115 TEST版

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014.01.16 08:27
OhYeah!  管理人   投稿数: 983 オンライン
書き忘れてましたが、インストーラ版のデフォルトインストールフォルダが %ProgramFiles%\acfinder じゃなくてカレントディレクトリになっています。正式公開版では修正しておいたほうが良いと思います。
投票数:0 平均点:0.00

なし ACFinder 140116 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.16 23:30
kabe  長老   投稿数: 231
http://acfinder.kabe.info/acfinder140116test_exe.zip

こんな感じで。
有効成分グリッドにヒント表示するようにしてみました。

ポップアップメニュー もう少し調整が必要です。
投票数:0 平均点:0.00

なし Re: ACFinder 140116 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014.01.17 00:36 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
引用:こんな感じで。ありがとうございます。

引用:有効成分グリッドにヒント表示するようにしてみました。殺菌剤のようにカラム数が多い成分では、横スクロールなしで見られるので便利ですね。が、マウスカーソルがどこにあっても表示されるのは、ちょっとうるさい感もあります。現在画面上に表示されている左端と右端のカラム上にマウスカーソルがある場合のみ表示するってのは可能でしょうか?
あるいは、適用表示グリッドのように、ダブルクリックで詳細ダイアログを表示するってのもアリかな。詳細ダイアログ方式なら作用点等各項目値のコピーも可能になるので、より便利かも…。フェロモン剤の新成分なんか、bunrui.txt に追加するときにコピーしたいことがあります。
投票数:0 平均点:0.00

なし byochu.txt 1本に戻します

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.17 00:41
OhYeah!  管理人   投稿数: 983 オンライン
何度も仕様変更ですみません。現在は農薬登録情報更新の度に cbyochu, gbyochu を更新しているため、cbyochu, gbyochu は spec.db にあるより acis.db にある方が何かと便利です。また、ACFinder 側も cbyochu, gbyochu が acis.db にあっても病害虫タブや定型処理タブの病害虫ダイアログボックスは問題なく動作することを確認しました。
ってことで、cgyochu, gbyochu を acis.db に作成することにし、ファイルは従来どおり byochu.txt 1本で対応することにします。
投票数:0 平均点:0.00

なし ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.18 23:10
kabe  長老   投稿数: 231
http://acfinder.kabe.info/acfinder140118test_exe.zip

byochu.txtに対応しました。
spec.db に cbyochu, gbyochu があれば削除します。

有効成分グリッド上でダブルクリックかエンターで、詳細ダイアログを出すようにしました。

有効成分グリッドのポップアップメニューにコピー機能を付けました。

薬剤選択リストボックスでポップアップメニューからリスト内薬剤名をコピーできるようにしました。

投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2014.01.19 21:53
kabe  長老   投稿数: 231
薬剤タブの 成分、系統タブの隣に作用点タブを付けようと思って、作業していますが、現状の不具合に気づきました。

薬剤タブで薬剤候補と作物候補を両方指定している場合、系統タブの薬剤リスト表示で、その作物に登録のある同一系統が全て表示されません。

あと、別の話ですが、
http://macs.o-ya.net/data/sakumotsu.txt
/* 2014.01.17 現在の vtllk101.do に基づく作物マスター (2014.01.14) */
/* 検索用作物マスター (2014.01.14) */

insert into m_sakumotsu values(0, '', 'あけび(茎葉)', '');
という行ができています。
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014.01.20 00:06
OhYeah!  管理人   投稿数: 983 オンライン
引用:薬剤タブで薬剤候補と作物候補を両方指定している場合、系統タブの薬剤リスト表示で、その作物に登録のある同一系統が全て表示されません。確かに、そうですね。成分や系統の一覧表が、t_bango (薬剤候補と作物名で登録番号を絞り込んだテンポラリテーブル)に含まれる登録番号の農薬しか表示しないのが原因のようです。

引用:insert into m_sakumotsu values(0, '', 'あけび(茎葉)', '');1/14 に m_sakumotsu をチェックして、番号が付いてない作物名(「樹木類(つつじ類、とちのき、プラタナス、さんごじゅ、ひいらぎもくせい、いぬまき、あじさいを除く)」)の例外処理を追加したんですが、この段階で「あけび(茎葉)」はなかったんですけどねえ…。かといって、1/15 登録で「あけび(茎葉)」が追加されたわけでもなさそうなので、なぜ突然出てきたのか謎です。
先ほど、例外処理を追加しました。

薬剤タブの右クリックコピーですが、適用グリッドのみが「コピー(C) Ctrl+C」で、他は「コピー(Y)」になっています。ホットキーは、全部同じにそろえた方が使いやすいのではないかと…。あと、Ctrl+C もどこでも使えた方が便利です。

それと、実用上は特に問題ありませんが、詳細ダイアログで「多作用点接触活性」の「作用点」が色が変わってしまいます。これで初めて気がついたんですが、キーワードで色を変えてたんですね。キーワードは、「:」も含めて「作用点:」のように指定した方が良いかも…。
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.22 17:44 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
引用:薬剤タブで薬剤候補と作物候補を両方指定している場合、系統タブの薬剤リスト表示で、その作物に登録のある同一系統が全て表示されません。下記のようなコードが一番効率的かも…。

/* 指定作物に登録されている農薬の登録番号(作物が指定されている時のみ実行) */
DROP TABLE IF EXISTS t_bango;
CREATE TEMP TABLE t_bango AS SELECT DISTINCT bango, sakumotsu FROM m_tekiyo
WHERE sakumotsu IN (SELECT sakumotsu FROM m_sakumotsu WHERE idSaku REGEXP '^(作物IDリスト)' AND sakumotsu NOT REGEXP '\((.*、)?(作物名リスト).*?(、.*)?を除く')
ORDER BY bango;

/* 該当薬剤リストボックス */
DROP TABLE IF EXISTS t_yaku;
CREATE TEMP TABLE t_yaku AS SELECT DISTINCT bango,meisho,tsusho FROM kihon
WHERE concat(x'09',tsusho,shurui,keito,koka,iso,RAC系統,mid,sayoten, sayokiko,fgroup) MATCH '%キーワード%'
AND bango IN (SELECT DISTINCT bango FROM t_bango)--作物が指定されている場合この行追加
;
--通称タブ
SELECT DISTINCT tsusho FROM t_yaku;
--登録番号タブ
SELECT DISTINCT bango,meisho FROM t_yaku;

/* 類似薬剤リストボックス */
--通称選択時の成分/系統/作用点一覧
SELECT DISTINCT ifnullstr(seibun,ippanmei) FROM kihon WHERE tsusho = '選択通称';
SELECT DISTINCT keito FROM kihon WHERE tsusho = '選択通称';
SELECT DISTINCT sayoten FROM kihon WHERE tsusho = '選択通称';
/*
--番号選択時の成分/系統/作用点一覧
SELECT DISTINCT ifnullstr(seibun,ippanmei) FROM kihon WHERE bango = 選択番号;
SELECT DISTINCT keito FROM kihon WHERE bango = 選択番号;
SELECT DISTINCT sayoten FROM kihon WHERE bango = 選択番号;
*/
--成分タブ
SELECT DISTINCT tsusho FROM kihon WHERE ifnullstr(seibun,ippanmei) = '選択成分'
AND bango IN (SELECT DISTINCT bango FROM t_bango)--作物が指定されている場合この行追加
ORDER BY tsusho;
--系統タブ
SELECT DISTINCT tsusho FROM kihon WHERE keito = '選択系統'
AND bango IN (SELECT DISTINCT bango FROM t_bango)--作物が指定されている場合この行追加
ORDER BY tsusho;
--作用点タブ
SELECT DISTINCT tsusho FROM kihon WHERE sayoten = '選択作用点'
AND bango IN (SELECT DISTINCT bango FROM t_bango)--作物が指定されている場合この行追加
ORDER BY tsusho;

/* 概要ペイン */
--剤の概要
SELECT bango,shurui,yoto,koka,zaikei,ryakusho,dokusei,torokubi,kousin,a.kigen AS kigen
FROM m_kihon as a LEFT JOIN seizai USING(bango) WHERE bango = 選択登録番号;
--有効成分表(変更無し)
SELECT DISTINCT ippanmei,seibun,ifnullstr(iso, seibun) AS ISO物質名,s.keito AS 系統,koka, JPP系統名, kagakumei,nodo,nodochu, MAX(gyodoku) AS gyodoku,seizaieikyo,seibuneikyo,dokusei,jogai,jyogai1,jyogai2,biko,mid,rac.keito as RAC系統,sayoten,sayokiko,fgroup,risk
FROM tvSeibun AS s LEFT JOIN rac USING(ippanmei) LEFT JOIN iso USING(ippanmei)
WHERE bango = 選択登録番号 GROUP BY ippanmei;
--水産動植物への影響(変更無し)
SELECT chuijiko,koshin FROM suisan WHERE bango = 選択登録番号;

/* 適用ペイン */
SELECT sakumotsu,byochu,mokuteki,baisu,ekiryo,jiki,kaisu,hoho,basho,jikan,ondo,dojo,chitai,tekiyaku,kaisu1,kaisu2,kaisu3,kaisu4,kaisu5
FROM m_tekiyo WHERE bango = 選択登録番号
AND sakumotsu IN (SELECT DISTINCT sakumotsu FROM t_bango)--作物が指定されている場合のみ追加
;
2014.01.22 19:24 一部修正(展着剤・誘引剤の成分対策&ゴミコード削除)
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.22 22:45 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
こっちの方がより簡単かな…。作物が指定されているかどうかで変わるのは3行からの1文のみです。実行時間はほとんど変わりません。
DROP TABLE IF EXISTS t_bango;
CREATE TEMP TABLE t_bango (bango integer primal key, sakumotsu varchar);
--作物が指定されている場合は下文実行
INSERT INTO t_bango SELECT DISTINCT bango, sakumotsu FROM m_tekiyo
WHERE sakumotsu IN (SELECT sakumotsu FROM m_sakumotsu WHERE idSaku REGEXP '^(作物IDリスト)' AND sakumotsu NOT REGEXP '\((.*、)?(作物名リスト).*?(、.*)?を除く')
ORDER BY bango;

/* 該当薬剤リストボックス */
DROP TABLE IF EXISTS t_yaku;
CREATE TEMP TABLE t_yaku AS SELECT DISTINCT bango,meisho,tsusho FROM kihon
WHERE concat(x'09',tsusho,shurui,keito,koka,iso,RAC系統,mid,sayoten, sayokiko,fgroup) MATCH '%キーワード%'
AND ((SELECT COUNT(*) FROM t_bango)=0 OR bango IN (SELECT DISTINCT bango FROM t_bango));
--通称タブ
SELECT DISTINCT tsusho FROM t_yaku;
--登録番号タブ
SELECT DISTINCT bango,meisho FROM t_yaku;

/* 類似薬剤リストボックス */
--通称選択時の成分/系統/作用点ドロップダウンリスト
SELECT DISTINCT ifnullstr(seibun,ippanmei) FROM kihon WHERE tsusho = '選択通称';
SELECT DISTINCT keito FROM kihon WHERE tsusho = '選択通称';
SELECT DISTINCT sayoten FROM kihon WHERE tsusho = '選択通称';
/*
--番号選択時の成分/系統/作用点ドロップダウンリスト
SELECT DISTINCT ifnullstr(seibun,ippanmei) FROM kihon WHERE bango = 選択番号;
SELECT DISTINCT keito FROM kihon WHERE bango = 選択番号;
SELECT DISTINCT sayoten FROM kihon WHERE bango = 選択番号;
*/
--成分タブ
SELECT DISTINCT tsusho FROM kihon WHERE ifnullstr(seibun,ippanmei) = '選択成分'
AND ((SELECT COUNT(*) FROM t_bango)=0 OR bango IN (SELECT DISTINCT bango FROM t_bango))
ORDER BY tsusho;
--系統タブ
SELECT DISTINCT tsusho FROM kihon WHERE keito = '選択系統'
AND ((SELECT COUNT(*) FROM t_bango)=0 OR bango IN (SELECT DISTINCT bango FROM t_bango))
ORDER BY tsusho;
--作用点タブ
SELECT DISTINCT tsusho FROM kihon WHERE sayoten = '選択作用点'
AND ((SELECT COUNT(*) FROM t_bango)=0 OR bango IN (SELECT DISTINCT bango FROM t_bango))
ORDER BY tsusho;

/* 概要ペイン */
--剤の概要
SELECT bango,shurui,yoto,koka,zaikei,ryakusho,dokusei,torokubi,kousin,a.kigen AS kigen
FROM m_kihon as a LEFT JOIN seizai USING(bango) WHERE bango = 選択登録番号;
--有効成分表(変更無し)
SELECT DISTINCT ippanmei,seibun,ifnullstr(iso, seibun) AS ISO物質名,s.keito AS 系統,koka, JPP系統名, kagakumei,nodo,nodochu, MAX(gyodoku) AS gyodoku,seizaieikyo,seibuneikyo,dokusei,jogai,jyogai1,jyogai2,biko,mid,rac.keito as RAC系統,sayoten,sayokiko,fgroup,risk
FROM tvSeibun AS s LEFT JOIN rac USING(ippanmei) LEFT JOIN iso USING(ippanmei)
WHERE bango = 選択登録番号 GROUP BY ippanmei;
--水産動植物への影響(変更無し)
SELECT chuijiko,koshin FROM suisan WHERE bango = 選択登録番号;

/* 適用ペイン */
SELECT sakumotsu,byochu,mokuteki,baisu,ekiryo,jiki,kaisu,hoho,basho,jikan,ondo,dojo,chitai,tekiyaku,kaisu1,kaisu2,kaisu3,kaisu4,kaisu5
FROM m_tekiyo WHERE bango = 選択登録番号
AND ((SELECT COUNT(*) FROM t_bango)=0 OR bango IN (SELECT DISTINCT bango FROM t_bango));
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.23 01:17 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
あ~、作物候補に複数作物を指定した場合、t_bango の定義がこのままだとダメですね。それと、t_bango 作成時に、BEGIN, COMMIT で括ってやった方が速度のばらつきが少なくなります。ということで、最初のブロックは、下記に修正してください。
BEGIN TRANSACTION;
DROP TABLE IF EXISTS t_bango;
CREATE TEMP TABLE t_bango (bango integer,sakumotsu varchar);
--作物が指定されている場合は下文実行
INSERT INTO t_bango SELECT DISTINCT bango,sakumotsu FROM m_tekiyo
WHERE sakumotsu IN (SELECT sakumotsu FROM m_sakumotsu WHERE idSaku REGEXP '^(作物IDリスト)' AND sakumotsu NOT REGEXP '\((.*、)?(作物名リスト).*?(、.*)?を除く')
ORDER BY bango;
COMMIT;
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.23 09:34
kabe  長老   投稿数: 231
ありがとうございます。
今週末にはなんとか修正します。

スローペースで申し訳ないです。夜更かしすると翌日がつらいので、睡眠時間の確保を最優先しています。(^o^)
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014.01.23 23:34
OhYeah!  管理人   投稿数: 983 オンライン
引用:スローペースで申し訳ないです。いや、全然問題ありません。

引用:夜更かしすると翌日がつらいので、睡眠時間の確保を最優先しています。(^o^)翌日が辛いっていうか、年のせいか夜更かしできなくなってきましたよねえ
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.3
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.27 16:23
OhYeah!  管理人   投稿数: 983 オンライン
SQL タブを使用すると、作物タブで作物を選択しても作物名がテキストボックスに表示されなくなります。作物名が入らないので、即時適用表示はもちろん、手動適用表示もできません。
SQL タブを常用する人はほとんどいないでしょうし、ACFinder を再起動すればよい話なので、実用上はほとんど問題ありませんが、修正可能なら修正いただければありがたいです。ちなみに、ACFinder を再起動しなくても、一度病害虫タブか定型処理タブを使用すると作物タブが使用可能になります(薬剤タブはダメ)。
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.3.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.28 09:18
kabe  長老   投稿数: 231
引用:SQL タブを使用すると、作物タブで作物を選択しても作物名がテキストボックスに表示されなくなります。作物名が入らないので、即時適用表示はもちろん、手動適用表示もできません。
こちらでは症状を確認できません。
WindowsXp , Windows7 ,Windows 8.1 各OSとも

具体的などのような操作をした場合でしょうか?
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.3.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.28 15:32
OhYeah!  管理人   投稿数: 983 オンライン
引用:具体的などのような操作をした場合でしょうか?私の環境(Windows7 32bit, 2GB)では、対象とするテーブル/ビューに関係なく、select 文実行後は 100 %再現します。
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.3.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.28 19:16
OhYeah!  管理人   投稿数: 983 オンライン
引用:私の環境(Windows7 32bit, 2GB)では、対象とするテーブル/ビューに関係なく、select 文実行後は 100 %再現します。自宅マシン(Windows7 64bit, 8GB)でも同様でした。
投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.3.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.01.28 22:06
kabe  長老   投稿数: 231
私の方は、職場、自宅とも症状を確認できてません。
ACFinder の設定の違いでしょうか。
う〜ん。でも影響する設定って何があるんだ。
テキストボックスが Disable になっているんでしょうか?

投票数:0 平均点:0.00

なし Re: ACFinder 140118 TEST版 exe のみ

msg# 1.3.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.3.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014.01.29 00:48
OhYeah!  管理人   投稿数: 983 オンライン
引用:ACFinder の設定の違いでしょうか。
う〜ん。でも影響する設定って何があるんだ。
影響しそうな設定って思いつきませんが…。ツールバーはボタンオンリー(テキスト無し)の表示にしてたり、ログペインのフォントは MeiryoKe_Gothic、SQL エディタは MeiryoKe_Console、その他のフォントは MeiryoKe_PGothic にしてたりしますが、これが影響するとは思えません。というか、ツールバーテキスト表示の有無については影響していませんでした。ログペインの有無も関係ありません。
設定の影響は考えにくいので、もしかしたらデータベースの違いの影響かと思って、ダウンロードサイトを FAMIC CSV にして acis.db, spec.db とも作り直してみましたが、やはり改善はされません。

引用:テキストボックスが Disable になっているんでしょうか?いえ、Enable のままです。が、SQL タブで select 文を実行した後は、作物ペインで何を選択しても、作物名テキストボックスがクリアされてしまいます。

もしや Wheel Redirector が悪さをしているのかと思って無効にしてみましたが、やはり同じです。
投票数:0 平均点:0.00

  条件検索へ