고수님들 안뇽하시가여... 초보 허접 사발임당.... 아래의 소스를 보심 알겠지만여
공정코드 ,제품명 ,날짜 이렇게 3가지의 조건이 있는디여..
각각의 조건의로 검색이 가능 해야하구여...
예)공정코드+날짜
제품명+날짜
공정코드+제품명+날짜
날짜
위의 예에서와 같이 4가지의 검색이 가능 해야함당. ㅠ.ㅠ
그런디 아래의 소스를 도리면 4가지중 날짜 밖에는 검색이 안됨당....ㅠ.ㅠ
이구 이구 왜이런일이......헐.... 고수님들 도와 주이소 지발 ㅠ.ㅠ
if combobox1.Text='%' then
w:='and 공정코드='+s;
if combobox3.Text='%' then
w:='and 제품명='+combobox3.Text;
if (combobox1.Text='%') and (combobox3.Text='%') then
w:='and 공정코드='+s+'and 제품명='+combobox3.Text;
with query1 do
begin
close;
sql.Clear;
sql.Add('select 순번,제품명,고객명,검사수량,합격수량,불량수량,조처결과,검사결과,검사일자,검사자 from 검사명세');
sql.Add('where 검사일자 between :now1 and :now2'+w);
parambyname('now1').asdatetime:=datetimepicker1.Date;
parambyname('now2').asdatetime:=datetimepicker2.Date;
open;
end;
if combobox1.Text='%' then
w:='and 공정코드='+s;
--> 공정코드가 Char, VarChar형이면
--> w := 'and 공정코드 = ''' + S + ''''; S좌우로 '를 묶어줘야 할것 같습니다.
if combobox3.Text='%' then
w:='and 제품명='+combobox3.Text;
--> 잘 이해가 안되는데 제품명에 '%'란것이 있나요
--> 그래로 해석해보념 W라는 변수에 들어가는 값은
--> and 제품명 = %가 되는데 뭔가 잘못된 부분인것 같습니다.
if (combobox1.Text='%') and (combobox3.Text='%') then
w:='and 공정코드='+s+'and 제품명='+combobox3.Text;
--> 또한 테스트는 안해봤지만
--> 검사일자 Between A and B부부을 (검사일자 Between A and B)로 괄호로
--> 묶어보세요
사발우성 wrote:
> 고수님들 안뇽하시가여... 초보 허접 사발임당.... 아래의 소스를 보심 알겠지만여
>
> 공정코드 ,제품명 ,날짜 이렇게 3가지의 조건이 있는디여..
>
> 각각의 조건의로 검색이 가능 해야하구여...
>
> 예)공정코드+날짜
> 제품명+날짜
> 공정코드+제품명+날짜
> 날짜
>
>
> 위의 예에서와 같이 4가지의 검색이 가능 해야함당. ㅠ.ㅠ
>
> 그런디 아래의 소스를 도리면 4가지중 날짜 밖에는 검색이 안됨당....ㅠ.ㅠ
>
> 이구 이구 왜이런일이......헐.... 고수님들 도와 주이소 지발 ㅠ.ㅠ
>
> if combobox1.Text='%' then
> w:='and 공정코드='+s;
> if combobox3.Text='%' then
> w:='and 제품명='+combobox3.Text;
> if (combobox1.Text='%') and (combobox3.Text='%') then
> w:='and 공정코드='+s+'and 제품명='+combobox3.Text;
>
> with query1 do
> begin
> close;
> sql.Clear;
> sql.Add('select 순번,제품명,고객명,검사수량,합격수량,불량수량,조처결과,검사결과,검사일자,검사자 from 검사명세');
> sql.Add('where 검사일자 between :now1 and :now2'+w);
> parambyname('now1').asdatetime:=datetimepicker1.Date;
> parambyname('now2').asdatetime:=datetimepicker2.Date;
> open;
> end;