Difference between revisions of "Talk:Documentation"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (To get Sheet Number Instead of Page Number)
 
(3 intermediate revisions by 2 users not shown)
Line 6: Line 6:
  
 
: 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. --[[User:Ccornell|ccornell]] 10:31, 26 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. --[[User:Ccornell|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:
 +
<syntaxhighlight lang="oobas">
 +
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
 +
</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:
 +
<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);      }  }
 +
</syntaxhighlight>
 +
 +
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

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

Personal tools