
   Public PBL_TXT
   Public PBL_MAEDOC
   Public PBL_DOCNEW
   Public PBL_DOCTMP_ID
   Public PBL_DOCTMP

   Public PBL_DOCTMP_COUNT

   Public PBL_TK ()
   Public PBL_TV ()
   Public PBL_TK1 ()
   Public PBL_TV1 ()


   set objFSO = createobject("Scripting.FileSystemObject")

   If WScript.Arguments.Count > 0 Then  PBL_TXT = WScript.Arguments.Item(0)
   wscript.echo "PBL_TXT=" & PBL_TXT


   w_error = GERAPLI_Leer_Txt()
   If len(w_error) = 0 Then
      i=-1
      PBL_DOCTMP_COUNT = 0
      '
      For j = 0 to UBound(PBL_TK)
         i = i + 1
         '
         If PBL_TK(j) = "<doc>" Then
            PBL_MAEDOC=""
            PBL_DOCNEW=""
            PBL_DOCTMP_ID = ""
         End If
         '
         If PBL_TK(j) = "<pag>" Then
            Redim PBL_TK1(0)
            Redim PBL_TV1(0)
            i=0
         End If
         '
         Redim Preserve PBL_TK1(i)
         Redim Preserve PBL_TV1(i)
         If PBL_TK(j) = "GERAPLI_MAEDOC" Then  PBL_MAEDOC = PBL_TV(j)
         If PBL_TK(j) = "GERAPLI_DOCNEW" Then  PBL_DOCNEW = PBL_TV(j)
         If PBL_TK(j) = "GERAPLI_DOCTMP_ID" Then  PBL_DOCTMP_ID = PBL_TV(j)
         PBL_TK1(i) = PBL_TK(j)
         PBL_TV1(i) = PBL_TV(j)
         '
         If PBL_TK(j) = "</pag>" Then
            If Not objFSO.FileExists(PBL_MAEDOC) then
               wscript.echo "Error. No existe el fichero MAEDOC(" & PBL_MAEDOC & ")"
            else
               If len(PBL_DOCTMP_ID) = 0 Then
                  wscript.echo "Error. (1) No se ha informado el nombre del fichero DOCTMP_ID(" & PBL_DOCTMP_ID & ")"
               else
                  rc=GERAPLI_Pag_New()
               End If
            End If
         End If
         If PBL_TK(j) = "</doc>" Then
            If len(PBL_DOCNEW) = 0 Then
               wscript.echo "Error. (2) No se ha informado el nombre del fichero DOCNEW(" & PBL_DOCNEW & ")"
            Else
               rc=GERAPLI_Doc_Fin()
            End If
            PBL_DOCTMP_COUNT = 0
         End If
      Next
   End If


   wscript.echo "--------------------------------------------------------"
   If len(w_error) > 0 Then
      wscript.echo "FINAL-Error : " & w_error
   Else
      wscript.echo "FINAL-Ok"
   End If
