allineamento verticale con interruzioni di riga di programmazione. Algoritmo per una cella:
- Contare il numero di caratteri nei dati (
iTextLen
).
- Trova il numero di righe di testo nella cella (
iLineNum
). Calcolato empiricamente
- Trova la lunghezza della riga in caratteri (
iLineLen
). Calcolato empiricamente
Calcolare il conteggio del numero di mezzi scatti in base alla formula (iLineNum — 1) — (iTextLen/iLineLen)
.
@formula
nella sintassi cristallo:
Local NumberVar iLineNum:= 5;
Local NumberVar iLineLen:= 30;
Local NumberVar iTextLen:= Length({DataSource});
Local StringVar sRet:= '';
Local NumberVar i;
Local NumberVar iLinesNum:= Truncate(iLineNum - 1) - Truncate(iTextLen/iLineLen);
For i:= 1 to iLinesNum Do (sRet:= sRet + chr(13));
sRet
Add formula alla parte superiore e inferiore dei dati. Gli oggetti di testo sarà simile a questo:
{@formula}{DataSource}{@formula}
dimensione del carattere del @formula
deve essere dimezzato di dimensione del carattere {DataSource}
. Ad esempio, se la dimensione del font {DataSource}
uguale a 20, il @formula
dovrebbe essere pari a 10:
algoritmo funziona meglio con caratteri a spaziatura fissa, ma con carattere proporzionale funziona nella maggior parte dei casi.
Algoritmo per più celle differisce solo dal fatto che iLineNum
sarà il numero massimo di caratteri nei dati di tutte le celle.
fonte
2016-01-31 08:06:01
Non per il testo centrato non lo è. – Richard
Che peccato ... –