26.03.2007, 14:12 | #1 |
Участник
|
Столкнулся с такой ситуацией.
Есть таблица Table_1 с полем Version (не ключевое поле), в нем находятся данные: Version #1 Version #1 Version #1 Version #1 Version #2.000 Version #2.000 Version #2.000 Version #3 Version #2.000 На форме Form1 связанной с таблицей Table_1 нужно чтобы отображалось только: Version #1 Version #2.000 Version #3 Т.е. нужно чтобы отображались версии без повторения. Создавать еще одну таблицу для хранения результата не хочется. Хотел бы услышать советы. |
|
26.03.2007, 14:18 | #2 |
Участник
|
Как вариант, промаркируйте предварительно нужные записи с помощью MARK и установите MARKEDONLY(TRUE).
|
|
26.03.2007, 14:24 | #3 |
Участник
|
Цитата:
Не очень конечно красиво - получится полный перебор |
|
26.03.2007, 14:33 | #4 |
Участник
|
если версия сиквеловская - написать хп по выбору уникальных данных... вернее не уникальных а чтоб не повторялись
|
|
26.03.2007, 15:32 | #5 |
Участник
|
Я бы перед запуском формы набил временную таблицу уникальными значениями этого поля и на этой таблице открыл форму. Если данные править не надо. Если данные нужно редактировать, то на OnOpenForm опять же набил временную таблицу и переписал бы триггера OnFind, OnNext формы, где сказал бы, что отображать нужно только то, что имеется во временной таблице.
|
|
26.03.2007, 15:40 | #6 |
Участник
|
ну если SQL то можно вьюху сделать и подцепить в nav.
__________________
Want to believe... |
|
26.03.2007, 15:54 | #7 |
Участник
|
Соглашусь, что лучшим вариантом будет создать временную переменную этой таблицы Table_2 и добавлять в нее строки,
хотя в связи с тем, что поле с версиями не ключевое фильтрация может занять много времени. if Table_1.find('-') then repeat Table_2.setrange(Version,Table_1.Version); If not Table_2.FIND('-') then begin Table_2.INIT; Table_2.Version := Table_1.Version; Table_2.INSERT; end; until Table_1.NEXT = 0; Советую добавить ключь Version в таблицу и установить SETCURENTKEY; P.S. Заранее извеняюсь за допущенные ошибки |
|
26.03.2007, 16:14 | #8 |
Участник
|
|
|
28.03.2007, 23:57 | #9 |
Участник
|
Цитата:
Сообщение от Programmer
Столкнулся с такой ситуацией.
Есть таблица Table_1 с полем Version (не ключевое поле), в нем находятся данные: Version #1 Version #1 Version #1 Version #1 Version #2.000 Version #2.000 Version #2.000 Version #3 Version #2.000 На форме Form1 связанной с таблицей Table_1 нужно чтобы отображалось только: Version #1 Version #2.000 Version #3 Т.е. нужно чтобы отображались версии без повторения. Создавать еще одну таблицу для хранения результата не хочется. Хотел бы услышать советы. Определимся со структурой: 1. Поле «Key» - ключевое 2. Поле «Version» - не ключевое Делаем: 1. Заводим новое поле FlowField с названием «KeyVersion» Тип поля такой же как и в поле Key Формула: Метод = Max Таблица = Table_1 Поле = Key Фильтр Таблицы = Version=Field(Version) Таким образом получим уникальность по максимальному ключу в срезах поля Version. 2. В форме: В триггере OnOpenForm Код Код: CALCFIELDS(KeyVersion); SETRANGE (Key , KeyVersion); Работать будет более менее шустро |
|
29.03.2007, 09:24 | #10 |
Участник
|
Цитата:
2. Можно придумать как формочку красиво ресетить и заново фильтровать по аналитике Можно получить неплохое ср-во анализа, альтернативу запросам. |
|