none
Relatório por Semestre RRS feed

  • Pergunta

  • Pessoal,

    Como faço para criar um filtro a partir do seguinte filtro:

    desde 05 de Julho de 2010 até 30 de Junho de 2011

    Ex:
    O usuário informa a data... 30/06/2011
    Com só essa data, o relatório fara um cálculo pegando os seis meses anteriores.

    Vcs conseguem me ajudar nesse filtro?

    []s

    terça-feira, 28 de fevereiro de 2012 16:36

Respostas

  • Com relacao a sua pergunta inicial. A resposta correta eh usar a funcao DateAdd

    O exemplo abaixo indica 6 meses atras da data entrada no parametro "data"

    =DateAdd("m", -6, Parameters!data.Value)

    O exemplo abaixo representa 7 dias astras

    =DateAdd("d", -t, Parameters!data.Value)

    Voce pode ver todos os detalhes aqui:

    http://msdn.microsoft.com/en-us/library/aa258267(v=sql.80).aspx

    Com relacao ao grafico, no grupo de categoria, dentro da aba "sorting"  tem o campo que voce esta agrupando, voce esta agrupando pelo nome do mes, voce deve agrupar por um campo que mostre o numero do mes.

    att

    boreki


    Boreki[MSFT] - SQL Server Reporting Services

    • Sugerido como Resposta Rodrigo Ataíde terça-feira, 28 de fevereiro de 2012 17:34
    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 17:23
  • Com o campo datetime.

    Com o campo char(10) não irá funcionar, pois a função datetime é especifica para valores de DATA.


    Rodrigo Ataíde.

    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 17:51
  • Bruno tente neste formato:

    [Data].&[2011-09-01T00:00:00]:[Data].&[2011-09-25T00:00:00]


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 18:07
  • Utilize a expressao Format para que o retorno do dateadd seja no formado que vc esta esperando na query:

    http://msdn.microsoft.com/en-us/library/dd220510.aspx

    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 18:10
  • Bruno só por desencargo... a expressão está recebendo a data neste formato:

    [Data].&[2011-09-01T00:00:00]

    Ou seja, com as barras "-". Se estiver sem barras a sintaxe mdx acusa erro.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 18:44
  • Voce tem que saber qual é o formato que o seu banco está esperando, daí ajuste o format como abaixo (abaixo é um exemplo, voce deve arrumar para o que é esperado na sua query):

    =dateadd("m", -6, now()).ToString("yyyy-M-d")

    E aqui voce acha todos characteres para configurar sua string:

    http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

    • Editado Boreki terça-feira, 28 de fevereiro de 2012 18:46
    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 18:45
  • A expressao que voce colocou aih em cima, eh para o Label. ela esta correta.

    Ali no seu screen shot de cima tem a aba "SORTING" na esquerda. Naquela aba, tem outra expressao que nao esta sendo mostrada em nenhuma das fotos. A outra expressao tem que ser =Fields!Tempo_Mes.Value


    Boreki[MSFT] - SQL Server Reporting Services

    • Marcado como Resposta Bruno.Costa segunda-feira, 5 de março de 2012 19:30
    segunda-feira, 5 de março de 2012 18:43
  • deixe tudo da forma que esta, so mude o sorting.


    Boreki[MSFT] - SQL Server Reporting Services

    • Marcado como Resposta Bruno.Costa segunda-feira, 5 de março de 2012 19:29
    segunda-feira, 5 de março de 2012 18:50
  • Como ficou o grafico com a expressao:

    =CINT(Fields!Tempo_mes).toString("00")

    So para garantir, voce pos o "=" na frente correto?


    Boreki[MSFT] - SQL Server Reporting Services


    segunda-feira, 5 de março de 2012 19:16

