*** BEGIN: Deactivate *** store rgb(192,192,128) to this.backcolor IF !TYPE("glSaveOk")="N" IF !glSaveOk IF MESSAGEBOX("Do you want to change to another tab before saving?",1,_screen.Caption+" Alert")=2 glSaveOk = this.PageOrder ELSE glSaveOk = .T. ENDIF glCancelSave = glSaveOk ENDIF ENDIF *** END: DeactivateHEre's the code from the Activate event of the current tab:
***BEGIN: Activate *** *** NOTE: 1. IF User cancel's on the deactivation of this page, no refesh of the controls is necessary to retain their last entered value *** *** 2. Only Re-Activate the screen or Refresh the Controls when User saves the changes on previous screen AND SpellChecker is not ran IF TYPE("glSaveOk")="N" IF m.glF2Pressed = .F. && IF SpellCheker was not ran STORE glSaveOk TO lnTabCount DO CASE CASE lnTabCount = 1 glSaveOk = .T. thisform.pgfParticipant.pagIdentification.SetFocus thisform.pgfParticipant.pagIdentification.Activate CASE lnTabCount = 2 glSaveOk = .T. thisform.pgfParticipant.pagContacts.SetFocus thisform.pgfParticipant.pagContacts.Activate CASE lnTabCount = 3 glSaveOk = .T. thisform.pgfParticipant.pagDemographics.SetFocus thisform.pgfParticipant.pagdemographics.Activate CASE lnTabCount >= 4000 thisform.pgfParticipant.pagAssessment.SetFocus IF lnTabCount = 4000 thisform.pgfParticipant.pagAssessment.Activate ELSE store rgb(255,255,192) to thisform.pgfParticipant.pagAssessment.backcolor ENDIF DO CASE CASE lnTabCount = 4100 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagFunctional.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagFunctional.Activate CASE lnTabCount = 4200 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagNutritional.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagNutritional.Activate CASE lnTabCount = 4300 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagHealth.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagHealth.Activate CASE lnTabCount >= 4400 AND lnTabCount < 4500 thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.SetFocus IF lnTabCount = 4400 thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.Activate ELSE store rgb(255,255,192) to thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.backcolor ENDIF DO CASE CASE lnTabCount >= 4410 AND lnTabCount < 4420 thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.SetFocus IF lnTabCount = 4410 thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.Activate ELSE store rgb(255,255,192) to thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.BackColor ENDIF DO CASE CASE lnTabCount = 4411 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.pagIncome.pagAnnual.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.pagIncome.pagAnnual.Activate CASE lnTabCount = 4412 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.pagIncome.pagMonthly.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.pagIncome.pagMonthly.Activate ENDCASE CASE lnTabCount = 4420 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagBenefit.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagBenefit.Activate ENDCASE CASE lnTabCount = 4500 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagEnvironment.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagEnvironment.Activate ENDCASE CASE lnTabCount = 5 glSaveOk = .T. thisform.pgfParticipant.pagEnrollment.SetFocus thisform.pgfParticipant.pagenrollment.Activate CASE lnTabCount = 6 glSaveOk = .T. thisform.pgfParticipant.pagProgressNotes.SetFocus thisform.pgfParticipant.pagprogressNotes.Activate ENDCASE ELSE m.glF2Pressed = .F. ENDIF ELSE IF m.glF2Pressed = .F. && IF SpellCheker was not ran glReadOnly=settings.readonly store rgb(255,255,192) to this.backcolor IF TYPE("glCancelSave") = "N" glCancelSave = .T. && To make sure that control's retain their entered values when user cancels on the Save entries before changing to another tab glSaveOk = .F. && To make sure that each succeeding Change of Screen, the user will be prompted to save changes if their are entry in any of the control ELSE this.refresh ENDIF ELSE m.glF2Pressed = .F. ENDIF ENDIF *** END: Activate ***--------------------------------------------
*** BEGIN: Activate of other tab *** *** NOTE: 1. IF User cancel's on the deactivation of this page, no refesh of the controls is necessary to retain their last entered value *** *** 2. Only Re-Activate the screen or Refresh the Controls when User saves the changes on previous screen AND SpellChecker is not ran IF TYPE("glSaveOk")="N" IF m.glF2Pressed = .F. && IF SpellCheker was not ran STORE glSaveOk TO lnTabCount DO CASE CASE lnTabCount = 1 glSaveOk = .T. thisform.pgfParticipant.pagIdentification.SetFocus thisform.pgfParticipant.pagIdentification.Activate CASE lnTabCount = 2 glSaveOk = .T. thisform.pgfParticipant.pagContacts.SetFocus thisform.pgfParticipant.pagContacts.Activate CASE lnTabCount = 3 glSaveOk = .T. thisform.pgfParticipant.pagDemographics.SetFocus thisform.pgfParticipant.pagdemographics.Activate CASE lnTabCount >= 4000 thisform.pgfParticipant.pagAssessment.SetFocus IF lnTabCount = 4000 thisform.pgfParticipant.pagAssessment.Activate ELSE store rgb(255,255,192) to thisform.pgfParticipant.pagAssessment.backcolor ENDIF DO CASE CASE lnTabCount = 4100 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagFunctional.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagFunctional.Activate CASE lnTabCount = 4200 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagNutritional.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagNutritional.Activate CASE lnTabCount = 4300 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagHealth.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagHealth.Activate CASE lnTabCount >= 4400 AND lnTabCount < 4500 thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.SetFocus IF lnTabCount = 4400 thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.Activate ELSE store rgb(255,255,192) to thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.backcolor ENDIF DO CASE CASE lnTabCount >= 4410 AND lnTabCount < 4420 thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.SetFocus IF lnTabCount = 4410 thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.Activate ELSE store rgb(255,255,192) to thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.BackColor ENDIF DO CASE CASE lnTabCount = 4411 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.pagIncome.pagAnnual.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.pagIncome.pagAnnual.Activate CASE lnTabCount = 4412 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.pagIncome.pagMonthly.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagIncome.pagIncome.pagMonthly.Activate ENDCASE CASE lnTabCount = 4420 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagBenefit.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagFinancial.pagFinancial.pagBenefit.Activate ENDCASE CASE lnTabCount = 4500 glSaveOk = .T. thisform.pgfParticipant.pagAssessment.pagAssessment.pagEnvironment.SetFocus thisform.pgfParticipant.pagAssessment.pagAssessment.pagEnvironment.Activate ENDCASE CASE lnTabCount = 5 glSaveOk = .T. thisform.pgfParticipant.pagEnrollment.SetFocus thisform.pgfParticipant.pagenrollment.Activate CASE lnTabCount = 6 glSaveOk = .T. thisform.pgfParticipant.pagProgressNotes.SetFocus thisform.pgfParticipant.pagprogressNotes.Activate ENDCASE ELSE && If SpellChecker was run, reset to not ran yet m.glF2Pressed = .F. ENDIF ELSE IF m.glF2Pressed = .F. && IF SpellCheker was not ran glReadOnly=settings.readonly store rgb(255,255,192) to this.backcolor IF TYPE("glCancelSave") = "N" glCancelSave = .T. && To make sure that control's retain their entered values when user cancels on the Save entries before changing to another tab glSaveOk = .F. && To make sure that each succeeding Change of Screen, the user will be prompted to save changes if their are entry in any of the control ELSE this.refresh ENDIF ELSE && If SpellChecker was run, reset to not ran yet m.glF2Pressed = .F. ENDIF ENDIF *** END: Activate of other tab ***