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

📄 fsk.pas

📁 系统目标:通过库存管理系统
💻 PAS
字号:
unit Fsk;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Fbase, StdCtrls, Buttons, ComCtrls, DB, ADODB;

type
  TF_sk = class(TF_base)
    Label1: TLabel;
    DateTimePicker1: TDateTimePicker;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    SpeedButton1: TSpeedButton;
    Label4: TLabel;
    Edit4: TEdit;
    SpeedButton2: TSpeedButton;
    Label5: TLabel;
    Edit5: TEdit;
    Label7: TLabel;
    Edit6: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ADOQuery1: TADOQuery;
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure getspbh(sender:Tobject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure SpeedButton2Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Edit3KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit4KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  F_sk: TF_sk;
  spbh:string;
implementation
  uses Fdm,Fzct,Fghdw,Fjsr;
{$R *.dfm}

procedure TF_sk.getspbh(sender:Tobject);
begin
  adoquery1.Last;
  if adoquery1.RecordCount=0 then
    spbh:=formatdatetime('yyyymmdd',datetimepicker1.Date)+'SK'+formatfloat('0000000',1)
  else
    spbh:=formatdatetime('yyyymmdd',datetimepicker1.Date)+'SK'+formatfloat('0000000',strtoint(copy(adoquery1.Fields[1].asstring,11,7))+1);
end;
procedure TF_sk.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if not (key in ['0'..'9','.',#8]) then key:=#0;
end;

procedure TF_sk.SpeedButton1Click(Sender: TObject);
begin
  inherited;
  Application.CreateForm(TF_ghdw, F_ghdw);
  F_ghdw.ShowModal;
  F_ghdw.Free;
end;

procedure TF_sk.FormShow(Sender: TObject);
begin
  inherited;
  F_zct.wf:=7;
  DateTimePicker1.Date:=now();
  with adoquery1 do
  begin
    close;
    SQl.Clear;
    SQl.Add('select * from tb_gathering where billcode like ''%sk%''');
    Open;
  end;
  getspbh(sender);
  Edit2.Text:=spbh;
end;

procedure TF_sk.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  inherited;
  F_zct.wf:=0;
end;

procedure TF_sk.SpeedButton2Click(Sender: TObject);
begin
  inherited;
  Application.CreateForm(TF_jsr, F_jsr);
  F_jsr.ShowModal;
  F_jsr.Free;
end;

procedure TF_sk.BitBtn2Click(Sender: TObject);
begin
  inherited;
  Edit3.Clear;
  Edit4.Clear;
  Edit5.Clear;
  Edit6.Text:='0';
end;

procedure TF_sk.BitBtn1Click(Sender: TObject);
begin
  inherited;
  if (Trim(Edit3.Text)='') or (Trim(Edit4.Text)='') or (Trim(Edit6.Text)='')  then
  begin
    Application.MessageBox('请输入完整信息','提示',mb_ok);
    Exit;
  end;
  try
    F_dm.ADOConnection1.BeginTrans;
    with Adoquery1 do   //保存主表信息
    begin
      Close;
      SQl.Clear;
      SQl.Add('select * from tb_gathering');
      open;
      insert;
      FieldByName('billdate').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',datetimepicker1.Date));
      FieldByName('billcode').AsString:=Trim(Edit2.Text);
      FieldByName('units').AsString:=Trim(Edit3.Text);
      FieldByName('handle').AsString:=Trim(Edit4.Text);
      FieldByName('summary').AsString:=Trim(Edit5.Text);
      FieldByName('gathering').AsFloat:=strtofloat(format('%10.4f',[strtofloat(Edit6.Text)]));
      post;
    end;
    with Adoquery1 do   //保存往来账明细表
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from tb_currentaccount');
      Open;
      insert;
      FieldByName('billdate').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',datetimepicker1.Date));
      FieldByName('billcode').AsString:=Trim(Edit2.Text);
      FieldByName('units').AsString:=Trim(Edit3.Text);
      FieldByName('addgathering').AsFloat:=strtofloat(format('%10.4f',[strtofloat(Edit6.Text)]));
      Post;
    end;
    //保存入往来单位表中的 累计应收 累计应付字段
    with Adoquery1 do
    begin
      Close;
      SQl.Clear;
      SQl.Add('select * from tb_units where fullname='+''''+Trim(Edit3.Text)+'''');
      open;
      Edit;
      //单位累计应收= 累计应收-实付
      FieldByName('gathering').AsFloat:=strtofloat(format('%10.4f',[FieldByName('gathering').AsFloat+strtofloat(Edit6.Text)]));
      updaterecord;
      post;
    end;
    F_dm.ADOConnection1.CommitTrans;
    Application.MessageBox('保存成功','提示',mb_ok);
  except
    F_dm.ADOConnection1.RollbackTrans;
    Application.MessageBox('保存不成功','提示',mb_ok);
  end;
  with Adoquery1 do   //打开主表
  begin
    Close;
    SQl.Clear;
    SQl.Add('select * from tb_gathering where billcode like ''%sk%''');
    Open;
  end;
  bitbtn2.OnClick(sender);   //取消按钮清空记录
  getspbh(sender);     //得到下一单据编号
  Edit2.Text:=spbh;          //全局变量编号值
end;

procedure TF_sk.Edit3KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if key=13 then speedbutton1.Click;
end;

procedure TF_sk.Edit4KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if key=13 then speedbutton2.Click;
end;

end.

⌨️ 快捷键说明

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