Problema apice (chr(39))

martedì 27 gennaio 2009 - 15.36

camposeo79 Profilo | Junior Member

Salve a tutti.
Vi espongo brevemente il mio problema.
Ho un campo formula, su un report fatto con crystal report 4.6 utilizzato tramite vb6, dove ogni tanto capita di scriverci un carattere apice ' (chr(39)), il quale mi genera un errore del tipo: "Errore nella formula . Il testo rimanente non fa parte della formula ' ".
CRep.Formulas(3) = "barcode='" & Code128(Trim$(IdCorrente)) & "'"
dove Code128 restituisce: Code128 = Code128 & Chr(39) & Chr(206).
Come posso far capire al crystal report che l'apice in questione fa parte del testo, e non è un delimitatore?

Grazie a tutti.

Giuseppe

freeteo Profilo | Guru

Ciao,
hai provato ad accodarne 2 di fila? così facendo nel testo della formula, l'apice viene visto come singolo quindi poi ti basta aggiungere quello di chiusura alla fine della stringa, ad esempio:

' ... quell''altra volta... '

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

camposeo79 Profilo | Junior Member

intendi cosi?
Code128 = Code128 & "''" & Chr(206)
Cosi mi da sempre errore...

camposeo79 Profilo | Junior Member

Nessuno sa dirmi se è (e quindi come) possibile passare un apice al Crystal Report?

freeteo Profilo | Guru

Ciao,
io te l'ho detto prima, per quanto ne so io devi mettere 2 volte di fila l'apice singolo nel testo della formula, in questo modo:

CRep.Formulas(3).Text = " 'dall''altra parte della strada' "

Che poi in visual Basic dovrebbe essere "Chr(34)" se non ricordo male...cmq con una stringa composta in questo modo lui visualizzerà "dall'altra parte della strada" nel testo della formula.
Non ho capti il tuo "Barcode128" cosa sia, cmq potrebbe essere che sia quello che non li accetta? ipotizzo...

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

camposeo79 Profilo | Junior Member

Barcode128 è un normale campo formula. Ora non so se va settato in qualche modo, per fargli accettare l'apice.
Comunque riprovo con la tua soluzione (doppio apice) e ti faccio sapere.
Grazie.

camposeo79 Profilo | Junior Member

Allora, forse avrò capito male io.
Ho fatto cosi.
Il singolo apice l'ho sostituito con il doppio, cosi:
Code128 = Code128 & Chr(34) & Chr(206) invece di Code128 = Code128 & Chr(39) & Chr(206).
Bene nella formula su report, mi scrive il doppio apice (") invece del singolo. Sbaglio in qualcosa? Questà comunque è l'istruzione completa:
CRep.Formulas(3) = "barcode='" & Code128 & "'" dove code128 è la stringa citata su (con l'apice incriminato!!!!).

freeteo Profilo | Guru

Ciao,
scusa ma devo aver sbagliato io, non uso visual basic da anni
Cmq io farei questo:
CRep.Formulas(3) = "barcode= " & Char(39) & Chr(39) & Code128 & Char(39) & Chr(39)
e sulla formula a video in esecuzione dovresti trovare: barcode= '....'
Funziona?

Alla fin fine concateni 2 apici singoli che sono Chr(39) e non "34" come ti ho detto prima, quelli sono i doppi ma a te non servono.

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

camposeo79 Profilo | Junior Member

Inserendo i due apici, continua a non funzionare. Ho risolto il tutto però facendo una modifica.
Ho tolto il campo formula sostituendolo con un campo database popolato tramite DataReport. Cosi, problemi sugli apici non me ne dà.
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