home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 March
/
Chip_1998-03_cd.bin
/
tema
/
MINICAD
/
MC7DEMO
/
MINICAD.1
/
UPDATDBL.MPC
< prev
next >
Wrap
Text File
|
1997-04-30
|
2KB
|
69 lines
PROCEDURE RunDBLinks;
LABEL 1,2;
CONST
{DATA LABEL LAYER, CLASS, RECORD & FIELD NAMES}
kLegendLayerName = 'Legend';
kLegendSymName ='Key Symbol';
kLabelKeyClassName ='Key Labels';
kIDStart = 1000;
kIDRec = 'Key Symbol Data';
kIDFld = 'Next ID';
kDLinkRec ='Links';
kDLinkID ='Linked to';
kDLinkFldName ='Item';
kRec ='Instruments';
kFldItems = 'Focus,Color,Dimmer,Unit Number,Circuit,Channel,Lamp,Type,Position,Template,Ganged with,Remarks,Frame Size';
{***** DATA LABEL OPTIONS *****}
kUnlinkCreate = TRUE;
kUnlinkUpdate = TRUE;
kLinkUpdateFound = TRUE;
kLinkUpdateNew = TRUE;
kLinkDeleteBefore = TRUE;
kLinkCreateNew = TRUE;
kLinkCreateMissing = TRUE;
kLabelUpdate = TRUE;
kLabelDeleteOrphan = TRUE;
{***** OTHER LOCAL CONSTANTS *****}
kTextType = 10;
VAR
tHan,symHan: HANDLE;
str,dbRef1,dbRef2,contents,size:STRING;
textStr,item,fieldName,symName:STRING;
cancel,finished:BOOLEAN;
BEGIN
PUSHATTRS;
{Check for valid selected Data Label}
IF count((T=TEXT) & (R IN [kDLinkRec]) & (SEL=TRUE))<1 THEN BEGIN
str:= CONCAT('The selection must contain ungrouped text objects that have a record named ╘',kDLinkRec,'╒ attached.');
ALRTDIALOG(str);
GOTO 2;
END
ELSE BEGIN
cancel:=YNDialog('Need Authorization. This Procedure will overwrite the instrument database.');
if cancel = false then GOTO 2;
END; {of IF THEN ELSE statement}
SETCURSOR(WATCHC);
MESSAGE('Updating database╔');
tHan := LSActLayer;
WHILE tHan <> NIL DO BEGIN
IF ((GETTYPE(tHan) <> kTextType)| (EvalStr(tHan,(R IN [kRec]))='FALSE')) THEN GOTO 1;
dbRef1:= CONCAT('''',kDLinkRec,'''.''',kDLinkID);
dbRef2:= CONCAT('''',kDLinkRec,'''.''',kDLinkFldName);
symName:=EVALSTR(tHan,dbRef1);
fieldName:=EVALSTR(tHan,dbRef2);
str:= GETTEXT(tHan);
symHan:= GetObject(symName);
SETRFIELD(symHan,kRec,fieldName,str);
1:tHan :=PrevSObj(tHan);
END; {of WHILE loop}
2:POPATTRS;
CLRMESSAGE;
END; {of MAIN}
RUN(RunDBLinks);