Difference between revisions of "Talk:Documentation"
From Apache OpenOffice Wiki
(→To get Sheet Number Instead of Page Number: new section) |
m (→To get Sheet Number Instead of Page Number) |
||
Line 14: | Line 14: | ||
I made this routine: | I made this routine: | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Sub SetCurrSheet | Sub SetCurrSheet | ||
dim NumFol, NumPg, TotFol, oDoc as object, dispatcher as object, gVC | dim NumFol, NumPg, TotFol, oDoc as object, dispatcher as object, gVC | ||
Line 46: | Line 46: | ||
next M | next M | ||
End Sub | End Sub | ||
− | </ | + | </syntaxhighlight> |
But it returns only a static information, not a user field. I did like to utilize that routine used on our wiki, at final of page: | But it returns only a static information, not a user field. I did like to utilize that routine used on our wiki, at final of page: | ||
− | < | + | <syntaxhighlight lang="java"> |
/** This method inserts both a date field and a user field containing the number '42' */ protected void TextFieldExample() { try { // Use the text document's factory to create a DateTime text field, // and access it's // XTextField interface XTextField xDateField = (XTextField) UnoRuntime.queryInterface( XTextField.class, mxDocFactory.createInstance( "com.sun.star.text.textfield.DateTime")); // Insert it at the end of the document mxDocText.insertTextContent ( mxDocText.getEnd(), xDateField, false ); // Use the text document's factory to create a user text field, // and access it's XDependentTextField interface XDependentTextField xUserField = (XDependentTextField) UnoRuntime.queryInterface ( XDependentTextField.class, mxDocFactory.createInstance( "com.sun.star.text.textfield.User")); // Create a fieldmaster for our newly created User Text field, and access it's // XPropertySet interface XPropertySet xMasterPropSet = (XPropertySet) UnoRuntime.queryInterface( XPropertySet.class, mxDocFactory.createInstance( "com.sun.star.text.fieldmaster.User")); // Set the name and value of the FieldMaster xMasterPropSet.setPropertyValue ("Name", "UserEmperor"); xMasterPropSet.setPropertyValue ("Value", new Integer(42)); // Attach the field master to the user field xUserField.attachTextFieldMaster (xMasterPropSet); // Move the cursor to the end of the document mxDocCursor.gotoEnd(false); // insert a paragraph break using the XSimpleText interface mxDocText.insertControlCharacter( mxDocCursor, ControlCharacter.PARAGRAPH_BREAK, false); // Insert the user field at the end of the document mxDocText.insertTextContent(mxDocText.getEnd(), xUserField, false); } catch (Exception e) { e.printStackTrace (System.out); } } | /** This method inserts both a date field and a user field containing the number '42' */ protected void TextFieldExample() { try { // Use the text document's factory to create a DateTime text field, // and access it's // XTextField interface XTextField xDateField = (XTextField) UnoRuntime.queryInterface( XTextField.class, mxDocFactory.createInstance( "com.sun.star.text.textfield.DateTime")); // Insert it at the end of the document mxDocText.insertTextContent ( mxDocText.getEnd(), xDateField, false ); // Use the text document's factory to create a user text field, // and access it's XDependentTextField interface XDependentTextField xUserField = (XDependentTextField) UnoRuntime.queryInterface ( XDependentTextField.class, mxDocFactory.createInstance( "com.sun.star.text.textfield.User")); // Create a fieldmaster for our newly created User Text field, and access it's // XPropertySet interface XPropertySet xMasterPropSet = (XPropertySet) UnoRuntime.queryInterface( XPropertySet.class, mxDocFactory.createInstance( "com.sun.star.text.fieldmaster.User")); // Set the name and value of the FieldMaster xMasterPropSet.setPropertyValue ("Name", "UserEmperor"); xMasterPropSet.setPropertyValue ("Value", new Integer(42)); // Attach the field master to the user field xUserField.attachTextFieldMaster (xMasterPropSet); // Move the cursor to the end of the document mxDocCursor.gotoEnd(false); // insert a paragraph break using the XSimpleText interface mxDocText.insertControlCharacter( mxDocCursor, ControlCharacter.PARAGRAPH_BREAK, false); // Insert the user field at the end of the document mxDocText.insertTextContent(mxDocText.getEnd(), xUserField, false); } catch (Exception e) { e.printStackTrace (System.out); } } | ||
− | </ | + | </syntaxhighlight> |
Instead of "42", to bring sheet # (that is: PageNumber MOD 2). | Instead of "42", to bring sheet # (that is: PageNumber MOD 2). | ||
I do not know to codificate this. Somebody help me to achieve it, please... | I do not know to codificate this. Somebody help me to achieve it, please... | ||
Morvan | Morvan |
Latest revision as of 12:40, 19 May 2022
There are things listed in the "documentation" box on the frontpage that are missing here (for example: OOoHelpOutline, Documentation/Dashboard/Application_Online_Help). So these are either:
- outdated/obsolete and should be removed from the frontpage
- not outdated/obsolete and should be linked from here
--B michaelsen 16:07, 20 October 2009 (UTC)
- I've simplified things for the Users section, adding just a single link to the doc project page. The other links were to outdated info, or to info that isn't much help to general users. --ccornell 10:31, 26 October 2009 (UTC)
To get Sheet Number Instead of Page Number
Hi.
I am having a little problem: I need to get sheet number instead of page number;
I made this routine:
Sub SetCurrSheet dim NumFol, NumPg, TotFol, oDoc as object, dispatcher as object, gVC oDoc = ThisComponent gVC = oDoc.CurrentController.getViewCursor() dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") TotFol = oDoc.CurrentController.PageCount ' Total de Páginas gVC.jumpToFirstPage rem posiciona primeira pagina for M = 1 to TotFol sName = oDoc.getCurrentController().getViewCursor().PageStyleName oST = oDoc.StyleFamilies.getByName("PageStyles").getByName(sName) oST.HeaderIsOn = false oST.HeaderIsShared = false oST.HeaderIsOn = true oST.HeaderIsShared = false oText = oST.HeaderText oCur = oText.createTextCursor() NumPg = gVC.getPage() msgbox "Pagina atual: " & NumPg Select Case NumPg Case NumPg = 1 NumFol = 1 Case Else NumFol = iif(NumPg Mod 2, int(NumPg / 2 + 1),NumPg / 2) End Select MsgBox "Folha Passada: " & NumFol ' oCur.setString("Folha " & NumFol) oText.setString("Folha " & NumFol, False) msgbox "Numero de Páginas: " & TotFol gVC.jumpToNextPage() next M End Sub
But it returns only a static information, not a user field. I did like to utilize that routine used on our wiki, at final of page:
/** This method inserts both a date field and a user field containing the number '42' */ protected void TextFieldExample() { try { // Use the text document's factory to create a DateTime text field, // and access it's // XTextField interface XTextField xDateField = (XTextField) UnoRuntime.queryInterface( XTextField.class, mxDocFactory.createInstance( "com.sun.star.text.textfield.DateTime")); // Insert it at the end of the document mxDocText.insertTextContent ( mxDocText.getEnd(), xDateField, false ); // Use the text document's factory to create a user text field, // and access it's XDependentTextField interface XDependentTextField xUserField = (XDependentTextField) UnoRuntime.queryInterface ( XDependentTextField.class, mxDocFactory.createInstance( "com.sun.star.text.textfield.User")); // Create a fieldmaster for our newly created User Text field, and access it's // XPropertySet interface XPropertySet xMasterPropSet = (XPropertySet) UnoRuntime.queryInterface( XPropertySet.class, mxDocFactory.createInstance( "com.sun.star.text.fieldmaster.User")); // Set the name and value of the FieldMaster xMasterPropSet.setPropertyValue ("Name", "UserEmperor"); xMasterPropSet.setPropertyValue ("Value", new Integer(42)); // Attach the field master to the user field xUserField.attachTextFieldMaster (xMasterPropSet); // Move the cursor to the end of the document mxDocCursor.gotoEnd(false); // insert a paragraph break using the XSimpleText interface mxDocText.insertControlCharacter( mxDocCursor, ControlCharacter.PARAGRAPH_BREAK, false); // Insert the user field at the end of the document mxDocText.insertTextContent(mxDocText.getEnd(), xUserField, false); } catch (Exception e) { e.printStackTrace (System.out); } }
Instead of "42", to bring sheet # (that is: PageNumber MOD 2). I do not know to codificate this. Somebody help me to achieve it, please... Morvan