-
Finjy (28.08.08 15:14) [0]ListView заполняю следующим образом
Статус Деталь Версия
Создан Корпус Версия1
Изменен Корпус Версия2
Изменен Корпус Версия3
Создан Плита Версия1
Столцы Статус, Имя выбираются из запроса
Столбец Статус имеет значение "Создан",если в столбце Версия значение Версия1, в противном случае "Изменен".
Вот код
var
n:String;
begin
SQL.Clear;
SQL.Add('select prj_name,prj_ver, from prjver_previews
left join prjversion on prjver_previews.prjver_id = prjversion.prjver_id
group by prj_name' );
n:=FieldByName('prj_ver');
Open;
while not Eof do
begin
with ListView1.Items.Add do
begin
if n: ='Версия1' then Caption :='Создан' else
Caption :='Изменен';
with SubItems do
begin
Add(FieldByName('prj_name').AsString);
Add(FieldByName('prj_ver').AsString);
end;
end;
Next;
end;
Close;
end;
Задача заключается в следующем: в таблице должна отображаться только последняя версия для каждой детали.С этим то проблем
нет,в запросе пишу вместо prj_ver max(prj_ver),вместо Add(FieldByName('prj_ver').AsString) Add(FieldByName('max').AsString);
Но колонка Статус уже не формируется получается ошибка. Как сформировать этот столбец? -
Начни с того, что все with поубирай и посмотри, что получается.
-
Сергей М. © (28.08.08 16:37) [2]
> колонка Статус уже не формируется получается ошибка
Возьми отладчик в зубы да пройдись по своему творению пошагово.
В чем проблема-то ? -
> [0] Finjy (28.08.08 15:14)
> Столбец Статус имеет значение "Создан",если в столбце Версия
> значение Версия1, в противном случае "Изменен".
Ну и какой тогда в нем смысл? -
Finjy (28.08.08 16:44) [4]Строка n:=FieldByName('prj_ver'); уже заведомо не правильная, отладчик тут не поможет. Как раз и нужно изменитьэту стоку и условие
if n: ='Версия1' then Caption :='Создан' else
Caption :='Изменен';
Вот я и не знаю как это сделать -
Finjy (28.08.08 16:46) [5]Должна получаться следующая таблица
Статус Деталь Версия
Изменен Корпус Версия3
Создан Плита Версия1 -
Виталий Панасенко © (28.08.08 16:50) [6]
> Finjy (28.08.08 16:44) [4]
> Finjy (28.08.08 16:46) [5]
Кто-нибудь что-нибудь понял? -
> group by prj_name'
зачем это в запросе, если нет агрегатов? -
Виталий Панасенко © (28.08.08 16:52) [8]тебе нужно по последней версии написать создан или изменен?
-
> Кто-нибудь что-нибудь понял?
не-а. Но with - слишком дофига. -
Finjy (29.08.08 08:38) [10]Нужно по последней версии написать Создан или Изменен, именно этого я и хочу.
-
Виталий Панасенко(дом) (29.08.08 09:27) [11]for
select iif(max(vers_no)=1,'Создан','Изменен') from table_name into :var do suspend; -
Виталий Панасенко(дом) (29.08.08 09:30) [12]сорри, ИБ6, там нету IIF...
for
select max(vers_no) from table_name into :var do
begin
if var=1 then
var_str = 'Создан';
else
var_str = 'Изменен'
suspend;
end;
var_str - выходной параметр