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

研究会

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

〔185〕ACFinder LocalDB版 kabe (06/05/31 22:51)

〔325〕Re:ACFinder 060619版 kabe (06/06/20 21:59)
〔326〕Re:ACFinder 060619版 Hidemi Oya (06/06/20 22:51)
〔329〕Re:ACFinder 060619版 kabe (06/06/20 23:26)

〔325〕Re:ACFinder 060619版
 kabe WEB  (06/06/20 21:59)

引用なし
   >Hidemi Oyaさん
kabe です。

> 定型処理タブなんですが、実行後にテンプレートを読み込むと、処理内容タブがアクティブになるものの、タブ内は検索結果のストリンググリッドのままです。ページコントロールではなく、タブコントロールを使っているんでしょうか?
そうです。
Visible を切り替えるのを忘れてました。

> それと、実行後に作物や病害虫を書き換えて再度「実行」ボタンをクリックしても、新たな条件で再検索されず、前回実行結果が表示されます。
リスト型は変更されているようですが、エレメント型がクリアされていないようです。
TemplateToQuery 中のメタフィールドを展開する前に
FTemplate.Text := ReplaceRegExpr('.*#template\s*\{\s*(.*?)\s*?\}.*', memTplSource.Text, '$1', true);
を入れるとクリアされるみたいですが、こんな方法で大丈夫でしょうか。

〔326〕Re:ACFinder 060619版
 Hidemi Oya WEB  (06/06/20 22:51)

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

>リスト型は変更されているようですが、エレメント型がクリアされていないようです。
 ありゃ〜、私のせいだったのね(^_^;)。エレメント型は更新されるけど、リスト型が更新されませんね。すみません、FTplQuery を書き換えるべきなのに、書き換えちゃいけない FTemplate.Text を書き換えちゃってました。
 TemplateToQuery を下記のように、修正してください(う〜む、どうしてもインデントが全角スペースになってしまう)。エレメント型を先に展開して、その後リスト型を展開、リスト型展開ルーチンの FTemplate.Text を全て FTplQuery に置換です。

 // エレメント型メタフィールド展開
 dest := TStringList.Create;
 list := TStringList.Create;
 for i := 0 to FTemplate.Count - 1 do begin
  line := Trim(FTemplate.Strings[i]);
  if not ExistElement([sakumotsu..shurui], line) then
   dest.Add(line)
  else
   for f := sakumotsu to shurui do begin
    if not ExistElement([f], line) then continue;
    case f of
     sakumotsu: list.CommaText := edtTplSakumotsu.Text;
     byochu: list.CommaText := edtTplByochu.Text;
     yoto: list.CommaText := edtTplYoto.Text;
     shurui: list.CommaText := edtTplShurui.Text;
    end;
    for j := 0 to list.Count - 1 do dest.Add(ReplaceRegExpr('\[' + CField[f] + '\]', line, list.Strings[j], false));
    break;
   end;
 end;
 FTplQuery := ReplaceRegExpr(',(\s+from)', dest.Text, '$1', true);
 list.Free;
 dest.Free;
 // リスト型メタフィールド展開
 if FTplSakumotsu then begin
  FTplQuery := ExpandList(sakumotsu, FTplQuery, edtTplSakumotsu.Text);
 end;
 if FTplByochu then begin
  FTplQuery := ExpandList(byochu, FTplQuery, edtTplByochu.Text);
 end;
 if FTplYoto then begin
  FTplQuery := ExpandList(yoto, FTplQuery, edtTplYoto.Text);
 end;
 if FTplShurui then begin
  FTplQuery := ExpandList(shurui, FTplQuery, edtTplShurui.Text);
 end;

〔329〕Re:ACFinder 060619版
 kabe WEB  (06/06/20 23:26)

引用なし
   >Hidemi Oyaさん

kabe です。
ありがとうございました。
修正しました。

>>リスト型は変更されているようですが、エレメント型がクリアされていないようです。
> ありゃ〜、私のせいだったのね(^_^;)。エレメント型は更新されるけど、リスト型が更新されませんね。
あれ、逆でしたか。

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