c# - User!Language vs CurrentThread -
for formatting our dates in rdl-files, use following format:
=first(formatdatetime(fields!somedate.value, 2))
according page, should take computer's regional settings.
the problem is: if call reporting-service via service , try set language:
rs.setexecutionparameters(mapparameters(report.parameters).toarray(), "de-ch");
this gets ignored. tried override thread-cultures via
system.threading.thread.currentthread.currentuiculture = new system.globalization.cultureinfo("de-ch"); system.threading.thread.currentthread.currentculture = new system.globalization.cultureinfo("de-ch");
which gets ignored well. whats string: reporting-server has de-ch culture well, keeps using english date-format.
can tells me what's meant "computer's regional settings" , why reporting-service refuses take passed culture?
edit: language in report is
=user!language
generally said i'd pass report-language outside, via currentthread
or via parameter. both ignored.
short answer
instead of formatdatetime, use format , specify expected output format:
=first(format(fields!somedate.value, "dd.mm.yyyy"))
or alternative have culture in parameter, in case have read long answer.
long answer
your first attempt setexecutionparameters set culture of parameters, not affect report (only parameters pass it).
your second attempt change culture of client application, not affect report (only client application culture).
the formatdatetime function uses computer regional settings, not in reporting services. take report culture, in case user!language
.
user!language
returns language configured in client web browser when browsing report server.
i'm not sure behavior when calling web services (a specific setting taken or default en-us).
the report language property can expression, nothing stops adding text parameter report, say, reportculture
, , use in properties
=> language
:
=parameters!reportculture.value
you have keep using expression dates:
=first(formatdatetime(fields!somedate.value, 2))
you can configure default value (de-ch
in case), setting specified if want override it.
Comments
Post a Comment