**get the number of valid plays lnplays=0 SELECT plays LOCATE && faster than GO TOP lnRecNo=RECNO() COUNT FOR !DELETED() AND plays.gamenum==games.gamenum To lnplaysHTH,
***************************** >** set maximum records in demo mode >LOCAL lcConfirm, lnplays, lnMaxplays, lnREcno >lnMaxplays=20 > >**get the number of valid plays >lnplays=0 >SELECT plays >GO top >lnRecNo=RECNO() >SCAN FOR !DELETED() AND plays.gamenum==games.gamenum > lnplays=lnplays+1 >ENDSCAN > >**return serial number mode >lcConfirm=thisform.zserialconfirm('PLAYS') >*lcConfirm='FULL' &&Full version test >SELECT plays >*GO lnRecNo >*thisform.Refresh() > >DO case > CASE lcConfirm=='DEMO' &&standard demo mode > IF lnplays>=lnMaxplays > thisform.omessage.warning(PROPER('This demo version has exceeded the allowable number of plays')) > m.gostatemanager.openform('utilregister.scx') > RETURN .f. > ELSE > RETURN .t. > endif > CASE lcConfirm!='DEMO' AND lcConfirm!='FULL' &&extended demo mode > lnMaxplays=VAL(lcConfirm) > IF lnplays>=lnMaxplays > thisform.omessage.warning(PROPER('This demo version has exceeded the allowable number of plays')) > m.gostatemanager.openform('utilregister.scx') > RETURN .f. > ELSE > RETURN .t. > endif > CASE lcConfirm=='FULL' &&full mode > RETURN .t. > OTHERWISE > m.gostatemanager.openform('utilregister.scx') > RETURN .f. >endcase >>
******************************************************************************** >** "Referential integrity insert trigger for" plays >PROCEDURE __RI_INSERT_plays >LOCAL llRetVal >llRetVal = .t. >PRIVATE pcParentDBF,pnParentRec,pcChildDBF,pnChildRec,pcParentID,pcChildID >PRIVATE pcParentExpr,pcChildExpr >STORE "" TO pcParentDBF,pcChildDBF,pcParentID,pcChildID,pcParentExpr,pcChildExpr >STORE 0 TO pnParentRec,pnChildRec >IF _triggerlevel=1 > BEGIN TRANSACTION > PRIVATE pcRIcursors,pcRIwkareas,pcRIolderror,pnerror,; > pcOldDele,pcOldExact,pcOldTalk,pcOldCompat,PcOldDBC > pcOldTalk=SET("TALK") > SET TALK OFF > pcOldDele=SET("DELETED") > pcOldExact=SET("EXACT") > pcOldCompat=SET("COMPATIBLE") > SET COMPATIBLE OFF > SET DELETED ON > SET EXACT OFF > pcRIcursors="" > pcRIwkareas="" > pcRIolderror=ON("error") > pnerror=0 > ON ERROR pnerror=rierror(ERROR(),message(),message(1),program()) > IF TYPE('gaErrors(1)')<>"U" > release gaErrors > ENDIF > PUBLIC gaErrors(1,12) > pcOldDBC=DBC() > SET DATA TO ("COMPUSPORTS") >ENDIF first trigger >LOCAL lcChildID && child's value to be sought in parent >LOCAL lcParentWkArea && parentwork area handle returned by riopen >LOCAL lcChildWkArea && child's work area >LOCAL lcStartArea >lcStartArea=select() >llRetVal=.t. >lcChildWkArea=SELECT() >SELECT (lcChildWkArea) >lcChildID=GAMENUM >pcChildDBF=dbf(lcChildWkArea) >pnChildRec=recno(lcChildWkArea) >pcChildID=lcChildID >pcChildExpr="GAMENUM" >lcParentWkArea=riopen("games","gamenum") >IF lcParentWkArea<=0 > IF _triggerlevel=1 > DO riend WITH .F. > ENDIF at the end of the highest trigger level > SELECT (lcStartArea) > RETURN .F. >ENDIF not able to open the child work area >pcParentDBF=dbf(lcParentWkArea) >llRetVal=SEEK(lcChildID,lcParentWkArea) >pnParentRec=recno(lcParentWkArea) >=rireuse("games",lcParentWkArea) >IF NOT llRetVal > DO rierror with -1,"Insert restrict rule violated.","","" > IF _triggerlevel=1 > DO riend WITH llRetVal > ENDIF at the end of the highest trigger level > SELECT (lcStartArea) > RETURN llRetVal >ENDIF >IF _triggerlevel=1 > do riend with llRetVal >ENDIF at the end of the highest trigger level >SELECT (lcStartArea) >RETURN llRetVal >** "End of Referential integrity insert trigger for" plays >********************************************************************************