Список форумов КЛУБ FileMaker.RU КЛУБ FileMaker.RU

 
new forum: www.fmforum.ru
FileMaker DevCon Rus 2017.IV коенференция российских разработчиков на платформе FileMaker.
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Пожалуйста помогите...чайнику

 
Начать новую тему   Ответить на тему    Список форумов КЛУБ FileMaker.RU -> Практика FM
Предыдущая тема :: Следующая тема  
Автор Сообщение
sgennadiy



Зарегистрирован: 17.11.2014
Сообщения: 3

СообщениеДобавлено: Пн Ноя 17, 2014 6:48 pm    Заголовок сообщения: Пожалуйста помогите...чайнику Ответить с цитатой

Хочу внести данные учета потребления воды , холодной и горячей за месяц, т. е. вносить их в соответствующие поля (ну ето я осилил) а вот как мне узнать разницу между предшествующим и предыдущим показанием т.е сколько кубометров воды я использовал за месяц.
Создал:
table "Water"
ID
DATA
Hot_W
Cold_W
Used_CW
Used_HW

Помогите пожалуйста.... всю голову сломал )))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Arcady



Зарегистрирован: 24.02.2006
Сообщения: 704

СообщениеДобавлено: Вт Ноя 18, 2014 8:45 am    Заголовок сообщения: Ответить с цитатой

Самый простой способ использовать функцию GetNthRecord котор даст вам значение по номеру записи в сочетании с функцией Get ( RecordNumber ) вы можете получить, например значение предыдущей записи

То есть, например, в вашем случае расход воды, калькулируемое поле =
Cold_W - GetNthRecord ( Cold_W ; Get ( RecordNumber )-1 )
_________________
Аркадий Перла.
ТриАПринт. Разработка решений для FileMaker
http://www.3a-print.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
sgennadiy



Зарегистрирован: 17.11.2014
Сообщения: 3

СообщениеДобавлено: Вт Ноя 18, 2014 10:32 am    Заголовок сообщения: Ответить с цитатой

Снимаю шляпу ))) Спасибо !!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Arcady



Зарегистрирован: 24.02.2006
Сообщения: 704

СообщениеДобавлено: Вт Ноя 18, 2014 10:43 am    Заголовок сообщения: Ответить с цитатой

обратите внимание, что такой способ зависит от текущей выборки и сортировки. При некорректной сортировки у вам предыдущая запись окажется не той, которая нужно.

Возможно более надежный способ (не зависимый от выборки) это создать реляцию таблицы к самой себе по полю date, так что:
water::date > water to water as less::date
здесь water to water as less - название реляции (вы можете назвать как угодно)
В настройках реляции вам нужно указать тип сортировки по date как обратный (самая поздняя наверху), тогда каждая запись из water будет "видеть" все записи из water to water as less где date меньше ее собственной, причем первая запись будет самая ближайшая.
Тогда ваше калькулируемое поле получается =
Cold_W - water to water as less::Cold_W

В обоих способах напоминаю, что вам нужно предусмотреть проверку для самой первой записи, так как у нее нет предыдущего значения, например так:
if ( Count(water to water as less::ID) < 1; 0; Cold_W - water to water as less::Cold_W )
то есть если нет ни одной более ранней записи, то расход 0.
_________________
Аркадий Перла.
ТриАПринт. Разработка решений для FileMaker
http://www.3a-print.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
sgennadiy



Зарегистрирован: 17.11.2014
Сообщения: 3

СообщениеДобавлено: Вт Ноя 18, 2014 2:16 pm    Заголовок сообщения: Ответить с цитатой

Arcady спасибо огромное, первый способ прекрасно подходит !!! Всех благ и респект за помощь )))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов КЛУБ FileMaker.RU -> Практика FM Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB