Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Названия месецов по русски  [new]
Mihail3
Member

Откуда:
Сообщений: 88
Здравствуйте. У меня такой вопрос. В отчете есть поле месяц, и он туда ставиться командой CMONTH(DATE()), но название месяца отображается по английски, как сделать так что бы оно было русским? Помню как то давно месяца 3-4 назад я это уже делал, но как я совершено не помню.
14 дек 12, 07:28    [13629733]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Березовский
Member

Откуда:
Сообщений: 559
Поставить русский рантайм. Или использовать самописную функцию
перевода nMonth в cMonth
14 дек 12, 07:56    [13629752]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Mihail3
Member

Откуда:
Сообщений: 88
Березовский
Поставить русский рантайм.
А как можно поподробнее, как мне помниться я это делал без подключения чего либо.
14 дек 12, 08:16    [13629772]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
tanglir
Member

Откуда:
Сообщений: 28966
Mihail3, vfp9rrus.dll кинуть в папку с программой.
14 дек 12, 08:37    [13629811]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Mihail3
Member

Откуда:
Сообщений: 88
tanglir, Спасибо, а другого способа нет?, я как то по другому делал просто. Но в любом случае спасибо за помощь)
14 дек 12, 08:44    [13629827]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Jonny540
Member

Откуда:
Сообщений: 727
Mihail3
tanglir, Спасибо, а другого способа нет?, я как то по другому делал просто. Но в любом случае спасибо за помощь)
Ну держи UDF :)
FUNCTION P_Month
LPARAMETERS nM
PRIVATE mMn
DIMENSION mMn(12)
mMn(1)='Январь'
mMn(2)='Февраль'
mMn(3)='Март'
...
mMn(12)='Декабрь'
RETURN mMn(nM)
ENDFUNC
14 дек 12, 08:49    [13629841]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Mihail3
Member

Откуда:
Сообщений: 88
Jonny540, Спасиб)
14 дек 12, 08:50    [13629848]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Dima T
Member

Откуда:
Сообщений: 15282
Jonny540
Mihail3
tanglir, Спасибо, а другого способа нет?, я как то по другому делал просто. Но в любом случае спасибо за помощь)
Ну держи UDF :)
FUNCTION P_Month
LPARAMETERS nM
PRIVATE mMn
DIMENSION mMn(12)
mMn(1)='Январь'
mMn(2)='Февраль'
mMn(3)='Март'
...
mMn(12)='Декабрь'
RETURN mMn(nM)
ENDFUNC

Я бы еще добавил чтоб ошибок не возникало:
return iif(between(nM, 1, 12), mMn(nM), 'МАРТОБРЬ')
14 дек 12, 16:33    [13633228]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Jonny540
Member

Откуда:
Сообщений: 727
Dima T
Jonny540
пропущено...
Ну держи UDF :)
FUNCTION P_Month
LPARAMETERS nM
PRIVATE mMn
DIMENSION mMn(12)
mMn(1)='Январь'
mMn(2)='Февраль'
mMn(3)='Март'
...
mMn(12)='Декабрь'
RETURN mMn(nM)
ENDFUNC

Я бы еще добавил чтоб ошибок не возникало:
return iif(between(nM, 1, 12), mMn(nM), 'МАРТОБРЬ')
Ну уж если совсем по большому счету, то и
if type('nM')#'N'
  return 'С Новым Годом! Пошел на фиг!'
endif
14 дек 12, 16:46    [13633350]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
BMJ
Member

Откуда: Москва
Сообщений: 270
Мартобря это то что надо, особенно при склонении.... или спряжении....вобщем не в пятницу вопрос.. вот опохмелимся....
14 дек 12, 18:50    [13634294]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
ArgonS
Member

Откуда:
Сообщений: 67
BMJ,

самый простой способ: SET DATE LONG
только, желательно, не забывать возвращать значение на исходное
17 дек 12, 09:47    [13640917]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Mihail3
Member

Откуда:
Сообщений: 88
ArgonS, о да чудо)))
18 дек 12, 07:43    [13646642]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
ArgonS
самый простой способ: SET DATE LONG

Как только автор поставит свое приложение на англоязычной Windows у него снова появится тот же самый вопрос. Это еще не считая необходимости дополнительно "выковыривать" название месяца из полученной строки.

Самый правильный способ в данном случае - это именно собственная функция. Решение проблемы через настройки и внешние библиотеки - не надежно.
18 дек 12, 11:45    [13647687]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
sg12
Member

Откуда:
Сообщений: 454
Вроде на функцию не тянет:
#DEFINE ENUM_MONTH 'Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябоь,Декабрь'
RETURN GETWORDNUM(ENUM_MONTH,tnMonth,',')
4 янв 13, 18:16    [13723234]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
reware
Member

