работа с типом "date" (@ формула)

Тема в разделе "Lotus - Программирование", создана пользователем 777DEN777, 3 авг 2011.

  1. 777DEN777

    777DEN777 Гость

    Приветствую, подскажите пожалуйста по вопросу:
    в представлении столбца введена формула
    Код (LotusScript):
    @Implode(ExDate;"*")
    в результате получаем значение столбца:
    27.04.2011*25.04.2011*26.04.2011*21.04.2011

    формат даты верный

    возникли случаи отображения формата следующего вида
    08/21/2011 (08 месяц 21 число)

    как корректно выполнить конвертацию даты в форат DD.MM.YYYY

    или просто вместо даты ничего не показывать

    Вариант не сработал (ОШИБКА: Неверный тип данных для оператора или @-функции: ожидался текстовый):
    Код (LotusScript):
    @Implode(@IfError(@ToTime(ExDate);"");"*")
     
  2. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Код (Text):
    @Implode(@IfError(@TextToTime(@Text(ExDate));"");"*")
     
  3. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    ExDate в документах какой тип?
    Как дата или как строка хранится?
     
  4. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    Интересно, почему никому не приходит в голову хранить числа в текстовых полях? Ну типа "1,237.12", "100 500,80". Свежо, необычно и держит в тонусе коллег по цеху...

    У Вас поле ExDate текстовое...
    Правильное решение - переделать его в Date/Time ( на форме и агентом во всех существующих документах ) и работать с датой, а не с текстом.
    Парсить текст, преобразовывать в DateTime, форматировать этот DateTime к нужному виду - неправильное решение, т.к. это костыль для костыля. Устраните причину проблемы - исчезнет сама проблема.
    P.S. В уголовный кодекс стоит внести ответственность за хранение даты в текстовом поле.
     
  5. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    +1
     
  6. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ещё, кстати, неслабо расширяет матерный запас!
     
  7. 777DEN777

    777DEN777 Гость

    ОШИБКА: Неверный тип данных для оператора или @функции: ожидался текстовый

    см. вложенный файл

    ребятам из InterTrust виднее,
    для меня решение пока только с преобразованием
     

    Вложения:

    • 777.JPG
      777.JPG
      Размер файла:
      19,7 КБ
      Просмотров:
      152
  8. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    ну как бы из картинки не следует, что поле текстовое... пустое поле лотус в любом случае сохранит как текст...
    я бы для верности посмотрел на аналогичную картинку для непустого поля.
     
  9. 777DEN777

    777DEN777 Гость

    у пользователя который работал с документом в системе был установлен Английский (США) формат, от этого и поехало
     

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      22,2 КБ
      Просмотров:
      145
    • 2.JPG
      2.JPG
      Размер файла:
      20,2 КБ
      Просмотров:
      140
  10. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Ну, если разработка чужая, то преобразовать в дату не получится.
    тогда можно попробовать настроить у пользователя правильно формат дат, а документы отобрать во вьюху с отбором по @contains(ExDate; "/") или через поиск и дальше сконвертировать эти документы агентом типа такого:
    @if(@contains(ExDate; "/");
    Field ExDate :=
    @transform(ExDate; "var";
    @If(@contains(var;"/");@do(d3:=@explode(var; "/"); d3[2]+"."+d3[1]+"."+d3[3]); var));
    @nothing)
    к сожалению, не тестила код, писала сходу, но идея для замены формата должна быть понятна.
     
  11. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    777DEN777
    Пичааааль

    Ты в этой базе можешь модифицировать код?

    Надо избавляться от этого г. однозначно.
    В крайнем случае, на сохранении продублировать данные в своё поле сохраняя их в правильном типе.
    Хранить дату как string - верх ламерства.
     
  12. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    вообще конечно жесть. "ребятам из InterTrust" пламенный привет...

    рискну предположить:
    судя по тому, что система нормально функциклирует на таких данных - данное поле тупо нигде не используется, либо используется только для отображения.
    В противном случае это гамно где-нибудь вылезло. Ну не может система нормально работать, когда дата храница текстом, да еще и в произвольном формате.
    Я бы ( ни секунды не сомневаясь :) ) перегнал пару документов в к нормальному DateTime и посмотрел пару дней на реакцию системы. Если криминала не обнаружится, перегнал бы все остальное. Ибо нех.
    Если боязно, тогда по варианту Omh...

    Оставшиеся два варианта:
    - поправить american date format на нужный ( по примеру Oken ) и следить за локализацией всех клиентов
    - обратиться в суппорт с вопросом "как жить дальше?"
     
  13. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    @Implode(@IfError(@Text(@TextToTime(@Text(ExDate)));"");"*")

    Атак?)))
     
  14. 777DEN777

    777DEN777 Гость

    вопрос решен. :)
    Большое спасибо всем за помощь,

    особено kizarek то что надо, спасибо
     
  15. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Совсем не факт что будут корректно преобразовываться даты других форматов, так что лучше делайте как советовали (поле должно быть типа Дата).

    Будет месяц с днем местами изменены и пипка)
     
  16. 777DEN777

    777DEN777 Гость

    это единичный случай, думаю в дальнейшем не должно быть проблем

    к сожалению БД и разработки сторонней организации, доступ на изменения ограничен


    не совсем понял насчет изменения местами месяца и дня. в скрине №2 такая ситуация 08/21/2011, но Ваш пример возвращает 21.08.2011.
     
  17. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Это пока можно однозначно определить где месяц, а где число. Когда станет нельзя(08/09/2011), начнется веселье.
     
  18. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    я не восторге от Интертрастовского OfficeMedia (а речь, похоже, о нем).
    Но не надо их обвинять в том чего они не делали, рискуете подать им идею. :)
    Вот описание поля ExDate из их шаблона
    ExDate.JPG

    Добавлено: Кстати, везде, где приходится сопровождать Office* и CompanyMedia от InterTrust - код открыт для сопровождения.
    За исключением некоторых модулей.
     
  19. 777DEN777

    777DEN777 Гость

    видимо мы говорим о разным БД (не буду указывать БД, это не имеет отношения к теме)
    обвинения конкретно адресованные Интертраст в топике никто не указывал.
    думаю такое решение результатом было необходимость разработчиков.
    насчет риска )) бывает необходимость оперативного решения, в некоторых случаях касательно моего краткой консультацией, тем более это не ошибка системы, а собственная разработка в виде представления, думаю не стоит
     
  20. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    если
    , то тогда стоит поаккуратней с фразами типа
    можно обойтись без указания компании, тем более, что я не вижу представителей ИТ особо желающих отвечать на нашем форуме. как-то некорректно получается, имхо.
    П.С. Я к ИТ отношения не имею, если что :)
    ОФф:
    Код вроде и открыт, но лично я сталкивалась на запрет модификации элементов дизайна на проекте на базе СМ. Неудобно тем, что когда находят баги в твоей БД, но в "запретном" дизайне, то либо пишешь интересные вопросы, либо ищешь, как баг обойти - порой пишешь у себя "костыли", порой просто забиваешь :(
     
Загрузка...
Похожие Темы - работа типом date
  1. Andrey Kha
    Ответов:
    0
    Просмотров:
    32
  2. Hoasker
    Ответов:
    0
    Просмотров:
    65
  3. garri671
    Ответов:
    0
    Просмотров:
    57
  4. lelik200969
    Ответов:
    0
    Просмотров:
    55
  5. Kozolick
    Ответов:
    0
    Просмотров:
    144

Поделиться этой страницей