/*==================================================================================== // Function : search the Clients information in list. // Pre : list has to have one Clients at least. // Post : display the Clients information if found. =====================================================================================*/ int Application::SearchList(ClientData &Clients) { ClientData Client; // 검색하고자하는 부품 생성 ClientData temp; // 리스트 내의 Client값 int index = 0; // 인덱스 초기화 bool found= false; // 검색 스위치정의 y = 4; CW.ShowCW(); cout << "\t┌──────────────────┐" << endl; cout << "\t│ 메 뉴 │" << endl; cout << "\t│ 1. 주민등록번호 검 색 │" << endl; cout << "\t│ 2. 이 름 검 색 │" << endl; cout << "\t│ 3. 전 화 번 호 검 색 │" << endl; cout << "\t│ 4. 주 소 검 색 │" << endl; cout << "\t└──────────────────┘" << endl; cout << "\t 입력 : 키보드 방향키(위, 아래) & 엔터" << endl; gotoxy(42,y); cout << "◀"; for(;;){ key=0; do if(kbhit()) key=getch(); while(key==224); gotoxy(42,y); cout <<" "; if(key==up && y>=5)y--; if(key==down && y<=6)y++; if(key==13)break; gotoxy(42,y); cout <<"◀"; Sleep(100); } system("cls"); /* cout << endl << endl; cout << "\t********************************"<<endl; cout << "\tInput selecting number"<< endl; cout << "\t1 : Selecting by Number "<< endl; cout << "\t2 : Selecting by Name "<< endl; cout << "\t3 : Selecting by Phone "<< endl; cout << "\t4 : Selecting by Address "<< endl; cout << "\t********************************"<<endl; cout <<"\t select number --->"; cin>> select; */ y -= 3; m_ClientList.ResetList(); switch(y) { case 1: //부품 번호 검색시 Client.GetNumberFromKB(); //부품 번호 입력 for(int i =0;i<m_ClientList.LengthIs();i++) { m_ClientList.GetCurrentItem(temp);//리스트 내의 데이터 정보를 차례대로 불러옴 if(*temp.GetNumberlist()==*Client.GetNumberlist())//리스트번호과 검색되는 부품 번호 확인 { Clients = temp; //동일할 경우 부품 정보 복사 found = true; // 검색스위치 트루 index = i; break; } } if(found == false) //검색에 실패했을 경우 { cout << "\t !! 고객을 찾을 수 없습니다 !!" << endl; return false; } break; case 2: Client.GetNameFromKB(); //부품 이름 검색시 for(int i =0;i<m_ClientList.LengthIs();i++) { m_ClientList.GetCurrentItem(temp); if(temp.GetNamelist()==Client.GetNamelist()) //리스트이름과 검색되는 부품 이름 확인 { Clients = temp; //동일할 경우 부품 정보 복사 found = true; // 검색스위치 트루 index = i; break; } } if(found == false) //검색에 실패했을 경우 { cout << "\t !! 고객을 찾을 수 없습니다 !!" << endl; return false; } break; case 3: Client.GetPhoneFromKB(); //부품 규격 검색시 for(int i =0;i<m_ClientList.LengthIs();i++) { m_ClientList.GetCurrentItem(temp); if(temp.GetPhonelist().compare(Client.GetPhonelist()))//리스트이름과 검색되는 부품 이름 확인 { Clients = temp; //동일할 경우 부품 정보 복사 found = true; // 검색스위치 트루 index = i; break; } } if(found == false) //검색에 실패했을 경우 { cout << "\t !! 고객을 찾을 수 없습니다 !!" << endl; return false; } break; case 4: Client.GetAddressFromKB(); //부품 규격 검색시 for(int i =0;i<m_ClientList.LengthIs();i++) { m_ClientList.GetCurrentItem(temp); if(temp.GetAddresslist()==Client.GetAddresslist())//리스트이름, 규격 번호과 검색되는 부품 이름, 규격 번호 확인 { Clients = temp; found = true; index = i; break; } } if(found == false) //검색에 실패했을 경우 { cout << "\t !! 고객을 찾을 수 없습니다 !!" << endl; return false; } break; default: //잘못된 명령어처리 cout << "\tWrong choice"<< endl; break; } if(found == true) { return 1; } return 0; }