📄 ufrmdeposit.pas
字号:
TempAdo : TAdodataSet;
begin
inherited;
sqlstr:='SELECT A.*, B.fac_nm AS fac_nm, C.sec_nm AS sec_nm '+
' FROM dbo.Account A INNER JOIN '+
' dbo.factory B ON A.fac_no = B.fac_no INNER JOIN '+
' dbo.Sec C ON A.sec_no = C.SEC_NO '+
' WHERE A.ACC_NO='''+ EdtACC_NO.Text +''' AND Cancel_YN<>''Y'' ';
TempAdo := TAdodataSet.Create(nil);
try
TempAdo.Connection := DM.ADOConnection1 ;
TempAdo.CommandText := Sqlstr;
TempAdo.Prepared := True;
TempAdo.Open;
if not TempAdo.Eof then
begin
Edtper_na.Text := TempAdo.FieldByName('per_na').AsString ;
Edtper_no.Text := TempAdo.FieldByName('per_no').AsString ;
Edtfac_no.Text := TempAdo.FieldByName('fac_no').AsString ;
Edtfac_nm.Text := TempAdo.FieldByName('fac_nm').AsString ;
Edtsec_no.Text := TempAdo.FieldByName('sec_no').AsString ;
Edtsec_nm.Text := TempAdo.FieldByName('sec_nm').AsString ;
end ;
{else
begin
TempAdo.Free;
showmessage('无此帐号,请重新输入!');
EdtACC_NO.SetFocus ;
exit ;
end ;
}
finally
TempAdo.Free;
end;
BitBtn_query.SetFocus ;
//BitBtn_query.Click ;
end;
procedure TfrmDeposit.ClientDataSet1CalcFields(DataSet: TDataSet);
var
//小数点位置,小数点前位数,小数点后位数
nPos,nLen,dLen:integer;
sIN_money,nIN_money,sOUT_money,nOUT_money,srem_money,nrem_money:string;
begin
inherited;
////////////////////////////////////////////////////////////////
//存款部分
//存款 角分元...
if self.ClientDataSet1IN_money.AsFloat >0 then
begin
sIN_money := Trim(floattostr(self.ClientDataSet1IN_money.AsFloat));
nPos :=Pos('.',sIN_money);
if nPos>0 then
dLen :=Length(Trim(COPY(sIN_money,nPos+1,2))) //小数位数
else
dLen :=0 ;
if nPos>0 then
nIN_money := Trim(Copy(sIN_money,1,nPos-1))
else
nIN_money := sIN_money ;
nIN_money :=nIN_money ;
nLen :=Length(Trim(nIN_money)) ; //整数位数
//小数部分
if dLen>0 then
self.ClientDataSet1IN_2.Value := COPY(sIN_money,nPos+1,1)
else
if nLen>0 then
self.ClientDataSet1IN_2.Value := '0' ;
if dLen>1 then
self.ClientDataSet1IN_1.Value := COPY(sIN_money,nPos+2,1)
else
if nLen>0 then
self.ClientDataSet1IN_1.Value := '0' ;
//整数部分
if nLen >0 then
self.ClientDataSet1IN_3.Value := COPY(nIN_money,nLen,1) ;
if nLen >1 then
self.ClientDataSet1IN_4.Value := COPY(nIN_money,nLen-1,1) ;
if nLen >2 then
self.ClientDataSet1IN_5.Value := COPY(nIN_money,nLen-2,1) ;
if nLen >3 then
self.ClientDataSet1IN_6.Value := COPY(nIN_money,nLen-3,1) ;
if nLen >4 then
self.ClientDataSet1IN_7.Value := COPY(nIN_money,nLen-4,1) ;
if nLen >5 then
self.ClientDataSet1IN_8.Value := COPY(nIN_money,nLen-5,1) ;
if nLen >6 then
self.ClientDataSet1IN_9.Value := COPY(nIN_money,nLen-6,1) ;
if nLen >7 then
self.ClientDataSet1IN_10.Value := COPY(nIN_money,nLen-7,1) ;
end ;
////////////////////////////////////////////////////////////////
//取款部分
if self.ClientDataSet1OUT_money.AsFloat >0 then
begin
sOUT_money := Trim(floattostr(self.ClientDataSet1OUT_money.AsFloat));
nPos :=Pos('.',sOUT_money);
if nPos>0 then
dLen :=Length(Trim(COPY(sOUT_money,nPos+1,2))) //小数位数
else
dLen :=0 ;
if nPos>0 then
nOUT_money := Trim(Copy(sOUT_money,1,nPos-1))
else
nOUT_money := sOUT_money ;
nLen :=Length(Trim(nOUT_money)) ; //整数位数
//小数部分
if dLen>0 then
self.ClientDataSet1OUT_2.Value := COPY(sOUT_money,nPos+1,1)
else
if nLen>0 then
self.ClientDataSet1OUT_2.Value := '0' ;
if dLen>1 then
self.ClientDataSet1OUT_1.Value := COPY(sOUT_money,nPos+2,1)
else
if nLen>0 then
self.ClientDataSet1OUT_1.Value := '0' ;
//整数部分
if nLen >0 then
self.ClientDataSet1OUT_3.Value := COPY(nOUT_money,nLen,1) ;
if nLen >1 then
self.ClientDataSet1OUT_4.Value := COPY(nOUT_money,nLen-1,1) ;
if nLen >2 then
self.ClientDataSet1OUT_5.Value := COPY(nOUT_money,nLen-2,1) ;
if nLen >3 then
self.ClientDataSet1OUT_6.Value := COPY(nOUT_money,nLen-3,1) ;
if nLen >4 then
self.ClientDataSet1OUT_7.Value := COPY(nOUT_money,nLen-4,1) ;
if nLen >5 then
self.ClientDataSet1OUT_8.Value := COPY(nOUT_money,nLen-5,1) ;
if nLen >6 then
self.ClientDataSet1OUT_9.Value := COPY(nOUT_money,nLen-6,1) ;
if nLen >7 then
self.ClientDataSet1OUT_10.Value := COPY(nOUT_money,nLen-7,1) ;
end ;
/////////////////////////////////////////////////////////////////
//余额部分
//存款 角分元...
if self.ClientDataSet1REM_money.AsFloat >0 then
begin
sREM_money := Trim(floattostr(self.ClientDataSet1REM_money.AsFloat));
nPos :=Pos('.',sREM_money);
if nPos>0 then
dLen :=Length(Trim(COPY(sREM_money,nPos+1,2))) //小数位数
else
dLen :=0 ;
if nPos>0 then
nRem_money := Trim(Copy(sRem_money,1,nPos-1))
else
nRem_money := sRem_money ;
nLen :=Length(Trim(nRem_money)) ; //整数位数
//小数部分
if dLen>0 then
self.ClientDataSet1R_2.Value := COPY(sRem_money,nPos+1,1)
else
self.ClientDataSet1R_2.Value := '0' ;
if dLen>1 then
self.ClientDataSet1R_1.Value := COPY(sRem_money,nPos+2,1)
else
self.ClientDataSet1R_1.Value := '0' ;
//整数部分
if nLen >0 then
self.ClientDataSet1R_3.Value := COPY(nRem_money,nLen,1) ;
if nLen >1 then
self.ClientDataSet1R_4.Value := COPY(nRem_money,nLen-1,1) ;
if nLen >2 then
self.ClientDataSet1R_5.Value := COPY(nRem_money,nLen-2,1) ;
if nLen >3 then
self.ClientDataSet1R_6.Value := COPY(nRem_money,nLen-3,1) ;
if nLen >4 then
self.ClientDataSet1R_7.Value := COPY(nRem_money,nLen-4,1) ;
if nLen >5 then
self.ClientDataSet1R_8.Value := COPY(nRem_money,nLen-5,1) ;
if nLen >6 then
self.ClientDataSet1R_9.Value := COPY(nRem_money,nLen-6,1) ;
if nLen >7 then
self.ClientDataSet1R_10.Value := COPY(nRem_money,nLen-7,1) ;
end ;
end;
procedure TfrmDeposit.EdtyymmddChange(Sender: TObject);
begin
inherited;
if (Trim(Copy(Edtyymmdd.Text,6,2))<>'') and
(Trim(Copy(Edtyymmdd.Text,9,2))<>'') then
if isdate(Edtyymmdd.Text) then
BitBtn_query.SetFocus ;
//BitBtn_query.Click ;
end;
procedure TfrmDeposit.ClientDataSet1AfterScroll(DataSet: TDataSet);
begin
inherited;
if self.ClientDataSet1Check_mk.Value ='Y' then
CheckBox1.Checked :=true
else
CheckBox1.Checked :=false ;
end;
procedure TfrmDeposit.refresh1;
var
BK:TBookMark;
begin
inherited;
EdtIN_10.Text :=self.ClientDataSet1IN_10.Value ;
EdtIN_9.Text :=self.ClientDataSet1IN_9.Value ;
EdtIN_8.Text :=self.ClientDataSet1IN_8.Value ;
EdtIN_7.Text :=self.ClientDataSet1IN_7.Value ;
EdtIN_6.Text :=self.ClientDataSet1IN_6.Value ;
EdtIN_5.Text :=self.ClientDataSet1IN_5.Value ;
EdtIN_4.Text :=self.ClientDataSet1IN_4.Value ;
EdtIN_3.Text :=self.ClientDataSet1IN_3.Value ;
EdtIN_2.Text :=self.ClientDataSet1IN_2.Value ;
EdtIN_1.Text :=self.ClientDataSet1IN_1.Value ;
//
EdtOUT_10.Text :=self.ClientDataSet1OUT_10.Value ;
EdtOUT_9.Text :=self.ClientDataSet1OUT_9.Value ;
EdtOUT_8.Text :=self.ClientDataSet1OUT_8.Value ;
EdtOUT_7.Text :=self.ClientDataSet1OUT_7.Value ;
EdtOUT_6.Text :=self.ClientDataSet1OUT_6.Value ;
EdtOUT_5.Text :=self.ClientDataSet1OUT_5.Value ;
EdtOUT_4.Text :=self.ClientDataSet1OUT_4.Value ;
EdtOUT_3.Text :=self.ClientDataSet1OUT_3.Value ;
EdtOUT_2.Text :=self.ClientDataSet1OUT_2.Value ;
EdtOUT_1.Text :=self.ClientDataSet1OUT_1.Value ;
//
end;
procedure TfrmDeposit.blank_Text;
begin
inherited;
EdtIN_10.Text :='' ;
EdtIN_9.Text :='' ;
EdtIN_8.Text :='' ;
EdtIN_7.Text :='' ;
EdtIN_6.Text :='' ;
EdtIN_5.Text :='' ;
EdtIN_4.Text :='' ;
EdtIN_3.Text :='' ;
EdtIN_2.Text :='' ;
EdtIN_1.Text :='' ;
//
EdtOUT_10.Text :='' ;
EdtOUT_9.Text :='' ;
EdtOUT_8.Text :='' ;
EdtOUT_7.Text :='' ;
EdtOUT_6.Text :='' ;
EdtOUT_5.Text :='' ;
EdtOUT_4.Text :='' ;
EdtOUT_3.Text :='' ;
EdtOUT_2.Text :='' ;
EdtOUT_1.Text :='' ;
end;
procedure TfrmDeposit.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
inherited;
self.refresh1 ;
end;
procedure TfrmDeposit.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if (key=40) or (key=38) then
self.refresh1 ;
end;
procedure TfrmDeposit.EdtIN_10KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
PostMessage(Tedit(Sender).Handle, WM_KEYDOWN, 13, 0);
//self.Perform(WM_NEXTDLGCTL,0, 0)
end;
procedure TfrmDeposit.EdtIN_10Enter(Sender: TObject);
begin
inherited;
TEdit(Sender).SelectAll ;
{if Last_Record then
TEdit(Sender).Enabled :=true
else
TEdit(Sender).Enabled :=false ;
}
end;
procedure TfrmDeposit.BitBtn_PrintClick(Sender: TObject);
var sqlstr:string;
begin
inherited;
sqlstr:='SELECT A.*, B.fac_nm AS fac_nm, C.sec_nm AS sec_nm '+
' FROM dbo.Account A INNER JOIN '+
' dbo.factory B ON A.fac_no = B.fac_no INNER JOIN '+
' dbo.Sec C ON A.sec_no = C.SEC_NO '+
' WHERE A.ACC_NO='''+ EdtACC_NO.Text +''' ';
//预览报表
with TfrmReport.Create(nil) do
begin
//改变光标
Screen.Cursor := crHourGlass;
F1Report.ClearClipboard;
Print_Deposit('存取款明细表.vts',sqlstr,ClientDataSet1);
F1Report.ClearClipboard;
Screen.Cursor := crArrow;
F1Report.AllowSelections := false;
ShowModal;
free;
end; // with
end;
procedure TfrmDeposit.EdtACC_NOExit(Sender: TObject);
begin
inherited;
if self.ADOAccount.Locate('Acc_no',EdtACC_NO.Text,[]) then
begin
Edtper_na.Text :=self.ADOAccount.fieldbyname('per_na').Value;
end
else
begin
if F_sele=nil then F_sele:=TF_sele.Create(self);
F_sele.DataSource1.DataSet:=ADOAccount;
if F_sele.ShowModal=mrOK then
begin
EdtACC_NO.Text := self.ADOAccount.fieldbyname('Acc_no').AsString ;
Edtper_na.Text := self.ADOAccount.fieldbyname('per_na').AsString ;
end;
end;
end;
procedure TfrmDeposit.EdtIN_10Exit(Sender: TObject);
begin
inherited;
if (TEdit(Sender).Text<>'') and
(not isnumeric(TEdit(Sender).Text)) then
begin
ShowMessage('您只能输入数字!');
TEdit(Sender).SetFocus;
exit;
end;
if First_code and (TEdit(Sender).Text='0') then
begin
ShowMessage('首位不能输入0,请仔细检查!');
TEdit(Sender).SetFocus;
exit;
end;
if (TEdit(Sender).Text<>'') and (TEdit(Sender).Text<>'0')
and (isnumeric(TEdit(Sender).Text)) then
First_code :=false ;
end;
procedure TfrmDeposit.EdtOUT_1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
IF KEY=13 THEN f_main.B_update.SetFocus ;
end;
procedure TfrmDeposit.EdtIN_1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
IF KEY=13 THEN f_main.B_update.SetFocus ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -