⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ufrminterrest1.pas

📁 小银行系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  MaskEdit1.Visible :=false;
  DBEdit1.Visible :=true;
end;

procedure TfrmInterRest1.BitBtn1Click(Sender: TObject);
begin
  inherited;
  close ;
end;

procedure TfrmInterRest1.FormCreate(Sender: TObject);
begin
  inherited;
  frmFirst :=true;
  confirm :=false ;
end;

procedure TfrmInterRest1.FormActivate(Sender: TObject);
begin
  inherited;
  if frmFirst=true then
  begin
     EdtACC_NO.SetFocus ;
     frmFirst :=false;
     MaskEdit1.Visible :=false;
     DBEdit1.Visible :=true;
  end;
end;

procedure TfrmInterRest1.DBEditRemarkKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if key=13 then f_main.B_update.SetFocus ;

end;

procedure TfrmInterRest1.BitBtn_queryClick(Sender: TObject);
var sqlstr:string;
  vlen: integer ;
begin
  inherited;
  if EdtACC_NO.Text =''   then
  begin
     showmessage('请输入储户帐号!');
     EdtACC_NO.SetFocus ;
     exit ;
  end ;

  if edtyymmdd.text ='    -  -  ' then
     vlen := 0
  else if trim(copy(edtyymmdd.text,9,2))='' then
     vlen := 7
  else
     vlen := 10 ;

  sqlstr :='';
  sqlstr :=sqlstr +' and Acc_no='''+edtAcc_no.Text +'''' ;
  if vlen =7 then
     sqlstr := sqlstr+' and LEFT(Cdate,7)='''+ COPY(Edtyymmdd.Text,1,7)+'''';
  if vlen =10 then
     sqlstr := sqlstr+' and Cdate='''+ Edtyymmdd.Text+'''' ;

  sqlstr := copy(sqlstr,6,length(sqlstr)-5);
  if trim(sqlstr)<>'' then
     sqlstr := ' where '+sqlstr ;

  sqlstr:='SELECT * FROM Deposit '+ sqlstr+' ORDER  BY serial_no ';
  self.ClientDataSet1.Active :=false;
  self.ADODataSet1.CommandText:=sqlstr;
  self.ClientDataSet1.Active :=true;
  self.ClientDataSet1.Last ;

  self.Memo1.Visible :=false;
  self.DBGrid1.Visible :=true;

  MaskEdit1.Visible :=false;
  DBEdit1.Visible :=true;
  confirm :=true ;
end;

procedure TfrmInterRest1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  self.ADODataSet1.Free ;
  self.ClientDataSet1.Free ;
  self.DataSetProvider1.Free ;
  frmDeposit :=nil;
end;

procedure TfrmInterRest1.MaskEdit1Exit(Sender: TObject);
var
  sqlstr,vnum:string;
  nn:integer;
  TempAdo :TAdodataSet ;
begin
  inherited;
  if not isdate(MaskEdit1.Text) then
  begin
     showmessage('日期输入错误,请重新输入!');
     MaskEdit1.SetFocus ;
     exit ;
  end ;
  DBEdit1.Text :=MaskEdit1.Text ;

  //产生流水号
  if (self.ClientDataSet1.State=dsInsert) then
  begin
    TempAdo := TAdodataSet.Create(nil);
    sqlstr := 'select max(serial_no) dno, CONVERT(int,substring(max(serial_no),9,2)) nn '
       +'from Deposit  where ACC_NO='''+EdtACC_NO.Text+''' AND Cdate='''+
        MaskEdit1.Text+'''' ;
    try
      TempAdo.Connection := DM.ADOConnection1 ;
      TempAdo.CommandText := Sqlstr;
      TempAdo.Prepared := True;
      TempAdo.Open;

      nn := TempAdo.fieldbyname('nn').Asinteger ;
      vnum := copy(MaskEdit1.Text,1,4)+copy(MaskEdit1.Text,6,2)
         +copy(MaskEdit1.Text,9,2)+right('00'+trim(IntToStr(nn+1)),2) ;

      self.ClientDataSet1.FieldByName('serial_no').AsString:=vnum;
    finally
      TempAdo.Free;
    end;
  end ;

end;

procedure TfrmInterRest1.EdtACC_NOChange(Sender: TObject);
var sqlstr:string;
    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 +''' ';
  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 ;

  finally
    TempAdo.Free;
  end;

  BitBtn_query.Click ;
end;

procedure TfrmInterRest1.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 TfrmInterRest1.EdtStartyymmChange(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.Click ;

end;

procedure TfrmInterRest1.ClientDataSet1AfterScroll(DataSet: TDataSet);
begin
  inherited;
  if self.ClientDataSet1Check_mk.Value ='Y' then
     CheckBox1.Checked :=true
  else
     CheckBox1.Checked :=false ;

end;

procedure TfrmInterRest1.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 ;
  //
  {BK:=self.ClientDataSet1.GetBookmark ;

  self.ClientDataSet1.Next ;
  if self.ClientDataSet1.Eof then
  begin
     ScrollBox2.Enabled :=true ;
     Last_Record :=True;
  end
  else
  begin
     ScrollBox2.Enabled :=false ;
     Last_Record :=false ;
  end ;
  self.ClientDataSet1.GotoBookMark(BK);

  if (self.ClientDataSet1.State=dsInsert) then
  begin
     ScrollBox2.Enabled :=true ;
     Last_Record :=True;
  end ;
  }
end;

procedure TfrmInterRest1.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 TfrmInterRest1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  self.refresh1 ;

end;

procedure TfrmInterRest1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if (key=40) or (key=38) then
     self.refresh1 ;

end;

procedure TfrmInterRest1.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;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -