home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 March / Chip_1998-03_cd.bin / tema / MINICAD / MC7DEMO / MINICAD.1 / UPDATDBL.MPC < prev    next >
Text File  |  1997-04-30  |  2KB  |  69 lines

  1. PROCEDURE RunDBLinks;
  2. LABEL 1,2;
  3. CONST
  4.  
  5. {DATA LABEL LAYER, CLASS, RECORD & FIELD NAMES}
  6.  
  7.     kLegendLayerName = 'Legend';
  8.     kLegendSymName ='Key Symbol';
  9.     kLabelKeyClassName ='Key Labels';
  10.     kIDStart = 1000;
  11.     kIDRec = 'Key Symbol Data';
  12.     kIDFld = 'Next ID';
  13.     kDLinkRec ='Links';
  14.     kDLinkID ='Linked to';
  15.     kDLinkFldName ='Item';
  16.     kRec ='Instruments';
  17.     kFldItems = 'Focus,Color,Dimmer,Unit Number,Circuit,Channel,Lamp,Type,Position,Template,Ganged with,Remarks,Frame Size';
  18.  
  19. {***** DATA LABEL OPTIONS *****}
  20.  
  21.     kUnlinkCreate = TRUE;
  22.     kUnlinkUpdate = TRUE;
  23.     kLinkUpdateFound = TRUE;
  24.     kLinkUpdateNew = TRUE;
  25.     kLinkDeleteBefore = TRUE;
  26.     kLinkCreateNew = TRUE;
  27.     kLinkCreateMissing = TRUE;
  28.     kLabelUpdate = TRUE;
  29.     kLabelDeleteOrphan = TRUE;
  30.  
  31. {***** OTHER LOCAL CONSTANTS *****}
  32.  
  33.     kTextType = 10;
  34. VAR
  35.     tHan,symHan: HANDLE;
  36.     str,dbRef1,dbRef2,contents,size:STRING;
  37.     textStr,item,fieldName,symName:STRING;
  38.     cancel,finished:BOOLEAN;
  39.  
  40. BEGIN
  41.     PUSHATTRS;
  42.     {Check for valid selected Data Label}
  43.     IF count((T=TEXT) & (R IN [kDLinkRec]) & (SEL=TRUE))<1 THEN BEGIN
  44.         str:= CONCAT('The selection must contain ungrouped text objects that have a record named ╘',kDLinkRec,'╒ attached.');
  45.         ALRTDIALOG(str);
  46.         GOTO 2;
  47. END
  48. ELSE BEGIN
  49.     cancel:=YNDialog('Need Authorization. This Procedure will overwrite the instrument database.');
  50.     if cancel = false then GOTO 2;
  51.     END; {of IF THEN ELSE statement}
  52.     SETCURSOR(WATCHC);
  53.     MESSAGE('Updating database╔');
  54.     tHan := LSActLayer;
  55.     WHILE tHan <> NIL DO BEGIN
  56.         IF ((GETTYPE(tHan) <> kTextType)| (EvalStr(tHan,(R IN [kRec]))='FALSE')) THEN GOTO 1;
  57.         dbRef1:= CONCAT('''',kDLinkRec,'''.''',kDLinkID);
  58.         dbRef2:= CONCAT('''',kDLinkRec,'''.''',kDLinkFldName);
  59.         symName:=EVALSTR(tHan,dbRef1);
  60.         fieldName:=EVALSTR(tHan,dbRef2);
  61.         str:= GETTEXT(tHan);
  62.         symHan:= GetObject(symName);
  63.         SETRFIELD(symHan,kRec,fieldName,str);
  64.         1:tHan :=PrevSObj(tHan);
  65.     END; {of WHILE loop}
  66. 2:POPATTRS;
  67. CLRMESSAGE;
  68. END; {of MAIN}
  69. RUN(RunDBLinks);