Я делал так:
1. Если позиция спецификации calcrepu имеет поле NOK более нуля, тогда:
select ExtRem from constructions_kompl where pid=constructions.ID and nok=calcrepu.nok
2. Если NOK=0, тогда ExtRem=constructions.extrem
далее делаю запрос
select * from constructions_sprofs where pid=constructions.ID
и для каждой строк проверяю, если constructions_sprofs.id входит в calcrepu.bid, тогда EXtRem=constructions_sprofs.extrem
P.S. Оригинальный код:
Код:
ExtRem:='';
if profiles_table.dataset.fieldbyname('NOK').asinteger=0 then
begin
ExtRem:=constructions_table.dataset.fieldbyname('ExtRem').asstring;
ExecQueryO('select * from constructions_sprofs where pid='+constructions_table.dataset.fieldbyname('ID').asstring);
iwqo_table.dataset.first;
while not iwqo_table.dataset.eof do
begin
if pos(','+iwqo_table.dataset.fieldbyname('ID').asstring+',',','+profiles_table.dataset.fieldbyname('IDS').asstring+',')>0 then
ExtRem:=iwqo_table.dataset.fieldbyname('ExtRem').asstring;
iwqo_table.dataset.next;
end;
end else
begin
ExecQueryO('select * from constructions_kompl where pid='+constructions_table.dataset.fieldbyname('ID').asstring+' and nok='+profiles_table.dataset.fieldbyname('NOK').asstring);
ExtRem:=iwqo_table.dataset.fieldbyname('ExtRem').asString;
end;
_________________
Как правильно задавать вопросы на форуме поддержкиПовернення до пріоритетної розробки та оновлення WinCalc з 1.10.2024Если я пишу "исправил", "сделал" и т.д., это значит что собрана новая сборка и выложена на сайт. Нужно обновить программу чтобы получить исправления.