|  01.04.2022, 21:33 | #1 | 
| Участник | форматирование чисел в различных языках SSRS 
			
			народ, как можно отформатировать отдельные ячейки в формате другого языка? или можно ли как-то копировать содержимое ячейки вместе с форматом? вкратце нужно вывести отчёт, скажем, на испанском языке, где числа представлены в виде 1.000,00 в строках, а в итоговой сумме указать символ другой валюты, не евро, но формат оставить тот же. мозг плавится уже... 
				__________________ Felix nihil admirari | 
|  | 
|  01.04.2022, 22:33 | #2 | 
| Banned | 
			
			Notifcaion de pago... = Payment advice? В настройке для платежей SEPA - это готовый конфигурируемый документ. Разве нельзя все это переделать? https://community.dynamics.com/ax/f/...from-ax/499339 У меня есть готовая конфигурация ACH: https://community.dynamics.com/365/f...fer-in-d365-fo | 
|  | 
|  01.04.2022, 23:39 | #3 | 
| Участник | Цитата: 
		
			Сообщение от EVGL
			   Notifcaion de pago... = Payment advice? В настройке для платежей SEPA - это готовый конфигурируемый документ. Разве нельзя все это переделать? https://community.dynamics.com/ax/f/...from-ax/499339 У меня есть готовая конфигурация ACH: https://community.dynamics.com/365/f...fer-in-d365-fo 
				__________________ Felix nihil admirari | 
|  | 
|  02.04.2022, 02:11 | #4 | 
| Banned | 
			
			Вы можете посмотреть, как это сделано на Еxcel в конфигурациях SEPA. Отчёты в Excel более гибкие. Не гарантирую, однако, что времени уйдёт меньше.
		 | 
|  | 
|  02.04.2022, 15:23 | #5 | 
| Участник | 
			
			посмотреть-то, это, конечно, можно, но это будет совсем в другую степь от заявленной темы.  копаю пока в сторону изменения символа валюты в CultureInfo, но не понимаю, как я могу её перезадать =Microsoft.Dynamics.Framework.Reports.BuiltInMethods.GetAXLanguageCultureInfo(Parameters!AX_RenderingCulture.Value).NumberFormat().CurrencySymbol 
				__________________ Felix nihil admirari | 
|  | 
|  02.04.2022, 15:40 | #6 | 
| Участник | 
			
			А нельзя по-боцмански - сделать ячейки чисто текстовыми и передавать туда текст с каким угодно знаком валюты?
		 | 
|  | 
|  02.04.2022, 19:38 | #7 | 
| Участник | 
			
			Мне надо правильно сформатированное значение получить как строку, а потом заменить символ валюты. Но как его получить? По ссылке на textbox можно получить значение до форматирования
		 
				__________________ Felix nihil admirari | 
|  | 
|  02.04.2022, 20:25 | #8 | 
| Участник | 
			
			Нет, я к тому что вы в отчет сейчас передаете число 150, а рендер отчета сам туда подставляет $150. А можно взять, сгенерить самому строку 150руб. и передать в отчет, чтобы он там отрендерил как строку, ничего не меняя. Такое костыльное, конечно, решение, но должно сработать. | 
|  | |
| За это сообщение автора поблагодарили: wojzeh (1). | |
|  02.04.2022, 22:36 | #9 | 
| Участник | 
			
			идея вполне нормальная, но как сформатить такую строку, зная только язык?
		 
				__________________ Felix nihil admirari | 
|  | 
|  03.04.2022, 01:32 | #10 | 
| Участник | 
			
			нашел, как сделать по-боцмански. Скоро выложу. Спасибо!
		 
				__________________ Felix nihil admirari | 
|  | |
| За это сообщение автора поблагодарили: pitersky (2). | |
|  03.04.2022, 22:46 | #11 | 
| Участник | X++: /// <summary> /// Replaces language rendering culture currency symbol with the given one /// </summary> /// <param name = "_languageId">language rendering culture</param> /// <param name = "_amountCur">AmountCur</param> /// <param name = "_currencySymbol">New currency symbol</param> /// <returns>Formatted string</returns> public str eogChangeCurSymbolForAmountStr(LanguageId _languageId, System.Double _amountCur, CurrencySymbol _currencySymbol) { System.Globalization.CultureInfo culture; str res; System.Exception e; str curSymbol; culture = new System.Globalization.CultureInfo(_languageId); try { res = _amountCur.ToString("C", culture); curSymbol = culture.NumberFormat.CurrencySymbol; res = strReplace(res, curSymbol, _currencySymbol); } catch(Exception::CLRError) { e = CLRInterop::getLastException(); while( e ) { error( e.get_Message() ); e = e.get_InnerException(); } throw Exception::Error; } return res; } /// <summary> /// Gets amount with currency symbol /// </summary> /// <param name = "_amountCur">Amount in currency</param> /// <param name = "_currency">Currency to present symbol</param> /// <param name = "_languageId">Language for rendering culture</param> /// <returns>Formatted string for amunt cur with currency symbol</returns> public EOGAmountStringWithCurrencySymbol eogAmountStringWithCurrencySymbol(AmountCur _amountCur, CurrencyCode _currency, LanguageId _languageId) { Currency currency = Currency::find(_currency); return this.eogChangeCurSymbolForAmountStr(_languageId, _amountCur, currency.Symbol);; } /// <summary> /// Populates <c>BankPaymAdviceVendTmp</c> and inserts the report information for a single invoice and related payment. /// </summary> protected void insertBankPaymAdviceTmp() { BankPaymAdviceVendTmp bankPaymAdviceVendTmp; str email; next insertBankPaymAdviceTmp(); bankPaymAdviceVendTmp = this.bankPaymAdviceTmp as BankPaymAdviceVendTmp; if (bankPaymAdviceVendTmp.RecId) { ttsbegin; bankPaymAdviceVendTmp.selectForUpdate(true); bankPaymAdviceVendTmp.EOGBalance01Total+=bankPaymAdviceVendTmp.Balance01; bankPaymAdviceVendTmp.EOGAmountStringWithCurrencySymbol = this.eogAmountStringWithCurrencySymbol(bankPaymAdviceVendTmp.EOGBalance01Total, bankPaymAdviceVendTmp.CurrencyCode, VendTable::find(bankPaymAdviceVendTmp.AccountNum).languageId()); bankPaymAdviceVendTmp.update(); ttscommit; } } 
				__________________ Felix nihil admirari | 
|  | |
| За это сообщение автора поблагодарили: Pandasama (2). | |
| Теги | 
| currency, format, number, ssrs, symbol | 
|  | 
| 
 |