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

📄 urc_2.pas

📁 一个地方税务征收管理系统
💻 PAS
字号:
unit urc_2;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, ExtCtrls, dialogs, Grids, DBGridEh, Menus, ComCtrls, Mask,
  DBCtrlsEh, DBLookupEh, DBCtrls, ActnList, sncCurrency, sncDBCurrency,
  FlEdit, ImgList;

type
  Trc_2 = class(TForm)
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    L_b: TLabel;
    DBGridEh2: TDBGridEh;
    GroupBox1: TGroupBox;
    Label23: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Edit13: TEdit;
    Edit14: TEdit;
    DateTimePicker1: TDateTimePicker;
    Label30: TLabel;
    sncCurrencyLabel1: TsncCurrencyLabel;
    sncCurrencyLabel2: TsncCurrencyLabel;
    sncCurrencyLabel3: TsncCurrencyLabel;
    sncDBCurrencyEdit1: TsncDBCurrencyEdit;
    sncDBCurrencyEdit2: TsncDBCurrencyEdit;
    sncDBCurrencyEdit3: TsncDBCurrencyEdit;
    sncDBCurrencyEdit4: TsncDBCurrencyEdit;
    sncDBCurrencyEdit5: TsncDBCurrencyEdit;
    sncDBCurrencyEdit6: TsncDBCurrencyEdit;
    sncDBCurrencyEdit7: TsncDBCurrencyEdit;
    sncDBCurrencyEdit8: TsncDBCurrencyEdit;
    sncDBCurrencyEdit9: TsncDBCurrencyEdit;
    Panel1: TPanel;
    Splitter1: TSplitter;
    p1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    la1: TLabel;
    Edit2: TEdit;
    c_py: TCheckBox;
    c_bh: TCheckBox;
    b_find: TBitBtn;
    TreeView1: TTreeView;
    Label15: TLabel;
    Label16: TLabel;
    Label10: TLabel;
    Label12: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label28: TLabel;
    l_zq: TLabel;
    DBText7: TDBText;
    Label29: TLabel;
    DBText8: TDBText;
    sncCurrencyLabel4: TsncCurrencyLabel;
    Label3: TLabel;
    GroupBox5: TGroupBox;
    b_save: TBitBtn;
    b_cancel: TBitBtn;
    Edit10: TEdit;
    Edit12: TEdit;
    GroupBox3: TGroupBox;
    edit9: TsncCurrencyEdit;
    edit11: TsncCurrencyEdit;
    sncCurrencyEdit3: TsncCurrencyEdit;
    Edit4: TEdit;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    ActionList1: TActionList;
    a_cancel: TAction;
    a_save: TAction;
    d_find: TDBGridEh;
    Button1: TButton;
    Button2: TButton;
    DBGridEh1: TDBGridEh;
    procedure CancelBtnClick(Sender: TObject);
    procedure b_findClick(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Edit9Change(Sender: TObject);
    procedure Edit11Change(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit9KeyPress(Sender: TObject; var Key: Char);
    procedure Edit11KeyPress(Sender: TObject; var Key: Char);
    procedure a_cancelExecute(Sender: TObject);
    procedure a_cancelUpdate(Sender: TObject);
    procedure a_saveExecute(Sender: TObject);
    procedure a_saveUpdate(Sender: TObject);
    procedure Edit13Change(Sender: TObject);
    procedure Edit14Change(Sender: TObject);
    procedure d_findKeyPress(Sender: TObject; var Key: Char);
    procedure TreeView1DblClick(Sender: TObject);
    procedure d_findDblClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure DBGridEh1DblClick(Sender: TObject);
  private
    procedure Load_data;
    { Private declarations }
  public
    procedure Save_fp;
    { Public declarations }
  end;

var
  rc_2: Trc_2;

implementation

uses DB, u_dm, ADODB, u_main, RICH_SYS, ufp_query;

{$R *.dfm}

procedure Trc_2.CancelBtnClick(Sender: TObject);
begin
  close;
end;

procedure Trc_2.b_findClick(Sender: TObject);
var
  s: string;
begin
  if ((edit1.Text = '') and (edit2.Text = '')) then exit;
  if edit2.Text = '' then
  begin
    if Length(trim(edit1.Text)) <> 7 then
    begin
      MessageDlg('你输入的编号不正确!', mtWarning, [mbok], 0);
      Edit1.SetFocus;
      exit;
    end;
  end;

  with dm1.A_person_find do
  begin
    close;
    sql.Clear;
    s := 'exec p_find_person ' + string_sqlText(Edit2.Text) + ',' +
      string_sqlText(edit1.Text);
    sql.Add(s);
    //  Parameters.ParamByName('name').Value := '21656';
    Open;
    if recordcount > 1 then
    begin
      d_find.Visible := True;
      d_find.SetFocus;
      Exit;
    end;
    //b_select.Visible := recordcount > 1;

    if recordcount < 1 then
    begin
      if c_py.Enabled then
      begin
        edit2.SelectAll;
        edit2.SetFocus;
      end
      else
      begin
        edit1.SelectAll;
        edit1.SetFocus;
      end;
      exit;
    end;

    if recordcount = 1 then
    begin
      Load_data;
    end;
    b_save.Enabled := sncCurrencyEdit3.Value > 0;
  end;
end;

procedure Trc_2.Edit1Change(Sender: TObject);
begin
  if edit2.Text <> '' then edit2.Text := '';
end;

procedure Trc_2.Edit2Change(Sender: TObject);
begin
  if edit1.Text <> '' then edit1.Text := '';
end;

procedure Trc_2.FormCreate(Sender: TObject);
begin
  if FileExists(main.App_path + 'rc.txt') then
    TreeView1.LoadFromFile(main.App_path + 'rc.txt');
  //  main.Scale_form(0, Self);
//
  edit13.Text := main.User_1;
  edit14.Text := main.user_2;
  DateTimePicker1.Date := Date;
  dm1.A_rc_item.Close;

end;

procedure Trc_2.Edit4Change(Sender: TObject);
begin
  try
    l_zq.Caption := '应找人民币:' + CurrToStr(StrToCurr(edit4.Text) -
      sncCurrencyEdit3.Value) + '元';
  except
    exit;
  end;
end;

procedure Trc_2.Edit9Change(Sender: TObject);
begin
  if not CheckBox1.Checked then
    if edit10.Text = '' then
      if edit9.Value > 0 then
        edit10.Text := main.F_s1;

  if not CheckBox2.Checked then
    if edit12.Text = '' then
      if edit11.Value > 0 then
        edit12.Text := main.F_s2;

  try
    sncCurrencyEdit3.Value := edit9.Value + edit11.Value;
  except
    edit9.SetFocus;
  end;
end;

procedure Trc_2.Edit11Change(Sender: TObject);
begin
  if not CheckBox1.Checked then
    if edit10.Text = '' then
      if edit9.Value > 0 then
        edit10.Text := main.F_s1;

  if not CheckBox2.Checked then
    if edit12.Text = '' then
      if edit11.Value > 0 then
        edit12.Text := main.F_s2;
  try
    sncCurrencyEdit3.Value := edit9.Value + edit11.Value;
  except
    edit11.SetFocus;
  end;
end;

procedure Trc_2.Save_fp;
var
  s: string;
begin
  //保存发票号
  if Edit10.Text <> '' then
  begin
    s := 'exec p_update_f_s1 ' + string_sqlText(Edit10.Text);
    dm1.EXE_SQL(s);
    main.F_s1 := Edit10.Text;
    Edit9.Value := 0;
    main.F_s1 := incno(main.F_s1, 1);
  end;

  if edit12.Text <> '' then
  begin
    s := 'exec p_update_f_s2 ' + string_sqlText(Edit12.Text);
    dm1.EXE_SQL(s);

    main.F_s2 := Edit12.Text;
    Edit10.Text := '0';
    main.F_s2 := incno(main.F_s2, 1);
  end;
end;

procedure Trc_2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
    b_find.Click;
  end;
end;

procedure Trc_2.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
    b_find.Click;
  end;
end;

procedure Trc_2.Edit9KeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
    edit11.SetFocus;
  end;
end;

procedure Trc_2.Edit11KeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
    if ((edit9.Value > 0) or (edit11.Value > 0)) then
      b_save.SetFocus
    else
    begin
      MessageDlg('你没有录入金额!', mtWarning, [mbok], 0);
      edit9.SetFocus;
    end;
  end;
end;

procedure Trc_2.a_cancelExecute(Sender: TObject);
begin
  edit9.Value := 0;
  edit11.Value := 0;
  edit9.OnChange(self);
  edit10.Text := '';
  edit12.Text := '';
  edit9.SetFocus;
end;

procedure Trc_2.a_cancelUpdate(Sender: TObject);
begin
  a_cancel.Enabled := b_save.Enabled;
end;

procedure Trc_2.a_saveExecute(Sender: TObject);
var
  s, c_no: string;
begin
  if ((Edit9.Value = 0) and (edit11.Value = 0)) then exit;
  if edit13.Text = '' then
  begin
    MessageDlg('对不起,你没有输入收款人姓名,操作已被取消!', mtWarning,
      [mbok], 0);
    edit13.SetFocus;
    exit;
  end;

  if edit14.Text = '' then
  begin
    MessageDlg('对不起,你没有输入操作员姓名,操作已被取消!', mtWarning,
      [mbok], 0);
    edit14.SetFocus;
    exit;
  end;

  s := 'exec p_get_max_c_no ' +
    dm1.A_person_find.fieldbyname('person_id').AsString +
    ',' + main.Acount_id;
  c_no := dm1.Get_data(s);
  if c_no <> '' then
    c_no := incno(dm1.Get_data(s), 1)
  else
    c_no := '1';

  if ((Edit9.Value <> 0) and (edit11.Value <> 0)) then
  begin
    s :=
      'insert into rc(acount_id,c_no,person_id,rc_date,s1,s2,s1_no,s2_no,user_name,m_name) values(';
    s := s + main.Acount_id + ',' +
      c_no + ',' +
      dm1.A_person_find.fieldbyname('person_id').AsString + ',' +
      string_sqlText(DateToStr(DateTimePicker1.Date)) + ',' +
      CurrToStr(edit9.Value) + ',' +
      CurrToStr(edit11.Value) + ',' +
      string_sqlText(edit10.Text) + ',' +
      string_sqlText(edit12.Text) + ',' +
      string_sqlText(edit14.Text) + ',' +
      string_sqlText(edit13.Text) + ')';
  end;

  if ((Edit9.Value > 0) and (edit11.Value = 0)) then
  begin
    s :=
      'insert into rc(acount_id,c_no,person_id,rc_date,s1,s2,s1_no,user_name,m_name) values(';
    s := s + main.Acount_id + ',' +
      c_no + ',' +
      dm1.A_person_find.fieldbyname('person_id').AsString + ',' +
      string_sqlText(DateToStr(DateTimePicker1.Date)) + ',' +
      CurrToStr(edit9.Value) + ',0,' +
      string_sqlText(edit10.Text) + ',' +
      string_sqlText(edit14.Text) + ',' +
      string_sqlText(edit13.Text) + ')';
  end;

  if ((Edit9.Value = 0) and (edit11.Value <> 0)) then
  begin
    s :=
      'insert into rc(acount_id,c_no,person_id,rc_date,s1,s2,s2_no,user_name,m_name) values(';
    s := s + main.Acount_id + ',' +
      c_no + ',' +
      dm1.A_person_find.fieldbyname('person_id').AsString + ',' +
      string_sqlText(DateToStr(DateTimePicker1.Date)) + ',0,' +
      CurrToStr(edit11.Value) + ',' +
      string_sqlText(edit12.Text) + ',' +
      string_sqlText(edit14.Text) + ',' +
      string_sqlText(edit13.Text) + ')';
  end;

  dm1.EXE_SQL(s);

  b_find.Click;

  //保存发票号
  Save_fp;

  a_cancel.Execute;
  edit9.ReadOnly := True;
  edit11.ReadOnly := true;
  MessageDlg('入库成功!', mtWarning, [mbok], 0);

  if c_py.Checked then
  begin
    edit2.SelectAll;
    edit2.SetFocus;
  end
  else
  begin
    edit1.SelectAll;
    edit1.SetFocus;
  end;
end;

procedure Trc_2.a_saveUpdate(Sender: TObject);
begin
  a_save.Enabled := sncCurrencyEdit3.Value > 0;
end;

procedure Trc_2.Edit13Change(Sender: TObject);
var
  s: string;
begin
  if edit13.Text <> '' then
  begin
    s := 'exec p_update_user1 ' +
      string_sqlText(Edit13.Text);
    dm1.EXE_SQL(s);
    main.user_1 := Edit13.Text;
  end;
end;

procedure Trc_2.Edit14Change(Sender: TObject);
var
  s: string;
begin
  if edit14.Text <> '' then
  begin
    s := 'exec p_update_user2 ' +
      string_sqlText(Edit14.Text);
    dm1.EXE_SQL(s);
    main.user_2 := Edit14.Text;
  end;

end;

procedure Trc_2.d_findKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
    d_find.Visible := false;
    Load_data;
  end;
end;

procedure Trc_2.TreeView1DblClick(Sender: TObject);
var
  s: string;
begin
  with dm1.A_person_find do
  begin
    if TreeView1.selected.Level = 3 then
    begin
      close;
      sql.Clear;
      s := 'select * from person where left(name, 1) = ' +
        string_sqlText(TreeView1.Selected.Text) +
        ' and left(pno,3)=' +
        string_sqlText(LeftStr(TreeView1.Selected.Parent.Parent.Text, 2) +
        LeftStr(TreeView1.Selected.Parent.Text, 1));
      SQL.Add(s);

      open;
      if recordcount > 1 then
      begin
        d_find.Visible := True;
        d_find.SetFocus;
      end;
    end;
  end;
end;

procedure Trc_2.Load_data;
var
  s: string;
begin
  with dm1.A_rc_item do
  begin
    close;
    Parameters.ParamByName('person_id').Value :=
      dm1.A_person_find.fieldbyname('person_id').AsInteger;

    Parameters.ParamByName('acount_id').Value :=
      strtoint(main.Acount_id);
    open;
  end;

  with dm1.A_rc_sum do
  begin
    close;
    Parameters.ParamByName('@acount_id').Value :=
      strtoint(main.Acount_id);
    Parameters.ParamByName('@person_id').Value :=
      dm1.A_person_find.fieldbyname('person_id').AsInteger;

    open;

    {    str((FieldByName('y_count').AsFloat /
          FieldByName('r_count').AsFloat * 100): 7: 2, s);
        L_b.Caption := '已完成任务:' + s + '%';
     }
    edit9.ReadOnly := false;
    edit11.ReadOnly := false;
    Edit9.SetFocus;
  end;
end;

procedure Trc_2.d_findDblClick(Sender: TObject);
begin
  d_find.Visible := false;
  Load_data;
end;

procedure Trc_2.Button1Click(Sender: TObject);
begin
  main.add_tv(TreeView1);
  TreeView1.SaveToFile(main.App_path + 'rc.txt');
end;

procedure Trc_2.FormClick(Sender: TObject);
begin
  if d_find.Visible then d_find.Visible := false;
end;

procedure Trc_2.Button2Click(Sender: TObject);
begin
  DBGridEh1.Visible := true;
  dm1.a_rc_fp.open;
end;

procedure Trc_2.DBGridEh1DblClick(Sender: TObject);
begin
  DBGridEh1.Visible := false;
  with Tfp_query.Create(self) do
  begin

    edit1.Text := dm1.a_rc_fp.fieldbyname('s1_no').asstring;
    BitBtn1.Click;
    ShowModal;
  end;
end;

end.

⌨️ 快捷键说明

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