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

📄 zcfzshujuluru.pas

📁 本程序功能是将银行系统的月计表转换为所需要的资产负债表
💻 PAS
字号:
unit ZCFZShuJuLuRu;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, Mask, DBCtrls, DBGridEh, BusinessSkinForm,
  bsSkinCtrls, bsSkinBoxCtrls, DB, variants, GridsEh, RzEdit;

type
  TZCFZShuJuWeiHuFrm = class(TForm)
    bsBusinessSkinForm1: TbsBusinessSkinForm;
    kmdh: TbsSkinEdit;
    Label4: TbsSkinStdLabel;
    bsSkinStdLabel1: TbsSkinStdLabel;
    DBGridEh1: TDBGridEh;
    Btn3: TbsSkinButton;
    Btn2: TbsSkinButton;
    Btn1: TbsSkinButton;
    Lbl1: TbsSkinStdLabel;
    bsSkinStdLabel2: TbsSkinStdLabel;
    bsSkinStdLabel3: TbsSkinStdLabel;
    bsSkinStdLabel4: TbsSkinStdLabel;
    bsSkinStdLabel5: TbsSkinStdLabel;
    bsSkinStdLabel6: TbsSkinStdLabel;
    sqyejf: TRzNumericEdit;
    bqfsejf: TRzNumericEdit;
    bqyejf: TRzNumericEdit;
    sqyedf: TRzNumericEdit;
    bqfsedf: TRzNumericEdit;
    bqyedf: TRzNumericEdit;
    procedure FormShow(Sender: TObject);
    procedure sqyejfEnter(Sender: TObject);
    procedure sqyejfExit(Sender: TObject);
    procedure Btn1Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
    procedure Btn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sqyejfKeyPress(Sender: TObject; var Key: Char);
    procedure kmdhEnter(Sender: TObject);
    procedure sqyejfKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure kmdhKeyPress(Sender: TObject; var Key: Char);
    procedure bqyedfKeyPress(Sender: TObject; var Key: Char);
    procedure bqyejfKeyPress(Sender: TObject; var Key: Char);
    procedure sqyejfClick(Sender: TObject);
    procedure DBGridEh1CellClick(Column: TColumnEh);
    procedure kmdhExit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ZCFZShuJuWeiHuFrm: TZCFZShuJuWeiHuFrm;
  sTemp: string;

implementation

uses ZCFZ_DataModel, FunctionModel;

{$R *.DFM}

procedure TZCFZShuJuWeiHuFrm.FormShow(Sender: TObject);
var
  Loop: Integer;
begin
  with ZCFZ_DM do
  begin
    ZCFZ_QueryEdit1.SQL.Clear;
    ZCFZ_QueryEdit1.SQL.Add('select * from gkk_yjb order by kmdh');
    ZCFZ_QueryEdit1.Active := True;
  end;
  kmdh.SetFocus;
end;

procedure TZCFZShuJuWeiHuFrm.sqyejfEnter(Sender: TObject);
begin
  (Sender as TRzNumericEdit).Text := RemoveBD((Sender as TRzNumericEdit).Text);
  (Sender as TRzNumericEdit).SelectAll;
end;

procedure TZCFZShuJuWeiHuFrm.sqyejfExit(Sender: TObject);
begin
  (Sender as TRzNumericEdit).Value := (Sender as TRzNumericEdit).Value / 100;
end;

procedure TZCFZShuJuWeiHuFrm.Btn1Click(Sender: TObject);
var
  s, s1: string;
  jepd1, jepd2: Int64;
  sqyejf1, sqyedf1, bqfsejf1, bqfsedf1, bqyejf1, bqyedf1: Int64;
