* Proc sysOpenForm * ________________ * If a named form is not already open, open it by physical name * Else just ignore * 1st param = .name property in form, 2nd = name stored on disc, e.g. CustForm (.frx) * ________________ LPARAMETERS tcFormName, tcPhysName, tcObjectName LOCAL lnNoParms lnNoParms = PARAMETERS() If not sysFormOpen( tcFormName) > 0 && If supplied form not already open If lnNoParms = 3 && If want an object name with it too do FORM &tcPhysName Name &tcObjectName Else do FORM &tcPhysName Endif Endif
* Func sysFormOpen * ________________ * Supplied with a form's name property, go thru list of * open forms to see if that form is open. * __________________________ LPARAMETER tcFormName LOCAL lnFormCount, llOpen, lnFormNo, lnOpenFormNo llOpen = .F. lnFormCount = _SCREEN.FormCount lnOpenFormNo = 0 If lnFormCount > 0 lnFormNo = 1 Do WHILE lnFormNo <= lnFormCount ; AND not llOpen If ALLTRIM( LOWER( _SCREEN.Forms( lnFormNo).Name)) = ALLTRIM( LOWER( tcFormName)) llOpen = .T. lnOpenFormNo = lnFormNo Else lnFormNo = lnFormNo + 1 Endif EndDo Endif Return lnOpenFormNo && index of specified inquiry formSo, instead of issuing "do form CustDets" you issue: