связи, lookup ... еще раз
Добавлено: 07 Декабрь 2005, 9:06
Здравствуй, Андрей.
Возвращаясь к напечатанному.
Существует следующая ситуация.
Организация таблиц:
Есть справочник Предприятия.
Есть таблица Счета.
В таблице Счета есть два поля: Код поставщика, Код получателя. Это коды из таблицы Предприятий.
Счета и Предприятия связаны на сервере два раза по двум полям. В кларином словаре связи нет.
Просмотр счетов:
Есть окно SQLBrowse для просмотра счетов.
В окне просмотра показывается наименование поставщика и получателя. Эти имена берутся из таблиц
"Предприятия" и "Алиас для Предприятий", описанных в кларином словаре.
Связываю таблицы "Счета", "Предприятия" и "Алиас для Предприятий" руками в точке вставки
WHERE:
SELF.Select.Relation(ACC:ProviderID,EPS:EnterpriseID,False)
SELF.Select.Relation(ACC:RecipientID,EPS1:EnterpriseID,False)
где EPS1 - префикс алиаса
Редактирование счета:
На форме два entry-поля для локальных переменных: Имя поставщика, Имя получателя
+ две шаблонные кнопки Lookup button
Обе кнопки вызывают одну и ту же процедуру просмотра таблицы "Предприятия".
Все работает красиво.
Последовательность действий:
1. Пустой брауз.
2. Добавляем новый счет
3. Поставщик: Первый
4. Получатель: Второй
5. Сохраняем
6. В листе показывается Поставщик: Второй, Получатель: Первый - должно быть наоборот
7. Нажимаю кнопку Refresh - становится как надо: Поставщик: Первый, Получатель - Второй
8. Жмем изменить счет.
9. Меняем получателя: Третий
10. Сохраняем
11. В листе показывается - Поставщик: Третий Получатель: Второй
12. Жмем Refresh: Поставщик: Первый, получатель: Третий
Т.е. грабли возникают при просмотре счетов. Редактирование все ОК.
Что делаю не так?
Если понадобится, то могу выслать приладу и скрипты таблиц MS SQL: все в зачаточном состоянии.
Спасибо.
Возвращаясь к напечатанному.
Существует следующая ситуация.
Организация таблиц:
Есть справочник Предприятия.
Есть таблица Счета.
В таблице Счета есть два поля: Код поставщика, Код получателя. Это коды из таблицы Предприятий.
Счета и Предприятия связаны на сервере два раза по двум полям. В кларином словаре связи нет.
Просмотр счетов:
Есть окно SQLBrowse для просмотра счетов.
В окне просмотра показывается наименование поставщика и получателя. Эти имена берутся из таблиц
"Предприятия" и "Алиас для Предприятий", описанных в кларином словаре.
Связываю таблицы "Счета", "Предприятия" и "Алиас для Предприятий" руками в точке вставки
WHERE:
SELF.Select.Relation(ACC:ProviderID,EPS:EnterpriseID,False)
SELF.Select.Relation(ACC:RecipientID,EPS1:EnterpriseID,False)
где EPS1 - префикс алиаса
Редактирование счета:
На форме два entry-поля для локальных переменных: Имя поставщика, Имя получателя
+ две шаблонные кнопки Lookup button
Обе кнопки вызывают одну и ту же процедуру просмотра таблицы "Предприятия".
Все работает красиво.
Последовательность действий:
1. Пустой брауз.
2. Добавляем новый счет
3. Поставщик: Первый
4. Получатель: Второй
5. Сохраняем
6. В листе показывается Поставщик: Второй, Получатель: Первый - должно быть наоборот
7. Нажимаю кнопку Refresh - становится как надо: Поставщик: Первый, Получатель - Второй
8. Жмем изменить счет.
9. Меняем получателя: Третий
10. Сохраняем
11. В листе показывается - Поставщик: Третий Получатель: Второй
12. Жмем Refresh: Поставщик: Первый, получатель: Третий
Т.е. грабли возникают при просмотре счетов. Редактирование все ОК.
Что делаю не так?
Если понадобится, то могу выслать приладу и скрипты таблиц MS SQL: все в зачаточном состоянии.
Спасибо.