Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Создание LookUp полей Runtime  (Прочитано 13913 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Chel
Гость
« : 03-02-2004 13:12 » 

Как можно корректно добавить LookUp поле в Query?
Такой код выдает ошибку qrDistr: Field "FIMS_TYPE" not found. Вроде как пытается наладить лукап связь, а поля 'FIMS_TYPE' еще нет(запрос еще не открыт)

Код:
var F { TStringField;
begin
  qrPtype.close;
  qrDistrib.close;
  F {= TStringField.Create)Self:;
  qrDistrib.Fields.Add)f:;
  with F do
  begin
    Lookup{=true;
    FieldName{='ZZ';
    KeyFields {= 'FIMS_TYPE';
    LookupDataSet {= qrPtype;
    LookupKeyFields {= 'DIC_VALUE';
    LookupResultField {= 'DIC_NAME';
    Name {= 'qrDistribTYPE';
  end;
  qrPtype.open;
  qrDistrib.Open;


Если предварительно в запросе создать FieldDef-ы то начинает падать на AV.
Записан
Chel
Гость
« Ответ #1 : 03-02-2004 13:43 » 

http://www.rxlib.ru/faqs/faqd_en/17146.html

Всё вопрос снят. Ага
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #2 : 03-02-2004 14:19 » 

у меня нормально работает следующий код:

Код:

var
  f{ TField;
begin
  Query1.Close;
  f {= TStringField.Create )Query1:;
  with f do begin
    FieldName {= 'Company';
    Name {= 'Query1Company';
    Size {= 30;
    FieldKind {= fkLookup;
    LookupDataSet {= Query2;
    KeyFields {= 'CustNo';
    LookupKeyFields {= 'CustNo';
    LookupResultField {= 'Company';
    DataSet {= Query1;
  end;
  Query1.Fields.Add )f:;
  Query1.Open;
end;
Записан

Chel
Гость
« Ответ #3 : 03-02-2004 14:22 » 

Тогда такой вопрос. Обязательно ли наличие Def полей в двух запросах?
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #4 : 03-02-2004 14:23 » 

ну надо же, почти, как в ссылке Улыбаюсь
Записан

x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #5 : 03-02-2004 14:27 » 

если имеются в виду статические объявление полей, то да. без них лукап нельзя создать даже в дизайн-тайм.
Записан

Chel
Гость
« Ответ #6 : 03-02-2004 15:01 » 

Можно ли создавать Def поля программно и если можно то как?
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #7 : 05-02-2004 07:19 » 

программно можно создать всё. но эти поля представляют собой независимые объекты. если ты посмотришь на объявление формы, они прописаны там так же, как кнопки, панели и пр. можно всё создать вручную, но геморроя будет на несколько листов. проще организовать это иначе. 7например, завести вычисляемое поле и в OnCalc прыгать на нужную запись в соседней квери и засовывать к себе нужные данные.
Записан

x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #8 : 05-02-2004 07:23 » 

кстати говоря, для квери лукапы намного легче организовывать в самом запросе на уровне JOIN, это гораздо меньше тормозит систему, чем стандартный лукап-компонент и/или контрол.
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines