제가 워낙 초보라서.......
다름이 아니오라
아래의 문장에서 제가 Query문의 특정 필드의 합을 구하여 화면에
뿌려줄려고 하나 잘되지 않네요...
어떻게 고쳐야 하는지 아시는 분은 자세히 설명좀 해주세요...
에러 메세지 : [Error]A_1.pas[208]; incompatible types: 'Strin' and 'integer'
type
BillingQueryUSE_SUMTOT: TFloatField;
procedure TA_1Form.BitBtn1Click(Sender: TObject);
var
BSumTot : integer; <<-- 합의 변수
begin
BSumTot := 0; <<--변수의 초기화
Screen.Cursor := crHourglass;
if (Length(Edit2.Text) < 6 ) then begin
ShowMessage ('청구년월을 정확히 입력하세요!');
Screen.Cursor := crDefault;
Exit;
end else begin
with BillingQuery do begin
Close;
Sql.Clear;
if (Length(ComboBox1.Text) <= 0 ) then begin
if (Length(ComboBox2.Text) <= 0 ) then begin
if (Length(Edit1.Text) <= 0 ) then begin
Sql.Add('select * from eos_billing_pay where use_ym
= ' +
''''+ edit2.text +'''');
end else begin // 업체선택X, 유저그룹X, id O
Sql.Add('select * from eos_billing_pay where
user_code = ' +
''''+ edit1.text +'''' +
' and use_ym = ' + ''''+ Edit2.text +'''');
end;
end else begin
if (Length(Edit1.Text) <= 0 ) then begin
Sql.Add('select * from eos_billing_pay where
USER_GROUP = ' +
''''+ ComboBox2.text +'''' +
' and use_ym = ' + ''''+ Edit2.text +'''');
end else begin
Sql.Add('select * from eos_billing_pay where
user_group = ' +
''''+ ComboBox2.text +'''' +
'and USER_CODE = ' + ''''+ Edit1.text +'''' +
' and use_ym = ' + ''''+ Edit2.text +'''');
end;
end;
end else begin
if (Length(ComboBox2.Text) <= 0 ) then begin
if (Length(Edit1.Text) <= 0 ) then begin
Sql.Add('select * from eos_billing_pay where
group_code = ' +
''''+ ComboBox1.text +'''' +
' and use_ym = ' + ''''+ Edit2.text +'''');
end else begin
Sql.Add('select * from eos_billing_pay where
group_code = ' +
''''+ ComboBox1.text +'''' +
'and USER_CODE = ' + ''''+ Edit1.text +'''' +
' and use_ym = ' + ''''+ Edit2.text +'''');
end;
end else begin
if (Length(Edit1.Text) <= 0 ) then begin
Sql.Add('select * from eos_billing_pay where
group_code = ' +
''''+ ComboBox1.text +'''' +
'and user_group = ' + ''''+ ComboBox2.text +'''' +
' and use_ym = ' + ''''+ Edit2.text +'''');
end else begin
Sql.Add('select * from eos_billing_pay where
user_group = ' +
''''+ ComboBox2.text +'''' +
'and user_group = ' + ''''+ ComboBox2.text +'''' +
'and USER_CODE = ' + ''''+ Edit1.text +'''' +
' and use_ym = ' + ''''+ Edit2.text +'''');
end;
end;
end;
BSumTot := BSumTot + billingQuery.FieldByName <<-- Query 필드의 합
('use_sumtot').AsInteger; <<-- 여기서 틀린것 같은데?
open;
Showmessage ('BSumTot')
// MstQuery.active := True;
end;
end;
Screen.Cursor := crDefault;
Edit3.Text := Format('%5d', [billingQuery.RecordCount]) ;
Edit4.Text := BSumTot; << edit콤보에 입력 (여기가 208라인)
if (BillingQuery.RecordCount = 0) then ShowMessage('조회된 데이터가 한건도 존재하지 않습니다.');
end;
text는 string값을 반영하는데 BSumtot는 integer형이라 맞지않는다는 뜻입니다.
Edit4.Text := IntToStr(BSumTot);
String형으로 변환해서 넣으면 됩니다... 즐코..^.*
짝돌이 wrote:
> 제가 워낙 초보라서.......
>
> 다름이 아니오라
> 아래의 문장에서 제가 Query문의 특정 필드의 합을 구하여 화면에
> 뿌려줄려고 하나 잘되지 않네요...
>
> 어떻게 고쳐야 하는지 아시는 분은 자세히 설명좀 해주세요...
>
> 에러 메세지 : [Error]A_1.pas[208]; incompatible types: 'Strin' and 'integer'
>
> type
> BillingQueryUSE_SUMTOT: TFloatField;
>
>
> procedure TA_1Form.BitBtn1Click(Sender: TObject);
> var
> BSumTot : integer; <<-- 합의 변수
>
> begin
> BSumTot := 0; <<--변수의 초기화
> Screen.Cursor := crHourglass;
> if (Length(Edit2.Text) < 6 ) then begin
> ShowMessage ('청구년월을 정확히 입력하세요!');
> Screen.Cursor := crDefault;
> Exit;
> end else begin
> with BillingQuery do begin
> Close;
> Sql.Clear;
> if (Length(ComboBox1.Text) <= 0 ) then begin
> if (Length(ComboBox2.Text) <= 0 ) then begin
> if (Length(Edit1.Text) <= 0 ) then begin
> Sql.Add('select * from eos_billing_pay where use_ym
> = ' +
> ''''+ edit2.text +'''');
> end else begin // 업체선택X, 유저그룹X, id O
> Sql.Add('select * from eos_billing_pay where
> user_code = ' +
> ''''+ edit1.text +'''' +
> ' and use_ym = ' + ''''+ Edit2.text +'''');
> end;
> end else begin
> if (Length(Edit1.Text) <= 0 ) then begin
> Sql.Add('select * from eos_billing_pay where
> USER_GROUP = ' +
> ''''+ ComboBox2.text +'''' +
> ' and use_ym = ' + ''''+ Edit2.text +'''');
> end else begin
> Sql.Add('select * from eos_billing_pay where
> user_group = ' +
> ''''+ ComboBox2.text +'''' +
> 'and USER_CODE = ' + ''''+ Edit1.text +'''' +
> ' and use_ym = ' + ''''+ Edit2.text +'''');
> end;
> end;
> end else begin
> if (Length(ComboBox2.Text) <= 0 ) then begin
> if (Length(Edit1.Text) <= 0 ) then begin
> Sql.Add('select * from eos_billing_pay where
> group_code = ' +
> ''''+ ComboBox1.text +'''' +
> ' and use_ym = ' + ''''+ Edit2.text +'''');
> end else begin
> Sql.Add('select * from eos_billing_pay where
> group_code = ' +
> ''''+ ComboBox1.text +'''' +
> 'and USER_CODE = ' + ''''+ Edit1.text +'''' +
> ' and use_ym = ' + ''''+ Edit2.text +'''');
> end;
> end else begin
> if (Length(Edit1.Text) <= 0 ) then begin
> Sql.Add('select * from eos_billing_pay where
> group_code = ' +
> ''''+ ComboBox1.text +'''' +
> 'and user_group = ' + ''''+ ComboBox2.text +'''' +
> ' and use_ym = ' + ''''+ Edit2.text +'''');
> end else begin
> Sql.Add('select * from eos_billing_pay where
> user_group = ' +
> ''''+ ComboBox2.text +'''' +
> 'and user_group = ' + ''''+ ComboBox2.text +'''' +
> 'and USER_CODE = ' + ''''+ Edit1.text +'''' +
> ' and use_ym = ' + ''''+ Edit2.text +'''');
> end;
> end;
> end;
> BSumTot := BSumTot + billingQuery.FieldByName <<-- Query 필드의 합
> ('use_sumtot').AsInteger; <<-- 여기서 틀린것 같은데?
> open;
> Showmessage ('BSumTot')
> // MstQuery.active := True;
> end;
> end;
> Screen.Cursor := crDefault;
> Edit3.Text := Format('%5d', [billingQuery.RecordCount]) ;
> Edit4.Text := BSumTot; << edit콤보에 입력 (여기가 208라인)
> if (BillingQuery.RecordCount = 0) then ShowMessage('조회된 데이터가 한건도 존재하지 않습니다.');
>
> end;
>