Pannello di Controllo Moderatore ]

Divisione tabella tra pagine e colonne

Creare una macro - Scrivere uno script - Usare le API

Divisione tabella tra pagine e colonne

Messaggioda Sara M. » lunedì 23 settembre 2019, 9:42

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
Sara M.
 
Messaggi: 4
Iscritto il: lunedì 23 settembre 2019, 9:34

Re: Divisione tabella tra pagine e colonne

Messaggioda charlie » lunedì 23 settembre 2019, 12:00

Ciao e benvenuto/a sul forum.
Se intanto ti vuoi presentare puoi farlo in questa sezione -> https://forum.openoffice.org/it/forum/viewforum.php?f=16
Per una panoramica delle regole del forum puoi consultare il Manuale di sopravvivenza -> http://forum.openoffice.org/it/forum/viewtopic.php?f=1&t=2

Buon proseguimento.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.7.1
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6073
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Divisione tabella tra pagine e colonne

Messaggioda hubert lambert » lunedì 23 settembre 2019, 12:34

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   Espandi visualeStringi visuale
    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
hubert lambert
Volontario
Volontario
 
Messaggi: 152
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Divisione tabella tra pagine e colonne

Messaggioda Sara M. » giovedì 26 settembre 2019, 9:15

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   Espandi visualeStringi visuale
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   Espandi visualeStringi visuale
var righe = xTextTable.getRows();
//IsSplitAllowed non c'è
righe.getByIndex(1).IsSplitAllowed
OpenOffice.org 3.1.1
Windows 10 Enterprise
Sara M.
 
Messaggi: 4
Iscritto il: lunedì 23 settembre 2019, 9:34

Re: Divisione tabella tra pagine e colonne

Messaggioda hubert lambert » giovedì 26 settembre 2019, 16:11

Ciao,

Dovresti dirci quando si tratta di un altro linguaggio che il oobasic.
Prova forse così:
Codice: Seleziona tutto   Espandi visualeStringi visuale
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
hubert lambert
Volontario
Volontario
 
Messaggi: 152
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Divisione tabella tra pagine e colonne

Messaggioda Sara M. » venerdì 27 settembre 2019, 10:05

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   Espandi visualeStringi visuale
using uno;
using unoidl.com.sun.star.beans;

var xPS = (XPropertySet)xTextTable;
xPS.setPropertyValue("IsSplitAllowed", new Any(false));

e anche così
Codice: Seleziona tutto   Espandi visualeStringi visuale
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
Sara M.
 
Messaggi: 4
Iscritto il: lunedì 23 settembre 2019, 9:34

Re: Divisione tabella tra pagine e colonne

Messaggioda hubert lambert » venerdì 27 settembre 2019, 11:46

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
hubert lambert
Volontario
Volontario
 
Messaggi: 152
Iscritto il: venerdì 9 giugno 2017, 13:48


Torna a Macro e UNO API

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti