# $Source: /usr/local/SimSoft/Sfx3D/src/gts/gts04.tcl,v $
# $Revision: 1.2 $
# $Author: baum $
# $Date: 2001/11/29 15:18:10 $
#
# Login name of the user who locked the revision
# $Locker:  $
# Tag name used to checkout the file
# $Name: Release-14 $
# State assigned to revision
# $State: Exp $
#
#
# $Log: gts04.tcl,v $
# Revision 1.2  2001/11/29 15:18:10  baum
# -Realzeitsteuerung eingebaut
# -Handsteuerung eingebaut
#

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# ++++++++++++  D I A L O G :  Auftraege  +++++++++++++++++++++++++++++++++++
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

proc TAS.DlgParameter { W inputs labels lbreite lorient} {
   set Werte  $W.r  
   catch {destroy $Werte}
   frame $Werte  -borderwidth 1 
   pack $Werte -expand yes -fill both -side top -padx 2m -pady 2m

   set index 0
   set entrys {}

   foreach i $labels {
     set inp     [lindex $inputs $index]
     set tt      [lindex $i 1]
     set einheit [lindex $i 2]
     
     if {[lindex $i 0] == "S"} { 
       set e [dialog_entry $Werte "$tt:" $lbreite $einheit 20 $inp "String" $lorient]
     } elseif { [lindex $i 0] == "F"} {
       set str $inp
       set e [dialog_entry $Werte "$tt:" $lbreite $einheit 10 $inp "Float" $lorient]
     } elseif {[lindex $i 0] == "I"} {  
       set inp [FloatInInt $inp]
       set e [dialog_entry $Werte "$tt:" $lbreite $einheit 10 $inp "Int" $lorient]
     } elseif {[lindex $i 0] == "-I"} {  
       set inp [FloatInInt $inp]
       set e [dialog_entry $Werte "$tt:" $lbreite $einheit 10 $inp "-Int" $lorient]
     }
     lappend entrys $e
     incr index
   }
   return $entrys
}
#  ENDE TAS.DlgParameter

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.setListEintrag { hlist ereignis {wie ""} {wo ""} } {
    $hlist config -separator "."  -drawbranch 1 -indent 10
    set index [lindex $ereignis 0]
    if {!($wie == "")} {
      set row [$hlist add $index $wie $wo -itemtype text -text [lindex $ereignis 1]]
    } else {        
      set row [$hlist add $index -itemtype text -text [lindex $ereignis 1]]
    }        
    $hlist item create $row 1 -itemtype text -text [lindex $ereignis 2] 
    $hlist item create $row 2 -itemtype text -text [lindex $ereignis 3] 
    $hlist item create $row 3 -itemtype text -text [lindex $ereignis 4] 
    catch {
    $hlist item create $row 4 -itemtype text -text [lindex $ereignis 5] 
    }
}
#  ENDE TAS.setListEintrag

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.BearbeiteAuftrag { fname art nr cmd1 cmd2 inputs} {
   global TAS Confirm 
   set dlg [dialog_create "$fname" Dialog "OK" "Abbruch"]
   focus $dlg.box.ok
   set entrys [TAS.DlgParameter $dlg $inputs $TAS($art) 18 top]
   dialog_wait $dlg 
   while {$Confirm($dlg) == "1"} { 
     set input {}
     foreach i $entrys { lappend input [$i get] }
     set ret [DlgAblaufplan $cmd1 $cmd2 $TAS(AFNummer) $nr $input]
     if {($ret == "1") } {
       set Confirm($dlg) 0 
     } else {
        dialog_wait $dlg 
     }
   }
   dialog_destroy $dlg   
}
#  ENDE TAS.BearbeiteAuftrag

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.DlgArtikel { W } {
   global TAS
   set Werte  $W.rahmen  
   catch {destroy $W.rahmen}
   frame $Werte -relief solid  -borderwidth 1
   pack  $Werte -expand yes -fill both  -padx 5 -pady 5        
   set inputs [DlgAblaufplan AUSGANG INFOAUSGANGSLISTE $TAS(AFNummer) 0 0]

   set e [dialog_entry $Werte "Nummer:" 20 "" 10 [lindex $inputs 0] "Int"]
   lappend TAS(Artikel) $e
   set e [dialog_entry $Werte "Variante:" 20 "" 10 [lindex $inputs 1] "Int"]
   lappend TAS(Artikel) $e
   set e [dialog_entry $Werte "Menge:" 20 "" 10 [lindex $inputs 2] "Float"]
   lappend TAS(Artikel) $e
   set e [dialog_entry $Werte "Handhabungszeit:" 20 "min" 10 \
                               [lindex $inputs 3] "Float"]
   lappend TAS(Artikel) $e
   
   tixComboBox $Werte.cb  -label "Palettenvariante:" -dropdown true \
              -editable false -variable TAS(PalVariante) \
              -options {
                         listbox.height 6
                         label.width    20
                         entry.width    30
                         label.anchor   w
                       }
   pack $Werte.cb -side top -padx 5 -pady 2 -anchor w -fill x
   foreach line [lindex $inputs 5] { $Werte.cb insert end $line }
   set TAS(PalVariante) [lindex $inputs 4]
   tixSetSilent $Werte.cb $TAS(PalVariante)
   
   set button [MachButton $Werte "Übernehmen" 10]
   bind $button.1 <ButtonRelease-1> {
        global TAS
        set werte {}
        foreach i $TAS(Artikel) { lappend werte [$i get] }
        set pos [expr [string first "=" $TAS(PalVariante)] - 1]
        lappend werte [string range $TAS(PalVariante) 0 $pos]
        DlgAblaufplan AUSGANG AENDEREAUSGANG $TAS(AFNummer) 0 $werte 
   }
}
#  ENDE TAS.DlgArtikel

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.EingangUpDown { hlist richtung } {
   global TAS
   if {!([$hlist selection get] == "") &&
       !([$hlist selection get] == ".")} { 
         set index [$hlist selection get]
         set line [lindex $TAS(EListe) $index]
         if { ($richtung == "UPEINGANG") } {
           set neu [$hlist info prev $index]
         } else {
           set neu [$hlist info next $index]
         }
         if {!($neu == "") && !($neu == ".")} { 
           $hlist delete entry $index
           if { ($richtung == "UPEINGANG") } {
             TAS.setListEintrag $hlist $line -before $neu
           } else   {
             TAS.setListEintrag $hlist $line -after $neu
           }  
           $hlist selection set $index
           DlgAblaufplan EINGANG $richtung $TAS(AFNummer) $index 0
         }
    }
}
# ENDE TAS.EingangUpDown

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.EingangErzeugen { hlist } {
   global TAS
   set inputs { 0 0 0 0.0 0.0 }
   set nr -1
   if {!([$hlist selection get] == "") && 
       !([$hlist selection get] == ".") } {
      set index [$hlist selection get]
      set line [lindex $TAS(EListe) $index]
      set nr [lindex $line 0]
   }   
   dialog_icon $TAS(Dlg)
   TAS.BearbeiteAuftrag "Eingangsartikel erzeugen" "TASEINGANG" $nr \
                        "EINGANG" "ERZEUGEEINGANG" $inputs
   dialog_deicon $TAS(Dlg)
   set TAS(EListe) [DlgAblaufplan EINGANG INFOEINGANGSLISTE $TAS(AFNummer) 0 0]
   $hlist delete all
   $hlist add .
   foreach line $TAS(EListe) { TAS.setListEintrag $hlist $line }
}
# ENDE TAS.EingangErzeugen

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.EingangLoeschen { hlist } {
   global TAS
   if {!([$hlist selection get] == "") && 
       !([$hlist selection get] == ".") } {
      set index [$hlist selection get]
      set line [lindex $TAS(EListe) $index]
      $hlist delete entry $index
      set nr [lindex $line 0]
      DlgAblaufplan EINGANG LOESCHEEINGANG $TAS(AFNummer) $nr 0
   }
}
# ENDE TAS.EingangLoeschen

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.EingangAendern { hlist } {
   global TAS
   if {!([$hlist selection get] == "") && 
       !([$hlist selection get] == ".") } {
      set index [$hlist selection get]
      set line [lindex $TAS(EListe) $index]
      set nr [lindex $line 0]
      set inputs [DlgAblaufplan EINGANG INFOEINGANG $TAS(AFNummer) $nr 0]
      dialog_icon $TAS(Dlg)
      TAS.BearbeiteAuftrag "Eingangsartikel bearbeiten" "TASEINGANG" $nr\
                           "EINGANG" "AENDEREEINGANG" $inputs
      dialog_deicon $TAS(Dlg)
      set TAS(EListe) [DlgAblaufplan EINGANG INFOEINGANGSLISTE $TAS(AFNummer) 0 0]
      $hlist delete all
      $hlist add .
      foreach line $TAS(EListe) { TAS.setListEintrag $hlist $line }
   }
}
# ENDE TAS.EingangAendern

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.DlgEingang { W } {
   global TAS 
   set Werte  $W.rahmen  
   catch {destroy $W.rahmen}
   frame $Werte -relief solid  -borderwidth 1 -width 30
   pack $Werte -expand yes -fill both  -padx 5 -pady 5        

   UpDownLeiste $Werte.updownLeiste 7m
   pack $Werte.updownLeiste -side right -expand no -fill both

   set kopf "{{Anzahl} 10} {{Artikel} 10} {{Variante} 10} {{Anz.Intern} 12}  {{Zeit} 10}"
   set TAS(HList) [dialog_scrollhlist $Werte $kopf]
   set TAS(EListe) [DlgAblaufplan EINGANG INFOEINGANGSLISTE $TAS(AFNummer) 0 0]
   $TAS(HList) add .
   foreach line $TAS(EListe) { TAS.setListEintrag $TAS(HList) $line }

   set button [MachButton $W "Erzeugen Löschen Bearbeiten" 8]
   bind $Werte.updownLeiste.up   <ButtonRelease-1> [list TAS.EingangUpDown   $TAS(HList) "UPEINGANG"]
   bind $Werte.updownLeiste.down <ButtonRelease-1> [list TAS.EingangUpDown   $TAS(HList) "DOWNEINGANG"]
   bind $button.1                <ButtonRelease-1> [list TAS.EingangErzeugen $TAS(HList)]
   bind $button.2                <ButtonRelease-1> [list TAS.EingangLoeschen $TAS(HList)]
   bind $button.3                <ButtonRelease-1> [list TAS.EingangAendern  $TAS(HList)]
}
#  ENDE TAS.DlgEingang

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.setVorgang { hlist stlelement } {
   $hlist config -separator "."  -drawbranch 1 -indent 10
   set index [lindex $stlelement 0]
   set row [$hlist add $index  -itemtype text -text [lindex $stlelement 1]]
   $hlist item create $row 1 -itemtype text -text [lindex $stlelement 2] 
   $hlist item create $row 2 -itemtype text -text [lindex $stlelement 3] 
   $hlist item create $row 3 -itemtype text -text [lindex $stlelement 4] 
}
#  ENDE TAS.setVorgang

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.zeigeVorgaenge { hlist vorgaenge } {
   global TAS
   set PageEingang "disabled"
   foreach line $vorgaenge { 
     if {[lindex $line 5] == "25"} { set PageEingang "normal" }
     TAS.setVorgang $hlist $line 
   }  
   $TAS(NBook) pageconfigure eingang -state $PageEingang 
}
#  ENDE TAS.zeigeVorgaenge

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.VorgangUpDown { hlist richtung } {
   global TAS
   if {!([$hlist selection get] == "") &&
       !([$hlist selection get] == ".")} { 
         set index [$hlist selection get]
         set line [lindex $TAS(VListe) $index]
         if { ($richtung == "UPVORGANG") } {
           set neu [$hlist info prev $index]
         } else {
           set neu [$hlist info next $index]
         }
         if {!($neu == "") && !($neu == ".")} { 
           $hlist delete entry $index
           if { ($richtung == "UPVORGANG") } {
             TAS.setListEintrag $hlist $line -before $neu
           } else   {
             TAS.setListEintrag $hlist $line -after $neu
           }  
           $hlist selection set $index
           DlgAblaufplan VORGANG $richtung $TAS(AFNummer) $index 0
         }
    }
}
# ENDE TAS.VorgangUpDown

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.VorgangErzeugen { hlist } {
   global TAS
   set inputs {0 0.0 0 "Vorgang?"}
   set nr -1
   if {!([$hlist selection get] == "") && 
       !([$hlist selection get] == ".") } {
      set index [$hlist selection get]
      set line [lindex $TAS(VListe) $index]
      set nr [lindex $line 0]
   }   
   dialog_icon $TAS(Dlg)
   TAS.BearbeiteAuftrag "Vorgang erzeugen" "TASVORGANG" $nr "VORGANG" \
                         "ERZEUGEVORGANG" $inputs
   dialog_deicon $TAS(Dlg)
   set TAS(VListe) [DlgAblaufplan VORGANG INFOVORGANGSLISTE $TAS(AFNummer) 0 0]
   $hlist delete all
   $hlist add .
   TAS.zeigeVorgaenge $hlist $TAS(VListe)
}
# ENDE TAS.VorgangErzeugen

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.VorgangLoeschen { hlist } {
   global TAS
   if {!([$hlist selection get] == "") && 
       !([$hlist selection get] == ".") } {
      set index [$hlist selection get]
      set line [lindex $TAS(VListe) $index]
      $hlist delete entry $index
      set nr [lindex $line 0]
      if {[lindex $line 5] == "25"} {
         $TAS(NBook) pageconfigure eingang -state disabled 
      }
      DlgAblaufplan VORGANG LOESCHEVORGANG $TAS(AFNummer) $nr 0
   }
}
# ENDE TAS.VorgangLoeschen

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.VorgangAendern { hlist } {
   global TAS
   if {!([$hlist selection get] == "") && 
       !([$hlist selection get] == ".") } {
      set index [$hlist selection get]
      set line [lindex $TAS(VListe) $index]
      set nr [lindex $line 0]
      set inputs [DlgAblaufplan VORGANG INFOVORGANG $TAS(AFNummer) $nr 0]
      dialog_icon $TAS(Dlg)
      TAS.BearbeiteAuftrag "Vorgang bearbeiten" "TASVORGANG" $nr "VORGANG" \
                           "AENDEREVORGANG" $inputs
      dialog_deicon $TAS(Dlg)
      set TAS(VListe) [DlgAblaufplan VORGANG INFOVORGANGSLISTE $TAS(AFNummer) 0 0]
      $hlist delete all
      $hlist add .
      TAS.zeigeVorgaenge  $hlist $TAS(VListe)
   }
}
# ENDE TAS.VorgangAendern

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.DlgVorgang { W } {
   global TAS 
   set Werte  $W.rahmen  
   catch {destroy $W.rahmen}
   frame $Werte -relief solid  -borderwidth 1 -width 30
   pack $Werte -expand yes -fill both  -padx 5 -pady 5        

   UpDownLeiste $Werte.updownLeiste 7m
   pack $Werte.updownLeiste -side right -expand no -fill both

   set kopf "{{Baustein} 10} {{Zeit} 10} {{Programm} 14} {{Benennung} 18}"
   set TAS(HList) [dialog_scrollhlist $Werte $kopf]
   set TAS(VListe) [DlgAblaufplan VORGANG INFOVORGANGSLISTE $TAS(AFNummer) 0 0]
   $TAS(HList) add .
   TAS.zeigeVorgaenge  $TAS(HList) $TAS(VListe)

   set button [MachButton $W "Erzeugen Löschen Bearbeiten" 8]
   bind $Werte.updownLeiste.up   <ButtonRelease-1> [list TAS.VorgangUpDown   $TAS(HList) "UPVORGANG"]
   bind $Werte.updownLeiste.down <ButtonRelease-1> [list TAS.VorgangUpDown   $TAS(HList) "DOWNVORGANG"]
   bind $button.1                <ButtonRelease-1> [list TAS.VorgangErzeugen $TAS(HList)]
   bind $button.2                <ButtonRelease-1> [list TAS.VorgangLoeschen $TAS(HList)]
   bind $button.3                <ButtonRelease-1> [list TAS.VorgangAendern  $TAS(HList)]
}
#  ENDE TAS.DlgVorgang

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.DlgMesswerte { W } {
   global TAS 
   set Werte  $W.rahmen  
   catch {destroy $W.rahmen}
   frame $Werte -relief solid  -borderwidth 1 -width 30
   pack $Werte -expand yes -fill both  -padx 5 -pady 5        
   set TAS(Messwert) [DlgAblaufplan MESSWERT GETMESSWERT $TAS(AFNummer) 0 0]
   set mw [dialog_lframe $Werte "Erfassungsarten"]
   checkbutton $mw.dlz -text "Durchlaufzeit" -variable TAS(Messwert) -anchor w
   pack $mw.dlz -side top -fill x -padx 5 -pady 5
 
   set button [MachButton $Werte "Übernehmen" 10]
   bind $button.1 <ButtonRelease-1> {
        global TAS
        set werte {}
        lappend werte $TAS(Messwert)
        DlgAblaufplan MESSWERT SETMESSWERT $TAS(AFNummer) 0 $werte]
   }
}
#  ENDE TAS.DlgMesswerte

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.NeueParameter { } {
   global TAS
   set TAS(Artikel) {}
   TAS.DlgArtikel    $TAS(nb1) 
   set TAS(Vorgang) {}
   TAS.DlgVorgang    $TAS(nb2) 
   set TAS(Eingang) {}
   TAS.DlgEingang    $TAS(nb3)  
   set TAS(Messwert) {}
   TAS.DlgMesswerte $TAS(nb4)   
}
##  TAS.NeueParameter 
        
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.KopfAendern { ef was cmd } {
   global TAS
   set TAS($was) [DlgAblaufplan AUFTRAG $cmd $TAS(AFNummer) [$ef get] 0]
   $ef delete 0 end
   $ef insert 0 $TAS($was)
}
# ENDE TAS.KopfAendern

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.DefaultProzess { } {
   global TAS
   DlgAblaufplan AUFTRAG DEFAULTPROZESS $TAS(AFNummer) 0  0]
}
# ENDE TAS.DefaultProzess

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.Bearbeiten {  } {
   global TAS Confirm
   set TAS(Dlg) [dialog_create "Arbeitsplan bearbeiten" Dialog "Info" "Schliessen"]
   frame $TAS(Dlg).afnr
   button $TAS(Dlg).afnr.b -text Übernehmen -width 10 
   pack   $TAS(Dlg).afnr.b -side right -padx 2m -pady 0m
   pack  $TAS(Dlg).afnr -side top -fill x -padx 5 -pady 5
   set ef1 [dialog_entry $TAS(Dlg).afnr "Arbeitsplannr.:" 15 "" 30 \
                         $TAS(AFNummer) "Int" "left"]
   
   frame $TAS(Dlg).name
   button $TAS(Dlg).name.b -text Übernehmen -width 10
   pack   $TAS(Dlg).name.b -side right -padx 2m -pady 0m
   pack  $TAS(Dlg).name -side top -fill x -padx 5 -pady 5
   set ef2 [dialog_entry $TAS(Dlg).name "Benennung:"      15 "" 30 \
                         $TAS(AFName) "String" "left"]
   dialog_focus $ef1
#------------------------------------------------------------   
   frame  $TAS(Dlg).l 
   pack   $TAS(Dlg).l    -side top -fill x -padx 5 -pady 5
   button $TAS(Dlg).l.b1 -text "mit Default-Prozess" -width 15 
   button $TAS(Dlg).l.b2 -text "Prozess >>" -width 10 
   pack   $TAS(Dlg).l.b1 -side left  -padx 2m -pady 0m -fill x
   pack   $TAS(Dlg).l.b2 -side right -padx 2m -pady 0m -fill x
   bind   $TAS(Dlg).l.b1 <ButtonRelease-1> [list TAS.DefaultProzess]
   bind   $TAS(Dlg).l.b2 <ButtonRelease-1> [list TLM.Dialog]
#------------------------------------------------------------   

   set TAS(NBook) [dialog_nbook $TAS(Dlg)]
   set TAS(nb1) [dialog_add_nbook $TAS(NBook) artikel  "Artikel"]
   set TAS(nb2) [dialog_add_nbook $TAS(NBook) vorgang  "Vorgänge"]
   set TAS(nb3) [dialog_add_nbook $TAS(NBook) eingang  "Eingangsartikel"]
   set TAS(nb4) [dialog_add_nbook $TAS(NBook) messwert "Messwerte"]
   
   bind $TAS(Dlg).afnr.b <ButtonRelease-1> [list TAS.KopfAendern $ef1 \
                                       "AFNummer" "AFNRAENDERN"] 
   bind $TAS(Dlg).name.b <ButtonRelease-1> [list TAS.KopfAendern $ef2 \
                                       "AFName" "AFNAMEAENDERN"] 
   TAS.NeueParameter

   dialog_wait $TAS(Dlg) 
   while {$Confirm($TAS(Dlg)) == "1"} { 
     set lafnr [$ef1 get]
     set ret [DlgAblaufplan AUFTRAG SELECT $lafnr 0 0]
     if { !($ret == "") } {
        set TAS(AFNummer) [lindex $ret 0]
        set TAS(AFName)   [lindex $ret 1]
        $ef1 delete 0 end
        $ef1 insert 0 $TAS(AFNummer)
        $ef2 delete 0 end
        $ef2 insert 0 $TAS(AFName)
        TAS.NeueParameter
      } else {
       $ef1 delete 0 end
       $ef1 insert 0 $TAS(AFNummer)
      }
      dialog_wait $TAS(Dlg)
   }
   dialog_destroy $TAS(Dlg)   
}
#  ENDE TAS.Bearbeiten

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.setAuftrag { hlist ereignis } {
   set style(fett) [SetStyle $hlist]
   $hlist config -separator "."  -drawbranch 1 -indent 10
   set index [lindex $ereignis 0]
   set row [$hlist add $index  -itemtype text \
             -text [lindex $ereignis 1] -style $style(fett)]
   $hlist item create $row 1 -itemtype text -text [lindex $ereignis 2] 
}
#  ENDE TAS.setAuftrag

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.Init { } {
   global TAS
   set TAS(TASEINGANG) {{I  "Anz. Obj."       "Stck."}
                        {I  "Arbeitsplannr."  ""}
                        {I  "Arbeitsplanvar." ""}
                        {F  "Menge"           ""}
                        {F  "Handhabungszeit" "min"}
                       } 
   set TAS(TASVORGANG) {{I  "Bausteinnr."     ""}
                        {F  "Zeit"            "min"}
                        {-I "Programm"        ""}
                        {S  "Benennung"       ""}
                       }
}
#  ENDE TAS.Init

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.Exit { } {
   global TAS
   unset TAS
}
#  ENDE TAS.Exit

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.Erzeugen { fname } {
   global TAS Confirm
   dialog_icon $fname
   set dlg [dialog_create "Arbeitsplan erzeugen" Dialog "OK" "Abbruch"]
   set p1 [dialog_entry $dlg "Arbeitsplannr:" 20 "" 15 "0" "Int"]
   set p2 [dialog_entry $dlg "Benennung:" 20 "" 15 "Arbeitsplan?" "Int"]
   dialog_focus $p1
   dialog_wait $dlg
   set bearbeiten 0
   while {$Confirm($dlg) == "1"} {
       if {([string trimleft [$p1 get] 0] > 0)} {
         set TAS(AFNummer) [$p1 get]
         set TAS(AFName)   [$p2 get]
         set ret [DlgAblaufplan AUFTRAG ERZEUGEN $TAS(AFNummer) $TAS(AFName) 0]
         if {$ret != ""} {
           set TAS(AFNummer) $ret
           set TAS(Auftraege) [DlgAblaufplan AUFTRAG INFO 0 0 0]
           $TAS(AfList) delete all
           $TAS(AfList) add .
           foreach line $TAS(Auftraege) { TAS.setAuftrag $TAS(AfList) $line }
           set bearbeiten 1
           set Confirm($dlg) 0
         }
     }
     if { $Confirm($dlg) == 1 } { dialog_wait $dlg }
   }
   dialog_destroy $dlg
   if { $bearbeiten == 1 } { TAS.Bearbeiten } 
   dialog_deicon $fname
}
# ENDE TAS.Erzeugen

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.Loeschen { } {
  global TAS 
  if {!([$TAS(AfList) selection get] == "") &&
      !([$TAS(AfList) selection get] == ".")} { 
        set index [$TAS(AfList) selection get]
        set line [lindex $TAS(Auftraege) $index]
        set afnr [lindex $line 1]
        $TAS(AfList) delete entry $index
        DlgAblaufplan AUFTRAG LOESCHEN $afnr 0 0
  }
}
# ENDE TASLoeschen

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.Aendern { fname } {
  global TAS
  if {!([$TAS(AfList) selection get] == "") &&
      !([$TAS(AfList) selection get] == ".")} { 
        set index [$TAS(AfList) selection get]
        set line [lindex $TAS(Auftraege) $index]
        set afnr [lindex $line 1]
        set ret [DlgAblaufplan AUFTRAG SELECT $afnr 0 0]
        set TAS(AFNummer) [lindex $ret 0]
        set TAS(AFName)   [lindex $ret 1]
        dialog_icon $fname
        TAS.Bearbeiten 
        dialog_deicon $fname
         
        set TAS(Auftraege) [DlgAblaufplan AUFTRAG INFO 0 0 0]
        $TAS(AfList) delete all
        $TAS(AfList) add .
        foreach line $TAS(Auftraege) { TAS.setAuftrag $TAS(AfList) $line }
  }
}
# ENDE TAS.Aendern

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
proc TAS.Dialog { } {
   global TAS
   TAS.Init
   set dlg [dialog_create "Arbeitspläne" Dialog "Schliessen"]
   focus $dlg.box.ok
   
   set    W $dlg.rahmen
   frame $W -relief solid  -borderwidth 1
   pack  $W -expand yes -fill both  -padx 10 -pady 10        

   set kopf "{{Arbeitsplan} 14} {{Bezeichnung} 24}"
   set TAS(AfList) [dialog_scrollhlist $W $kopf]
   
   set TAS(Auftraege) [DlgAblaufplan AUFTRAG INFO 0 0 0]
   $TAS(AfList) add .
   foreach line $TAS(Auftraege) { TAS.setAuftrag $TAS(AfList) $line }
   
   set button [MachButton $W "Erzeugen Löschen Bearbeiten" 8]
   bind $button.1 <ButtonRelease-1> [list TAS.Erzeugen $dlg]
   bind $button.2 <ButtonRelease-1> [list TAS.Loeschen]
   bind $button.3 <ButtonRelease-1> [list TAS.Aendern  $dlg]

   dialog_wait $dlg 
   dialog_destroy $dlg   
   TAS.Exit
}
# ENDE TAS.Dialog 

# ++++++++++++++++++  E N D E  Auftraege  +++++++++++++++++++++++++++++++++++
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
