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

📄 fybfy.pas

📁 功能强大,画面精致.是一款不可多得的进销存管理系统 acess数据库,用户名:yuansheng 密码:yuansheng 建议在xp系统下运行。
💻 PAS
字号:
unit Fybfy;

interface

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

type
  TF_ybfy = class(TF_base)
    Label7: TLabel;
    Edit6: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    SpeedButton3: TSpeedButton;
    StringGrid1: TStringGrid;
    Label6: TLabel;
    Panel1: TPanel;
    ADOQuery1: TADOQuery;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    DateTimePicker1: TDateTimePicker;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    SpeedButton1: TSpeedButton;
    Label4: TLabel;
    Edit4: TEdit;
    SpeedButton2: TSpeedButton;
    Label5: TLabel;
    Edit5: TEdit;
    procedure FormShow(Sender: TObject);
    procedure getspbh(sender:Tobject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure StringGrid1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure SpeedButton3Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Edit3KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit4KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure StringGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  F_ybfy: TF_ybfy;
  spbh:string;
  strdbrows:integer;
implementation
  uses Fdm,fzct,Fghdw,Fjsr,Ffyxz;
{$R *.dfm}

procedure TF_ybfy.getspbh(sender:Tobject);    //得到一般费用单编号
begin
  adoquery1.Last;
  if adoquery1.RecordCount=0 then
    spbh:=formatdatetime('yyyymmdd',datetimepicker1.Date)+'FY'+formatfloat('0000000',1)
  else
    spbh:=formatdatetime('yyyymmdd',datetimepicker1.Date)+'FY'+formatfloat('0000000',strtoint(copy(adoquery1.Fields[1].asstring,11,7))+1);
end;
procedure TF_ybfy.FormShow(Sender: TObject);
begin
  inherited;
  F_zct.wf:=9;
  DateTimePicker1.Date:=now();
  with stringgrid1 do
  begin
    Cells[1,0]:='科目编号';
    Cells[2,0]:='科目全称';
    Cells[3,0]:='金额'
  end;
  with adoquery1 do
  begin
    close;
    SQl.Clear;
    SQl.Add('select * from tb_cf where billcode like ''%fy%'' order by billdate');
    Open;
  end;
  getspbh(sender);
  Edit2.Text:=spbh;
end;

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

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

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

procedure TF_ybfy.BitBtn2Click(Sender: TObject);
var
  grow,gcol:integer;
begin
  inherited;
    Edit3.Clear;
    Edit4.Clear;
    Edit6.Text:='0';
    Panel1.Caption:='';
    for grow:=1 to stringgrid1.RowCount do
    begin
      for gcol:=1 to stringgrid1.ColCount do
      begin
        stringgrid1.Cells[gcol,grow]:='';
      end;
    end;
end;

procedure TF_ybfy.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if not (key in ['0'..'9','.',#8]) then key:=#0;
end;

procedure TF_ybfy.StringGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  xh:integer;
  ss:real;
begin
  inherited;
  ss:=0;
  for xh:=1 to StringGrid1.RowCount do
  begin
    if (Trim(StringGrid1.Cells[1,xh])<>'') and (Trim(StringGrid1.Cells[3,xh])<>'') then
    begin
      ss:=ss+ strtofloat(StringGrid1.Cells[3,xh]);
      strdbrows:=xh;
    end;
  end;
  panel1.Caption:=format('%10.4f',[ss]);

end;

procedure TF_ybfy.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  inherited;
  if (Acol=3)  then
     stringgrid1.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goEditing]
  else
    stringgrid1.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect];
end;

procedure TF_ybfy.SpeedButton3Click(Sender: TObject);
begin
  inherited;
  Application.CreateForm(TF_fyxz, F_fyxz);
  F_fyxz.ShowModal;
  F_fyxz.Free;
end;

procedure TF_ybfy.BitBtn1Click(Sender: TObject);
var
  grow,xhjc:integer;
begin
  inherited;
  if (Trim(Edit2.Text)='') or (Trim(Edit3.Text)='') or (stringgrid1.Cells[3,1]='')  then
  begin
    Application.MessageBox('请输入完整信息','提示',mb_ok);
    Exit;
  end;
  for xhjc:=1 to strdbrows  do
  begin
    if (stringgrid1.Cells[3,xhjc]='') then
    begin
      Application.MessageBox('请输入金额','提示',mb_ok);
      Exit;
    end;
  end;
  try
    F_dm.ADOConnection1.BeginTrans;
    with Adoquery1 do   //保存明细表信息
    begin
      Close;
      SQl.Clear;
      SQl.Add('select * from tb_cf');
      open;
      For grow:=1 to strdbrows do   //当前表单的记录个数
      begin
        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('number').AsString:=Stringgrid1.Cells[1,grow];
        FieldByName('name').AsString:=Stringgrid1.Cells[2,grow];
        FieldByName('fullpayment').AsFloat:=strtofloat(Stringgrid1.Cells[3,grow]);
        Fieldbyname('payment').AsFloat:=strtofloat(format('%10.4f',[strtofloat(Edit6.Text)]));
        Post;
      end;
    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('reducegathering').AsFloat:=strtofloat(panel1.Caption);
      FieldByName('balance').AsFloat:=strtofloat(Edit6.Text)-strtofloat(panel1.Caption);;
      Post;
    end;
    //保存入往来单位表中的 累计应收 累计应付字段
    with Adoquery1 do
    begin
      Close;
      SQl.Clear;
      SQl.Add('select * from tb_units where fullname='+''''+Trim(Edit3.Text)+'''');
      open;
      Edit;
      //供货单位累计应收
      FieldByName('payment').AsFloat:=strtofloat(format('%10.4f',[FieldByName('payment').AsFloat+strtofloat(Panel1.Caption)-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_cf where billcode like ''%fy%'' order by billcode');
    Open;
  end;
  bitbtn2.OnClick(sender);   //取消按钮清空记录
  getspbh(sender);     //得到下一单据编号
  Edit2.Text:=spbh;          //全局变量编号值
end;

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

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

procedure TF_ybfy.StringGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if key=13 then speedbutton3.Click;
end;

end.

⌨️ 快捷键说明

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