{====================================================} { ui3_gdm_backup_load_save.m } { os / 18.07.2007 12:12 } { Init } LET Gdm_backup_zaehler 1 LET Gdm_backup_name "---" { Anzahl der Backup-Files } DEFINE Gdm_backup_max 5 END_DEFINE { Makros } {Gdm_backup_speichern} {Gdm_backup_laden} {Gdm_datum_formatieren} DEFINE Gdm_backup_load_save_toolbar_init TOOLBAR DEL_OLD 'tlb_gdm_backup_load_save' PERSISTENT OFF END TOOLBAR CAPTION 'Backup Load/Save' DOCK TOP 1 2 0 END Gdm_backup_load_save_toolbar_add_item TOOLBAR_LAYOUT REFRESH END END_DEFINE DEFINE Gdm_backup_load_save_toolbar_add_item LOCAL Erhoehe_P LOCAL P LOCAL S_ LOCAL Z {* Zeile *} LOCAL Az {* Anzahl Zeilen *} LET P 1 DEFINE Erhoehe_P LET P (P + 1) END_DEFINE DEFINE S_ TOOLBAR_ITEM OVER_WRITE 'Separator' ADD_TO_TOOLBAR P END Erhoehe_P END_DEFINE TOOLBAR_ITEM OVER_WRITE 'btn_gdm_backup_save' IMAGE FROM_FILE (GDM_ME10CUST_DIR+'\bmp\backup_save.bmp') ITEM_TYPE PUSH_BUTTON CATEGORY 'gd_pool' TOOLTIP 'Backup speichern' ON_ACTION 'Gdm_backup_speichern' ON_RIGHT_CLICK '' PERSISTENT OFF ADD_TO_TOOLBAR P END Erhoehe_P TOOLBAR_ITEM OVER_WRITE 'com_gdm_backup_zaehler' ITEM_TYPE COMBO_LIST INQ_TOOLBAR_ITEM 'com_gdm_backup_zaehler' IF (INQ 13 = Gdm_backup_max) LIST_REMOVE 1 END_IF IF (Gdm_backup_name <> '---') LIST_ADD Gdm_backup_name INQ_TOOLBAR_ITEM 'com_gdm_backup_zaehler' SET_VALUE (INQ 13) END_IF CATEGORY 'gd_pool' PERSISTENT OFF ADD_TO_TOOLBAR P END Erhoehe_P TOOLBAR_ITEM OVER_WRITE 'btn_gdm_backup_laden' IMAGE FROM_FILE (GDM_ME10CUST_DIR+'\bmp\backup_load.bmp') ITEM_TYPE PUSH_BUTTON CATEGORY 'gd_pool' TOOLTIP 'Backup laden' ON_ACTION 'Gdm_backup_laden' ON_RIGHT_CLICK '' PERSISTENT OFF ADD_TO_TOOLBAR P END Erhoehe_P END_DEFINE DEFINE Gdm_backup_speichern LOCAL Akt_dir LOCAL Z_datum LOCAL Z_zeit LOCAL Datum_zeit LOCAL Dateiname LOCAL Slashstelle LOCAL Punkt { Aktuelles Suchverzeichnis merken } INQ_ENV 0 LET Akt_dir (INQ 302) { Dateiname ohne Pfad und .mi ermitteln } INQ_ENV 0 LET Dateiname (INQ 304) LOOP LET Slashstelle (POS (STR Dateiname) '\') EXIT_IF (Slashstelle = 0) LET Dateiname (SUBSTR Dateiname (Slashstelle + 1) (LEN Dateiname)) LET Dateiname (TRIM Dateiname) END_LOOP { .mi entfernen - falls vorhanden } IF ((POS Dateiname '.') <> 0 ) LET Dateiname (SUBSTR Dateiname 1 ((POS Dateiname '.') - 1)) END_IF { Speichern } STORE ALL DEL_OLD ((GETENV 'TMP')+'\me10_backupfile_'+(STR Gdm_backup_zaehler)+'.mi') { Datum ermitteln und formatieren } Gdm_datum_formatieren { Name für Liste generieren } LET Gdm_backup_name ((STR Gdm_backup_zaehler)+'_'+Z_zeit+'='+Dateiname) { Backupzähler bei erreichen des Maximum auf 1 setzen sonst um 1 erhöhen } IF (Gdm_backup_zaehler = Gdm_backup_max) LET Gdm_backup_zaehler 1 ELSE LET Gdm_backup_zaehler (Gdm_backup_zaehler + 1) END_IF { Aktuellen Suchpfad zurücksetzen } CURRENT_DIRECTORY Akt_dir { Dateiname zurücksetzen } SET_FILE_NAME Dateiname { Toolbar aktualisieren - Listeneintrag } Gdm_backup_load_save_toolbar_init END_DEFINE DEFINE Gdm_backup_laden LOCAL Akt_dir LOCAL Antwort LOCAL File_nr LOCAL Dateiname { Abfrage } READ STRING "Achtung die aktuelle Zeichnung wird gelÎscht? (j)a oder (n)ein" DEFAULT 'j' Antwort IF (Antwort <> 'j') CANCEL END_IF { Aktuelles Suchverzeichnis merken } INQ_ENV 0 LET Akt_dir (INQ 302) { Bildschirm löschen } DELETE ALL CONFIRM { Toolbarliste abfragen und Backupnummer und File-Namen auslesen } INQ_TOOLBAR_ITEM 'com_gdm_backup_zaehler' { Backupnummer bestimmen} LET File_nr (SUBSTR (INQ 307) 1 1) { Dateiname bestimmen} LET Dateiname (INQ 307) LOOP LET Trennzeichen (POS (STR Dateiname) '=') EXIT_IF (Trennzeichen = 0) LET Dateiname (SUBSTR Dateiname (Trennzeichen + 1) (LEN Dateiname)) LET Dateiname (TRIM Dateiname) END_LOOP { Backupfile laden } TRAP_ERROR LOAD ((GETENV 'TMP')+'\me10_backupfile_'+File_nr+'.mi') IF (CHECK_ERROR) DISPLAY (DGETTEXT 'gd_text' 'There is no Backup Copy available!') END END_IF { Aktuellen Suchpfad zurücksetzen } CURRENT_DIRECTORY Akt_dir { Dateinamen setzen } SET_FILE_NAME Dateiname END_DEFINE DEFINE Gdm_datum_formatieren LOCAL Pos_zeichen LOCAL Pos_gesamt LOCAL Z_std LOCAL Z_min LOCAL Z_sek LET Pos_zeichen (POS DATE " ") LET Pos_gesamt (LEN DATE) { Datum } LET Z_datum (SUBSTR DATE 1 (Pos_zeichen - 1)) { Zeit gesamt } LET Z_zeit (SUBSTR DATE (Pos_zeichen + 1) Pos_gesamt) { Stunden } LET Pos_zeichen (POS (Z_zeit) ":") LET Pos_gesamt (LEN (Z_zeit)) LET Z_std (SUBSTR Z_zeit 1 (Pos_zeichen - 1)) LET Z_zeit (SUBSTR Z_zeit (Pos_zeichen + 1) Pos_gesamt) { Minuten } LET Pos_zeichen (POS (Z_zeit) ":") LET Pos_gesamt (LEN (Z_zeit)) LET Z_min (SUBSTR Z_zeit 1 (Pos_zeichen - 1)) { Sekunden } LET Z_sek (SUBSTR Z_zeit (Pos_zeichen + 1) Pos_gesamt) { Zeit formatiert } LET Z_zeit ((Z_std)+"-"+(Z_min)+"-"+(Z_sek) ) { Datum + Zeit formatiert } LET Datum_zeit ( (Z_datum)+"_"+(Z_zeit) ) END_DEFINE Gdm_backup_load_save_toolbar_init