Divisione tabella tra pagine e colonne

Creare una macro - Scrivere uno script - Usare le API
Rispondi
Sara M.
Messaggi: 4
Iscritto il: lunedì 23 settembre 2019, 9:34

Divisione tabella tra pagine e colonne

Messaggio 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
Allegati
Cattura.JPG
OpenOffice.org 3.1.1
Windows 10 Enterprise
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Divisione tabella tra pagine e colonne

Messaggio 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.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
hubert lambert
Volontario
Volontario
Messaggi: 164
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Divisione tabella tra pagine e colonne

Messaggio 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.
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Sara M.
Messaggi: 4
Iscritto il: lunedì 23 settembre 2019, 9:34

Re: Divisione tabella tra pagine e colonne

Messaggio 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
OpenOffice.org 3.1.1
Windows 10 Enterprise
hubert lambert
Volontario
Volontario
Messaggi: 164
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Divisione tabella tra pagine e colonne

Messaggio 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
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Sara M.
Messaggi: 4
Iscritto il: lunedì 23 settembre 2019, 9:34

Re: Divisione tabella tra pagine e colonne

Messaggio da Sara M. »

Scusami :oops:

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
OpenOffice.org 3.1.1
Windows 10 Enterprise
hubert lambert
Volontario
Volontario
Messaggi: 164
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Divisione tabella tra pagine e colonne

Messaggio 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... ;)
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Rispondi