02.12.2008, 17:35 | #1 |
Участник
|
Добрый день. Не могу понять, в чем проблема, очень нужна помощь.
У нас есть справочник товаров (Таблица 1) и есть таблица, состоящая из трех полей (Таблица 2): товар №, Код группы, дата (ключ: товар, дата). Необходимо, чтобы при открытии Карточки товара в поле Field1, выводился код из второй таблицы в зависимости от даты. Т.е. если допустим в таблице №2 есть три записи: Товар1 Код_1 28.11.08 Товар1 Код_2 02.12.08 Товар1 Код_3 05.12.08 Если я накладываю фильтр SETFILTER(дата '..%1',02.12.08), то необходимо, чтобы в поле отразилась последняя запись из выборки. Т.е. Код_2. Я добавляю в таблице Товары поле «дата фильтр» FlowFilter а, необходимо поле Field1 FlowField. Формулы были испробованы разных видов, но ничего не помогает, значение в карточке появляется совершенно не понятное порой. Подскажите в чем проблема, что я делаю не так. Вот примеры моих формул: Max(Таблица2. "Код группы" WHERE (Item No.=FIELD(No.),Date=FIELD(Data Filter))) Lookup(Таблица2. "Код группы" WHERE (Item No.=FIELD(No.),Date=FIELD(Data Filter))) Lookup(Таблица2. "Код группы" WHERE (Item No.=FIELD(No.),Date=FIELD(UPPERLIMIT(Data Filter)))) |
|
02.12.2008, 18:01 | #2 |
Участник
|
исходя из условий фильтра
SETFILTER(дата '..%1',02.12.08), то необходимо, чтобы в поле отразилась последняя запись из выборки. Т.е. Код_2. в выборку попадут Код_2 и Код_1 т.к. фильтр по дате ..02.12.08 и в него попадают две даты из списка 28.11.08 02.12.08 |
|
02.12.2008, 18:27 | #3 |
Участник
|
Правильно, в выборку попадут две записи, но нам необходимо взять значение из последней. Возможно ли это сделать с помощью FlowField?
|
|
02.12.2008, 18:35 | #4 |
Участник
|
Напишите какой SumIndexField в Таблице N2
|
|
03.12.2008, 10:44 | #5 |
Участник
|
Проблему можно решить, заведя в Таблице 1 еще одно FlowField типа Date, допустим, "Group Date". Для него надо написать
Max(Таблица2. Date WHERE (Item No.=FIELD(No.),Date=FIELD(Data Filter))). А поле, в котором будет находиться код группы, тогда должно иметь формулу Lookup(Таблица2. "Код группы" WHERE (Item No.=FIELD(No.),Date=FIELD("Group Date"))) Только, внимание, фокус! Номер поля, где считается группа, должен быть больше номера поля Group Date. |
|
03.12.2008, 11:14 | #6 |
Участник
|
Цитата:
Сообщение от Milk
Проблему можно решить, заведя в Таблице 1 еще одно FlowField типа Date, допустим, "Group Date". Для него надо написать
Max(Таблица2. Date WHERE (Item No.=FIELD(No.),Date=FIELD(Data Filter))). А поле, в котором будет находиться код группы, тогда должно иметь формулу Lookup(Таблица2. "Код группы" WHERE (Item No.=FIELD(No.),Date=FIELD("Group Date"))) Только, внимание, фокус! Номер поля, где считается группа, должен быть больше номера поля Group Date. |
|