![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Firebird [D7, Firebird]
MVN © (2008-05-12 17:13:00)Добрый день!
Есть 2 таблицы: AGENTPOINT_PLACE (поля 'NAME' и т.д.) и AGENTPOINT_WORKS(поля "начало работы", "конец работы" и т.д.).Есть ComboBox в котором пользователь выбирает нужную точку обслуживания. Для каждой точки должен быть режим работы. Задача не давать пользователю возможность выбирать пункт, у которого нет режима работы. Помогите понять принцип действий.
я так думаю, типа..
ControlList.Clear;
if (DataSours.FIBDataSet.FieldByName('Начало работы').Value = NULL)
then begin
ComboBox.... (не пойму как запретить выбор поля 'NAME')
ControlList.AddError('Не введен режим работы',0,2);
ComboBox.SetFocus;
SystemParamsInternal.CanExecute := false;
end else SystemParamsInternal.CanExecute := True;
inherited;
end;
компоненты FIBDataSet и DataSource
Sergey13 (2008-05-16 08:44:00) [1]> [5] MVN © (15.05.08 17:00)
А в [4] описан не программный способ?
MVN (2008-05-15 17:00:00) [2]А как проверить наличие у агента режима работы программным кодом, а не sql-запросом?
Sergey13 (2008-05-13 11:48:00) [3]> [3] MVN © (13.05.08 11:44)
Если датасеты связаны мастер-детайлом, то если мне не изменяет память, на AfterOpen детайла можно проанализировать его isEmpty.
MVN (2008-05-13 11:44:00) [4]Мне желательно, что б записи попадали в датасет, но при выборе той, у которой не задан режим (is not Null) выдавалось сообщение, что режим не задан.
Sergey13 (2008-05-13 08:30:00) [5]> [0] MVN © (12.05.08 17:13)
Не вопрос, а набор недомолвок и противоречий. 8-)
1. "Есть 2 таблицы" - А как они связаны? Режимов работы может быть >1? Если нет, то какой смысл вообще во второй таблице?
2. "Для каждой точки должен быть режим работы. Задача не давать пользователю возможность выбирать пункт, у которого нет режима работы. "
Так он ДОЛЖЕН БЫТЬ, но его МОЖЕТ и НЕ БЫТЬ? То, что его нет - это не заполнены поля начала/конца или просто отсутствует связанная запись? Если второе, то из запроса [1] Юрий Зотов © (12.05.08 17:58) нужно выкинуть 2 последних условия.
Юрий Зотов (2008-05-12 17:58:00) [6]Если я правильно понял вопрос, то что-то вроде этого:
select
PLACE.NAME as NAME,
from
AGENTPOINT_PLACE PLACE,
AGENTPOINT_WORKS WORKS
where
WORKS.PLACE_ID = PLACE.ID
and
WORKS.START is not NULL
and
WORKS.FINISH is not NULL
После чего в датасет попадают (и отображаются в комбобоксе) только "правильные записи".