Come ridimensionare le tabelle per adattarle alla larghezza della colonna di testo in framemaker

Adobe framemaker Често задавани въпроси

come ridimensionare le tabelle per adattarle alla larghezza della colonna di testo in framemaker?

Informazioni sullo script: Di seguito è riportato uno script semplice che ridimensiona proporzionalmente una tabella per adattarla alla colonna di testo che la contiene. Questo script funziona con la tabella corrente ma può essere facilmente esteso per funzionare con tutte le tabelle in un documento o libro.

Acquisizione dei dati: Fare clic con il cursore in una tabella che deve essere ridimensionata. Sarà necessario raccogliere alcune informazioni di base per ridimensionare correttamente la tabella. Di seguito è riportato il codice commentato per impostare i dati necessari nelle variabili.

// La tabella selezionata.
Set vTbl = SelectedTbl;
// La larghezza attuale della tabella.
Set vTblWidth = vTbl.TblWidth;
// La larghezza della colonna che contiene la tabella.
Set vColWidth = vTbl.TextLoc.Object.InTextObj.Width;


La variabile vColWidth è la larghezza della colonna in un frame di testo multi-colonna. Se il frame di testo dispone di una sola colonna, la larghezza della colonna è uguale alla larghezza del frame di testo. Se si hanno più colonne ma si desidera ridimensionare la tabella alla larghezza del frame di testo, utilizzare le seguenti righe al posto delle ultime due righe precedenti.

// La larghezza del frame di testo che contiene la tabella.
Set vColWidth = vTbl.TextLoc.Object.InTextFrame.Width;


A questo punto, lo script può eseguire alcuni calcoli per determinare di quanto ridimensionare la tabella.

// Dividere la larghezza della colonna per la larghezza della tabella.
Set vScaleFactor = vColWidth / vTblWidth;



Come ridimensionare la tabella?

La proprietà TblWidth della tabella è di sola lettura, quindi non è possibile utilizzarla per ridimensionare la tabella.

// Questo non funzionerà.
Set vTbl.TblWidth = vTblWidth * vScaleFactor;


È invece necessario modificare la larghezza di ogni singola colonna della tabella. Queste larghezze sono archiviate in una MetricList denominata TblColWidths.

// Impostare una variabile per le larghezze delle colonne della tabella.
Set vWidths = vTbl.TblColWidths;


Una metric list è un elenco di valori di misurazione. In questo caso, c'è un membro dell'elenco per ogni colonna della tabella. Se la tabella ha cinque colonne, l'elenco TblColWidth conterrà cinque membri.
La chiave dello script è scorrere l'elenco delle misurazioni, moltiplicare ognuna per vScaleFactor e reinserire il nuovo valore nell'elenco.

// Scorrere l'elenco e calcolare la nuova larghezza di ogni
// colonna della tabella.
Loop While(vCounter <= vWidths.Count) LoopVar(vCounter)
Init(1) Incr(1)
Get Member Number(vCounter) From(vWidths) NewVar(vWidth);
Set vNewWidth = vWidth * vScaleFactor;
Replace Member Number(vCounter) In(vWidths) With(vNewWidth);
EndLoop


La variabile vCounter si incrementerà di 1 (Incr(1)) a partire da 1 (Init(1)) fino al numero di membri in vWidths (vWidths.Count). Ogni membro verrà moltiplicato per il fattore di scala e il membro verrà sostituito con il nuovo valore.
La variabile MetricList vWidths contiene ora le larghezze corrette per ridimensionare la tabella alla larghezza della colonna. L'unica cosa rimasta da fare è assegnare i nuovi valori alla tabella.
Set vTbl.TblColWidths = vWidths;


Comments