Ввод даты в версии 5 (и мжет быть 6)

Стартовая страница Форумы Понять, как работает ПО Ввод даты в версии 5 (и мжет быть 6)

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Автор
    Сообщения
  • #40377
    a80808
    Участник

    Коллеги, задача посчитать разность дат, причем одна из них вводится вручную.
    Сделал как учили (Val() во входном канале, SetVal(CnlNum, Cmd) в выходном) единственная «отсебятина» — это во входном канале Формат = Дата. Ввод запускается, вводить дает…но на все пишет «Некорректное значение команды.» При попытках нагло ввести что то типа «12345» пишет «Команда отклонена сервером». Перепробовал всякие разделители и порядок день-месяц-год…

    Кто знает, как вводить нужно и можно ли? боюсь предположить, что там UnixTimeStamp….

    #40378
    manjey73
    Участник

    Когда вы выставляете в Формат — Дата, Дата и Время или Время у вас для формулы используется не Cmd а CmdDataString — используйте это в формуле для парсинга даты.

    #40379
    manjey73
    Участник

    Соврал малость. вот какие-то скрипты есть

    public byte[] GetDateStr(int mn)
    {
      string s = Encoding.UTF8.GetString(CmdData);
      DateTime dt = DateTime.Parse(s);
      SetVal(mn, EncodeDate(dt));
      return null;
    }
    
    public double GetStrDt(string dt)
    {
    SetVal(CnlNum, EncodeDate(DateTime.Parse(dt)));
    return EncodeDate(DateTime.Parse(dt));
    }
    
    public double GetStrDtToUtc(string dt)
    {
    SetVal(CnlNum, EncodeDate(DateTime.Parse(dt).ToUniversalTime()));
    return EncodeDate(DateTime.Parse(dt).ToUniversalTime());
    }
    
    public double ConvertToUtc(double val)
    {
    DateTime dt = DateTime.FromOADate(val).ToUniversalTime();
    return dt.ToOADate();
    }
    #40382
    Mikhail
    Модератор

    Когда пользователь вводит дату, то в канал приходит строка, которую можно считать в переменной CmdData. Нужно её преобразовать в дату. Могу ошибаться.

    #40401
    manjey73
    Участник

    CmdDataStr — в выходной формуле указываем GetStrDtToUtc(CmdDataStr), при команде вызывается календарь для ввода даты.

    #40402
    a80808
    Участник

    GetStrDtToUtc отсутствует в текущем контексте
    Может это только для в.6?

    #40404
    manjey73
    Участник

    GetStrDtToUtc — это мои формулы, которые необходимо добавить в скрипты. (нужную из приведенных)

    И это только для v6, в 5-й я формулы уже не изобретаю… 🙂

    Кстати открытие календаря насколько помню реализовано только в версии 6, при указании Формата команды «Дата и время»

    • Ответ изменён 7 месяцев, 3 недели назад пользователем manjey73.
    #40406
    Mikhail
    Модератор

    В 5-й версии нет CmdDataStr, нужно будет массив байт CmdData преобразовать в строку:
    Encoding.UTF8.GetString(CmdData)
    Желательно вывести промежуточные результаты в текстовый файл, чтобы понять как работает формула.

    • Ответ изменён 7 месяцев, 3 недели назад пользователем Mikhail.
Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Для ответа в этой теме необходимо авторизоваться.