{-----------------------------------------------------------------------------} DEFINE DC4_anno_struct_start LOCAL F LOCAL A LET F ('Teilestruktur umbauen (Aktualisieren durch SolidDesigner NICHT mehr mÎglich! => BESTØTIGEN') READ QUALIFIER PROMPT F A IF (A = CONFIRM) TRAP_ERROR DELETE SELECT GLOBAL INFOS "DOCU_MARKED_FOR_DELETE*" CONFIRM END LET I (CHECK_ERROR) DC4_anno_struct END_IF END_DEFINE {-----------------------------------------------------------------------------} DEFINE DC4_anno_struct LOCAL Topname LOCAL Rows LOCAL Inh LOCAL Vor LOCAL Name LOCAL Teil LOCAL Zl LOCAL Zzl LOCAL Sp LOCAL Ssp LOCAL Count LOCAL Etn LOCAL Etn_alt LOCAL Inf LOCAL Aktname LOCAL Aktnr LOCAL Verglnr LOCAL Vname LOCAL Aktmasst LOCAL Vmasst LOCAL Aktinfo LOCAL Vinfo LOCAL Ansname LOCAL Lu LOCAL Ro LOCAL P0 LOCAL Br LOCAL Pm LOCAL Mt LOCAL Rs LOCAL Az LOCAL Ez LOCAL Dauer LOCAL Stu LOCAL Min LOCAL Sek LOCAL Txt CREATE_LTAB 'DC4_sd_teile_select' {Teilebaum in Tabelle} DC4_anno_parts_tree {Teilenummern der Blaetter in Tabelle} CREATE_LTAB 'DC4_sd_teile_numm' LET Zl 1 LOOP EXIT_IF (Zl>(LTAB_ROWS 'DC4_anno_teile_baum')) LET Etn (READ_LTAB 'DC4_anno_teile_baum' Zl 4) WRITE_LTAB 'DC4_sd_teile_numm' Zl 1 Etn LET Zl (Zl+1) END_LOOP LET Rows (LTAB_ROWS 'DC4_sd_teile_numm') LOOP EXIT_IF (Rows<=1) LET Inh (READ_LTAB 'DC4_sd_teile_numm' Rows 1) IF (Rows>1) LET Vor (READ_LTAB 'DC4_sd_teile_numm' (Rows-1) 1) IF (Inh=Vor) DELETE_LTAB_ROW 'DC4_sd_teile_numm' Rows END_IF END_IF LET Rows (Rows-1) END_LOOP {Blaetter verschieben} DISPLAY_NO_WAIT 'BlÌtter werden verschoben ...' EDIT_PART TOP LET Zl (LTAB_ROWS 'DC4_sd_teile_numm') LOOP EXIT_IF (Zl=1) LET Etn (READ_LTAB 'DC4_sd_teile_numm' Zl 1) TRAP_ERROR EDIT_PART Etn IF (NOT CHECK_ERROR) INQ_ENV 7 LET Lu (INQ 101) LET Ro (INQ 102) LET Br ((X_OF Ro)-(X_OF Lu)) WRITE_LTAB 'DC4_sd_teile_numm' Zl 1 Etn WRITE_LTAB 'DC4_sd_teile_numm' Zl 2 (STR Lu) WRITE_LTAB 'DC4_sd_teile_numm' Zl 3 (STR Br) END_IF LET Zl (Zl-1) END_LOOP EDIT_PART TOP LET Zl (LTAB_ROWS 'DC4_sd_teile_numm') INQ_PART '~1' IF ((POS (INQ 904) 'DOCU_DRAWING')=1) LET P0 (PNT_XY 0 0) LET Br 0 LOOP EXIT_IF (Zl=1) LET Etn (READ_LTAB 'DC4_sd_teile_numm' Zl 1) LET Lu (VAL (READ_LTAB 'DC4_sd_teile_numm' Zl 2)) IF (Lu <> P0) MODIFY Etn MOVE TWO_PTS Lu P0 END END_IF IF (Br) MODIFY Etn MOVE HORIZONTAL Br END END_IF LET Br (Br+50+(VAL (READ_LTAB 'DC4_sd_teile_numm' Zl 3))) LET Zl (Zl-1) END_LOOP END_IF WINDOW_FIT {Blaetter auflÎsen} DISPLAY_NO_WAIT 'BlÌtter werden zusammengefasst ...' EDIT_PART TOP LET Zl 2 INQ_PART '~1' IF ((POS (INQ 904) 'DOCU_DRAWING')=1) LOOP EXIT_IF (Zl>(LTAB_ROWS 'DC4_sd_teile_numm')) LET Etn (READ_LTAB 'DC4_sd_teile_numm' Zl 1) TRAP_ERROR INQ_PART Etn IF (NOT CHECK_ERROR) LET Inf (INQ 904) LOOP EXIT_IF ((Inf='END-OF-LIST')OR((POS Inf 'DOCU_SHEET')=1)) LET Inf (INQ 905) END_LOOP IF ((POS Inf 'DOCU_SHEET')=1) TRAP_ERROR SMASH_SUBPART Etn IF (CHECK_ERROR) END END_IF END_IF END_IF LET Etn_alt Etn LET Zl (Zl+1) END_LOOP END_IF {Teilebaum in Tabelle} DC4_anno_parts_tree {Teilenummern der Ansichten in Tabelle} CREATE_LTAB 'DC4_sd_teile_numm' LET Zl 1 LOOP EXIT_IF (Zl>(LTAB_ROWS 'DC4_anno_teile_baum')) LET Etn (READ_LTAB 'DC4_anno_teile_baum' Zl 4) WRITE_LTAB 'DC4_sd_teile_numm' Zl 1 Etn LET Zl (Zl+1) END_LOOP LET Rows (LTAB_ROWS 'DC4_sd_teile_numm') LOOP EXIT_IF (Rows<=1) LET Inh (READ_LTAB 'DC4_sd_teile_numm' Rows 1) IF (Rows>1) LET Vor (READ_LTAB 'DC4_sd_teile_numm' (Rows-1) 1) IF (Inh=Vor) DELETE_LTAB_ROW 'DC4_sd_teile_numm' Rows END_IF END_IF LET Rows (Rows-1) END_LOOP {Ansichten zusammenfassen} DISPLAY_NO_WAIT 'Ansichten werden zusammengefasst ...' EDIT_PART TOP LET Zl 2 LET Etn_alt '' LET Vmasst 0 INQ_PART '~1' IF ((POS (INQ 904) 'DOCU_DRAWING')=1) LOOP EXIT_IF (Zl>(LTAB_ROWS 'DC4_sd_teile_numm')) LET Aktnr (READ_LTAB 'DC4_sd_teile_numm' Zl 1) TRAP_ERROR EDIT_PART Aktnr IF (NOT CHECK_ERROR) LET Zzl (Zl+1) LOOP EXIT_IF (Zzl>(LTAB_ROWS 'DC4_sd_teile_numm')) LET Verglnr (READ_LTAB 'DC4_sd_teile_numm' Zzl 1) INQ_PART Aktnr LET Aktmasst (INQ 4) LET Aktinfo (INQ 904) LOOP EXIT_IF ((Aktinfo='END-OF-LIST')OR((POS Aktinfo 'DOCU_FRAME')=1)) LET Aktinfo (INQ 905) END_LOOP IF (Aktmasst >= 1) LET Mt ('M '+STR Aktmasst+':1') ELSE LET Mt ('M 1:'+STR (1/Aktmasst)) END_IF TRAP_ERROR INQ_PART Verglnr IF (NOT CHECK_ERROR) LET Vmasst (INQ 4) LET Vinfo (INQ 904) LOOP EXIT_IF ((Vinfo='END-OF-LIST')OR((POS Vinfo 'DOCU_FRAME')=1)) LET Vinfo (INQ 905) END_LOOP IF ((Verglnr<>Aktnr)AND(Vmasst=Aktmasst)AND(NOT(POS Aktinfo 'DOCU_FRAME')=1)AND(NOT(POS Vinfo 'DOCU_FRAME')=1)) TRAP_ERROR GATHER PART Verglnr IF (NOT CHECK_ERROR) SMASH_SUBPART Verglnr ELSE END END_IF END_IF END_IF LET Zzl (Zzl+1) END_LOOP END_IF LET Zl (Zl+1) END_LOOP END_IF {Teilebaum in Tabelle} DC4_anno_parts_tree {Teilenummern der Ansichten in Tabelle} CREATE_LTAB 'DC4_sd_teile_numm' LET Zl 1 LOOP EXIT_IF (Zl>(LTAB_ROWS 'DC4_anno_teile_baum')) LET Etn (READ_LTAB 'DC4_anno_teile_baum' Zl 4) WRITE_LTAB 'DC4_sd_teile_numm' Zl 1 Etn LET Zl (Zl+1) END_LOOP LET Rows (LTAB_ROWS 'DC4_sd_teile_numm') LOOP EXIT_IF (Rows<=1) LET Inh (READ_LTAB 'DC4_sd_teile_numm' Rows 1) IF (Rows>1) LET Vor (READ_LTAB 'DC4_sd_teile_numm' (Rows-1) 1) IF (Inh=Vor) DELETE_LTAB_ROW 'DC4_sd_teile_numm' Rows END_IF END_IF LET Rows (Rows-1) END_LOOP {Ansichten umbenennen} EDIT_PART TOP LET Zl 2 LET Etn_alt '' LET Vmasst 0 INQ_PART '~1' IF ((POS (INQ 904) 'DOCU_DRAWING')=1) LOOP EXIT_IF (Zl>(LTAB_ROWS 'DC4_sd_teile_numm')) LET Aktnr (READ_LTAB 'DC4_sd_teile_numm' Zl 1) TRAP_ERROR EDIT_PART Aktnr IF (NOT CHECK_ERROR) INQ_PART Aktnr LET Aktmasst (INQ 4) LET Aktinfo (INQ 904) LOOP EXIT_IF ((Aktinfo='END-OF-LIST')OR((POS Aktinfo 'DOCU_FRAME')=1)) LET Aktinfo (INQ 905) END_LOOP IF (Aktmasst >= 1) LET Mt ('M '+STR Aktmasst+':1') ELSE LET Mt ('M 1:'+STR (1/Aktmasst)) END_IF LET Ansname ('Annotation-Ansichten '+Mt) IF (NOT(POS Aktinfo 'DOCU_FRAME')=1) RENAME_PART Ansname INQ_ENV 7 LET Lu (INQ 101) LET Ro (INQ 102) LET Pm (PNT_XY ((X_OF Lu)+(((X_OF Ro)-(X_OF Lu))/2)) ((Y_OF Lu)-(((Y_OF Ro)-(Y_OF Lu))/20))) TEXT_ANGLE 0 TEXT_SIZE 5 TEXT_FRAME BALLOON TEXT_ADJUST 5 TEXT MAGENTA Mt Pm END END_IF END_IF LET Zl (Zl+1) END_LOOP END_IF DC4_anno_parts_resemble END_DEFINE {-----------------------------------------------------------------------------} DEFINE DC4_anno_parts_resemble LOCAL Zl LOCAL Zzl LOCAL Sp LOCAL Count LOCAL Aktname LOCAL Aktnr LOCAL Verglnr LOCAL Vname LOCAL Aktmasst LOCAL Vmasst LOCAL Txt {Teile zusammenfassen} DISPLAY_NO_WAIT 'Teile werden zusammengefasst ...' DC4_anno_parts_tree LET Zl 2 LOOP EXIT_IF (Zl>(LTAB_ROWS 'DC4_anno_teile_baum')) LET Aktname '' LET Sp 2 LOOP LET Txt (TRIM (READ_LTAB 'DC4_anno_teile_baum' Zl (2*Sp-1))) EXIT_IF (NOT(LEN Txt)) LET Aktname (Aktname+'/'+Txt) LET Aktnr (READ_LTAB 'DC4_anno_teile_baum' Zl (2*Sp)) LET Sp (Sp+1) END_LOOP DISPLAY_NO_WAIT ('Teile werden zusammengefasst ... '+Aktnr+' '+Aktname) TRAP_ERROR EDIT_PART Aktnr IF (NOT CHECK_ERROR) CREATE_LTAB 'DC4_anno_inq_list' LET Count 1 INQ_PART Aktnr LET Verglnr (INQ 900) LOOP EXIT_IF (Verglnr='END-OF-LIST') WRITE_LTAB 'DC4_anno_inq_list' Count 1 Verglnr LET Verglnr (INQ 901) LET Count (Count+1) END_LOOP LET Count 1 LOOP EXIT_IF (Count>(LTAB_ROWS 'DC4_anno_inq_list')) LET Verglnr (READ_LTAB 'DC4_anno_inq_list' Count 1) LET Vname '' LET Sp 2 LET Zzl (VAL (SUBSTR Verglnr 2 ((LEN Verglnr)-1))) IF (Zzl<=(LTAB_ROWS 'DC4_anno_teile_baum')) LOOP LET Txt (TRIM (READ_LTAB 'DC4_anno_teile_baum' Zzl (2*Sp-1))) EXIT_IF (NOT(LEN Txt)) LET Vname (Vname+'/'+Txt) LET Sp (Sp+1) END_LOOP END_IF DC4_anno_smash_parts Aktnr Verglnr Aktname Vname LET Count (Count+1) END_LOOP END_IF LET Zl (Zl+1) END_LOOP EDIT_PART TOP END_DEFINE {-----------------------------------------------------------------------------} DEFINE DC4_anno_smash_parts PARAMETER Aktnr PARAMETER Vergnr PARAMETER Aktname PARAMETER Vname LOCAL Aktmasst LOCAL Vmasst LOCAL Inf IF (Verglnr<>Aktnr) INQ_PART Aktnr LET Aktmasst (INQ 4) TRAP_ERROR INQ_PART Verglnr IF (NOT CHECK_ERROR) LET Vmasst (INQ 4) LET Inf (INQ 904) LOOP EXIT_IF ((Inf='END-OF-LIST')OR((POS Inf 'DOCU_FRAME')=1)) LET Inf (INQ 905) END_LOOP IF ((Vmasst=Aktmasst)AND(NOT(POS Inf 'DOCU_FRAME')=1)AND(Aktname=Vname)) TRAP_ERROR GATHER PART Verglnr IF (NOT CHECK_ERROR) SMASH_SUBPART Verglnr ELSE END END_IF END_IF END_IF END_IF END_DEFINE {-----------------------------------------------------------------------------} DEFINE DC4_anno_parts_tree LOCAL Name LOCAL Teil LOCAL Txt LOCAL Etn LOCAL Zl LOCAL Sp LOCAL Count CREATE_LTAB 'DC4_teile_baum' CREATE_LTAB 'DC4_anno_teile_baum' {Teilebaum in Tabelle} RESET_PART_NUMBER EDIT_PART TOP PARTS_LIST TREE LTAB 'DC4_teile_baum' LET Zl 1 LET Sp 1 LET DC4_sd_max_ebene 1 LET Name (READ_LTAB 'DC4_teile_baum' Zl 1) LET Name (SUBSTR Name 5 ((LEN Name)-4)) LET Teil (TRIM Name) LET Txt (SUBSTR Teil 1 ((POS Teil '[~')-1)) LET Etn (SUBSTR Teil ((POS Teil '[~')+1) ((LEN Teil)-(POS Teil '[~'))) LET Etn (SUBSTR Etn 1 ((POS Etn ']')-1)) WRITE_LTAB 'DC4_anno_teile_baum' Zl (Sp*2-1) Txt WRITE_LTAB 'DC4_anno_teile_baum' Zl (Sp*2) Etn LET Zl 2 LOOP EXIT_IF (Zl>(LTAB_ROWS 'DC4_teile_baum')) LET Name (READ_LTAB 'DC4_teile_baum' Zl 1) LET Name (SUBSTR Name 5 ((LEN Name)-4)) LET Teil (TRIM Name) LET Txt (SUBSTR Teil 1 ((POS Teil '[~')-1)) LET Etn (SUBSTR Teil ((POS Teil '[~')+1) ((LEN Teil)-(POS Teil '[~'))) LET Etn (SUBSTR Etn 1 ((POS Etn ']')-1)) LET Sp (INT(((POS Name Teil)-1)/2+1)) IF (Sp>DC4_sd_max_ebene) LET DC4_sd_max_ebene Sp END_IF LET Count 1 LOOP EXIT_IF (Count=Sp) WRITE_LTAB 'DC4_anno_teile_baum' Zl (Count*2-1) (READ_LTAB 'DC4_anno_teile_baum' (Zl-1) (Count*2-1)) WRITE_LTAB 'DC4_anno_teile_baum' Zl (Count*2) (READ_LTAB 'DC4_anno_teile_baum' (Zl-1) (Count*2)) LET Count (Count+1) END_LOOP WRITE_LTAB 'DC4_anno_teile_baum' Zl (Sp*2-1) Txt WRITE_LTAB 'DC4_anno_teile_baum' Zl (Sp*2) Etn LET Zl (Zl+1) END_LOOP END_DEFINE