Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.01 c
3-8316
off
2003-10-13 08:23
2003.11.03
Type mismatch?


1-8357
DimChan
2003-10-23 10:05
2003.11.03
TQuery


1-8493
Grafdionis
2003-10-23 22:17
2003.11.03
Скорость истечения времени


1-8479
Германн
2003-10-21 04:02
2003.11.03
DBGrid


1-8393
LaidBack
2003-10-21 16:15
2003.11.03
Help: Не вызывается BreakPoint при отладке DLL под XP!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский