in parole povere, una piccola gestione del numero fattura.. ossia, se la salvo e la stampo mi memorizza il numero e ogni volta che la carico mi lascia quel numero.. viceversa, se trova il campo vuoto (perche' la apro per la prima volta) mi incrementa il contatore..

Ho scritto qualcosa che sembra funzionare, lo metto alla fine della mail.
C'è da lavorare sulla posizione in cui viene inserito il TextFrame quando non esiste nel documento. Nel caso già esista, invece, non ci dovrebbero essere problemi.

la ciliegina sarebbe che mi proponesse come nome del file "fattura_nr.contatore"..

Questo non l'ho fatto perchè non son sicuro di come si possa fare...

Ciao!
Emanuele.

'----- Codice ----
Const sGlobalFrameName = "progressivo"
Const sFileName = "file:///c:/prova.txt"

Sub evento_open()
   Dim Doc As Object
   Dim TextTables As Object
   Dim Cursor As Object
   Dim Frame As Object

   if getFrameNumber = -1 then
       Doc = thisComponent
       Cursor = Doc.Text.createTextCursor()
       Frame = Doc.createInstance("com.sun.star.text.TextFrame")
       Doc.Text.insertTextContent(Cursor, Frame, False)
       Frame.name = sGlobalFrameName
   end if
   update()
End Sub

Sub update()
   Dim oFrame() as Object
   Dim i as integer
   Dim n as integer
   Dim a as long
   Dim iFrameNumber as integer
   Dim oFrameCursor as object
   Dim oEnum as object
   Dim oTextElement as object

   n = FreeFile()
   Open sFileName For Input As #n
   Input #n, a
   Close #n

   iFrameNumber = getFrameNumber()

   if iFrameNumber = -1 then
       msgbox "Il frame non esiste, quindi non verrà aggiornato!"
       exit sub
   end if

   oFrame() = ThisComponent.getTextFrames()

   oEnum = oFrame(iFrameNumber).Text.createEnumeration
   oTextElement = oEnum.nextElement

   if oTextElement.String = "" then
       oTextElement.String = a
       n = FreeFile()
       Open sFileName For Output As #n
       Write #n, a + 1
       Close #n
   end if
End Sub

Function getFrameNumber () as integer
   Dim oFrame() as object
   Dim i as integer

   oFrame() = ThisComponent.getTextFrames()
on error goto esciErrore
   i = 0
   do until oFrame(i).name = sGlobalFrameName
       i = i + 1
   loop

   getFrameNumber = i
   Exit Function

   esciErrore:
       getFrameNumber = -1
End Function



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a