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

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

Сделать Lookup - поле....


STX ©   (2006-08-05 01:41:00) 

В НД есть поля АДРЕС | ДОМ | КВАРТИРА. А как их вывести в таблицу в одном поле?
Создавать отдельное поле в НД нет надобности...


Leonid Troyanovsky   (2006-08-06 11:26:00) [1]


> Megabyte ©   (06.08.06 11:16) [9]

> А не проще ли изменить запрос и сделать конкатенацию строк:
>  (поле1 || поле2 ||


На клиенте оформатировать вывод проще, возможности шире.

--
Regards, LVT.


Megabyte   (2006-08-06 11:16:00) [2]

А не проще ли изменить запрос и сделать конкатенацию строк: (поле1 || поле2 || поле3) as Мегаполе? Или я вопрос не так понял?


Leonid Troyanovsky   (2006-08-05 15:02:00) [3]


> STX   (05.08.06 14:20) [7]

> Такой вариант решения верный ?????


Ну, а почему бы и нет?
Хотя, проще б было создать экземпляры требуемых полей
с помощью Fields Editor, а сцеплять их простым

Text := dtOrdersSTREET.AsString + '..'+  dtOrdersHOUSE.AsString + ..

--
Regards, LVT.


STX   (2006-08-05 14:20:00) [4]


procedure TDModule.dtOrdersLookUpAddressFromGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
 with dtOrders do begin
   if NOT FieldByName('STREET').IsNull then text := FieldValues['STREET'];
   if NOT FieldByName('HOUSE').IsNull  then text:= text + ' '+ FieldValues['HOUSE'];
   if NOT FieldByName('APART').IsNull  then text:= text + ' êâ.'+ FieldValues['APART'];
 end;//with dtOrders
end;


Такой вариант решения верный ?????


STX   (2006-08-05 14:20:00) [5]


procedure TDModule.dtOrdersLookUpAddressFromGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
 with dtOrders do begin
   if NOT FieldByName('STREET').IsNull then text := FieldValues['STREET'];
   if NOT FieldByName('HOUSE').IsNull  then text:= text + ' '+ FieldValues['HOUSE'];
   if NOT FieldByName('APART').IsNull  then text:= text + ' кв.'+ FieldValues['APART'];
 end;//with dtOrders
end;


Такой вариант решения верный ?????


Leonid Troyanovsky   (2006-08-05 13:09:00) [6]


> STX   (05.08.06 12:49) [3]

> записи выдает ошибку: невозможно преобразовать NULL в STRING
> и прога зависает.


Покажи строку объединения.

--
Regards, LVT.


STX   (2006-08-05 13:03:00) [7]

В процедуру OnGetText добавил проверку наличия значения в полях и если = NULL то EXIT.

Верное ли это решение???? Может есть более правильное?


STX   (2006-08-05 12:49:00) [8]

Уже добавлял. В свойстве OnGetText все нужной объединяется и показывается. Только есть проблема - при добавлении новой записи выдает ошибку: невозможно преобразовать NULL в STRING и прога зависает.


Leonid Troyanovsky   (2006-08-05 11:16:00) [9]


> STX   (05.08.06 11:05) [1]

> какое в табл. добавить поле (только для отображения), объединяющее
> 3 других в этой же строке


Добавь к датасету calculated field.

--
Regards, LVT.


STX   (2006-08-05 11:05:00) [10]

Ребят, кто-нибудь, подскажите.

какое в табл. добавить поле (только для отображения), объединяющее 3 других в этой же строке


Наверх

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