none
Reporting Services: Parâmetro do tipo DateTime [Dúvida]

    Pregunta

  • Pessoal, estou com um problema para um relatório que estou desenvolvendo.

    Em determinado relatório, eu utilizo um parâmetro (report parameters) com o data type do tipo DateTime.

    Ao realizar um preview do relatório, verifico que ele mostra o filtro com um ícone de calendário. Ao clicar nele me exibe uma "api" do calendário.

    O problema é que se eu escolher a data 29/09/2006 por exemplo, e clicar no View Report ele dá a seguinte mensagem de erro: "An error occurred during local report processing. The value provide for the parameter NOMEPARAMETRO is not a valid for its type."

    O que acontece, é que ele troca a data para 29/09/2006, desta forma criando uma data inválida e não prosseguindo os testes/execução.

    Eu instalei o Reporting Services em outra máquina e o erro não acontece. AMBAS as estações estão com as configurações de localidade iguais (BRASIL/BR-PT).

    Preciso descobrir o que é isto, pois os relatórios não deveriam depender de qualquer configuração externa.

    Alguém aí tem alguma idéia!?

    Abraços.

    jueves, 05 de octubre de 2006 19:35

Todas las respuestas

  • Olá Bruno,

                Verifique o seguinte:

    - Qual as configurações regionais do servidor do Reporting Services para o usuario Administrador e para o usuario do IIS, mude para PT-BR.

    - Quando vc instalou na outra máquina vc testou o mesmo relatório com o mesmo banco de dados ?

    Lembre que o banco de dados também tem configurações de região e pode resolver isso.

    aguardo

    Se esta foi a resposta para seu Post marque como Respondido
    Att
    Henrique Gurgacz


    jueves, 05 de octubre de 2006 19:45
  • Henrique, obrigado pela resposta. Ao ler novamente o meu post, acho que não fui claro.

    Ao escrever que instalei novamente o reporting services em outra estação, eu quis dizer que instalei o Visual Studio e abri o arquivo do relatório novamente. A diferença de data acontece no Preview mesmo. Não cheguei a publicar o relatório na Web/Aplicação.

    No caso da estação que inverte a data, o usuário logado (administrador) já está com o PT-BR. Na outra estação, que não inverte a data, está configurado da mesma forma.

    Quando clico no ícone do calendário da data e escolho uma data, fica no formato correto (DD/MM/YYYY). Ao clicar no preview ou ele inverte a data quando possível (10/09/2006 -> 09/10/2006) ou dá o erro, que coloquei anteriormente, quando não é possível (09/25/2006).

    Espero que tenha conseguido explicar. E esta dificuldade vai existir pq não sei sabemos a configuração do servidor do cliente, sendo assim, podemos acabar inutilizando todos os parametros de data.

    Abraços e obrigado mais uma vez.

    Att.,

    viernes, 06 de octubre de 2006 13:38
  • Eu estou passando exatamente pelo mesmo problema!

    Vc já conseguiu uma solução?

    miércoles, 06 de junio de 2007 16:11
  • Também tenho o mesmo problema....alguém sabe como "forçar" o formato de data,para evitar esta troca?

    martes, 16 de octubre de 2007 0:44
  • Dani,

     

    Você deseja especificar este formato de data para o parâmetro?

    martes, 16 de octubre de 2007 10:11
  • Dani,

     

    Em relação a formatação do parâmetro, o Reporting Services respeita a formatação definida de acordo com a linguagem que esta configurada para o relatório.

     

    Por padrão esta em inglês, mas você poderá alterar para realizar alguns testes, mas este tipo de alteração também poderá ocasionar incompatibilidade com outros objetos que compõem o relatório.

    martes, 16 de octubre de 2007 10:13
  • Também estou com o mesmo problema. Já alterei Regional and Language option no Painel de Controle e nada.

    O interessante é que se por exemplo coloco a data 01/10/2007 e clico no View Report ele inverte a data para 10/01/2007 e se clicar novamente no View Report inverte novamente para 01/10/2007.

     

    martes, 16 de octubre de 2007 13:05
  • Otniel,

     

    Então durante a visualização do relatório ele utiliza as configurações existente na máquina, ou seja, ele pega as configurações regionais do próprio Windows.

     

    Agora quando você vai fazer o deployment ele vai utilizar as configurações existentes no relatório como também do IIS?

    martes, 16 de octubre de 2007 13:35
  • Junior,

     

    A configuração de datas na minha máquina é dd/MM/yyyy, porém quando seleciono a data no calendário como por exemplo 01/10/2007 e clico no View Report ele muda a caixa de texto da data selecionada para 10/01/2007.

    Se a configuração é dd/MM/yyyy ele não deveria apresentar exatamente esta configuração no relatório?

     

    Agora quando faço o deployment ele utiliza as configurações do IIS que é semelhante a minha máquina.

     

    Quando entro no meu site de relatórios ele funciona sem nenhum problema. O problema todo esta no ambiente de desenvolvimento Visual Studio - Report Server.

     

    Grato.

     

    martes, 16 de octubre de 2007 13:58
  • Alguem saberia me dizer como resolver este problema?

     

    miércoles, 17 de octubre de 2007 17:09
  • Estou passando pelo mesmo problema.

     

    Ninguém chegou a solução?

     

     

     

    Grato,

     

    Duan Brito

     

    miércoles, 03 de diciembre de 2008 14:44
  • Percebi que a última mensagem foi dia 3 de dezembro de 2008.

    Alguém encontrou alguma solução para o problema? Estou passando pelo mesmo caso...

     

    Ainda, no meu caso no caminho //servidor/Reports a data fica correta, no padrão brasileiro, mas no //servidor/reportserver/ ele fica com a data no padrão mm/DD/yyyy.

     

    Obrigado!

    Diego

     

    miércoles, 14 de enero de 2009 15:53
  •  

    Tente:

    Code Snippet

    =CDate(Fields!Data.Value).ToString("dd/MM/yyyy")

     

     

    Com certeza irá funcionar.

     

    ABraços.

    martes, 27 de enero de 2009 19:27
  • Olá a Solução é o seguinte:


    Quando vc clica no campo e ve as propriedades dele, no item lateral  NUMBER você ao invés de escolher o tipo DATE que tem data e hora porém com asterisco(*) voce vai no item HORA lá terá um tipo 31/1/2000 13:30 assim nao precisará verificar nenhuma configuração regional  do servidor de relatorio.


    3-)
    martes, 07 de julio de 2009 16:59
  • Caros, 

    também estava com este problema e consegui resolver da seguinte forma.

    NO SQL eu verifico qual o formato ele passa se é o DD/MM ou MM/DD, pois isto depende de cada servidor.

    NAs comparações do SQL faço da seguinte forma:

    SELECT CAMPO FROM TB WHERE CONVERT(VARCHAR,DATA,103) BETWEEN CONVERT(VARCHAR,CAST(@DT_I as date),101) and CONVERT(VARCHAR,CAST(@DT_F as date),101)

    Onde DT_I e DT_F são parametros de data inicial e data final.

    Já no Reporting services eu vou no DataSet Propriets > Parameters e clico em Parameter Values e coloco assim:

    =Replace(Parameters!DT_I.Value,

    "-","/")

    Fiz isto porque reparei que ele passa a data para o sql server da seguinte forma:

    exec

     

    Procedure @DT_I='2010-04-01 00:00:00',@DT_F=2010-04-03 00:00:00''

    Abraço a todos

    New Civic

    lunes, 05 de abril de 2010 14:59
  • Boa tarde, isto também me acontecia.

     

    Contudo resolvi o meu problema, muito simples, nas propriedades do repor, temos vários campos e um deles é a Lanugage, esta estava como English(United States)  e alterei para Portuguese. Assim solucionei o meu problema.

     

     

     

    Cumprimentos

    martes, 08 de junio de 2010 13:53
  • DEPARO-ME COM ESTE PROBLEMA DE MOMENTO, E NÃO TENHO FORMA DE RESOLVER. 

    MEU SO ESTA EM PT, E MEU REPORT BULDER EM PT TMBEM.

    MINHA DATA ESTA EM DATATIME (E.G: 2009-04-29 00:00:00.000)

    qUERO COLOCAR CALENDÁRIOS NOS MEUS REPORTS, MAS DA ERRO.

    cOMO DEVO FAZER?

    URGENTE

    jueves, 28 de junio de 2012 10:28
  • Se tiver acesso a consulta, Tente retornar a data exatamente no formato que precisa. Exemplo:

    Usando o CONVERT(VARCHAR,DATA,XXX) existem vários formados de datas e ainda existe possibilidade de separa a data e concatenar os valores individualmente.

    Sei que não é boa prática, mas infelizmente o Reporting Services deixa a desejar em algumas coisas..

    jueves, 28 de junio de 2012 11:55
  • DE UM EXEMPLO POR FAVOR...?
    jueves, 28 de junio de 2012 23:04
  • segue alguns exemplos:

    Mon DD YYYY <sup style="color:red;">1</sup>
    HH:MIAM (or PM)
    Default SELECT CONVERT(VARCHAR(20), GETDATE(), 100) Jan 1 2005 1:29PM <sup style="color:red;">1</sup>
    MM/DD/YY USA SELECT CONVERT(VARCHAR(8), GETDATE(), 1) AS [MM/DD/YY] 11/23/98
    MM/DD/YYYY USA SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS [MM/DD/YYYY] 11/23/1998
    YY.MM.DD ANSI SELECT CONVERT(VARCHAR(8), GETDATE(), 2) AS [YY.MM.DD] 72.01.01
    YYYY.MM.DD ANSI SELECT CONVERT(VARCHAR(10), GETDATE(), 102) AS [YYYY.MM.DD] 1972.01.01
    DD/MM/YY British/French SELECT CONVERT(VARCHAR(8), GETDATE(), 3) AS [DD/MM/YY] 19/02/72
    DD/MM/YYYY British/French SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS [DD/MM/YYYY] 19/02/1972
    DD.MM.YY German SELECT CONVERT(VARCHAR(8), GETDATE(), 4) AS [DD.MM.YY] 25.12.05
    DD.MM.YYYY German SELECT CONVERT(VARCHAR(10), GETDATE(), 104) AS [DD.MM.YYYY] 25.12.2005
    DD-MM-YY Italian SELECT CONVERT(VARCHAR(8), GETDATE(), 5) AS [DD-MM-YY] 24-01-98
    DD-MM-YYYY Italian SELECT CONVERT(VARCHAR(10), GETDATE(), 105) AS [DD-MM-YYYY] 24-01-1998
    DD Mon YY <sup style="color:red;">1</sup> - SELECT CONVERT(VARCHAR(9), GETDATE(), 6) AS [DD MON YY] 04 Jul 06 <sup style="color:red;">1</sup>
    DD Mon YYYY <sup style="color:red;">1</sup> - SELECT CONVERT(VARCHAR(11), GETDATE(), 106) AS [DD MON YYYY] 04 Jul 2006 <sup style="color:red;">1</sup>
    Mon DD, YY <sup style="color:red;">1</sup> - SELECT CONVERT(VARCHAR(10), GETDATE(), 7) AS [Mon DD, YY] Jan 24, 98 <sup style="color:red;">1</sup>
    Mon DD, YYYY <sup style="color:red;">1</sup> - SELECT CONVERT(VARCHAR(12), GETDATE(), 107) AS [Mon DD, YYYY] Jan 24, 1998 <sup style="color:red;">1</sup>
    HH:MM:SS - SELECT CONVERT(VARCHAR(8), GETDATE(), 108) 03:24:53
    Mon DD YYYY HH:MI:SS:MMMAM (or PM) <sup style="color:red;">1</sup> Default + 
    milliseconds
    SELECT CONVERT(VARCHAR(26), GETDATE(), 109) Apr 28 2006 12:32:29:253PM <sup style="color:red;">1</sup>
    MM-DD-YY USA SELECT CONVERT(VARCHAR(8), GETDATE(), 10) AS [MM-DD-YY] 01-01-06
    MM-DD-YYYY USA SELECT CONVERT(VARCHAR(10), GETDATE(), 110) AS [MM-DD-YYYY] 01-01-2006
    YY/MM/DD - SELECT CONVERT(VARCHAR(8), GETDATE(), 11) AS [YY/MM/DD] 98/11/23
    YYYY/MM/DD - SELECT CONVERT(VARCHAR(10), GETDATE(), 111) AS [YYYY/MM/DD] 1998/11/23
    YYMMDD ISO SELECT CONVERT(VARCHAR(6), GETDATE(), 12) AS [YYMMDD] 980124
    YYYYMMDD ISO SELECT CONVERT(VARCHAR(8), GETDATE(), 112) AS [YYYYMMDD] 19980124
    DD Mon YYYY HH:MM:SS:MMM(24h) <sup style="color:red;">1</sup> Europe default + milliseconds SELECT CONVERT(VARCHAR(24), GETDATE(), 113) 28 Apr 2006 00:34:55:190 <sup style="color:red;">1</sup>
    HH:MI:SS:MMM(24H) - SELECT CONVERT(VARCHAR(12), GETDATE(), 114) AS [HH:MI:SS:MMM(24H)] 11:34:23:013
    YYYY-MM-DD HH:MI:SS(24h) ODBC Canonical SELECT CONVERT(VARCHAR(19), GETDATE(), 120) 1972-01-01 13:42:24
    YYYY-MM-DD HH:MI:SS.MMM(24h) ODBC Canonical
    (with milliseconds)
    SELECT CONVERT(VARCHAR(23), GETDATE(), 121) 1972-02-19 06:35:24.489
    YYYY-MM-DDTHH:MM:SS:MMM ISO8601 SELECT CONVERT(VARCHAR(23), GETDATE(), 126) 1998-11-23T11:25:43:250
    DD Mon YYYY HH:MI:SS:MMMAM <sup style="color:red;">1</sup> Kuwaiti SELECT CONVERT(VARCHAR(26), GETDATE(), 130) 28 Apr 2006 12:39:32:429AM <sup style="color:red;">1</sup>
    DD/MM/YYYY HH:MI:SS:MMMAM Kuwaiti SELECT CONVERT(VARCHAR(25), GETDATE(), 131) 28/04/2006 12:39:32:429AM

    viernes, 29 de junio de 2012 1:07
  • Nao consigo resolver!!!
    miércoles, 04 de julio de 2012 13:46
  • Passe um exemplo do erro que está acontecendo, da consulta que está usando e de como está o código do seu form.

    Sem isto não posso te ajudar..

    Obrigado

    miércoles, 04 de julio de 2012 16:26
    • Editado Oliver Kimb jueves, 05 de julio de 2012 10:51
    jueves, 05 de julio de 2012 10:51