Long Calc Sheet - subtotal na parte inferior da página, transferir para a próxima página?

0

Suponha que eu tenha uma folha do LibreOffice Calc abrangendo várias páginas na impressão. Existe uma maneira de calcular um subtotal para cada página e imprimi-lo na parte inferior da respectiva página, bem como no topo da página seguinte?

Eu sei que é possível usar subtotais para calcular subtotais automaticamente, mas "somente" dependendo dos dados (por exemplo, datas, nomes, números de peça), mas não simplesmente para cada página. Além disso, o subtotal calculado não aparecerá na próxima página.

    
por tohuwawohu 08.10.2018 / 18:31

1 resposta

1

Valores de células, como totais, podem ser colocados em um cabeçalho e / ou rodapé através do uso de uma macro. A macro abaixo foi criada por Zizi64, Tibor Kovacs, para o Open Office e é copiada de sua planilha Prestige2.ods do link acima. Modifique-o para as suas necessidades.

Isso foi testado no LibreOffice e funciona. Claro, você precisará habilitar macros em Opções | Segurança. No exemplo abaixo, chamar a macro EditFooterHeader () insere o valor da célula L1 no rodapé.

REM*****BASIC*****

OPTIONEXPLICIT

FunctionEditFooterText(WS_Indexasinteger,MyFooterLeftText,MyFooterCenterText,MyFooterRightTextasstring)asstring

DimoDocumentasObjectDimoSheetasobjectDimoPStyleasObjectDimoThisStyleasObjectDimoFContentasObjectDimoTextasObjectDimoCursorasObjectDimoFieldasObjectDimiasintegerDimStyleNameasstringDimsAnsasString

remAdjustingtheactualpagestyle(PagestyleofactualWorkSheet

inthisdocument)oDocument=ThisComponentoSheet=oDocument.Sheets.getByIndex(WS_Index-1)oPStyle=oDocument.StyleFamilies.getByName("PageStyles") oThisStyle = oPStyle.getByName(oSheet.PageStyle) StyleName = oThisStyle.Name

    oThisStyle.FooterOn = True
    'Zizi64: False/True turns on/off the running foot

    oFContent = oThisStyle.RightPageFooterContent
    'Zizi64: Get the all text from running foot

'******************************************************** ' oText = oFContent.LeftText ' oCursor = oText.createTextCursor() ' oText.insertString(oCursor, "", True)

' oCursor.CharHeight = 12 ' oCursor.CharFontName = "Arial" ' oCursor.CharWeight = com.sun.star.awt.FontWeight.NORMAL ' oCursor.CharPosture = com.sun.star.awt.FontSlant.NONE ' oCursor.CharUnderline = com.sun.star.awt.FontUnderline.NONE ' ' insert text ... ' oText.insertString(oCursor, MyFooterLeftText, False) '********************************************************

' oText = oFContent.CenterText ' oCursor = oText.createTextCursor() ' oText.insertString(oCursor, "", True)

' oCursor.CharHeight = 12 ' oCursor.CharFontName = "Courir New" ' oCursor.CharWeight = com.sun.star.awt.FontWeight.NORMAL ' oCursor.CharPosture = com.sun.star.awt.FontSlant.NONE ' oCursor.CharUnderline = com.sun.star.awt.FontUnderline.NONE

' oText.insertString(oCursor, MyFooterCenterText, False) '********************************************************

    oText = oFContent.RightText

    oCursor = oText.createTextCursor()

    oText.insertString(oCursor, "", True)

    oCursor.CharHeight = 12
    oCursor.CharFontName = "Times New Roman"
    oCursor.CharWeight = com.sun.star.awt.FontWeight.NORMAL
    oCursor.CharPosture = com.sun.star.awt.FontSlant.NONE
    oCursor.CharUnderline = com.sun.star.awt.FontUnderline.NONE

    oText.insertString(oCursor, MyFooterRightText, False) '********************************************************  



    oThisStyle.RightPageFooterContent = oFContent      'write content back into running foot

          EditFooterText = StyleName & ": Style modified!:" End function
    
por 08.10.2018 / 20:41