FUNCTION runscript(_self, _cScriptName)
//-DEFAULTSCRIPT-//
// -----------------------------------------
// 'ZeiterfassungGesamtListe'
// -----------------------------------------
// benötigte Script's
global Kopfzeile := _cScriptName + "01.txt"

LOCAL m
LOCAL n
LOCAL x
LOCAL aZEPos

LOCAL nFondsSize
LOCAL nFonds
LOCAL nFondsattribNormal
LOCAL nFondsattribFett
LOCAL nFondsAttribUnderLine

LOCAL nLineHeight
LOCAL nHeight
LOCAL aText
LOCAL cBeschrbg
LOCAL nBeschrbgRows
LOCAL cSession_List
LOCAL nSession_ListRows
LOCAL aSessionRow
LOCAL nTab1
LOCAL nTab2
LOCAL nTab3
LOCAL nTab4
LOCAL nTab5
LOCAL nTab6
LOCAL nTab7
LOCAL nYTempStartVorgang
LOCAL nYTempStopVorgang
LOCAL lUmbruchSessionList
LOCAL nYMax

aZEPos := _self:aZEPos

nFondsSize := 25
nFonds := _self:_schrift_roman()
nFondsattribNormal := _self:_attr_normal()
nFondsattribFett := _self:_attr_fett()
nFondsAttribUnderLine := _self:_attr_unterstrichen()

nLineHeight := 35
nYMax := 1800

// Vorgang
nTab1 := 5
nTab2 := 140

// Sessionlist
nTab3 := 1300
nTab4 := nTab3 + 200
nTab5 := nTab4 + 150
nTab6 := nTab5 + 150
nTab7 := nTab6 + 250


_self:seite_neue_seite()
_self:seite_waehle_papierformat( _self:_papier_A4(), _self:_format_querformat() )
_self:seite_setze_raender( 250, 150, 250, 250 )
_self:wYTemp := 0

ExecuteScript(Kopfzeile, _self)	