begin
  if kmdh.Text = '' then
    kmdh.SetFocus;
  with ZCFZ_DM do
  begin
    s := Copy(kmdh.Text, 1, 1);
    s1 := Copy(kmdh.Text, 1, 2);
    sqyejf1 := StrToInt64(RemoveBD(sqyejf.Text));
    sqyedf1 := StrToInt64(RemoveBD(sqyedf.Text));
    bqfsejf1 := StrToInt64(RemoveBD(bqfsejf.Text));
    bqfsedf1 := StrToInt64(RemoveBD(bqfsedf.Text));
    bqyejf1 := StrToInt64(RemoveBD(bqyejf.Text));
    bqyedf1 := StrToInt64(RemoveBD(bqyedf.Text));
    if (s = '1') or (s1 = '51') then
    begin
      jepd1 := sqyejf1 + bqfsejf1 - bqfsedf1;
      jepd2 := bqyejf1;
      if jepd1 <> jepd2 then
      begin
        bsSkinMessage1.MessageDlg('数据横向校验不平,请重新输入。',
          mtConfirmation, [mbYes], 0);
        bqfsejf.SetFocus;
        Exit;
      end;
    end;
    if (s = '2') or (s = '4') or (s1 = '50') then
    begin
      jepd1 := sqyedf1 + bqfsedf1 - bqfsejf1;
      jepd2 := bqyedf1;
      if jepd1 <> jepd2 then
      begin
        bsSkinMessage1.MessageDlg('数据横向校验不平,请重新输入。',
          mtConfirmation, [mbYes], 0);
        bqfsejf.SetFocus;
        Exit;
      end;
    end;
    if (s = '3') then
    begin
      jepd1 := sqyejf1 - sqyedf1 + bqfsejf1 - bqfsedf1;
      jepd2 := bqyejf1 - bqyedf1;
      if jepd1 <> jepd2 then
      begin
        bsSkinMessage1.MessageDlg('数据横向校验不平,请重新输入。',
          mtConfirmation, [mbYes], 0);
        bqfsejf.SetFocus;
        Exit;
      end;
    end;
    if (s = '6') then
    begin
      jepd1 := sqyejf1 + bqfsejf1 - bqfsedf1;
      jepd2 := bqyejf1;
      if jepd1 <> jepd2 then
      begin
        bsSkinMessage1.MessageDlg('数据横向校验不平,请重新输入。',
          mtConfirmation, [mbYes], 0);
        bqfsejf.SetFocus;
        Exit;
      end;
    end;
    ZCFZ_QueryEdit1.SQL.Clear;
    sTemp := Format('select * from gkk_yjb where kmdh=''%s'' ', [kmdh.Text]);
    ZCFZ_QueryEdit1.SQL.Add(sTemp);
    ZCFZ_QueryEdit1.Active := True;
    if not ZCFZ_QueryEdit1.Eof then
    begin
      ZCFZ_QueryEdit1.edit;
      ZCFZ_QueryEdit1['kmdh'] := kmdh.Text;
      ZCFZ_QueryEdit1['sqyejf'] := sqyejf.Value;
      ZCFZ_QueryEdit1['sqyedf'] := sqyedf.Value;
      ZCFZ_QueryEdit1['bqfsejf'] := bqfsejf.Value;
      ZCFZ_QueryEdit1['bqfsedf'] := bqfsedf.Value;
      ZCFZ_QueryEdit1['bqyejf'] := bqyejf.Value;
      ZCFZ_QueryEdit1['bqyedf'] := bqyedf.Value;
      ZCFZ_QueryEdit1.post;
    end
    else
    begin
      ZCFZ_QueryEdit1.Insert;
      ZCFZ_QueryEdit1['kmdh'] := kmdh.Text;
      ZCFZ_QueryEdit1['sqyejf'] := sqyejf.Value;
      ZCFZ_QueryEdit1['sqyedf'] := sqyedf.Value;
      ZCFZ_QueryEdit1['bqfsejf'] := bqfsejf.Value;
      ZCFZ_QueryEdit1['bqfsedf'] := bqfsedf.Value;
      ZCFZ_QueryEdit1['bqyejf'] := bqyejf.Value;
      ZCFZ_QueryEdit1['bqyedf'] := bqyedf.Value;
      ZCFZ_QueryEdit1.post;
    end;
    ZCFZ_QueryEdit1.SQL.Clear;
    sTemp := 'select * from gkk_yjb order by kmdh';
    ZCFZ_QueryEdit1.SQL.Add(sTemp);
    ZCFZ_QueryEdit1.Active := True;
    ZCFZ_QueryEdit1.Locate('kmdh', VarArrayOf([kmdh.Text]), [loPartialKey]);
    DBGridEh1.DataSource.DataSet := ZCFZ_QueryEdit1;
  end;
  kmdh.SetFocus;
end;

procedure TZCFZShuJuWeiHuFrm.btn3Click(Sender: TObject);
var
  sjbxh: string;
begin
  sjbXh := DBGridEh1.Columns[1].DisplayText;
  if sjbXh <> '' then
    ZCFZ_DM.ZCFZ_QueryEdit1.Delete;
  sjbXh := '';
