Problema creazione Report

domenica 13 gennaio 2008 - 13.17

attilio Profilo | Junior Member

Salve a tutti ho un grosso problemae spero mi possiate aiutare sto creando tramite un applicazione C# 2.0 alcuni report quali Fattura DDt ecc.
I parametri che passo sono alcune stringhe direttamente lette su database e altre tramite report.DataDefinition.FormulaFields["mia stringa"] ecc.
Il problema che si presentà è un errore quando mando stringhe comprendenti il cartattere " ' ".
Non riesco al momento in alcun modo a mettere una regola o un controllo che mi lasci processare il carattere.Come posso Fare secondo voi?

RedStripe Profilo | Newbie

il carattere che riporti è usato anche come delimitatore di stringa (insieme al doppio apice " ). Credo che quando incontri quel carattere il programma interpreta la stringa come chiusa e quindi il resto della stringa appare come un errore e blocca l' applicazione. Puoi o definire le tue stringhe con il doppio apice iniziale e finale (controlchars.quote ) oppure filtrare gli apici a monte eliminandoli (un pò talebana come soluzione però) oppure effettuare un replace degli apici che trovi all' interno della stringa con:

Public Function MyReplace(ByVal xvalue As String) As String

Dim newString As String = ""
Try
newstring = xvalue.Replace("'", ControlChars.Quote & "'" & ControlChars.Quote)
Catch ex As Exception
newstring = xvalue
Finally
MyReplace = newString
End Try

End Function

Però dipende molto da come tratti le stringhe tu e dal tipo di errore che ti viene sollevato...
In bocca al lupo

attilio Profilo | Junior Member

Sicuramente l'errore dipende dal fatto che il carattere mandato viene interpretato come interruzione di stringa e che quindi tutto il resto che legge non riesce ad essere interpretato come tale e quindi errore.
Ora proverò a leggere e quindi creare un metodo che mi gestisca la sostituzione di questi caratteri ma non ho ben capito l'utilizzo di controlchars.quote...
Mi sembra quindi di capire che non esiste un metodo gia in utilizzo tra c# e crystal report per rendere interpretabili questi caratteri?

RedStripe Profilo | Newbie

Non ti so dire, personalmente uso i componenti di ActiveReport della Data Dynamics per i report, Crystal Report non lo conosco molto. Il problema è però delle stringhe.. ControlChars.Quote non è altro che il carattere " (il vecchio chr$(34) di VB per capirci) Se usi le virgolette per delimitare una stringa puoi includere gli apici tranquillamente all' interno , se però usi gli apici stessi come delimitatore ecco che ti si crea il problema...

freeteo Profilo | Guru

ciao,
prova con questa sintassi:
...FormulaFields["..."].Text = "'" + stringaDaDb.Replace("'","''") + "'";

ovvero vai a sovrascrivere (se ce ne sono nella stringa) il carattere singolo con il doppio, Crystal (come si fa anche sql) lo interpreta correttamente, renderizzandolo come apice singolo...


ps:
per questo tipo di problematiche c'e' una stanza apposita, posta li la prossima volta, cosi' teniamo piu' "ordinato" il forum:
http://www.dotnethell.it/forum/Crystal-Reports.aspx

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

attilio Profilo | Junior Member

Grazie siete stati gentilissimi

freeteo Profilo | Guru

>Grazie siete stati gentilissimi
di niente, se hai risolto accetta una risposta che cosi' chiudiamo il thread.
Grazie!

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5