home *** CD-ROM | disk | FTP | other *** search
- // Personnell DataBase
- // (C) Copyright 1992 Campbell Soup Company by Andrew Frantz
- // CSPERSON.CPP
- // contains the dialog and paradox engine source for person.db
- // CIS --- 70712,3547
- // ====================================================================
- #include "csdudes.hpp"
- // ====================================================================
- void PXPerson::PXPerson()
- {
- // The first PX data class must also initialize the engine
- int err;
- char *name = getenv("S_USER");
-
- if((err = PXNetInit((char *) PDOXNETPATH, OTHERNET, name)) != PXSUCCESS)
- // if((err = PXInit()) != PXSUCCESS)
- {
- cerr << PXErrMsg(err) << endl;
- cerr << "Hit a Key" << endl;
- getch();
- exit(0);
- }
- char path[80];
- strcpy(path, (char *) DATAPATH);
- strcat(path, "\\");
- strcat(path, "PERSON");
-
- if((err = open(path, NULL)) != PXSUCCESS)
- {
- cerr << PXErrMsg(err) << endl;
- cerr << "Hit a Key" << endl;
- getch();
- exit(0);
- }
- InitFields();
- if(recfirst())
- {
- cerr << "Error getting first record" << endl;
- cerr << "Hit a Key" << endl;
- getch();
- exit(0);
- }
- }
- // =====================================================================
- int PXPerson::InitFields()
- {
- int i = 0;
-
- fldptr [i++] = &LastName;
- fldptr [i++] = &FirstName;
- fldptr [i++] = &UserName;
- fldptr [i++] = &Address1;
- fldptr [i++] = &Address2;
- fldptr [i++] = &City;
- fldptr [i++] = &State;
- fldptr [i++] = &Zip;
- fldptr [i++] = &Ext;
- fldptr [i++] = &HomePhone;
- fldptr [i++] = &CostCtr;
- fldptr [i++] = &Group;
- fldptr [i] = NULL;
-
- LastName.setinfo(*this, "LastName");
- FirstName.setinfo(*this, "FirstName");
- UserName.setinfo(*this, "UserName");
- Address1.setinfo(*this, "Address1");
- Address2.setinfo(*this, "Address2");
- City.setinfo(*this, "City");
- State.setinfo(*this, "State");
- Zip.setinfo(*this, "Zip");
- Ext.setinfo(*this, "Ext");
- HomePhone.setinfo(*this, "HomePhone");
- CostCtr.setinfo(*this, "CostCtr");
- Group.setinfo(*this, "Group");
-
- return (PXSUCCESS);
- }
- // =====================================================================
- void PXPerson::AddRecord(PersonXferBuffer *data)
- {
- LastName = data->LastName;
- FirstName = data->FirstName;
- UserName = data->UserName;
- Address1 = data->Address1;
- Address2 = data->Address2;
- City = data->City;
- State = data->State;
- Zip = data->Zip;
- Ext = data->Ext;
- HomePhone = data->HomePhone;
- CostCtr = data->CostCtr;
- Group = data->Group;
-
- int err;
- if((err = recappend()) != PXSUCCESS)
- {
- messageBox(PXErrMsg(err), mfError);
- }
- }
- // =====================================================================
- void PXPerson::ChangeRecord(PersonXferBuffer *data)
- {
- LastName = data->LastName;
- FirstName = data->FirstName;
- UserName = data->UserName;
- Address1 = data->Address1;
- Address2 = data->Address2;
- City = data->City;
- State = data->State;
- Zip = data->Zip;
- Ext = data->Ext;
- HomePhone = data->HomePhone;
- CostCtr = data->CostCtr;
- Group = data->Group;
-
- recupdate(); // error handling done in recupdate()
- }
- // =====================================================================
- //void PXPerson::FindRecord(PersonXferBuffer *data)
- int PXPerson::FindRecord(char *data)
- {
- int err;
-
- err = LastName.search(data, SEARCHFIRST);
-
- return(err);
- }
- // =====================================================================
- PersonXferBuffer PXPerson::DisplayRecord()
- {
- PersonXferBuffer data;
-
- recget();
-
- LastName.get();
- FirstName.get();
- UserName.get();
- Address1.get();
- Address2.get();
- City.get();
- State.get();
- Zip.get();
- Ext.get();
- HomePhone.get();
- CostCtr.get();
- Group.get();
-
- strncpy(data.LastName, LastName, sizeof(data.LastName));
- strncpy(data.FirstName, FirstName, sizeof(data.FirstName));
- strncpy(data.UserName, UserName, sizeof(data.UserName));
- strncpy(data.Address1, Address1, sizeof(data.Address1));
- strncpy(data.Address2, Address2, sizeof(data.Address2));
- strncpy(data.City, City, sizeof(data.City));
- strncpy(data.State, State, sizeof(data.State));
- strncpy(data.Zip, Zip, sizeof(data.Zip));
- strncpy(data.Ext, Ext, sizeof(data.Ext));
-
- strncpy(data.HomePhone, HomePhone, sizeof(data.HomePhone));
- strncpy(data.CostCtr, CostCtr, sizeof(data.CostCtr));
- data.Group = Group;
-
- return(data);
- }
- // ====================================================================
- TPersonDlg::TPersonDlg(const char *title, int type)
- : TDialog( TRect( 0, 0, 80, 23), title ),
- TWindowInit(&TPersonDlg::initFrame)
- {
- DlgType=type;
-
- // initialize the struct to 0
- cmClear(); // init dlg structs
-
- insert(new TInputLine(TRect(16,2,34,3), 16));
- insert(new TInputLine(TRect(36,2,54,3), 16));
- insert(new TInputLine(TRect(16,4,31,5), 13));
- insert(new TInputLine(TRect(47,4,53,5), 4));
- insert(new TInputLine(TRect(16,6,44,7), 26));
- insert(new TInputLine(TRect(16,8,44,9), 26));
- insert(new TInputLine(TRect(21,10,44,11), 21));
- insert(new TInputLine(TRect(46,10,51,11), 3));
- insert(new TInputLine(TRect(52,10,65,11), 11));
- insert(new TInputLine(TRect(21,12,28,13), 5));
- insert(new TInputLine(TRect(17,14,32,15), 13));
- TView *control = new TRadioButtons(TRect(60,14,79,18),
- new TSItem("Eng Sys",
- new TSItem("Utilities",
- new TSItem("Real Estate",
- new TSItem("Environmental",0)))));
- ushort value;
- value = 0;
- ((TCluster*)control)->setData(&value);
- insert(control);
-
- insert(new TButton(TRect(55,4,60,6), "*", cmDisplayTheList, bfBroadcast | bfNormal));
- insert(new TStaticText(TRect(3,2,14,3), "Last, First"));
- insert(new TStaticText(TRect(34,2,35,3), ","));
- insert(new TStaticText(TRect(6,4,14,5), "UserName"));
- insert(new TStaticText(TRect(38,4,45,5), "CostCtr"));
- insert(new TStaticText(TRect(5,6,14,7), "Address 1"));
- insert(new TStaticText(TRect(5,8,14,9), "Address 2"));
- insert(new TStaticText(TRect(2,10,18,11), "City, State, Zip"));
- insert(new TStaticText(TRect(9,12,18,13), "Extension"));
- insert(new TStaticText(TRect(8,14,13,15), "Phone"));
- insert(new TStaticText(TRect(67,13,72,14), "Group"));
- insert(new TStaticText(TRect(44,10,45,11), ","));
- insert(new TStaticText(TRect(51,10,52,11), ","));
-
- switch(type)
- {
- case AddDlg:
- insert( new TButton(TRect(3,16,13,18), "~A~dd", cmAddRec, bfDefault | bfBroadcast));
- insert(new TButton(TRect(15,16,25,18), "~C~lear", cmClearRec, bfNormal | bfBroadcast));
- break;
- case EditDlg:
- insert(new TButton(TRect(3,16,13,18), "~F~ind", cmFindRec, bfDefault | bfBroadcast));
- insert(new TButton(TRect(15,16,25,18), "~C~hange", cmChangeRec, bfNormal | bfBroadcast));
- insert(new TButton(TRect(28,16,40,18), "~D~elete", cmDeleteRec, bfNormal | bfBroadcast));
- insert(new TButton(TRect(3,19,13,21), "~N~ext", cmNextRec, bfNormal | bfBroadcast));
- insert(new TButton(TRect(15,19,25,21), "~P~rev", cmPrevRec, bfNormal | bfBroadcast));
- insert(new TButton(TRect(28,19,39,21), "Fi~r~st", cmFirstRec, bfNormal | bfBroadcast));
- insert(new TButton(TRect(41,19,51,21), "~L~ast", cmLastRec, bfNormal | bfBroadcast));
- setDlgStructs();
- break;
- default:
- break;
- }
- selectNext(False);
- }
- // =====================================================================
- void TPersonDlg::handleEvent(TEvent& event)
- {
- TDialog::handleEvent(event);
- if( event.what == evBroadcast )
- {
- switch( event.message.command )
- {
- case cmInterView:
- cmListItemSelect((char *) event.message.infoPtr);
- break;
- case cmDisplayTheList:
- TCCListDlg *pd = new TCCListDlg(TRect(0,0,50,14),"Cost Centers");
- //if (::validView(pd) != 0)
- //{
- TPersonnellApp::deskTop->execView(pd);
- destroy(pd);
- //}
- // cmDisplayList();
- break;
- case cmAddRec:
- cmAdd();
- break;
- case cmClearRec:
- cmClear();
- break;
- case cmFirstRec:
- cmFirst();
- break;
- case cmPrevRec:
- cmPrev();
- break;
- case cmLastRec:
- cmLast();
- break;
- case cmNextRec:
- cmNext();
- break;
- case cmChangeRec:
- cmChange();
- break;
- case cmDeleteRec:
- cmDelete();
- break;
- case cmFindRec:
- cmFind();
- break;
- case cmsTestQuit:
- cmTestQuit();
- break;
- default:
- return;
- }
- clearEvent( event ); // clear event after handling
- }
- }
- // =====================================================================
- void TPersonDlg::cmTestQuit()
- {
- switch(DlgType)
- {
- case EditDlg:
- if(messageBox(mfYesButton | mfNoButton,
- "Do You Need To Save The Changes To\nThis Record ??") == cmYes)
- {
- cmChange();
- }
- break;
- case AddDlg:
- if(messageBox(mfYesButton | mfNoButton,
- "Do You Wish To Save This Record ??") == cmYes)
- {
- cmAdd();
- }
- break;
- default:
- break;
- }
- }
- // =====================================================================
- void TPersonDlg::cmListItemSelect(char *msg)
- {
- getData((void *) &personXferStruct);
- strncpy(personXferStruct.CostCtr, msg, sizeof(personXferStruct.CostCtr) );
- setData((void *) &personXferStruct);
- }
- // =====================================================================
- void TPersonDlg::cmAdd()
- {
- getData((void *) &personXferStruct);
- if(integrityCheck() == PXSUCCESS)
- {
- TPersonnellApp::PersonDB->AddRecord(&personXferStruct);
- cmClear();
- }
- else
- {
- messageBox(mfOKButton, "Cost Ctr Does Not Exist");
- }
- }
- // =====================================================================
- void TPersonDlg::cmClear()
- {
- memset(&personXferStruct, 0x0, sizeof personXferStruct);
- setData((void *) &personXferStruct);
- memset(&tempPerson, 0x0, sizeof tempPerson);
- }
- // =====================================================================
- void TPersonDlg::cmChange()
- {
- getData((void *) &personXferStruct);
-
- if(integrityCheck() == PXSUCCESS)
- {
- TPersonnellApp::PersonDB->ChangeRecord(&personXferStruct);
- setDlgStructs();
- }
- else
- {
- messageBox(mfOKButton, "Cost Ctr Does Not Exist");
- }
- }
- // =====================================================================
- void TPersonDlg::cmDelete()
- {
- if(messageBox(mfYesButton | mfNoButton,
- "Warning You Are About To Delete\nThis Record !!\nAre You Sure ??") == cmYes)
- {
- TPersonnellApp::PersonDB->recdelete();
- setDlgStructs();
- }
- }
- // ====================================================================
- void TPersonDlg::cmFirst()
- {
- checkDlg();
- TPersonnellApp::PersonDB->recfirst();
- setDlgStructs();
- }
- // ====================================================================
- void TPersonDlg::cmLast()
- {
- checkDlg();
- TPersonnellApp::PersonDB->reclast();
- setDlgStructs();
- }
- // ====================================================================
- void TPersonDlg::cmPrev()
- {
- checkDlg();
- TPersonnellApp::PersonDB->recprev();
- setDlgStructs();
- }
- // ====================================================================
- void TPersonDlg::cmNext()
- {
- checkDlg();
- TPersonnellApp::PersonDB->recnext();
- setDlgStructs();
- }
- // =====================================================================
- void TPersonDlg::cmFind()
- {
- int err;
- char last[25];
- strcpy(last, "");
-
- checkDlg();
- if(inputBox("Find Person", "Enter Last Name:" ,last, 19) == cmOK)
- {
- if((err = TPersonnellApp::PersonDB->FindRecord(last)) != PXSUCCESS)
- messageBox(PXErrMsg(err), mfError);
- else
- setDlgStructs();
- }
- }
- // =====================================================================
- void TPersonDlg::setDlgStructs()
- {
- tempPerson = personXferStruct = TPersonnellApp::PersonDB->DisplayRecord();
- setData((void *) &personXferStruct);
- }
- // =====================================================================
- int TPersonDlg::integrityCheck()
- {
- return(TPersonnellApp::CostCtrDB->FindRecord(personXferStruct.CostCtr));
- }
- // =====================================================================