IF ( n := Len(aZEPos)) > 0

 FOR m := 1 TO n

  _self:waehle_farbe( _self:_farbe_schwarz() )
  _self:waehle_schrift( "ARIAL", nFondsSize, nFonds, nFondsattribNormal )

  // -------------------------------------
  // Vorgang
  // -------------------------------------
  // Vorbereiten _BESCHRBG -> cBeschrbg
  // aus dem text ein array erzeugen
  aText := _self:txt_prepair_tag(aZEPos[m][5], nFondsSize, nFonds, nTab2, nTab3)
  nBeschrbgRows := len(aText)


  // Zeile 1 bis 4 und Memo-Zeilen
  nHeight := ((4 + nBeschrbgRows) * nLineHeight ) + 50

  // Umbruch ?
  IF _self:wYTemp + nHeight > nYMax
  // Umbruch
   _self:seite_neue_seite()
   _self:seite_waehle_papierformat( _self:_papier_A4(), _self:_format_querformat() )
   _self:seite_setze_raender( 250, 150, 250, 250 )
   _self:wYTemp := 0
   _self:waehle_farbe( _self:_farbe_schwarz() )
   _self:waehle_schrift( "ARIAL", nFondsSize, nFonds, nFondsattribNormal )
  ENDIF

  // Startposition speichern nYTempStartVorgang
  nYTempStartVorgang := _SELF:wYTemp

  // _BEZUG_TXT  
  _SELF:txt_absolut(nTab1,_SELF:wYTemp,"Kunde:")
  _self:waehle_schrift( "ARIAL", nFondsSize, nFonds, nFondsattribFett)
  _SELF:txt_absolut(nTab2,_SELF:wYTemp,aZEPos[m][1])
  _self:waehle_schrift( "ARIAL", nFondsSize, nFonds, nFondsattribNormal )
  _SELF:wYTemp := _SELF:wYTemp + nLineHeight 

  // _SB_ERST  
  _SELF:txt_absolut(nTab1,_SELF:wYTemp,"Angelegt:")
  _SELF:txt_absolut(nTab2,_SELF:wYTemp,aZEPos[m][2])
  _SELF:wYTemp := _SELF:wYTemp + nLineHeight 

  // _STATUS
  _SELF:txt_absolut(nTab1,_SELF:wYTemp,"Status:")
  _SELF:txt_absolut(nTab2,_SELF:wYTemp,aZEPos[m][3])
  _SELF:wYTemp := _SELF:wYTemp + nLineHeight 

  // _BISHER
  _SELF:txt_absolut(nTab1,_SELF:wYTemp,"Bisher:")
  _SELF:txt_absolut(nTab2,_SELF:wYTemp,aZEPos[m][4])
  _SELF:wYTemp := _SELF:wYTemp + nLineHeight 

  // _BESCHRBG
  _SELF:txt_absolut(nTab1,_SELF:wYTemp,"Beschrbg:")
  IF len(aText) == 0
   _SELF:wYTemp := _SELF:wYTemp + nLineHeight 
  ELSE
   FOR x := 1 to len(aText)
    _SELF:txt_absolut_tag(nTab2,_SELF:wYTemp,aText[x] )
    _SELF:wYTemp := _SELF:wYTemp + nLineHeight 
   NEXT x
  ENDIF

  // Endposition speichern nYTempStopVorgang
  nYTempStopVorgang := _SELF:wYTemp

  // -------------------------------------
  // Start SessionList
  // -------------------------------------
  // zurück auf Vorgang-Startzeile 
  _SELF:wYTemp := nYTempStartVorgang
  lUmbruchSessionList := .F.

  // Spaltenbeschreibungen
  _self:waehle_schrift( "ARIAL", nFondsSize, nFonds, nFondsattribNormal+nFondsAttribUnderLine )
  _SELF:txt_absolut(nTab3,_SELF:wYTemp,"wann")
  _SELF:txt_absolut(nTab4,_SELF:wYTemp,"von")
  _SELF:txt_absolut(nTab5,_SELF:wYTemp,"bis")
  _SELF:txt_absolut(nTab6,_SELF:wYTemp,"Zeit")
  _SELF:txt_absolut(nTab7,_SELF:wYTemp,"Sachbearbeiter")
  _self:waehle_schrift( "ARIAL", nFondsSize, nFonds, nFondsattribNormal)
  _SELF:wYTemp := _SELF:wYTemp + nLineHeight 

  IF ! Empty( cSession_List := aZEPos[m][6])
   IF (nSession_ListRows := _self:pdf_MemLines(cSession_List)) > 0

    // pro SessionListZeile
    FOR x := 1 to nSession_ListRows 

     IF ! Empty(cSessionRow := _self:pdf_MLine(cSession_List,x))

      // Umbruch ?
      IF _self:wYTemp + nLineHeight > nYMax 
      // Umbruch
       _self:seite_neue_seite()
       _self:seite_waehle_papierformat( _self:_papier_A4(), _self:_format_querformat() )
       _self:seite_setze_raender( 250, 150, 250, 250 )
       _self:wYTemp := 0
       _self:waehle_farbe( _self:_farbe_schwarz() )
       _self:waehle_schrift( "ARIAL", nFondsSize, nFonds, nFondsattribNormal )

       // Spaltenbeschreibungen
       _self:waehle_schrift( "ARIAL", nFondsSize, nFonds, nFondsattribNormal+nFondsAttribUnderLine )
       _SELF:txt_absolut(nTab3,_SELF:wYTemp,"wann")
       _SELF:txt_absolut(nTab4,_SELF:wYTemp,"von")
       _SELF:txt_absolut(nTab5,_SELF:wYTemp,"bis")
       _SELF:txt_absolut(nTab6,_SELF:wYTemp,"Zeit")
       _SELF:txt_absolut(nTab7,_SELF:wYTemp,"Sachbearbeiter")
       _self:waehle_schrift( "ARIAL", nFondsSize, nFonds, nFondsattribNormal)
       _SELF:wYTemp := _SELF:wYTemp + nLineHeight 

       lUmbruchSessionList := .T.
      ENDIF

      // Ausgabe der SessionList-Zeile
      IF (len(aSessionRow := _self:pdf_TokenToArray(_self:pdf_MLine(cSession_List,x),"|", .F.)) == 5
       _SELF:txt_absolut(nTab3,_SELF:wYTemp,aSessionRow[1])
       _SELF:txt_absolut(nTab4,_SELF:wYTemp,aSessionRow[2])
       _SELF:txt_absolut(nTab5,_SELF:wYTemp,aSessionRow[3])
       _SELF:txt_absolut(nTab6,_SELF:wYTemp,aSessionRow[4])
       _SELF:txt_absolut(nTab7,_SELF:wYTemp,aSessionRow[5])
       _SELF:wYTemp := _SELF:wYTemp + nLineHeight 
      ENDIF
     ENDIF
    NEXT x
   ENDIF
  ENDIF

  // nachdem alle SessionListZeilen ausgegeben sind: evtl. _SELF:wYTemp neu positionieren
  IF lUmbruchSessionList == .F.
   IF _SELF:wYTemp < nYTempStopVorgang 
    // weniger Sessionlistzeilen als Vorgangszeilen
    _SELF:wYTemp := nYTempStopVorgang
   ENDIF
  ENDIF
  // -------------------------------------
  // Ende SessionList
  // -------------------------------------
  
  // Abstand zum nächsten Vorgang
  // TrennLinie
  _SELF:wYTemp := _SELF:wYTemp + 20
  _SELF:waehle_farbe( _self:_farbe_weiss() )
  _SELF:waehle_farb_pinsel()
  _SELF:waehle_farbe( _self:_farbe_schwarz() )
  _SELF:waehle_stift( _self:_stift_durchgezogen(), 1 )
  _SELF:gdi_line( 0, _SELF:wYTemp, _SELF:seite_x_ausdehnung(), _SELF:wYTemp )
  _SELF:wYTemp := _SELF:wYTemp + 20

 NEXT m

ENDIF

RETURN
