|
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;
|
|