На мою критику исходного кода человек сказал что я явно придираюсь и не знаю чего хочу, а код его практически идеальный за исключением нескольких моментов. Нет слов.... смотрите сами, здесь всего один метод.
Мне даже интерессно кто сколько недостатков в этом коде найдет :). Каждвый недостатки пусть перечисляет в своей ветке.
procedure TFrmCMMain.PageControlMainChange(Sender: TObject);
var
activeDetailFrame: TframeDetailBase;
begin
inherited;
if PageControlMain.ActivePage = tabGeneral then
BuildToolButtons(acSEVISGeneral)
else
begin
activeDetailFrame := FindActiveDetailFrame((Sender as TcxPageControl).ActivePage);
if activeDetailFrame <> nil then
begin
//Caption := activeDetailFrame.Name;
BuildToolButtons(activeDetailFrame.SevisActions);
end;
end;
//Will open the needed datasets when the active page on the tab control is changed
if ((Sender as TcxPageControl).ActivePage = tabOverview)AND (cDetailSS_ID.Text<>'') then begin
frameOverview1.SSID := cDetailSS_ID.Text;
frameOverview1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
frameOverview1.UpdateParameters;
if not frameOverview1.cdsWorkAuth.Active then
frameOverview1.cdsWorkAuth.Open
else begin
frameOverview1.cdsWorkAuth.Close;
frameOverview1.cdsWorkAuth.Open;
//frameOverview1.cdsWorkAuth.Refresh();
end;
//dsCountry
if not cdsCountry.Active then
cdsCountry.Open;
if not frameOverview1.cdsNote.Active then
frameOverview1.cdsNote.Open
else begin
frameOverview1.cdsNote.Close;
frameOverview1.cdsNote.Open;
end;
if not frameOverview1.cdsAppointmentProfile.Active then
frameOverview1.cdsAppointmentProfile.Open
else begin
frameOverview1.cdsAppointmentProfile.Close;
frameOverview1.cdsAppointmentProfile.Open;
end;
//cdsSchool usde as lookup so no refresh is needed
if not frameOverview1.cdsSchool.Active then
frameOverview1.cdsSchool.Open;
if not frameOverview1.cdsDependents.Active then
frameOverview1.cdsDependents.Open
else begin
frameOverview1.cdsDependents.Close;
frameOverview1.cdsDependents.Open;
end;
if not LkpDM.lkpWorkAuthTypes.Active then
LkpDM.lkpWorkAuthTypes.Open;
// cdsAddress
if not frameOverview1.cdsAddress.Active then
frameOverview1.cdsAddress.Open
else begin
frameOverview1.cdsAddress.Close;
frameOverview1.cdsAddress.Open;
end;
if not LkpDM.lkpWorkAuthTypes.Active then
LkpDM.lkpWorkAuthTypes.Open;
//cdsContact
if not frameOverview1.cdsContact.Active then
frameOverview1.cdsContact.Open
else begin
frameOverview1.cdsContact.Close;
frameOverview1.cdsContact.Open;
end;
//cdsOrganization usde as lookup so no refresh is needed
if not frameOverview1.cdsOrganization.Active then
frameOverview1.cdsOrganization.Open;
if not LkpDM.lkpWorkAuthTypes.Active then
LkpDM.lkpWorkAuthTypes.Open;
// frameOverview1.SSRecordTypeID := cListIMGP_VISATYPE.Text;
// if not frameOverview1.cFrmDetail.Active then
// frameOverview1.cFrmDetail.Open;
// if not (LkpDM.LkpAddrType.Active) then
// LkpDM.LkpAddrType.Open;
// if not (LkpDM.LkpPhoneType.Active) then
// LkpDM.LkpPhoneType.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabGeneral) then begin
// manage controls, depending on VisaType
// F
if (IMGPVisaTypeCode = '01') or (IMGPVisaTypeCode = '04') then begin
eSS_SEVISID.Enabled := true;
eSS_PREVSEVISID.Enabled := true;
eSS_HOMECNTRYPOSITION.Enabled := false;
eSS_HOMECNTRYPOSCODE.Enabled := false;
eSS_HOMECNTRYEMPLOYER.Enabled := false;
dbimcbUSEmplVisa.Enabled := false;
eSS_USEMPLOYERNAME.Enabled := false;
eSS_HIGHESTDEGREEEARNED.Enabled := false;
dbimcbHighestDegLocation.Enabled := false;
meSS_HIGHESTDEGYEAR.Enabled := false;
eSS_HIGHESTDEGINST.Enabled := false;
eSS_HIGHESTDEGINSTLOC.Enabled := false;
end
else begin
// J
if (IMGPVisaTypeCode = '03') or (IMGPVisaTypeCode = '06') then begin
eSS_SEVISID.Enabled := true;
eSS_PREVSEVISID.Enabled := true;
eSS_HOMECNTRYPOSITION.Enabled := true;
eSS_HOMECNTRYPOSCODE.Enabled := true;
eSS_HOMECNTRYEMPLOYER.Enabled := true;
dbimcbUSEmplVisa.Enabled := false;
eSS_USEMPLOYERNAME.Enabled := false;
eSS_HIGHESTDEGREEEARNED.Enabled := false;
dbimcbHighestDegLocation.Enabled := false;
meSS_HIGHESTDEGYEAR.Enabled := false;
eSS_HIGHESTDEGINST.Enabled := false;
eSS_HIGHESTDEGINSTLOC.Enabled := false;
end
else begin
// other
eSS_SEVISID.Enabled := false;
eSS_PREVSEVISID.Enabled := false;
eSS_HOMECNTRYPOSITION.Enabled := false;
eSS_HOMECNTRYPOSCODE.Enabled := true;
eSS_HOMECNTRYEMPLOYER.Enabled := true;
dbimcbUSEmplVisa.Enabled := true;
eSS_USEMPLOYERNAME.Enabled := true;
eSS_HIGHESTDEGREEEARNED.Enabled := true;
dbimcbHighestDegLocation.Enabled := true;
meSS_HIGHESTDEGYEAR.Enabled := true;
eSS_HIGHESTDEGINST.Enabled := true;
eSS_HIGHESTDEGINSTLOC.Enabled := true;
end;
end
end;
if ((Sender as TcxPageControl).ActivePage = tabAddressPhone) then begin
framePhoneAddressFrame1.SSID := cDetailSS_ID.Text;
framePhoneAddressFrame1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
if not (LkpDM.LkpAddrType.Active) then
LkpDM.LkpAddrType.Open;
if not (LkpDM.LkpPhoneType.Active) then
LkpDM.LkpPhoneType.Open;
if not framePhoneAddressFrame1.cFrmDetail.Active then
framePhoneAddressFrame1.cFrmDetail.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabDependents ) then begin
frameDependants1.SSID := cDetailSS_ID.Text;
frameDependants1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
frameDependants1.IMGPVisaTypeCode := cListIMGP_VISATYPE.Text;
if not (LkpDM.lkpNameSuffix.Active) then
LkpDM.lkpNameSuffix.Open;
if not frameDependants1.cdsCountry.Active then
frameDependants1.cdsCountry.Open;
if not frameDependants1.cFrmDetail.Active then
frameDependants1.cFrmDetail.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabImmigrationProfiles ) then begin
frameImmigrationProfiles1.SSID := cDetailSS_ID.Text;
frameImmigrationProfiles1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
frameImmigrationProfiles1.IMGPVisaTypeCode := cListIMGP_VISATYPE.Text;
// if not (LkpDM.lkpSubjectCode.Active) then
// LkpDM.lkpSubjectCode.Open;
if not (LkpDM.lkpVisitorCategory.Active) then
LkpDM.lkpVisitorCategory.Open;
if not (LkpDM.lkpSEVISStatus.Active) then
LkpDM.lkpSEVISStatus.Open;
if not (LkpDM.LkpVisaSponsor.Active) then
LkpDM.LkpVisaSponsor.Open;
if not (LkpDM.LkpVisaType.Active) then
LkpDM.LkpVisaType.Open;
if not frameImmigrationProfiles1.cFrmDetail.Active then
frameImmigrationProfiles1.cFrmDetail.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabNotes ) then begin
frameNotes1.SSID := cDetailSS_ID.Text;
frameNotes1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
if not frameNotes1.cFrmDetail.Active then
frameNotes1.cFrmDetail.Open;
if not (LkpDM.lkpNoteType.Active) then
LkpDM.lkpNoteType.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabFinancialProfiles ) then begin
frameFinancialProfiles1.SSID := cDetailSS_ID.Text;
frameFinancialProfiles1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
frameFinancialProfiles1.IMGPVisaTypeCode := cListIMGP_VISATYPE.Text;
if not frameFinancialProfiles1.cFrmDetail.Active then
frameFinancialProfiles1.cFrmDetail.Open;
if not (LkpDM.lkpFundType.Active) then
LkpDM.lkpFundType.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabDocuments ) then begin
frameDocuments1.SSID := cDetailSS_ID.Text;
frameDocuments1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
if not (LkpDM.LkpDocumentType.Active) then
LkpDM.LkpDocumentType.Open;
if not frameDocuments1.cFrmDetail.Active then
frameDocuments1.cFrmDetail.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabPermResidAppl ) then begin
framePermResidAppl1.SSID := cDetailSS_ID.Text;
framePermResidAppl1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
if not LkpDM.LkpProcOfGreenCard.Active then
LkpDM.LkpProcOfGreenCard.Open;
if not LkpDM.LkpPermPosCategory.Active then
LkpDM.LkpPermPosCategory.Open;
if not LkpDM.LkpPermPosType.Active then
LkpDM.LkpPermPosType.Open;
if not LkpDM.LkpPermPosStatus.Active then
LkpDM.LkpPermPosStatus.Open;
if not framePermResidAppl1.cFrmDetail.Active then
framePermResidAppl1.cFrmDetail.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabAppointmentProfiles ) then begin
frameAppProfiles1.SSID := cDetailSS_ID.Text;
frameAppProfiles1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
if not frameAppProfiles1.cdsSchool.Active then
frameAppProfiles1.cdsSchool.Open;
if not frameAppProfiles1.cdsOrganization.Active then
frameAppProfiles1.cdsOrganization.Open;
if not LkpDM.lkpSalaryUnits.Active then
LkpDM.lkpSalaryUnits.Open;
if not frameAppProfiles1.cFrmDetail.Active then
frameAppProfiles1.cFrmDetail.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabWorkAuth ) then begin
frameWorkAuthorizations1.SSID := cDetailSS_ID.Text;
frameWorkAuthorizations1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
if not LkpDM.lkpWorkAuthTypes.Active then
LkpDM.lkpWorkAuthTypes.Open;
if not LkpDM.lkpWorkAuthEmpType.Active then
LkpDM.lkpWorkAuthEmpType.Open;
if not frameWorkAuthorizations1.cFrmDetail.Active then
frameWorkAuthorizations1.cFrmDetail.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabAcademicProfiles ) then begin
frameAcademicProfiles1.SSID := cDetailSS_ID.Text;
frameAcademicProfiles1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
if not frameAcademicProfiles1.cFrmDetail.Active then
frameAcademicProfiles1.cFrmDetail.Open;
end;
if ((Sender as TcxPageControl).ActivePage = tabNonSevis ) then
begin
frameNonSevis1.SSID := cDetailSS_ID.Text;
frameNonSevis1.SSRecordTypeID := cDetailSS_RECORDTYPE.Text;
if not LkpDM.LkpNONSEVISFORMS.Active then
LkpDM.LkpNONSEVISFORMS.Open;
frameNonSevis1.cbForms.ItemIndex:=-1;
if frameNonSevis1.cList.Active then frameNonSevis1.cList.Close;
end;
//Update button state is called to apply the autoedit and button state changes on tab change.
//Since datasets are being opened after the first time user click on the tab Autoedit needs to be reset.
UpdateButtonState;
end;
Добавлен тэг pascal для подсветки кода