2013-10-02 12 views
5

Quindi, dire che ho la seguente stringaCasella di testo formattazione in SSRS 2008 - interruzione di linea

THIS IS STUFF (MORE STUFF) 

Come faccio a ottenere la stringa per formattare come tale in una casella di testo in SSRS?

THIS IS STUFF 
(MORE STUFF) 

Questi dati è tirato da un singolo campo in una query e non sarà in grado di iniettare manualmente una linea di interruzione.

Inoltre, a volte il (più materiale) non è nel campo.

esempi aggiuntivi:

  • STUFF e le cose
  • COSE (roba)
  • cose e STUFF (più roba)
  • risposta

    6

    è necessario inserire un'interruzione di linea nella stringa, vale a dire imposta l'espressione textbox come qualcosa:

    ="THIS IS STUFF" & vbcrlf & "(MORE STUFF)" 
    

    Così l'espressione in un unico testo:

    enter image description here

    renderà come:

    enter image description here

    Si può vedere c'è interrompere una riga anche se la stringa potrebbe stare su una sola riga.

    Edit dopo il commento

    OK, abbiamo bisogno di gestire le varie stringhe esistenti a livello di report.

    Per fare questo, vi suggerirei di usare Custom Code, cioè una funzione come:

    Function SplitString (fieldValue As String) As String 
        If IsDBNull(fieldValue) OrElse IsNothing(fieldValue) Then 
        SplitString = "" 
        Else If InStr(fieldValue, "(") > 0 
        SplitString = RTrim(Left(fieldValue, InStr(fieldValue, "(") - 1)) & _ 
         vbcrlf & Right(fieldValue, Len(fieldValue) - InStr(fieldValue, "(") + 1) 
        Else 
        SplitString = fieldValue 
        End If 
    End Function 
    

    sto suggerendo questo come espressione SSRS sono notoriamente fragili, e la mancanza di corto circuito significa che ciò che funziona per una stringa potrebbe visualizzare #Error su un altro. È possibile aggirare questo con numerose affermazioni IIf ma Codice personalizzato è molto più ordinato e più facile da capire.

    È possibile chiamare la funzione con un'espressione del tipo:

    =Code.SplitString(Fields!MYFIELD.Value) 
    

    Sia in un'espressione di testo o come un campo calcolato nel DataSet. I lavori di cui sopra per me sui dati:

    enter image description here

    enter image description here

    +0

    Avrei dovuto chiarire che il testo si trova all'interno di una singola stringa estratta da una query. Anche se, risposta legittima, mi dispiace per quello! – Elias

    +1

    La stringa sarà in una forma prevedibile da dividere? Sulla tua stringa di base, potresti dividere la stringa in base al carattere '(' per esempio, e inserire il vbcrlf nel mezzo basato su questo, oppure potresti farlo in base alla lunghezza, o una combinazione di lunghezza e certi caratteri. date alcuni esempi, posso dargli un colpo –

    +0

    Credo che la stringa sarà divisibile dal carattere '('. La stringa avrà molte parole e a volte avrà parole tra parentesi. domanda originale – Elias

    0

    mi sono imbattuto in questo problema, mentre facendo il mio progetto. E vorrei condividere i miei passi per questo. Crea singoli placehloders all'interno della casella di testo selezionando l'espressione e formattali come desiderato.Puoi aggiungere facilmente una riga extra semplicemente spostando un altro elemento (un altro segnaposto) alla riga successiva (premendo enter-on sulla tastiera) Qui ho creato singoli segnaposti all'interno della lista, ho dato i nomi e il formato esattamente come voglio. enter image description here