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

Fórmula com Replace dela mesma


CTP

Pergunta

Bom dia pessoal,

Preciso de uma ajuda com o seguinte problema, eu tenho num relatório uma fórmula "Observação", esta fórmula é setada valor direto pelo VB antes de chamar o relatório, bom a fórmula funciona bem, o VB seta o valor e este aparece no relatório, desde que não tenha nenhum "Enter" no meio do texto que o usuário digita, senão não funciona, daí o que imaginei para resolver o problema foi substituir no VB o "Enter" (chr(13)+chr(10)) por um caracter qualquer tipo "¿" e depois fazer o contrário no Crystal.

A minha dúvida está no seguinte: Como que dentro do código da fórmula Observação no Crystal eu pégo o próprio valor dela e dou um comando tipo: "formula = replace({Observacao}, "¿", chr(13)+chr(10))", se eu tento isso ele dá erro dizendo que não posso referenciar a própria variável.

Att,

Cristopher

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

você passa pelo Visual Basic o codigo da formula, ou só o texto que o cara digitar??

se é só o texto, porque não usa um campo parametro em vez de campo formula??

ou você tb pode usar dois campos formulas, sendo q o segundo faria o replace do primeiro (q é o q receberia o texto pelo Visual Basic).

Link para o comentário
Compartilhar em outros sites

  • 0

Eu passo pelo VB só o valor que o usuário digita, não passo o código da fórmula.

Bom, quem criou o relatório não fui eu, quando criaram fizeram passando por fórmula ao invés de parâmetro, mas mesmo assim, se passase por parâmetro eu teria que criar no Crystal uma fórmula para fazer o replace do caracter especial por [ENTER] certo?

Quanto a criar 2 fórmulas, eu já tinha criado uma segunda para fazer o replace do valor da primeira, mas achei que era uma solução meio gambiarra, por isso postei aqui, pra ver se não tinha como não criar essa segunda fórmula e resolver tudo só na primeira.

Link para o comentário
Compartilhar em outros sites

  • 0

Então, mas como eu passo o valor da fórmula pra variável? se eu coloco na fórmula {@Observacao} o código:

SHARED obs as String

obs = {@Observacao}

formula = Replace(obs, "¿", chr(13)&chr(10))

Ele dá erro dizendo "A formula cannot refer to itself, either directly or indirectly."

Tipo, como que eu faço pra criar a variável, jogar o valor da fórmula pra ela e daí fazer o replace sem criar outra fórmula?

Link para o comentário
Compartilhar em outros sites

  • 0

hum é verdade, acho q o mais certo mesmo seria criar um campo parametro e fazer o replace dele. o campo parametro serve pra isso mesmo.

se você não pode alterar o relatorio como já esta e tem q ser campo formula, acho q pode ser, e eu não consideraria gambiarra. a formula funcionaria como um campo parametro pra passar o texto digitado. a outra formular q você vai dar o replace seria como uma "formatacao" do parametro.

mas o estranho é esse negocio de ele não aceitar os ENTERs, qual o codigo q você usa pra editar o valor da formula pelo Visual Basic.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, tem uns comandos aqui que não sei exatamente como funcionam (porque sou meio novato nisso e num pude ainda aprender bem como que o sistema mexe com o Crystal), mas é assim, dentro do código é chamada uma Function "setformularpt("Observacao",chr(34) & txtobs.text & chr(34))", daí dentro dessa function tem o seguinte código:

Private Sub SetFormulaRpt(byVal txNomeFormula, byVal txValorFormula)

For Each Crxformulafield In Crxrformulafields

If UCase(Crxformulafield.Name) = UCase("{@" & txNomeFormula & "}") Then

Crxformulafield.Text = txValorFormula

End If

Next

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

Então, não sei que componente usa não, mas pelos códigos lá, parece ser referência a alguma DLL ou coisa assim do Crystal...

Quando tento passar fórmula com enter dá erro...

Bom kuroi, independente do problema que estava acontecendo... agora já consegui corrigir numa boa com mais uma variável, então acho que tá beleza. Valeu muito pela ajuda.

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...