C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[12230] Re:Re:포스프로그램을 짜고 있습니다..스캐너에 관련된 질문을 드릴려구 합니다..아직은 왕 허접이라..고수
시후 [] 677 읽음    2001-11-01 14:00
로렌조 님이 쓰신 글 :
: 안녕하세요...'로렌조' 임다...^^
:
: 올리신 글을 읽어 보니까, 문제는 13자리를 8자리로 짤려 읽히는게 문제인거 같군요..
: 스캐너를 쓰신다니까 분명 시리얼 통신 콤포넌트를 쓰실텐데 문제는 보통 통신 콤포넌트에
: 있습니다.
: 아마도 쓰고 계신 통신 콤포넌트가 쓰래드를 이용한 콤포넌트인듯 하군요...
: 스레드를 이용한 콤포넌트의 경우에는 송수신시에 데이타의 길이가 어떻든간에
: 보통 8Byte씩 잘라서 보내는 경우가 제일 많습니다. 그래서 수신된 데이타의 뒤에 데이타가
: 또 올건지를 확인하고 문자열을 조합해야 되겠죠..
: 스캐너의 메이커마다 조금씩은 다를 수 있겠지만 보통 'STX+DATA+ETX' 이런식이 되겠죠.
: 참고하십시오.
:
: 참! 그리고,
:
: : char BUF[14];
: :
: :         strcpy(BUF,Edit1->Text.c_str()); //------ 에디트값을 버퍼로 불러들인다.
: :
: :         switch(strlen(BUF)) //------- 스위치문을 이용하여 8자리일 경우 13자리일경우를 나눠DB 를검색
:
: 위의 문장은 단지 switch문에서 사용하기 위해 BUF를 사용하신다면 아래처럼 사용하시면 됩니다.
:
:      switch(Edit1->Text.Length())  <--- 요렇게
:
: 즐프하세요....(^.^)
:
: 시후 님이 쓰신 글 :
: : 포스프로그램을 짜고 있는데. 스캐너에서 에디트로 읽어 들이면 8자리 코드 또는 13자리 코드를 어떻게 구분해서 읽어야 할지 잘 모르겠습니다.
: : 에디트에서 읽어 들인 값을 임의 버퍼에 저장하여 버퍼사이즈를 측정하여 8자리냐 13자리냐로 해서 코딩을 했습니다. 근데 8자리는 읽는데 13자리는 8자리만 읽고 나머지는 자리는 다음 에디트로 넘어 갑니다.
: : 고수님들 부탁드립니다...도와주셈...꾸벅..
: :
: : 여기 소스를 올립니다...
: : //==============================================================================
: : //      스캐너로 읽어 들여서 ITEM.DB를 검색한다.
: : //==============================================================================
: : void __fastcall TF_ASPM::Edit1Change(TObject *Sender)
: : {
: : char BUF[14];
: :
: :         strcpy(BUF,Edit1->Text.c_str()); //------ 에디트값을 버퍼로 불러들인다.
: :
: :         switch(strlen(BUF)) //------- 스위치문을 이용하여 8자리일 경우 13자리일경우를 나눠DB 를검색
: :         {
: :                  case 8: //8자리일 경우
: :                         ITEM->Open();
: :                         ITEM->SetKey();
: :                         ITEM->FieldByName("A_CODE")->AsString = Edit1->Text.c_str();//상품코드
: :
: :                         if(ITEM->GotoKey())
: :                         {
: :                                 Edit2->Text = ITEM->FieldByName("A_NAME")->AsString;//상품명
: :                                 Edit3->Text = ITEM->FieldByName("A_MIPG")->AsString;//매입가
: :                                 Edit4->Text = ITEM->FieldByName("A_PANG")->AsString;//판매가
: :                                 Edit5->Text = ITEM->FieldByName("A_GRCO")->AsString;//거래처코드
: :                                 Edit6->Text = ITEM->FieldByName("A_BMCO")->AsString;//부문코드
: :                                 if(ITEM->FieldByName("A_GSGU")->AsString == "0")    //면과세구분
: :                                 {
: :                                         CB1->ItemIndex = 0;//과세선택
: :                                 }
: :                                 else if(ITEM->FieldByName("A_GSGU")->AsString == "1")
: :                                 {
: :                                         CB1->ItemIndex = 1;//면세선택
: :                                 }
: :                                 Edit7->Text = ITEM->FieldByName("A_JEGO")->AsString;//재고량
: :                                 Edit3->SetFocus();
: :                         }
: :                         else
: :                         {
: :                                 Edit2->SetFocus();
: :                         }
: :                         ITEM->Close();
: :                         break;
: :                 case 13: //13자리일 경우
: :                         ITEM->Open();
: :                         ITEM->SetKey();
: :                         ITEM->FieldByName("A_CODE")->AsString = Edit1->Text.c_str();
: :
: :                         if(ITEM->GotoKey())
: :                         {
: :                                 Edit2->Text = ITEM->FieldByName("A_NAME")->AsString;
: :                                 Edit3->Text = ITEM->FieldByName("A_MIPG")->AsString;
: :                                 Edit4->Text = ITEM->FieldByName("A_PANG")->AsString;
: :                                 Edit5->Text = ITEM->FieldByName("A_GRCO")->AsString;
: :                                 Edit6->Text = ITEM->FieldByName("A_BMCO")->AsString;
: :                                 if(ITEM->FieldByName("A_GSGU")->AsString == "0")
: :                                 {
: :                                         CB1->ItemIndex = 0;
: :                                 }
: :                                 else if(ITEM->FieldByName("A_GSGU")->AsString == "1")
: :                                 {
: :                                         CB1->ItemIndex = 1;
: :                                 }
: :                                 Edit7->Text = ITEM->FieldByName("A_JEGO")->AsString;
: :                                 Edit3->SetFocus();
: :                         }
: :                         else
: :                         {
: :                                 Edit2->SetFocus();
: :                         }
: :                         ITEM->Close();
: :                         break;
: :         }
: : }

-- 로렌조님 답변글 감사합니다..
-- 그런데 말씀하신 뜻은 알겠지만 정확히 어떻게 코딩을 해야하는지는 모르겠습니다.
-- 셈플이나 관련 소스라도 있으시면 거기에 주석을 달아서 갈켜 주심 안될까염..^^
-- 제가 왕 허접이다 보니 아직 시리얼 컴포트 제어를 못하거든염..
-- 관련 도움말을 자세히 리플 달아주심 감사하겠습니다..제가 넘 많은걸 요구했나염..
-- 그래도 너그러히 용서하시구 다시 한번 갈켜주셈..^^.....꾸벅

+ -

관련 글 리스트
12219 포스프로그램을 짜고 있습니다..스캐너에 관련된 질문을 드릴려구 합니다..아직은 왕 허접이라..고수님들의 시후 681 2001/10/31
12221     Re:포스프로그램을 짜고 있습니다..스캐너에 관련된 질문을 드릴려구 합니다..아직은 왕 허접이라..고수님 로렌조 728 2001/11/01
12230         Re:Re:포스프로그램을 짜고 있습니다..스캐너에 관련된 질문을 드릴려구 합니다..아직은 왕 허접이라..고수 시후 677 2001/11/01
12236             Re:Re:Re:포스프로그램을 짜고 있습니다..스캐너에 관련된 질문을 드릴려구 합니다..아직은 왕 허접이라.. 로렌조 691 2001/11/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.