Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

заполнение 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 поубирай и посмотри, что получается.


Наверх

Титульная страница Поиск, карта сайта Написать письмо