'---------------------------------------------------------------------------

   Function GERAPLI_Doc_Fin()

      On Error Resume Next
      w_error=""

      wscript.echo "--------------------------------------------------------"
      wscript.echo " Function GERAPLI_Doc_Fin()"
      wscript.echo "--------------------------------------------------------"
      wscript.echo "PBL_DOCNEW=" & PBL_DOCNEW
      wscript.echo "PBL_DOCTMP_ID=" & PBL_DOCTMP_ID

      if len(w_error) = 0 Then
         set objFSO = createobject("Scripting.FileSystemObject")
         If objFSO.FileExists(PBL_DOCNEW) then
            objFSO.DeleteFile PBL_DOCNEW, True
            If objFSO.FileExists(PBL_DOCNEW) then w_error = "No se ha podido borrar el fichero DOCNEW(" & PBL_DOCNEW & ") que ya existia"
         End If
      End If

      If Len(w_error) = 0 Then
         Err.Number = 0
         Set objWord = CreateObject("Word.Application")
         If Err.Number <> 0  then
            w_error = "No se ha podido abrir el word"
         Else
            'objWord.Visible = True
         End If
      End If

      If Len(w_error) = 0 Then
         Err.Number = 0
         Set objDoc = objWord.Documents.Add()
         If Err.Number <> 0  then
             w_error = "No se ha podido abrir con word un nuevo fichero"
         End If
      End If

      Set objSelection = objWord.Selection
      Const wdPageBreak = 7

      For i = 1 to PBL_DOCTMP_COUNT
         PBL_DOCTMP = PBL_DOCTMP_ID & "_" & i & ".Docx"
         if i > 1 Then  objSelection.InsertBreak(wdPageBreak)
         objSelection.InsertFile(PBL_DOCTMP)
         '
         set objFSO = createobject("Scripting.FileSystemObject")
         If objFSO.FileExists(PBL_DOCTMP) then
            objFSO.DeleteFile PBL_DOCTMP, True
         End If
      Next

      objDoc.SaveAs(objFSO.GetAbsolutePathName(PBL_DOCNEW))
      objWord.Quit



      '---
      If Len(w_error) > 0 Then
         w_error = "Error. GERAPLI_Doc_Fin. " & w_error
         wscript.echo w_error
      End If
      GERAPLI_Doc_Fin = w_error
      '---

   End Function


   Function GERAPLI_Pag_New()

      On Error Resume Next

      w_error=""

      PBL_DOCTMP_COUNT = PBL_DOCTMP_COUNT + 1
      PBL_DOCTMP = PBL_DOCTMP_ID & "_" & PBL_DOCTMP_COUNT & ".Docx"

      wscript.echo "--------------------------------------------------------"
      wscript.echo " Function GERAPLI_Pag_New()"
      wscript.echo "--------------------------------------------------------"
      wscript.echo "PBL_MAEDOC=" & PBL_MAEDOC
      wscript.echo "Ubound(PBL_TK1)=" & UBound(PBL_TK1)
      wscript.echo "PBL_DOCTMP_ID=" & PBL_DOCTMP_ID
      wscript.echo "PBL_DOCTMP_COUNT=" & PBL_DOCTMP_COUNT
      wscript.echo "PBL_DOCTMP=" & PBL_DOCTMP

      If len(PBL_MAEDOC) = 0 Then w_error= "No se ha informado el nombre del fichero MAEDOC(" & PBL_MAEDOC & ")"


      If Len(w_error) = 0 Then
         objFSO.CopyFile PBL_MAEDOC, PBL_DOCTMP, True
         If Not objFSO.FileExists(PBL_DOCTMP) then w_error = "No se ha podido copiar la pantilla MAEDOC(" & PBL_MAEDOC & ") sobre el fichero DOCTMP(" & PBL_DOCTMP & ")"
      End If

      If Len(w_error) = 0 Then
         Err.Number = 0
         Set objWord = CreateObject("Word.Application")
         If Err.Number <> 0  then
            w_error = "No se ha podido abrir el word"
         Else
            'objWord.Visible = True
         End If
      End If

      If Len(w_error) = 0 Then
         Err.Number = 0
         Set objDoc = objWord.Documents.Open(PBL_DOCTMP)
         If Err.Number <> 0  then
             w_error = "No se ha podido abrir con word el fichero DOCTMP(" & PBL_DOCTMP & ")"
         End If
      End If

      If Len(w_error) = 0 Then
         Err.Number = 0
         objDoc.SaveAs(PBL_DOCTMP)
         If Err.Number <> 0  then
            w_error = "No se ha podido salvar(1) el fichero DOCTMP(" & PBL_DOCTMP & ")"
         End If
      End If

      if Len(w_error) = 0 then
         For i = 0 to UBound(PBL_TK1)
            If Len(trim(PBL_TK1(i))) > 0 Then
                If PBL_TK1(i) <> "<doc>"  And  _
                   PBL_TK1(i) <> "</doc>" And _
                   PBL_TK1(i) <> "<pag>"  And _
                   PBL_TK1(i) <> "</pag>"  Then
                   Err.Number = 0

                   objDoc.FormFields(PBL_TK1(i) & "01").Result =  PBL_TV1(i)
                   objDoc.FormFields(PBL_TK1(i) & "02").Result =  PBL_TV1(i)
                   objDoc.FormFields(PBL_TK1(i) & "03").Result =  PBL_TV1(i)
                   objDoc.FormFields(PBL_TK1(i) & "04").Result =  PBL_TV1(i)
                   objDoc.FormFields(PBL_TK1(i)).Result =  PBL_TV1(i)
                   If Err.Number = 0  then
                   End if
                   wscript.echo PBL_TK1(i) & "=" & PBL_TV1(i)
                Else
                   wscript.echo PBL_TK1(i)
                End If
            End If
         Next
      End If

      if Len(w_error) = 0 then
         Err.Number = 0
         objDoc.SaveAs(PBL_DOCTMP)
         If Err.Number <> 0  then
            w_error = "No se ha podido salvar(2) el fichero DOCTMP(" & PBL_DOCTMP & ")"
         End If
         objWord.Quit
      End If

      '---
      If Len(w_error) > 0 Then
         w_error = "Error. GERAPLI_Pag_New. " & w_error
         wscript.echo w_error
      End If
      GERAPLI_Pag_New = w_error
      '---

   End Function

   '---------------------------------------------------------------------------

   Function GERAPLI_Leer_Txt()

      On Error Resume Next

      w_error = ""

      If len(PBL_TXT) = 0 Then w_error = "No se ha informado el nombre del fichero TXT(" & PBL_TXT & ")"
      If len(w_error) = 0 Then
         If Not objFSO.FileExists(PBL_TXT) then w_error = "No existe el fichero TXT(" & PBL_TXT & ")"
      End If

      If len(w_error) = 0 Then
         Set objFSO = CreateObject("Scripting.FileSystemObject")
         Set objFile = objFSO.OpenTextFile(PBL_TXT, 1)
         '
         i = 0
         Do Until objFile.AtEndOfStream
            str = trim(objFile.ReadLine)
            '
            If Len(str) > 0 Then
               Redim Preserve PBL_TK(i)
               Redim Preserve PBL_TV(i)
               '
               j=InStr(str,"=")
               If j=0 Then
                  PBL_TK(i) = str
                  PBL_TV(i) = ""
               Else
                  PBL_TK(i) = Trim(Left(str, j-1))
                  PBL_TV(i) = Trim(Mid(str, j+1))
               End IF
               '
               i = i + 1
            End If
         Loop
      End If

      '---
      If Len(w_error) > 0 Then
         w_error = "Error. GERAPLI_Leer_Txt. " & w_error
         wscript.echo w_error
      End If
      GERAPLI_Leer_Txt = w_error
      '---

   End Function