end;

procedure TZCFZShuJuWeiHuFrm.Btn2Click(Sender: TObject);
begin
  close;
end;

procedure TZCFZShuJuWeiHuFrm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
  close;
end;

procedure TZCFZShuJuWeiHuFrm.sqyejfKeyPress(Sender: TObject; var Key: Char);
begin
  if (Key <> Char(VK_RETURN)) and (Key <> Char(VK_BACK)) and
    ((Key < Char($30)) or (Key > Char($39))) then
    Key := #0;
  if Key = #13 then
  begin
    key := #0;
    PostKeyEx32(VK_TAB, [], false);
  end;
end;

procedure TZCFZShuJuWeiHuFrm.kmdhEnter(Sender: TObject);
begin
  kmdh.Text := '';
end;

procedure TZCFZShuJuWeiHuFrm.sqyejfKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_down then
    PostKeyEx32(VK_TAB, [], false);
  if key = VK_up then
    PostKeyEx32(VK_TAB, [ssShift], true);
end;

procedure TZCFZShuJuWeiHuFrm.kmdhKeyPress(Sender: TObject; var Key: Char);
var
  s, s1: string;
begin
  if (Key <> Char(VK_RETURN)) and (Key <> Char(VK_BACK)) and
    ((Key < Char($30)) or (Key > Char($39))) then
    Key := #0;
  if Key = #13 then
  begin
    key := #0;
    with ZCFZ_DM do
    begin
      ZCFZ_Qry1.SQL.Clear;
      sTemp := Format('select * from xkmb where kmdh=''%s'' ', [kmdh.Text]);
      ZCFZ_Qry1.SQL.Add(sTemp);
      ZCFZ_Qry1.Active := True;
      if not ZCFZ_Qry1.Eof then
      begin
        Lbl1.Caption := ZCFZ_Qry1['kmmc'];
        s := Copy(kmdh.Text, 1, 1);
        s1 := Copy(kmdh.Text, 1, 2);
        if (s = '1') or (s1 = '51') then
        begin
          sqyejf.Enabled := True;
          sqyedf.Enabled := False;
          bqyejf.Enabled := True;
          bqyedf.Enabled := False;
        end;
        if (s = '2') or (s = '4') or (s1 = '50') then
        begin
          sqyejf.Enabled := False;
          sqyedf.Enabled := True;
          bqyejf.Enabled := False;
          bqyedf.Enabled := True;
        end;
        if (s = '3') then
        begin
          sqyejf.Enabled := True;
          sqyedf.Enabled := True;
          bqyejf.Enabled := True;
          bqyedf.Enabled := True;
        end;
        if (s = '6') then
        begin
          sqyejf.Enabled := True;
          sqyedf.Enabled := False;
          bqyejf.Enabled := True;
          bqyedf.Enabled := False;
        end;

        PostKeyEx32(VK_TAB, [], false);
      end
      else
      begin
        kmdh.Text := '';
        kmdh.SetFocus;
      end;
    end;
  end;
end;

procedure TZCFZShuJuWeiHuFrm.bqyedfKeyPress(Sender: TObject;
  var Key: Char);
var
  x, y: Integer;
