Author |
Topic |
|
mers
Russia
159 Posts |
Posted - 02/05/2008 : 13:07:42
|
Здравствуйте, ситуация следующая:
Шейп связан с БД. В одну из кастом пропертей получаю дату и время из таблицы БД. Далее следует проверка: если дата текущая, то в текст шейпа выводится время, если нет, то пустая строка.
Шейп связывается нормально и данные из БД получаю нормально - в кастом проперти получаю строку содержащую дату и время. Но вот сравнить с текущей датой в текст фиелд никак не получается.
Пишу что-то вроде IF(DATEVALUE((Prop.datetime)) = DATEVALUE(NOW()), TIMEVALUE(Prop.datetime), "") формула вводится, но не работает. подскажите в чем проблема? или может есть другой путь решения проблемы. |
Edited by - mers on 02/05/2008 13:09:06 |
|
Tumanov
Russia
1198 Posts |
Posted - 02/05/2008 : 19:28:20
|
Интересный получился вопросик... Мне понравилось :) Неточностей здесь вроде бы две:
2. Вы пытаетесь в зависимости от условия записать в ячейку либо значение типа TIMEVALUE, либо строку (пустую). Наверное это не правильно. Лучше вместо TIMEVALUE(Prop.Row_1) написать что-то типа FORMAT(TIMEVALUE(Prop.Row_1),"HH:mm")
1. Операция сравнения. Слева в качестве аргумента ссылка на ячейку, а справа функция. Похоже, что функция преобразует значение времени в соответствии с установкой Windows, а в ячейку записывается в другом формате, независимо от этой установки. Когда я попробовал подобрать этот формат, то формула заработала. У меня работает формула: =IF(DATEVALUE(Prop.Row_1)=DATEVALUE(NOW()),FORMAT(TIMEVALUE(Prop.Row_1),"HH:mm"),"") когда в Prop.Row_1 записана формула DATEVALUE(Prop.Row_1) и установлен формат 3-Oct-93 или {{d-MMM-yy}}
Выглядит это не очень надежно. Возможно, такая игра с форматами на другой машине не сработает. В качестве варианта можно попробовать и DATEVALUE(NOW()) тоже пропустить через ячейку (пусть преобразования станут одинаковыми). И в правой части сравнения тоже сослаться на ячейку. |
|
|
|
Topic |
|
|
|