Ir para conteúdo
Fórum Script Brasil
  • 0

Crystal report


Marcio_Garca

Pergunta

alguém já viu essa mensagem no crystal?

The formula is too complex. Try simplifying it.

Estou gerando um rlt que tem um subreport na Report Footer.

É passado um parameter field para esse subreport com mais ou menos 3 mil registros....daí ele gera o relatorio, mas dá o erro acima... alguém pode me ajudar, por favor??

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
The formula is too complex. Try simplifying it.

A formula esta muito complexa. Tente simplifica-la

Reveja a passagem do parametro

abraço

Então, eu passo 3 mil códigos um a um no parameter field.... foram códigos selecionados pelo usuário na tela.... parameter field tem limite?

Antes eu usava selectionFormula, mas como estourava o limite passei a usar parameter field. Mas agora dá essa mensagem.

Link para o comentário
Compartilhar em outros sites

  • 0

mas ele aponta qual formula q é??

seria um campo formula ou é a formula da selecao??

posta ai qual o codigo da formula pra gente ver.

e ai não entendi essa parte de 3000 registros no parameter field. você diz q passa os 3000 pro usuario escolher um deles, é isso??

Link para o comentário
Compartilhar em outros sites

  • 0

Conforme o código abaixo, o ParameterField de um subreport está sendo alimentado um a um... o array informado, nesse caso, possui mais de 3 mil registros.... ao processar o relatorio aparece a mensagem citada acima.... se suprimir o subreport o erro não ocorre.... e se a qtde de registros for menor o erro tb não ocorre.... mas eu preciso exibir esses registros.

Tentei tirar o ParameterField do subreport, dai ele exibe todos os registros da tabela normalmente, só que fica sem o filtro né, então acho que o problema seja o ParameterField.

For Each oParameterFieldDefinition In oReport.OpenSubreport("SubUP").ParameterFields

Select Case oParameterFieldDefinition.ParameterFieldName

Case "peCdCelula"

For lngArray = 0 To UBound(avUP, 2)

oParameterFieldDefinition.AddCurrentValue avUP(0, lngArray)

Next

End Select

Next

Link para o comentário
Compartilhar em outros sites

  • 0
o ParameterField de um subreport está sendo alimentado um a um... o array informado, nesse caso, possui mais de 3 mil registros.... ao processar o relatorio aparece a mensagem citada acima.... se suprimir o subreport o erro não ocorre.... e se a qtde de registros for menor o erro tb não ocorre.... mas eu preciso exibir esses registros.

For Each oParameterFieldDefinition In oReport.OpenSubreport("SubUP").ParameterFields

Select Case oParameterFieldDefinition.ParameterFieldName

Case "peCdCelula"

For lngArray = 0 To UBound(avUP, 2)

oParameterFieldDefinition.AddCurrentValue avUP(0, lngArray)

Next

End Select

Next

se a qtde de registros for menor o erro tb não ocorre ... então voce pode perceber o motivo do erro:

The formula is too complex. Try simplifying it.

A formula esta muito complexa. Tente simplifica-la

O modo como é passado o parametro é que tem quer ser modificado

veja nestes endereços:

http://www.willydev.net/InsiteCreation/v1....oparametros.pdf

http://www.dynalivery.com/products/paralle...Definition.html

http://devlibrary.businessobjects.com/busi...nclasstopic.htm

http://74.125.47.132/search?q=cache:cPnQnx...=clnk&gl=br

http://bytes.com/groups/net-c/262325-date-...fielddefinition

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

marcio, se o selection formula não tava aceitando e os parametros tb não, não sei se tem jeito.

o filtro q você quer fazer é muito complexo, mesmo.

uma otra alternativa seria você passar os dados a partir do recordset, como explicado nesse tópico: http://scriptbrasil.com.br/forum/index.php...mp;#entry477615

agora, não duvido q ocorra erro tb na hora de fazer o where no select.

3000 ORs é mta coisa mesmo. você podia usar o IN (Where Campo In ('valor1', 'valor2', ..., 'valor3000')), entretanto tb não duvido q va dar erro.

acho q você devia rever uma forma pra simplificar esse filtro.

Link para o comentário
Compartilhar em outros sites

  • 0
o ParameterField de um subreport está sendo alimentado um a um... o array informado, nesse caso, possui mais de 3 mil registros.... ao processar o relatorio aparece a mensagem citada acima.... se suprimir o subreport o erro não ocorre.... e se a qtde de registros for menor o erro tb não ocorre.... mas eu preciso exibir esses registros.

For Each oParameterFieldDefinition In oReport.OpenSubreport("SubUP").ParameterFields

Select Case oParameterFieldDefinition.ParameterFieldName

Case "peCdCelula"

For lngArray = 0 To UBound(avUP, 2)

oParameterFieldDefinition.AddCurrentValue avUP(0, lngArray)

Next

End Select

Next

se a qtde de registros for menor o erro tb não ocorre ... então voce pode perceber o motivo do erro:

The formula is too complex. Try simplifying it.

A formula esta muito complexa. Tente simplifica-la

O modo como é passado o parametro é que tem quer ser modificado

veja nestes endereços:

http://www.willydev.net/InsiteCreation/v1....oparametros.pdf

http://www.dynalivery.com/products/paralle...Definition.html

http://devlibrary.businessobjects.com/busi...nclasstopic.htm

http://74.125.47.132/search?q=cache:cPnQnx...=clnk&gl=br

http://bytes.com/groups/net-c/262325-date-...fielddefinition

abraço

Desculpe, mas não entendi. Estou lendo o documento do primeiro link enviado, mas não entendo como devo modificar a forma com que passo os valores.

Link para o comentário
Compartilhar em outros sites

  • 0
o ParameterField de um subreport está sendo alimentado um a um... o array informado, nesse caso, possui mais de 3 mil registros

porque fazer esta alimentação um a um ? porque não aplica um Range ? qual é o valor corrente passado ?

quando diz que: A formula esta muito complexa. Tente simplifica-la....

voce deve tirar do subreport essa passagem de um a um, porque o número de interações extrapola.

For Each oParameterFieldDefinition In oReport.OpenSubreport("SubUP").ParameterFields
Select Case oParameterFieldDefinition.ParameterFieldName
Case "peCdCelula"
For lngArray = 0 To UBound(avUP, 2)
oParameterFieldDefinition.AddCurrentValue avUP(0, lngArray)
Next
End Select
Next

ao executar

For lngArray = 0 To UBound(avUP, 2)

oParameterFieldDefinition.AddCurrentValue avUP(0, lngArray)

voce esta adicionando no parametro de definição do campo todos os valores do array ... isso para cada interação do < For Each >

pense numa maneira de agrupá-los

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...