Pagina 1 di 1
Divisione tabella tra pagine e colonne
Inviato: lunedì 23 settembre 2019, 9:42
da Sara M.
Ciao a tutti,
avrei bisogno di sapere come si fa ad impostare o togliere la proprietà "Consenti la divisione della tabella tra pagine e colonne".
Ho una tabella che viene creata lato codice e a volte l'effetto in fondo alla pagina non è buono (vedi allegato).
Credo che agendo su quella opzione forse posso correggere il problema.
Grazie
Sara
Re: Divisione tabella tra pagine e colonne
Inviato: lunedì 23 settembre 2019, 12:00
da charlie
Ciao e benvenuto/a sul forum.
Se intanto ti vuoi presentare puoi farlo in questa sezione ->
viewforum.php?f=16
Per una panoramica delle regole del forum puoi consultare il Manuale di sopravvivenza ->
http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2
Buon proseguimento.
Re: Divisione tabella tra pagine e colonne
Inviato: lunedì 23 settembre 2019, 12:34
da hubert lambert
Ciao Sara,
Ogni riga di una tabella ha una proprietà "IsSplitAllowed", che consente o no la divisione di quella riga tra pagine. Quando si deseleziona l'opzione "Consenti la divisione della tabella tra pagine e colonne" senza selezionare nessuna riga, il programma applica il valore "False" per tutte le righe, un po' così:
Codice: Seleziona tutto
doc = thiscomponent
doc.lockControllers()
tabella = doc.TextTables(0)
righe = tabella.Rows
for n = 0 to righe.Count -1
righe(n).IsSplitAllowed = False
next n
doc.unlockControllers()
Cordiali saluti.
Re: Divisione tabella tra pagine e colonne
Inviato: giovedì 26 settembre 2019, 9:15
da Sara M.
Intanto grazie per la risposta.
Ho provato a cercare la proprietà IsSplitAllowed, ma non riesco a trovarla.
Il modello contiene un segnalibro che uso per creare la tabella in quel punto
Il codice è il seguente:
Codice: Seleziona tutto
var servfac = (XMultiServiceFactory)base._componentInstance;
var xBookmarkSupplier = (XBookmarksSupplier)base._componentInstance;
var xNamedBookmarks = xBookmarkSupplier.getBookmarks();
var bookmark = xNamedBookmarks.getByName(bookmarkName);
var xTextContent = (XTextContent)bookmark.Value;
var xTextRange = xTextContent.getAnchor();
var xLocalText = xTextRange.getText();
var xLocalCursor = xLocalText.createTextCursorByRange(xTextRange);
//creo la tabella
var xTextTable = (XTextTable)servfac.createInstance("com.sun.star.text.TextTable");
xTextTable.initialize(rowsCount, colsCount);
xLocalText.insertTextContent(xLocalCursor, xTextTable, false);
Ho provato ad andare sulla singola riga, ma non ho quella proprietà
Codice: Seleziona tutto
var righe = xTextTable.getRows();
//IsSplitAllowed non c'è
righe.getByIndex(1).IsSplitAllowed
Re: Divisione tabella tra pagine e colonne
Inviato: giovedì 26 settembre 2019, 16:11
da hubert lambert
Ciao,
Dovresti dirci quando si tratta di un altro linguaggio che il oobasic.
Prova forse così:
Codice: Seleziona tutto
var righe = xTextTable.getRows();
righe.getByIndex(1).setPropertyValue("IsSplitAllowed", false)
https://www.openoffice.org/api/docs/com ... leRow.html
Re: Divisione tabella tra pagine e colonne
Inviato: venerdì 27 settembre 2019, 10:05
da Sara M.
Scusami
Il codice è scritto in C# e usa una libreria (sviluppata internamente dalla mia azienda) che a sua volta usa le librerie di open office (cli_basetypes, cli_cppuhelper, cli_oootypes e cli_uretypes).
Mi sono ritrovata questo progetto già fatto così in cui ho dovuto aggiungere una stampa e non sono per niente pratica di OO
Purtroppo non ho "setPropertyValue"....
Ho provato così
Codice: Seleziona tutto
using uno;
using unoidl.com.sun.star.beans;
var xPS = (XPropertySet)xTextTable;
xPS.setPropertyValue("IsSplitAllowed", new Any(false));
e anche così
Codice: Seleziona tutto
var xCellRange = (XCellRange)xTextTable;
var xSelectedCells = xCellRange.getCellRangeByName(range);
xCellProps = (XPropertySet)xSelectedCells;
xCellProps.setPropertyValue("IsSplitAllowed", new Any(false));
ma ottengo sempre l'errore:
Unknown property: IsSplitAllowed
Re: Divisione tabella tra pagine e colonne
Inviato: venerdì 27 settembre 2019, 11:46
da hubert lambert
Devi chiamare setPropertyValue dall'interfaccia XPropertySet dell'oggetto "row".
Non so come ottenere quella interfaccia con C#. Ma nei tuoi ultimi esempi, hai solo provato con un oggetto "table" e "cellrange", chè quella proprietà nessuno l'ha...