Todas as Respostas

  • Boa tarde Bruno,

    Acredito que a melhor forma de você tratar isso é na query SQL.

    O parametro já está criado, então na query você utilizará uma linha "Where" onde a data informada deverá ser filtrada 6 meses antes ou 6 meses depois.

    Caso você tenha dúvidas de como realizar tal procedimento, sugiro transferir tal pergunta ou criar uma nova no fórum SQL - Desenvolvimento Geral.

    No Reporting Services desconheço uma forma de realizar tal filtro.

    Talvez utilizando aquele comando month(parameters!data.value) - 6.


    Rodrigo Ataíde.

    terça-feira, 28 de fevereiro de 2012 16:43
  • Rodrigo, blz?

    Cara..eu tentei fazer assim..

    Parametros:

    - Ano
    ="[Dim Tempo].[Tempo Ano].[" & Year( CDate(Parameters!teste.Value ) ) & "]"
    - Ano Anterior
    ="[Dim Tempo].[Tempo Ano].[" & Iif(Month( CDate(Parameters!teste.Value ) ) <=6 , Cint(Year( CDate(Parameters!teste.Value ) )) - 1  , Year( CDate(Parameters!teste.Value ) ) ) &  "]"

    Ou seja, informando a data:
    20/02/2012...já temos como parametros:
    Ano .................: 2012
    Ano Anterior ...: 2011

    Agora para tentar buscar o mês:
    Mês .................: 02
    Mês Anterior ...:  ?? [ 09 ] ??

    Ou seja, o relatório terá que sair...
    SET/11 ......: 45
    OUT/11 ......: 50
    NOV/11 ......: 10
    DEZ/11 ......: 142
    JAN/12 .......: 1
    FEV/12 .......: 30

    Esse é o relatório que devo criar. Acredito que SQL puro não consiga, já que a consulta é baseada no MDX..

    []s

    terça-feira, 28 de fevereiro de 2012 16:50
  • Vejam uma imagem de como está meu relatório..

    Os parametros coloquei na mão apenas para visualização mais rápida...
    Como esse relatório é um subreport..o problema que enfrento agora e a manipulação dos parametros, pois como na imagem...
    os dados não estão corretos.

    O certo seria exibir...primeiro o mes de SET/11 até FEV/12.

    terça-feira, 28 de fevereiro de 2012 17:07
  • Com relacao a sua pergunta inicial. A resposta correta eh usar a funcao DateAdd

    O exemplo abaixo indica 6 meses atras da data entrada no parametro "data"

    =DateAdd("m", -6, Parameters!data.Value)

    O exemplo abaixo representa 7 dias astras

    =DateAdd("d", -t, Parameters!data.Value)

    Voce pode ver todos os detalhes aqui:

    http://msdn.microsoft.com/en-us/library/aa258267(v=sql.80).aspx

    Com relacao ao grafico, no grupo de categoria, dentro da aba "sorting"  tem o campo que voce esta agrupando, voce esta agrupando pelo nome do mes, voce deve agrupar por um campo que mostre o numero do mes.

    att

    boreki


    Boreki[MSFT] - SQL Server Reporting Services

    • Sugerido como Resposta Rodrigo Ataíde terça-feira, 28 de fevereiro de 2012 17:34
    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 17:23
  • Bruno, o mês você pode fazer o cálculo da seguinte forma, se for menor que 6, basta somar 7.

    Por exemplo, se for fevereiro, soma 7 que dá 09, Setembro, se for Janeiro, soma 7, que dá 8 Agosto.

    Se for maior que 6, subtrai 5. Ou seja, se colocar outubro, 10, menos 5, 05, maio.

    E se for igual 6, somar com 6.


    Rodrigo Ataíde.

    terça-feira, 28 de fevereiro de 2012 17:33
  • Acredito que a solução que o Boreki forneceu seja mais adequada.

    Ainda não tinha utilizado o DateAdd.


    Rodrigo Ataíde.

    terça-feira, 28 de fevereiro de 2012 17:35
  • Boreki e Rodrigo...

    Tenho dois campos de datas...

    Data1...datetime
    2012-01-01 00:00:00

    Data2...char(10)
    2012-01-01

    Com a sugestão do Boreki eu consegui pegar os últimos 6 meses de acordo com a data inicial do usuário.
    Questão..
    Qual qual campo devo fazer essa comparação de datas...
    Com o campo datetime ou com o campo char(10)?

    []s

    terça-feira, 28 de fevereiro de 2012 17:49
  • Com o campo datetime.

    Com o campo char(10) não irá funcionar, pois a função datetime é especifica para valores de DATA.


    Rodrigo Ataíde.

    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 17:51
  • Se eu fizer essa conta mesmo eu não colocando no meu filtro inicial a hora...

    ou seja...

    20/02/2012 00:00:00

    e sim, o valor informado pelo usuário é 20/02/2012, consigo fazer essa operação?

    terça-feira, 28 de fevereiro de 2012 17:56
  • Bruno, boa tarde,

    Como  o Rodrigo e o Boreki citaram, acredito que a necessidade é muito mais como implementar query MDX do que SSRS em si. Por favor, poste aqui sua query mdx para te auxiliar a montar o resultado esperado.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    terça-feira, 28 de fevereiro de 2012 17:58
  • Seria algo, mais ou menos assim?

    DataAtual(informado pelo usuário)
    ="[Dim Tempo].[Tempo Data].[" & Parameters!teste.Value & "]"

    DataPassada(data atual - 6 meses)
    ="[Dim Tempo].[Tempo Data].[" & DateAdd( DateInterval.Month, -6, Parameters!teste.Value ) & "]"

    MDX:
     SELECT NON EMPTY { [Measures].[Quantidade Pessoas - Fact Movimentacoes Saidas] } ON COLUMNS, NON EMPTY { ([Dim Tempo].[Tempo Ano].[Tempo Ano].ALLMEMBERS * [Dim Tempo].[Tempo Data].[Tempo Data].ALLMEMBERS * [Dim Tempo].[Tempo Dia].[Tempo Dia].ALLMEMBERS * [Dim Tempo].[Tempo Mes].[Tempo Mes].ALLMEMBERS * [Dim Tempo].[Tempo Mes Nome].[Tempo Mes Nome].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( STRTOMEMBER(@FromDimTempoTempoMes, CONSTRAINED) : STRTOMEMBER(@ToDimTempoTempoMes, CONSTRAINED) ) ON COLUMNS FROM ( SELECT ( STRTOMEMBER(@FromDimTempoTempoAno, CONSTRAINED) : STRTOMEMBER(@ToDimTempoTempoAno, CONSTRAINED) ) ON COLUMNS FROM [DW])) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

    terça-feira, 28 de fevereiro de 2012 18:00
  • Isso, mais ou menos isso bruno.

    Rodrigo Ataíde.

    terça-feira, 28 de fevereiro de 2012 18:01
  • Pessoal, veja a imagem...
    Acredito que a questão das horas, possa ser o problema dessa consulta.

    FromTempoData: [Dim Tempo].[Tempo Data].&[2011-08-20 00:00:00]
    ToTempoData: [Dim Tempo].[Tempo Data].&[2012-02-20 00:00:00]

    Como está o meu dataset..

    • Editado Bruno.Costa terça-feira, 28 de fevereiro de 2012 18:08
    terça-feira, 28 de fevereiro de 2012 18:06
  • Bruno tente neste formato:

    [Data].&[2011-09-01T00:00:00]:[Data].&[2011-09-25T00:00:00]


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 18:07
  • Utilize a expressao Format para que o retorno do dateadd seja no formado que vc esta esperando na query:

    http://msdn.microsoft.com/en-us/library/dd220510.aspx

    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 18:10
  • Eduardo...

    Nos parametros eu coloquei esses valores:

    From: [Dim Tempo].[Tempo Data].&[2011-09-20T00:00:00]
    To ...: [Dim Tempo].[Tempo Data].&[2012-02-20T00:00:00]

    Dá algum erro, não deu!! Mas também nenhum informação foi exibida..

    Obs: no período apresentado, tem sim informação no banco! hehehe

    []s

    terça-feira, 28 de fevereiro de 2012 18:11
  • Bruno, no cubo qual o tipo de dados deste atributo?

    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    terça-feira, 28 de fevereiro de 2012 18:15
  • DateTime...

    Boreki,

    Vc consegue exemplificar ? Porque eu não consegui...

    []s

    • Editado Bruno.Costa terça-feira, 28 de fevereiro de 2012 18:17
    terça-feira, 28 de fevereiro de 2012 18:16
  • Pessoal,

    Os parametros devem ter esse valor ??

    From: ="[Dim Tempo].[Tempo Data].[" & Replace( DateAdd( DateInterval.Month, -6, Parameters!teste.Value ) , "/", "-" ) & "T00:00:00]"

    To: ="[Dim Tempo].[Tempo Data].[" & Parameters!teste.Value & "T00:00:00]"

    terça-feira, 28 de fevereiro de 2012 18:40
  • Bruno só por desencargo... a expressão está recebendo a data neste formato:

    [Data].&[2011-09-01T00:00:00]

    Ou seja, com as barras "-". Se estiver sem barras a sintaxe mdx acusa erro.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 18:44
  • Voce tem que saber qual é o formato que o seu banco está esperando, daí ajuste o format como abaixo (abaixo é um exemplo, voce deve arrumar para o que é esperado na sua query):

    =dateadd("m", -6, now()).ToString("yyyy-M-d")

    E aqui voce acha todos characteres para configurar sua string:

    http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

    • Editado Boreki terça-feira, 28 de fevereiro de 2012 18:46
    • Marcado como Resposta Bruno.Costa terça-feira, 28 de fevereiro de 2012 20:28
    terça-feira, 28 de fevereiro de 2012 18:45
  • Eduardo,

    Na verdade o valor do [ TO ] está assim:

    To: ="[Dim Tempo].[Tempo Data].[" & Replace( Parameters!teste.Value, "/", "-" ) & "T00:00:00]"

    E mesmo assim, nenhum valor e exibido.

    []s


    • Editado Bruno.Costa terça-feira, 28 de fevereiro de 2012 18:46
    terça-feira, 28 de fevereiro de 2012 18:45
  • Boreki,

    A questão é que não consigo passar para os parametros do Subreport com o valor correto.

    O valor das datas, vem pelo campo DATA inicial que é preenchido pelo usuário.
    No parametro From, utilizei o DateAdd para ter a data atual - 6 meses.

    From: [Dim Tempo].[Tempo Data].&[2011-09-20T00:00:00]
    To ...: [Dim Tempo].[Tempo Data].&[2012-02-20T00:00:00]

    []s

    terça-feira, 28 de fevereiro de 2012 18:48
  • Pessoal...

    Quero deixar registrado...minha gratidão referente a ajuda de vcs.

    Vejam o relatório abaixo..
    Com muito esforço e paciência...mas de vcs do que minha, terminamos esse relatório maldito! rs...

    Muito Obrigado...a todos!!!

    quarta-feira, 29 de fevereiro de 2012 12:52
  • pessoal,

    voltei a ter problemas com a ordenação. vejam:

    sexta-feira, 2 de março de 2012 19:06
  • Mas você fez alguma alteração recente?

    Rodrigo Ataíde.

    sexta-feira, 2 de março de 2012 19:08
  • fiz não cara.

    a unica coisa que fiz foi trocar o filtro...

    para 2011...


    vou mandar para seu e-mail o relatorio, pode ser?
    • Editado Bruno.Costa sexta-feira, 2 de março de 2012 19:13
    sexta-feira, 2 de março de 2012 19:13
  • Como esta a expressao que voce usou no "Sort Expression" do grupo?

    Boreki[MSFT] - SQL Server Reporting Services

    sexta-feira, 2 de março de 2012 19:15
  • Te mandei uma resposta já Bruno.

    Rodrigo Ataíde.

    sexta-feira, 2 de março de 2012 19:25

    • Editado Bruno.Costa sexta-feira, 2 de março de 2012 19:25
    sexta-feira, 2 de março de 2012 19:25
  • A sua sort expression nao pode ser pelo nome do mes, porque senao vai ordenar alfabeticamente, coloque direto

    Fields!Tempo_Mes.Value.

    Att

    Boreki


    Boreki[MSFT] - SQL Server Reporting Services

    sexta-feira, 2 de março de 2012 19:29
  • Boreki,

    Mas é isso que estou fazendo, não?

    Verificando o "número" do mês e mandando imprimir a sua descrição.
    Vc acha que mesmo assim, não é possível exibir em ordem?

    Se sim, porque no relatório que postei acima, com a ordenação correta, funcionou/

    []s

    sexta-feira, 2 de março de 2012 19:32
  • Bruno,

    A sort expression, group expression e o que voce mostra no label sao coisas bem diferentes.

    O que a expressao que voce postou esta fazendo 'e baseado no numero, retornar a string do mes por extenso. Voce esta retornando isso e mandando ordenar de A->Z portanto a ordenacao vai ser pelo nome do mes, e nao numero. COmo falei, basta que no sort expression voce use direto o numero do mes (e voce so deve trocar no sort expression, as outras deve ficar da maneira que estao).

    Da maneira que esta isso nao deveria estar funcionando antes :)

    Outra coisa para ficar atento 'e que a funcao SWITCH retorna nothing caso nenhuma condicao esteja correta, se o seu tempo_mes for numero por exemplo (que parece ser o caso pela sua expressao) o CSTR vai retornar "1" e nao "01". Caso isso esteja acontecendo voce pode ter dado "sorte" que com o filtro como 2012 a orderm veio correta no dataset ou no grupo.

    Att

    Boreki


    Boreki[MSFT] - SQL Server Reporting Services

    sexta-feira, 2 de março de 2012 19:42
  • e como resolvo?
    sexta-feira, 2 de março de 2012 19:58
  • Como falei no outro post, voce deve usar o format de string que eh requerido na sua expressao, recomendo fortemente ler o que a funcao faz. Se o seu campo temp_mes eh inteiro (porque se nao fosse vc nao precisaria usar CSTR) mude toda aquela expressao para

    =Fields!Tempo_Mes.Value.ToString("00")


    Boreki[MSFT] - SQL Server Reporting Services

    sexta-feira, 2 de março de 2012 20:00
  •  Switch( Fields!Tempo_Mes.Value.ToString() = "01",  "Janeiro" )

    ....

    trocar assim?


    • Editado Bruno.Costa sexta-feira, 2 de março de 2012 20:06
    sexta-feira, 2 de março de 2012 20:03
  • Boreki...

    Sim, o campo é inteiro...

    Fiz as alterações, mas não funcionou..

    sexta-feira, 2 de março de 2012 20:29
  • substitui TODA a expressao por isso:

    =Fields!Tempo_Mes.Value.ToString("00")


    Boreki[MSFT] - SQL Server Reporting Services

    sexta-feira, 2 de março de 2012 21:04
  • Boreki,

    Não funcionou...

    Erro no .ToString("00").

    segunda-feira, 5 de março de 2012 13:21
  • Bruno, tira o "00".

    Deixa assim: .ToString()


    Rodrigo Ataíde.

    segunda-feira, 5 de março de 2012 14:58
  • Rodrigo,

    Não funcionou ainda..

    segunda-feira, 5 de março de 2012 15:45
  • http://msdn.microsoft.com/pt-br/library/aa964128(v=sql.90).aspx

    Vi esse tutorial, mas não consegui implementar...

    tá dificil ordenar esses meses...

    segunda-feira, 5 de março de 2012 17:09
  • Se tu botar 2012 - 2012 ordena normalmente?

    Rodrigo Ataíde.

    segunda-feira, 5 de março de 2012 17:13
  • Esse tutorial explica da seguinte forma. Primeiro você tem que ordenar pelo maior depois pelo menor.

    Por exemplo:

    Milênio

    Século

    Década

    Ano

    Mês

    Semana

    Dia

    Hora

    e por ai vai.

    No seu caso, você precisa ordenar primeiro por ano depois por mês.

    Então pelo que eu entendi, no seu caso só tem um ordenamento (que é por ano). Falta colocar por mês baseado NESSE ano.


    Rodrigo Ataíde.

    segunda-feira, 5 de março de 2012 17:16
  • Rodrigo...

    Sim, ordena normalmente!

    Agora a questão de ordenar por mês que está complicando.

    []s

    segunda-feira, 5 de março de 2012 17:29
  • Bruno,

    Parece que voce esta alterando a propriedade errada. Nas propriedades de categoria, tem o "Group" que deve ficar como vc deixou no comeco, tem o Label, que deve ficar com a expressao do switch, e tem o Sorting, que deve ser o =Fields!Tempo_Mes.Value

    Att

    Boreki


    Boreki[MSFT] - SQL Server Reporting Services

    segunda-feira, 5 de março de 2012 17:53
  • Boreki, eu fiz o que está nesse link...e aparentemente funcionou!!

    http://www.sqlservercentral.com/Forums/FindPost1062162.aspx

    []s

    segunda-feira, 5 de março de 2012 17:59
  • Otimo entao, thread concluida.

    Boreki[MSFT] - SQL Server Reporting Services

    segunda-feira, 5 de março de 2012 18:01
  • Boreki,

    Você pode explicar...essa resposta?

    Particularmente não entendi..

    []s

    segunda-feira, 5 de março de 2012 18:08
  • Opa Bruno,

    Pelo que entendi voce fez a sugestao do link e esta funcionando correto? Entao essa thread do forum esta concluida! :)

    Att

    Boreki


    Boreki[MSFT] - SQL Server Reporting Services

    segunda-feira, 5 de março de 2012 18:10
  • Boreki...

    Desculpe novamente, expliquei errado...

    Mas a questão que gostaria era de vc explicar a reposta do link.

    []s

    segunda-feira, 5 de março de 2012 18:12
  • Bruno,

    O link esta dizendo que voce deve colocar a expressao correta no sort, ou voce removeu e deixou em branco? Se voce deixou em branco, vc esta caindo novamente no caso em que voce esta tendo "sorte" que os dados estao vindo ordenados do banco, se vc nao estiver ordenando de proposito, voce ainda deve colocar a expressao correta.

    No seu caso para o grupo do mes, voce deve ordenar pelo numero do mes =Fields!Tempo_Mes.Value (e no campo do ano, pelo numero do ano como indicou Rodrigo acima).

    Att

    Boreki


    Boreki[MSFT] - SQL Server Reporting Services

    segunda-feira, 5 de março de 2012 18:33
  • Boreki, realmente em "Sorting" eu deixei em branco...

    Vc realmente me desculpe, mas é necessário ordenar o ano?
    Como disse, que a "sorte" está ao meu lado, quais as expressoes devo colocar para funcionar?

    Veja:

    segunda-feira, 5 de março de 2012 18:41
  • A expressao que voce colocou aih em cima, eh para o Label. ela esta correta.

    Ali no seu screen shot de cima tem a aba "SORTING" na esquerda. Naquela aba, tem outra expressao que nao esta sendo mostrada em nenhuma das fotos. A outra expressao tem que ser =Fields!Tempo_Mes.Value


    Boreki[MSFT] - SQL Server Reporting Services

    • Marcado como Resposta Bruno.Costa segunda-feira, 5 de março de 2012 19:30
    segunda-feira, 5 de março de 2012 18:43
  • qual a expressão que deixo em "Group On" ?
    segunda-feira, 5 de março de 2012 18:49
  • deixe tudo da forma que esta, so mude o sorting.


    Boreki[MSFT] - SQL Server Reporting Services

    • Marcado como Resposta Bruno.Costa segunda-feira, 5 de março de 2012 19:29
    segunda-feira, 5 de março de 2012 18:50
  • Boreki..
    Sorting => =Fields!Tempo_Mes.Value

    Demais fx.. Label e Group on
    =Switch(
    CStr(Fields!Tempo_Mes.Value)  = "1","Janeiro",
    CStr(Fields!Tempo_Mes.Value) = "2","Fevereiro",
    CStr(Fields!Tempo_Mes.Value) = "3","Março",
    CStr(Fields!Tempo_Mes.Value) = "4","Abril",
    CStr(Fields!Tempo_Mes.Value) = "5","Maio",
    CStr(Fields!Tempo_Mes.Value) = "6","Junho",
    CStr(Fields!Tempo_Mes.Value) = "7","Julho",
    CStr(Fields!Tempo_Mes.Value) = "8","Agosto",
    CStr(Fields!Tempo_Mes.Value) = "9","Setembro",
    CStr(Fields!Tempo_Mes.Value) = "10","Outubro",
    CStr(Fields!Tempo_Mes.Value) = "11","Novembro",
    CStr(Fields!Tempo_Mes.Value) = "12","Dezembro")

    segunda-feira, 5 de março de 2012 18:57
  • isso nao funcionou?

    Boreki[MSFT] - SQL Server Reporting Services

    segunda-feira, 5 de março de 2012 18:58
  • não... :(
    • Editado Bruno.Costa segunda-feira, 5 de março de 2012 19:02
    segunda-feira, 5 de março de 2012 19:00
  • Tempo_mes eh string? Se tempo_mes for string, use essa expressao no sorting:

    =CINT(Fields!Tempo_mes).toString("00")


    Boreki[MSFT] - SQL Server Reporting Services

    segunda-feira, 5 de março de 2012 19:05
  • Tempo_Mes é integer...
    segunda-feira, 5 de março de 2012 19:06
  • Voce tentou com essa expressao e nao deu certo?

    =CINT(Fields!Tempo_mes).toString("00")


    Boreki[MSFT] - SQL Server Reporting Services

    segunda-feira, 5 de março de 2012 19:08
  • Sim..utilizei essa expressao também...

    sem sucesso.

    segunda-feira, 5 de março de 2012 19:09
  • Pode colocar uma foto de como ficou com a expressao

    =CINT(Fields!Tempo_mes).toString("00")

    no sorting?


    Boreki[MSFT] - SQL Server Reporting Services

    segunda-feira, 5 de março de 2012 19:10
  • Boreki..

    dentro do Sorting eu deixei examente assim:
    Fields!Tempo_mes

    Depois alterei para
    CINT(Fields!Tempo_mes).toString("00")  ... mesmo assim não funcionou.

    []s


    • Editado Bruno.Costa segunda-feira, 5 de março de 2012 19:15
    segunda-feira, 5 de março de 2012 19:15
  • Como ficou o grafico com a expressao:

    =CINT(Fields!Tempo_mes).toString("00")

    So para garantir, voce pos o "=" na frente correto?


    Boreki[MSFT] - SQL Server Reporting Services


    segunda-feira, 5 de março de 2012 19:16
  • Boreki..

    Agora funcionou..

    O valor dentro do FX do Group On estava comom:

    Fields!Tempo_Mes.Value

    Apenas isso...
    Deixei o Group On e Label com os mesmos valores utilizando o switch e em Sorting fiz como escrito acima.

    Espero que essa seja a última vez que digo...
    Funcionou!!

    segunda-feira, 5 de março de 2012 19:29
  • Blz, expresses no RS sempre tem que comecar com "=".

    Valeu

    Boreki


    Boreki[MSFT] - SQL Server Reporting Services

    segunda-feira, 5 de março de 2012 19:32
  • última pergunta:

    =CINT(Fields!Tempo_Mes.Value).toString("00")

    Qual a utilidade de informar novamente que o valor é inteiro com o CInt?

    E qual a função do ("00") ?

    segunda-feira, 5 de março de 2012 19:50
  • Se o valor for realmente inteiro, voce pode usar somente

    =Fields!Tempo_Mes.Value

    porque a ordenacao vai ser correta, se o campo for string, a ordenacao fica incorreta e vc tem que converter para

    =CINT(Fields!Tempo_Mes.Value).toString("00")

    Voce pode testar deixar somente =Fields!Tempo_Mes.Value, se funcionar eh melhor do que usar o CINT.

    A funcao do "00" eh indicar qual o formato que o inteiro deve ser convertido para string. se vc deixar sem nada ele sai assim:

    "1","2",..."10","11"

    Com 00 ele sempre tem dois digitos:

    "01","02",..."10","11"

    por isso a ordenacao funciona com o "00" mas nao funcionaria sem.


    Boreki[MSFT] - SQL Server Reporting Services


    segunda-feira, 5 de março de 2012 19:53
  • entendi!

    ok..obrigado!

    segunda-feira, 5 de março de 2012 19:58