/*
**  $VER: F_update 4.011 (29 Nov 1998)  **
**
**        © 1996/98 Gerald Froehlich
**
**  PROGRAMNAME:
**      F_update
**
**  FUNCTION:
**      übergibt Daten aus alter Datei Vorlage.fdb in die neue Datei
**
**  $HISTORY:
**
**  29 Nov 1998 : 004.011 :  unverändert
**  09 Nov 1998 : 003.711 :  FirstRECID gelöscht, wegen "KontoNr"
**  29 Jun 1998 : 003.710 :  unverändert
**  23 Jun 1997 : 003.511 :  FIASCO-Pfad aus dem Installer übernehmen
**  13 Jun 1997 : 003.510 :  - no comment -
**   12 Jun 1996 : 0.01 : initial release
*/

ARG F_Pfad

IF (~show('l','rexxreqtools.library')) THEN
    call addlib('rexxreqtools.library',0,-30,0)

IF (~show('l','rexxsupport.library')) THEN
    CALL AddLib('rexxsupport.library',0,-30,0)


OPTIONS RESULTS

SIGNAL on error
SIGNAL ON break_c
SIGNAL ON break_d
SIGNAL ON break_e
SIGNAL ON break_f
SIGNAL ON failure
SIGNAL ON halt
SIGNAL ON ioerr
SIGNAL ON syntax


text = " Willkommen zum Updaten der Vorlagen-Datei für HB!" "0A"x "0A"x,
       " Falls von FIASCO Fehlermeldungen kommen," "0a"x,
       " daß Sort.fidx oder Standard.fidx fehlen, keine Panik!" "0A"x,
       " Einfach wegklicken und alles wird gut!"

CALL rtezrequest(text,"Alles klar!", "F_update")

text = " Leider kann ich die neuen Datenmasken  nicht mehr auf Lauffähigkeit" "0A"x,
       " mit Fiasco-VERSION 1.x überprüfen!" "0A"x,
       " Aber wahrscheinlich kann das alte FIASCO die neuen Dateien NICHT mehr laden!" "0a"x,
       " Sie müssten für FIASCO1.x die alten Datenmasken weiter benutzen oder" "0a"x "per Hand Änderungen vornehmen!",
       "0A"x " Notfalls schreiben Sie mir bitte eine E-mail"

CALL rtezrequest(text,"Alles klar!", "F_update")


IF ~show("P",'FIASCO') THEN DO
  IF F_Pfad = "" THEN
     F_Pfad = rtfilerequest("Multiterm:HB",,"Wo ist FIASCO versteckt?",
       ,,'rtfi_flags = freqf_nofiles')

  a = Open(B1,"RAM:Command.1","W")
  a = WriteLn(B1,"stack 8192")
  a = WriteLn(B1,F_Pfad || "Fiasco")
  a = Close(B1)


  ADDRESS command
   'run execute RAM:Command.1'
  
  DO FOREVER
   IF Show("P",'FIASCO') THEN BREAK
  END
END




/* OPTIONS FAILAT 12 */

SIGNAL off error
SIGNAL off failure

ADDRESS FIASCO

IF Exists("Homebank:" || "Vorlagen_alt.fdb") THEN DO

 F_SelectProj 'Vorlagen.fdb'
 IF rc = 10 THEN DO
   F_NewProject
   F_OpenProject "Homebank:" || "Vorlagen.fdb"
   F_OpenList
 END

 F_SelectProj 'Vorlagen_alt.fdb'
 IF rc = 10 THEN DO
   F_NewProject
   F_OpenProject "Homebank:" || "Vorlagen_alt.fdb"
 END
END
ELSE do
  SIGNAL on error
  SIGNAL on failure
  text = "Nanu? Es ist doch gar kein altes Datenfile da?",
   || '0A'x || "(Dieses File muß 'Vorlagen_alt.fdb' heißen!)"
  CALL rtezrequest(text,"Alles klar!", "Fehlermeldung F_update")
  EXIT 0
END


/* ##### */

/*
F_Export 'RAM:F_update' RecSep '\n' FieldStart '' FieldEnd '' FieldSep '\t' FirstRecIDs
*/

F_Export 'RAM:F_update' RecSep '\n' FieldStart '' FieldEnd '' FieldSep '\t'

F_SelectProj 'Vorlagen.fdb'

/*
F_Import 'RAM:F_update' RecSep '\n' FieldStart '' FieldEnd '' FieldSep '\t' FirstRecIDs
*/

F_Import 'RAM:F_update' RecSep '\n' FieldStart '' FieldEnd '' FieldSep '\t'

text = "Hoffentlich sind nun alle alten Daten" '0A'x "in 'Vorlage.fdb' vorhanden.",
       '0A'x "Bitte überprüfen Sie das ..." '0A'x "und dann bitte abspeichern!",
       '0A'x "Dann können Sie FIASCO wieder schließen."
  CALL rtezrequest(text,"Vorlage-Update beenden", "F_update")

ADDRESS command
'delete RAM:F_update'

EXIT 0

/*###################################
*** Debugging-Fehlerroutinen *******
###################################*/
syntax:
text =  'Syntax-Fehler' rc 'in Zeile' sigl '0A'x ErrorText(rc),
    '0A'x || SourceLine(sigl)
   CALL rtezrequest(text,"Alles klar!", "Fehlermeldung F_update",'rt_pubscrname='screen)
  EXIT 10

failure:
ioerr:
ERROR:
text =  'Fehler' rc 'in Zeile' sigl '0A'x ErrorText(rc),
    '0A'x || SourceLine(sigl)
   CALL rtezrequest(text,"Alles klar!", "Fehlermeldung F_update",'rt_pubscrname='screen)
  EXIT 10
halT:
break_c:
break_d:
break_e:
break_f:
text =  'User-Abbruch durch Halt!' || '0A'x || 'Wirklich abbrechen ?'
 ab = rtezrequest(text,"_Mach Schluss|_Neeiiin", "F_update",'rt_pubscrname='screen)
 IF ab = 1 THEN DO
  EXIT
 END
 ELSE RETURN

