取决于两个变量,我想在一个模板生成器中显示不同的文本框,我假设它基于Delphi。
对文本框的选择将取决于接收者所在的国家(AVX ['M_COUNTRYC'])和文章类别(artcategory)。 至少有四个类别,分别名为“ Lizenz”,“ Digifit”,“硬件”和“附件”。
我想产生以下结果:
我已经尝试了不同的方法,但是没有一个起作用:
方法1:
if not (AVX['M_COUNTRYC'] = 'D') then begin
if (AVX['M_COUNTRYC'] = 'CH') and (AVX['P_ARTCATEGORY'] = 'Lizenz') or (AVX['P_ARTCATEGORY'] = 'DIGIFIT') then begin
DBMemoSchlusstext.visible := false;
LizNotDE.visible := true;
end
else if (AVX['M_COUNTRYC'] = 'CH') and (AVX['P_ARTCATEGORY'] <> 'Lizenz') and (AVX['P_ARTCATEGORY'] <> 'DIGIFIT') then begin
DBMemoSchlusstext.visible := false;
HardNotEU.visible := true;
end
else if (AVX['M_COUNTRYC'] <> 'CH') and (AVX['P_ARTCATEGORY'] = 'Lizenz') or (AVX['P_ARTCATEGORY'] = 'DIGIFIT') then begin
DBMemoSchlusstext.visible := false;
LizNotDE.visible := true;
end
else if (AVX['M_COUNTRYC'] <> 'CH') and (AVX['P_ARTCATEGORY'] <> 'Lizenz') and (AVX['P_ARTCATEGORY'] <> 'DIGIFIT') then begin
DBMemoSchlusstext.visible := false;
HardEU.visible := true;
end;
end else begin
DBMemoSchlusstext.visible := true;
end;
end;
方法2:
if (AVX['M_COUNTRYC'] = 'D') then DBMemoSchlusstext.visible := true;
else if (AVX['P_ARTCATEGORY'] = 'Lizenz') and (AVX['P_ARTCATEGORY'] <> 'Hardware') then LizNotDE.visible := true;
else if (AVX['M_COUNTRYC'] = 'CH') then HardNotEU.visible := true;
else HardEU.visible := true;
end;
提前感谢任何提示或建议
答案 0 :(得分:3)
为了更好地理解,我在条件和输出中使用了简短的变量,因此您必须将其替换为实际的代码项:
var
option: 1..4;
begin
if isD then option := 1
else if isHardware or isAccessories then
if isCH then option := 4
else option := 2
else option := 3;
Default := (option = 1);
HardEU := (option = 2);
LizNotDE := (option = 3);
HardNotEU := (option = 4);
end;
答案 1 :(得分:0)
谢谢大家的帮助。这是新代码:
DBMemoSchlusstext.visible := false;
HardNotEU.visible := false;
HardEU.visible := false;
LizNotDE.visible := false;
if (AVX['M_COUNTRYC'] = 'D') then begin DBMemoSchlusstext.visible := true; end
else if ((AVX['P_ARTCATEGORY'] = 'Smartfit Hardware') or (AVX['P_ARTCATEGORY'] = 'Smartfit Zubehör')) then begin
if (AVX['M_COUNTRYC'] = 'CH') then begin HardNotEU.visible := true; end
else begin HardEU.visible := true; end
else begin LizNotDE.visible := true; end;
end;
这似乎不是完全错误,但是最后一条语句else begin LizNotDE.visible := true; end;
永远不会显示。我不确定括号和分号。
进一步使用的程序似乎只考虑了文章列表中的最后一篇文章。