Откуда: Хабаровск
Сообщений: 585
Mihail3
Здравствуйте. У меня такой вопрос. В отчете есть поле месяц, и он туда ставиться командой CMONTH(DATE()), но название месяца отображается по английски, как сделать так что бы оно было русским? Помню как то давно месяца 3-4 назад я это уже делал, но как я совершено не помню.


public array mes(12) && в голове программы
mes[1]='Январь'
mes[2]='Февраль'
mes[3]='Март'
mes[4]='Апрель'
mes[5]='Май'
mes[6]='Июнь'
mes[7]='Июль'
mes[8]='Август'
mes[9]='Сентябрь'
mes[10]='Октябрь'
mes[11]='Ноябрь'
mes[12]='Декабрь'

FUNCTION AllowMes && пишется где-то в головном модуле
PARAM indate
LOCAL m2
m2=MONTH(INDATE)
RETURN mes[m2]


В отчёте вместо СMONTH(DATE()) проставить ALLOWMES(DATE()).
4 янв 13, 20:34    [13723874]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Людмila
Member

Откуда: Кировская обл.
Сообщений: 323
GETWORDNUM('январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь',MONTH(дата))
по-моему сама элегантность. Дарю!
5 янв 13, 07:26    [13725251]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Mihail3
Member

Откуда:
Сообщений: 88
Людмila, ага красивый код
1 фев 13, 10:48    [13860578]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Jonny540
Member

Откуда:
Сообщений: 727
Mihail3
Людмila, ага красивый код
Только вот не для всех версий...
1 фев 13, 10:56    [13860619]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Mihail3
Member

Откуда:
Сообщений: 88
нашел подобное в книге visual foxpro в подлинике

procedure c_month  
  parameters m.data  
  return GetWordNum('январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь',Month(m.Data))
? Month(m.Data)
1 фев 13, 15:11    [13862384]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
BMJ
Member

Откуда: Москва
Сообщений: 270
Я опять о том, что писал. Как сегодня с прописью? т.е не 01 февраль, а февралЯ 2013. Тут не хватит, правда, красивого кода, еще напильник нужен.
1 фев 13, 17:35    [13863439]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
sg12
Member

Откуда:
Сообщений: 454
BMJ
Я опять о том, что писал. Как сегодня с прописью? т.е не 01 февраль, а февралЯ 2013. Тут не хватит, правда, красивого кода, еще напильник нужен.


Напишите строку 'января, февраля ...'
1 фев 13, 18:52    [13863794]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
BMJ
Member

Откуда: Москва
Сообщений: 270
sg12
BMJ
Я опять о том, что писал. Как сегодня с прописью? т.е не 01 февраль, а февралЯ 2013. Тут не хватит, правда, красивого кода, еще напильник нужен.


Напишите строку 'января, февраля ...'


Разумеется, но теряется универсальность, например отчёт за "январь", а данные на 15 января. Я к этому подводил.
1 фев 13, 21:29    [13864390]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
Jonny540
Member

Откуда:
Сообщений: 727
BMJ
... теряется универсальность, например отчёт за "январь", а данные на 15 января. Я к этому подводил.
Кто мешает немного подправить эту 13862384 процедуру?
Например, так:
? c_month(m.Data)

procedure c_month  
parameters m.data, nMode  
do case
  case nMode=1
    return GetWordNum('январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь',Month(m.Data))
  case nMode=2
    return GetWordNum('января февраля марта апреля мая июня июля августа сентября октября ноября декабря',Month(m.Data))
  otherwise
  return " "
endcase
endproc
Для ранних версий - двумерный массив.
2 фев 13, 05:25    [13865444]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
sg12
Member

Откуда:
Сообщений: 454
Jonny540
BMJ
... теряется универсальность, например отчёт за "январь", а данные на 15 января. Я к этому подводил.
Кто мешает немного подправить эту 13862384 процедуру?
Например, так:
? c_month(m.Data)

procedure c_month  
parameters m.data, nMode  
do case
  case nMode=1
    return GetWordNum('январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь',Month(m.Data))
  case nMode=2
    return GetWordNum('января февраля марта апреля мая июня июля августа сентября октября ноября декабря',Month(m.Data))
  otherwise
  return " "
endcase
endproc
Для ранних версий - двумерный массив.


А теперь вопрос на засыпку.
Что мешает добавить в эту процедуру еще и дни недели: "Понедельник,Вторник, ..."?
2 фев 13, 09:04    [13865479]     Ответить | Цитировать Сообщить модератору
 Re: Названия месецов по русски  [new]
AndreTM
Member

Откуда: Где-то в вологодских лесах...
Сообщений: 6901
sg12,

Не изобретайте сущностей свех необходимости
Особенно круто названия дней недели будут смотреться в процедуре именования месяцев...
С третьей стороны, как представлю себе, когда это может понадобиться:
"Сего дня, втарога четверга котября месяца..."
2 фев 13, 09:37    [13865496]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / FoxPro, Visual FoxPro Ответить