![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
заполнение ListView, используя функцию max [IB6.x]
Finjy © (2008-08-28 15:14:00)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);
Но колонка Статус уже не формируется получается ошибка. Как сформировать этот столбец?
Виталий Панасенко(дом) (2008-08-29 09:30:00) [1]сорри, ИБ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 - выходной параметр
Виталий Панасенко(дом) (2008-08-29 09:27:00) [2]for
select iif(max(vers_no)=1,'Создан','Изменен') from table_name into :var do suspend;
Finjy (2008-08-29 08:38:00) [3]Нужно по последней версии написать Создан или Изменен, именно этого я и хочу.
Ega23 (2008-08-28 17:09:00) [4]
> Кто-нибудь что-нибудь понял?
не-а. Но with - слишком дофига.
Виталий Панасенко (2008-08-28 16:52:00) [5]тебе нужно по последней версии написать создан или изменен?
Sergey13 (2008-08-28 16:51:00) [6]> group by prj_name'
зачем это в запросе, если нет агрегатов?
Виталий Панасенко (2008-08-28 16:50:00) [7]
> Finjy (28.08.08 16:44) [4]
> Finjy (28.08.08 16:46) [5]
Кто-нибудь что-нибудь понял?
Finjy (2008-08-28 16:46:00) [8]Должна получаться следующая таблица
Статус Деталь Версия
Изменен Корпус Версия3
Создан Плита Версия1
Finjy (2008-08-28 16:44:00) [9]Строка n:=FieldByName('prj_ver'); уже заведомо не правильная, отладчик тут не поможет. Как раз и нужно изменитьэту стоку и условие
if n: ='Версия1' then Caption :='Создан' else
Caption :='Изменен';
Вот я и не знаю как это сделать
Sergey13 (2008-08-28 16:40:00) [10]> [0] Finjy (28.08.08 15:14)
> Столбец Статус имеет значение "Создан",если в столбце Версия
> значение Версия1, в противном случае "Изменен".
Ну и какой тогда в нем смысл?
Сергей М. (2008-08-28 16:37:00) [11]
> колонка Статус уже не формируется получается ошибка
Возьми отладчик в зубы да пройдись по своему творению пошагово.
В чем проблема-то ?
Ega23 (2008-08-28 15:20:00) [12]Начни с того, что все with поубирай и посмотри, что получается.