24.06.2005, 11:24 | #1 |
Участник
|
Бьюсь над вопросом, но нигде не сталкивался с достаточно подробным и развёрнутым описанием решения проблемы.
При управлении Excel из Navision типичные проблемы локализации состоят в следующем: 1. Английские имена функций не совпадают с русскими. 2. Специальные символы (разделители десятичных знаков и параметров функций) зависят от региональных настроек. Ищу способ, как выяснить с помощью C/AL значения вышеприведённых спецсимволов и названий. Возможно я ещё что-то упустил, но две вышеприведённые задачи требуют скорейшего решения. Может кто чего подскажет? Если есть другие нерешенные проблемы, пишите, обсудим. |
|
24.06.2005, 12:17 | #2 |
Moderator
|
По 1-му пункту совет один - не пользоваться функциями, а использовать ф-ции VBA из кода навижина.
А 2-й пункт совсем недавно обсуждался здесь, посмотрите. |
|
24.06.2005, 12:50 | #3 |
Участник
|
Цитата:
Сообщение от Dzemon
По 1-му пункту совет один - не пользоваться функциями, а использовать ф-ции VBA из кода навижина.
А 2-й пункт совсем недавно обсуждался здесь, посмотрите. 2. Можно название темы узнать? Видимо, плохо искал. |
|
24.06.2005, 14:22 | #4 |
Moderator
|
1. Ну у вас есть корпоративный стандарт программного обеспечения? Если Да, то затачивайте под определенный Ексель, если Нет - тогда никак.
2. При експорте в excel разделители пробелы |
|
24.06.2005, 14:44 | #5 |
Участник
|
Цитата:
1. Положим, просуммировать я могу и в Navision (зачем ещё и VBA привлекать, C/AL вполне достаточно), но для наглядности и большего убеждения (пользователь гораздо больше доверяет Excel, чем Navision) требуется вписать сумму при помощи функций Excel.
А кто больше доверяет счетам - тогда как быть? |
|
24.06.2005, 14:55 | #6 |
Участник
|
Поправляюсь "счетам"-это счеты с костяшками такие на которых раньше в давнии времена считали - как их в Навижен вставить?
А если серьезно- то если сумма берется из flowfield поля то тогда просто скопируйте в буфер данные и вставьте в excel и там уже считайте. Таким способом я постоянно пользуюсь когда пишу или правлю отчеты-чтобы проверить правильно ли логика отчета. |
|
27.06.2005, 14:22 | #7 |
Участник
|
По-видимому, мы уже очень сильно отклонились от темы, тем не менее вопрос доверия простой: когда головотяп-хозяин хочет выпендриться перед дружками, что у него навижн, при этом дрюча свою бухгалтерию направо и налево за все ошибки, причём бухгалтеры у него вряд ли видели что-то лучше падучего бэста, кроме сияющего брильянтом экселя, вопрос о том, кто кому доверяет практически не стоит. В некотором роде эксель - и есть те самые счёты. Да и потом, клиент всегда прав...
|
|
27.06.2005, 15:12 | #8 |
Участник
|
Очень грустно. Ну воспользоваться моим советом по поводу flowfiled полей нет возможности, чтобы себе же в первую очередь жизнь облегчить?
|
|
27.06.2005, 15:51 | #9 |
Участник
|
Цитата:
Сообщение от nagizli
1. Положим, просуммировать я могу и в Navision (зачем ещё и VBA привлекать, C/AL вполне достаточно), но для наглядности и большего убеждения (пользователь гораздо больше доверяет Excel, чем Navision) требуется вписать сумму при помощи функций Excel.
Txt := '=SUM(A1:A12)'; XlWorkSheet.Range('A13').Formula :=Txt ;
__________________
MBS Certified Master in Navision Developer |
|
27.06.2005, 17:20 | #10 |
Участник
|
Так по-моему у nagizli проблема как раз в том, что версии Экселя на всех компах разные, поэтому в его ситуации ему придется писать "двойной отчет", который сначала будет проверять, какая версия эксель стоит, и только потом уже писать
Txt := '=SUM(A1:A12)'; или Txt := '=СУММ(A1:A12)'; соотвественно.... :-( |
|
27.06.2005, 18:42 | #11 |
Участник
|
Я это понял, только не проверял. Я думал, что в Н. как в VBA можно задать формулу (т.е. SUM), однако ошибся - нельзя.
__________________
MBS Certified Master in Navision Developer |
|
27.06.2005, 21:01 | #12 |
Участник
|
Как вариант - написать простейшую программку на Делфях/Билдере/Бейсике,которая при вызове переданные аргументы передает в ексель и интерпретирует как функцию и аргументы..Не сложно,если владеешь одним из языков программирования.
|
|
29.06.2005, 11:09 | #13 |
Участник
|
В принципе какой Excel можно определить так:
IF FORMAT(XlApplication.LanguageSettings.LanguageID(2)) = '1049' THEN BEGIN END //1033 - англ //1049 - русс |
|