Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
ВнизНезнаю в какой форум бросить - прочитайте plz Найти похожие ветки
← →
saNat (2003-10-22 02:21) [0]Создаю в real-time TDBLookUpComboBox и TLabel
<----------TDBLookUpComboBox-------------->
List_001:=TDBLookUpComboBox.Create(Self);
List_001.Parent:=Self;
List_001.Color:=clMoneyGreen;
List_001.Left:=Label_001.Left+Label_001.Width+5;
List_001.Top:=17;
List_001.Width:=121;
List_001.TabOrder:=0;
List_001.KeyField:="Unit_ID";
List_001.ListField:="UnitName";
List_001.ListSource:=DBAccess.UnitInfoDS;
List_001.DataSource.DataSet.AfterScroll:=SQL_Phone;
<------------------------>
<--------TLabel---------------->
//Создание текста кода филиала
Label_003:=TLabel.Create(Self);
Label_003.Parent:=Self;
Label_003.AutoSize:=False;
Label_003.Left:=Label_002.Left+Label_002.Width+5;
Label_003.Top:=21;
Label_003.Caption:="";
Label_003.Width:=41;
<------------------------>
В списке List_001 названия городов а в метке Label_003 - их тел. коды. Нужно при смене названия города в списке (например по нажатию клавы или клике мышкой) выводился соотв. код города в метку.
есть запрос, читающий ключевое поле города по его названию из таблицы
<------------------------>
Function TReportPanel.GetUnit_ID:String;
Begin
With DBAccess do
Begin
DBQuery.Close;
DBQuery.SQL.Clear;
DBQuery.SQL.Add("Select Unit_ID From UnitInfoTable");
DBQuery.SQL.Add("Where UnitName=""+List_001.Text+""");
DBQuery.Open;
Result:=DBQuery.FieldByName("Unit_ID").AsString;
End;
End;
<------------------------>
и запрос, читающий коды городов
<------------------------>
Procedure TReportPanel.SQL_Phone(DataSet: TDataSet);
<------------------------>
Begin
With DBAccess do
Begin
DBQuery.Close;
DBQuery.SQL.Clear;
DBQuery.SQL.Add("Select UnitPhonePIN From UnitInfoTable");
DBQuery.SQL.Add("Where Unit_ID="+GetUnit_ID);
DBQuery.Open;
End;
End;
правда еще не введен код для ввода полученного кода в метку, но это мелочи.
Проблема в том что при создании в списке пустая строка, а не первое (к примеру) значение города из таблциы. Положим (меня это устраивает) можно нажать клавишу "ВНИЗ" выбрав первый из городов и зацепившись за событие обновить код города, но при этом вначале выполняется мой запрос, а только потом название города попадает в список, что ведет к исключению в запросе...
мне тут подсказали что надо крутить DataSet AfterScroll, но чегото я не понял, возникает ошибка при создании списка
List_001.DataSource.DataSet.AfterScroll:=SQL_Phone;
т.е где то я вру
Собственно я както делал сие, но подругому - через родное событие списка, но не помню а исходник кудато делся...
Ваше мнение, господа мастера...
Спасибо за внимание...
← →
saNat (2003-10-22 14:59) [1]Неужели нету вариантов....
← →
Романов Р.В. (2003-10-22 15:24) [2]В onChange не пробовал выполнять запрос?
← →
saNat (2003-10-22 23:55) [3]to Романов Р.В. У компонента TDBLookUpComboBox нет такого события
← →
saNat (2003-10-23 01:18) [4]Ну вобщем я решил задачку.... короче пишем процедуру обработчик и запрос в одном лице:
Procedure TReportPanel.SQL_Phone(Sender:TObject; Var
Key:Word; Shift:TShiftState);
Begin
With DBAccess do
Begin
DBQuery.Close;
DBQuery.SQL.Clear;
DBQuery.SQL.Add("Select UnitPhonePIN From UnitInfoTable");
DBQuery.SQL.Add("Where UnitName=""+List_001.Text+""");
DBQuery.Open;
Label_003.Caption:=DBQuery.FieldName("UnitPhonePIN").AsString;
End;
End;
И цепляем за событие:
List_001.OnKeyUp:=SQL_Phone;
Элементарно!!!!!!!!!!!1
← →
saNat (2003-10-23 01:19) [5]Ну вобщем я решил задачку.... короче пишем процедуру обработчик и запрос в одном лице:
Procedure TReportPanel.SQL_Phone(Sender:TObject; Var
Key:Word; Shift:TShiftState);
Begin
With DBAccess do
Begin
DBQuery.Close;
DBQuery.SQL.Clear;
DBQuery.SQL.Add("Select UnitPhonePIN From UnitInfoTable");
DBQuery.SQL.Add("Where UnitName=""+List_001.Text+""");
DBQuery.Open;
Label_003.Caption:=DBQuery.FieldName("UnitPhonePIN").AsString;
End;
End;
И цепляем за событие:
List_001.OnKeyUp:=SQL_Phone;
Элементарно!!!!!!!!!!!1
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c