begin
  if (Key <> Char(VK_RETURN)) and (Key <> Char(VK_BACK)) and
    ((Key < Char($30)) or (Key > Char($39))) then
    Key := #0;
  if Key = #13 then
  begin
    key := #0;
    x := Left + Btn1.Left + 25;
    y := top + Btn1.Top + 30;
    SetCursorPos(x, y); //模拟鼠标左键点击按钮
    Mouse_Event(MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
    Mouse_Event(MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
  end;
end;

procedure TZCFZShuJuWeiHuFrm.bqyejfKeyPress(Sender: TObject;
  var Key: Char);
var
  x, y: Integer;
begin
  if (Key <> Char(VK_RETURN)) and (Key <> Char(VK_BACK)) and
    ((Key < Char($30)) or (Key > Char($39))) then
    Key := #0;
  if Key = #13 then
  begin
    key := #0;
    if (Copy(kmdh.Text, 1, 1) = '1') or (Copy(kmdh.Text, 1, 1) = '6') then
    begin
      x := Left + Btn1.Left + 25;
      y := top + Btn1.Top + 30;
      SetCursorPos(x, y); //模拟鼠标左键点击按钮
      Mouse_Event(MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
      Mouse_Event(MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
    end
    else
      PostKeyEx32(VK_TAB, [], false);
  end;
end;

procedure TZCFZShuJuWeiHuFrm.sqyejfClick(Sender: TObject);
begin
  (Sender as TRzNumericEdit).Text := RemoveBD((Sender as TRzNumericEdit).Text);
  (Sender as TRzNumericEdit).SelectAll;
end;

procedure TZCFZShuJuWeiHuFrm.DBGridEh1CellClick(Column: TColumnEh);
var
  s, s1: string;
begin
  kmdh.Text := DBGridEh1.Columns[0].DisplayText;
  sqyejf.Text := DBGridEh1.Columns[1].DisplayText;
  sqyedf.Text := DBGridEh1.Columns[2].DisplayText;
  bqfsejf.Text := DBGridEh1.Columns[3].DisplayText;
  bqfsedf.Text := DBGridEh1.Columns[4].DisplayText;
  bqyejf.Text := DBGridEh1.Columns[5].DisplayText;
  bqyedf.Text := DBGridEh1.Columns[6].DisplayText;
  s := Copy(kmdh.Text, 1, 1);
  s1 := Copy(kmdh.Text, 1, 2);
  if (s = '1') or (s1 = '51') then
  begin
    sqyejf.Enabled := True;
    sqyedf.Enabled := False;
    bqyejf.Enabled := True;
    bqyedf.Enabled := False;
  end;
  if (s = '2') or (s = '4') or (s1 = '50') then
  begin
    sqyejf.Enabled := False;
    sqyedf.Enabled := True;
    bqyejf.Enabled := False;
    bqyedf.Enabled := True;
  end;
  if (s = '3') then
  begin
    sqyejf.Enabled := True;
    sqyedf.Enabled := True;
    bqyejf.Enabled := True;
    bqyedf.Enabled := True;
  end;
  if (s = '6') then
  begin
    sqyejf.Enabled := True;
    sqyedf.Enabled := False;
    bqyejf.Enabled := True;
    bqyedf.Enabled := False;
  end;
end;

procedure TZCFZShuJuWeiHuFrm.kmdhExit(Sender: TObject);
var
  s, s1, sTemp: string;
begin
  with ZCFZ_DM do
  begin
      ZCFZ_Qry1.SQL.Clear;
    sTemp := Format('select * from gkk_yjb where kmdh=''%s'' ', [kmdh.Text]);
    ZCFZ_Qry1.SQL.Add(sTemp);
    ZCFZ_Qry1.Active := True;
    if not ZCFZ_Qry1.Eof then
    begin
      sqyejf.Value := ZCFZ_Qry1['sqyejf'];
      sqyedf.Value := ZCFZ_Qry1['sqyedf'];
      bqfsejf.Value := ZCFZ_Qry1['bqfsejf'];
      bqfsedf.Value := ZCFZ_Qry1['bqfsedf'];
      bqyejf.Value := ZCFZ_Qry1['bqyejf'];
      bqyedf.Value := ZCFZ_Qry1['bqyedf'];
    end
    else
    begin
      sqyejf.Value := 0;
      sqyedf.Value := 0;
      bqfsejf.Value := 0;
      bqfsedf.Value := 0;
      bqyejf.Value := 0;
      bqyedf.Value := 0;
    end;

    s := Copy(kmdh.Text, 1, 1);
    s1 := Copy(kmdh.Text, 1, 2);
    if (s = '1') or (s1 = '51') then
    begin
      sqyejf.Enabled := True;
      sqyedf.Enabled := False;
      bqyejf.Enabled := True;
      bqyedf.Enabled := False;
      sqyejf.SetFocus;
    end;
    if (s = '2') or (s = '4') or (s1 = '50') then
    begin
      sqyejf.Enabled := False;
      sqyedf.Enabled := True;
      bqyejf.Enabled := False;
      bqyedf.Enabled := True;
      sqyedf.SetFocus;
    end;
    if (s = '3') then
    begin
      sqyejf.Enabled := True;
      sqyedf.Enabled := True;
      bqyejf.Enabled := True;
      bqyedf.Enabled := True;
      sqyejf.SetFocus;
    end;
    if (s = '6') then
    begin
      sqyejf.Enabled := True;
      sqyedf.Enabled := False;
      bqyejf.Enabled := True;
      bqyedf.Enabled := False;
      sqyejf.SetFocus;
    end;

  end;
end;

end.

⌨️ 快捷键说明

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