>>>>local oForm >>>>oForm = newobject('my_form','my_form_lib.vcx') >>>>if type('oForm') = "O" and !isnull( oForm) >>>> oForm.show() >>>>endif >>>>>>>>
Lparameters tcClass, tcClasslibrary, tnModal, tvOption, toParameter, tvParameter > >Local lcClassLib, lcClassName, llCheckOpen, llCheckPrimary, llReturn, loForm, loFormRef >m.loFormRef = .Null. >m.lcClassName = Upper(m.tcClass) >m.lcClassLib = m.tcClasslibrary >* >*!* tvOption: >*!* 0 or .F. = Open the form >*!* 1 = If form already open select it >*!* "Recordkey" = If form with same recordkey is open, select it >* >If Vartype(m.tnModal) # [N] > m.tnModal = 0 >Endif >* >Do Case > case empty(tvOption) > m.llCheckOpen = .F. > Case Vartype(m.tvOption) = [N] > m.llCheckOpen = m.tvOption = 1 > Case Vartype(m.tvOption) = [C] > m.llCheckOpen = .T. > m.llCheckPrimary = .T. >Endcase >* >If m.llCheckOpen > For Each m.loForm In _Screen.Forms > If Upper(m.loForm.Class) == m.lcClassName > If m.llCheckPrimary > If m.loForm.oBusiness.Recordkey == m.tvOption > m.loFormRef = m.loForm > Endif > Else > m.loFormRef = m.loForm > Exit > Endif > Endif > Endfor > m.loForm = .Null. >Endif >* >If Vartype(m.loFormRef) # [O] > Do Case > Case Pcount() = 6 > m.loFormRef = Newobject(m.lcClassName, m.lcClassLib, [], m.toParameter, m.tvParameter ) > Case Pcount() = 5 > m.loFormRef = Newobject(m.lcClassName, m.lcClassLib, [], m.toParameter ) > Case Pcount() >2 > m.loFormRef = Newobject(m.lcClassName, m.lcClassLib ) > Endcase >Endif >* >m.llReturn = Vartype(m.loFormRef) = [O] >* >If m.llReturn > m.loFormRef.Show(m.tnModal) >Else > m.loFormRef = .Null. >Endif >* >Return m.loFormRefThank you very much for sharing. I will review and see if it applies to my form(s).