AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.03.2009, 16:11   #1  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Добрый день.

Ситуация:
Navision 4.0 SP3

В 7-ю табличку - стандартные тексты - добавил поле с типом DateFormula.
Соответственно, в этом поле сидят записи типа "+1М+20Д"

Есть необходимость работать с этими записями напрямую на SQL
SQL 2005, SQL Server Management Studio
Открываем табличку там и видим вместо букв "М" и "Д" квадратики...
т.е. "+1<квадратик>+20<квадратик>"

Насколько я помню, в 3-х версиях Navision была возможность вбивать дейтформулы латинскими буквами, используя угловые скобочки.
Но здесь, когда я вбиваю формулы с угловыми скобками латиницей, она автоматом преобразуется в формулу без угловых скобок с русскими буквами.

Может, кто подскажет решение?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 24.03.2009, 16:50   #2  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Дуд Посмотреть сообщение
Может, кто подскажет решение?
Что делать с квадратами сразу скажу - пока не знаю. Просто добавь в таблицу еще одно поле - технологическое, не выводимое в интерфейс, которое на валидейте ДатыФормулы будет заполняться колвом дней для введенной формулы. Тупо к тудею прибавлять введенный период и находить разницу между получившимся и тудеем. А вот эту цифру удобно будет использовать где угодно.
Старый 24.03.2009, 16:53   #3  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Ром, там могут быть месяцы и кварталы, тупо число дней не катит.
Кроме того, нужна возможность редактировать в SQL формулу, а не только читать.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 24.03.2009, 16:54   #4  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Дуд Посмотреть сообщение
Ром, там могут быть месяцы и кварталы, тупо число дней не катит.
Кроме того, нужна возможность редактировать в SQL формулу, а не только читать.
Ок, пусть будут хоть годы. Будет у тебя в этом поле допустим 386. Вот и будешь прибавлять эту цифирь в скуле.
А. Не дочитал про "редактировать" ) Мутишь чета )
Старый 24.03.2009, 17:01   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Дуд Посмотреть сообщение
Открываем табличку там и видим вместо букв "М" и "Д" квадратики...
collation у базы данных какой?
скорее всего не Cyrilic
__________________
полезное на axForum, github, vk, coub.
Старый 24.03.2009, 17:01   #6  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Ну так сложилось исторически, что часть сотрудников пользуется самописной софтиной, которая типа интегрирована с Navision.
Эту тему я обсуждать не хочу, грустная она.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 24.03.2009, 17:13   #7  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
русские буквы в принципе не отображаются через софтину?
или это только на полях датаформулы?
Старый 24.03.2009, 17:17   #8  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Цитата:
Сообщение от mazzy Посмотреть сообщение
collation у базы данных какой?
скорее всего не Cyrilic
Cyrilic

Цитата:
Сообщение от Sancho Посмотреть сообщение
русские буквы в принципе не отображаются через софтину?
или это только на полях датаформулы?
только в дейтформулах, в текстах и прочих кодах все ОК
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 24.03.2009, 17:30   #9  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
зырь.
делаешь поле ДатаФормулаТипаКод
никуда не выводишь.
на валидейт даты формулы пишешь:
ДатаФормулаТипаКод := ФОРМАТ(Даты Формулы)

выводишь второе поле, пусть редактируют.
после редактирования загоняешь обратно без валидейта
Старый 24.03.2009, 17:30   #10  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Дуд Посмотреть сообщение
только в дейтформулах, в текстах и прочих кодах все ОК
Можно не удалять мое технологическое поле, переконветить его в текст. И тупо на валидейте датыформулы конвертить все возможные символы, используемые в формулах (их не так много) в англобуквенные аналоги.

Во, Санча дело написал. Только обратно нужно не без валидейта, а эвалюейтом.
Старый 24.03.2009, 17:30   #11  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
кривым проблемам - кривые решения!
Старый 24.03.2009, 17:40   #12  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
сложность в том, что ты вспотеешь объяснять самописной программе что есть такой тип данных как датаформула и как с ней работать.
поэтому если они что-то изменили, помечай строку как измененную, и пусть демон в Наве каждые 5 секунд евалюэйтит все измененные строки.
будет типа онлайн
Старый 24.03.2009, 17:46   #13  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Не, ну это понятно, что уже пришло в голову.
Просто все еще питаю надежду на нормальное решение
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 24.03.2009, 17:47   #14  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
перейди на англ.
впиши датаформулу.
что будет в SQL?
Старый 24.03.2009, 17:51   #15  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Цитата:
Сообщение от Sancho Посмотреть сообщение
перейди на англ.
впиши датаформулу.
что будет в SQL?
то же самое
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 24.03.2009, 18:15   #16  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
ASCII коды спецсимволов DateFormula:
--Д (D) = 2
--ДН (WD) = 3
--Н (W)= 4
--М (M)= 5
--К (Q)= 6
--Г (Y)= 7
--Т ( С )= 1
--Соответственно текущий год ТГ (CY) = 1 7

В программке надо просто преобразовывать при выводе на экран эти кода на визуально красивые. Аналогично, при апдейте, визуально красивые символы преобразовывать в эти коды.
Соответственно, данные символы при любом Collation будут в виде квадратиков. Сделано для независимости от языка клиента.
Старый 24.03.2009, 18:43   #17  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Круто.
Спасибо большое.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 25.03.2009, 13:48   #18  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
А нельязя поле сделать текстовым?
На Validate поля написать
EVALUATE(DateFormula, "Date Formula Text");
где DateFormula локальная переменная типа DateFormula.
Таким образом будет проверяться, что введенное значение в поле является формулой даты.
Конесно, потом в коде придется все время значение из текстовое в DateFormula конвертить.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:28.