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

📄 unit5.pas

📁 一套不错的客户系统
💻 PAS
字号:
unit Unit5;

interface

uses
  Windows, Messages, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms,
  Dialogs, DBCtrls, DB, DBTables, Mask, ExtCtrls, Buttons, Grids, DBGrids,
  RM_class, RM_Common, RM_Dataset;

type
  TF_rkd_Z = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    Panel5: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Panel6: TPanel;
    BitBtn5: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn4: TBitBtn;
    Panel7: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    EditDBEdit: TDBEdit;
    EditDBEdit2: TDBEdit;
    EditDBEdit3: TDBEdit;
    EditDBEdit5: TDBEdit;
    EditDBEdit6: TDBEdit;
    MemoDBMemo: TDBMemo;
    DBGrid3: TDBGrid;
    DBNavigator1: TDBNavigator;
    BitBtn6: TBitBtn;
    BitBtn9: TBitBtn;
    RMDBDataSet1: TRMDBDataSet;
    RMReport1: TRMReport;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure EditDBEditChange(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  F_rkd_Z: TF_rkd_Z;

implementation
uses unit1, Unit4, Unit14, Unit10;
{$R *.DFM}

procedure TF_rkd_Z.BitBtn1Click(Sender: TObject);
var
 rkd_no:string;
begin
 mainform.sys.close;
 mainform.sys.Open;
 if copy(mainform.sys.fieldbyname('入库单号').AsString,4,8)=formatdatetime('yyyymmdd',now) then
   begin
     rkd_no:='IN_'+floattostr(strtofloat(copy(mainform.sys.fieldbyname('入库单号').AsString,4,12))+1);
   end else rkd_no:='IN_'+formatdatetime('yyyymmdd',now)+'0001';
  mainform.sys.Edit;
  mainform.sys.fieldbyname('入库单号').AsString:=rkd_no;
  mainform.sys.post;
  mainform.A_rkd.Append;
  mainform.A_rkd.FieldByName('入库单号').AsString:=rkd_no;
  F_rkd.DateTimePicker1.DateTime:=now;
  F_rkd.showmodal;
end;

procedure TF_rkd_Z.BitBtn2Click(Sender: TObject);
begin
 if mainform.A_rkd.Eof=false then
   begin
    mainform.A_rkd.edit;
    F_rkd.DateTimePicker1.DateTime:=mainform.A_rkd.fieldbyname('进货日期').asdatetime;
    F_rkd.showmodal;
   end else application.MessageBox('没有选择可供编辑的入库单!','系统警告',MB_ok+MB_Iconstop);
end;

procedure TF_rkd_Z.BitBtn5Click(Sender: TObject);
begin
mainform.Q_rkmx.Append;
mainform.Q_rkmx.FieldByName('入库单号').asstring:=F_rkd_Z.editDBEdit.text;
F_rkmx.showmodal;
end;

procedure TF_rkd_Z.BitBtn4Click(Sender: TObject);
begin
 custom_window:='c_rkd';
 mainform.sys.close;
 mainform.sys.Open;
if copy(mainform.sys.fieldbyname('流水账号').AsString,4,8)=formatdatetime('yyyymmdd',now) then
  begin
    lszh_no:='MO_'+floattostr(strtofloat(copy(mainform.sys.fieldbyname('流水账号').AsString,4,12))+1);
  end else lszh_no:='MO_'+formatdatetime('yyyymmdd',now)+'0001';
 mainform.sys.Edit;
 mainform.sys.fieldbyname('流水账号').AsString:=lszh_no;
 mainform.sys.post;
 mainform.A_sfk.Append;
 mainform.A_sfk.FieldByName('流水账号').AsString:=lszh_no;
 mainform.A_sfk.FieldByName('单号').AsString:=F_rkd_Z.EditDBEdit.text;
 mainform.A_sfk.FieldByName('性质').asstring:='付款';
 F_sfk.DBComboBox1.Color:=clred;
 F_sfk.showmodal;
end;

procedure TF_rkd_Z.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//action:=cafree;
end;

procedure TF_rkd_Z.FormShow(Sender: TObject);
begin
with mainform.A_rkd do
  begin
    close;
    sql.Clear;
    sql.Add('SELECT d.ID, d.入库单号, d.入库类别, d.供应商,  d.进货日期, d.操作员, d.备注,d.合计金额,SUM( 收付款库.金额 ) AS 已付金额,d.合计金额-SUM( 收付款库.金额 ) as 未付金额 FROM (SELECT 入库单.ID,');
    sql.Add('入库单.入库单号, 入库单.入库类别, 入库单.供应商,  入库单.进货日期, 入库单.操作员, 入库单.备注, SUM( 入库明细.合计金额 ) AS 合计金额');
    sql.Add(' FROM 入库单 Left Outer Join 入库明细 on 入库单.入库单号=入库明细.入库单号 group by 入库单.ID, 入库单.入库单号, 入库单.入库类别, 入库单.供应商, 入库单.进货日期, 入库单.操作员,入库单.备注) d');
    sql.Add(' Left Outer Join 收付款库 on d.入库单号=收付款库.单号 ');
    sql.Add(' GROUP BY d.ID, d.入库单号, d.入库类别, d.供应商,  d.进货日期, d.操作员,  d.备注,d.合计金额');
    open;
  end;
end;

procedure TF_rkd_Z.EditDBEditChange(Sender: TObject);
begin
 with mainform.Q_rkmx do
   begin
     close;
     sql.Clear;
     sql.Add('select 入库明细.*,库存.* from 入库明细 left join 库存 on 入库明细.商品编号=库存.商品编号');
     sql.Add('where 入库单号='+''''+F_rkd_Z.EditDBEdit.text+'''');
     open;
   end;
 with mainform.A_sfk do
   begin
     close;
     sql.Clear;
     sql.Add('select * from 收付款库');
     sql.Add('where 单号='+''''+F_rkd_Z.EditDBEdit.text+'''');
     open;
   end;
end;

procedure TF_rkd_Z.BitBtn7Click(Sender: TObject);
var
  K_am,kc_amo_in,kc_amo_out:double;
begin
 if application.MessageBox('请确认真的要删除本次进货明细吗?','系统信息',MB_YESNO+MB_Iconquestion)=IDyes then
    begin
      with mainform.Q_kc_rk do
        begin
          close;
          sql.Clear;
          sql.Add('select * from 库存');
          sql.Add('where 商品编号='+''''+mainform.Q_rkmx.FieldByName('入库明细.商品编号').asstring+'''');
          open;
        end;
    with mainform.Q_temp do
     begin
      close;
      sql.Clear;
      sql.Add('select SUM(IIF(ISNULL(数量),0,数量)) as 入库总数 from 入库明细 where 商品编号='+''''+F_rkmx.EditDBEdit2.Text+'''');
      open;
     end;
     kc_amo_in:=mainform.Q_temp.fieldbyname('入库总数').asfloat;
     with mainform.Q_temp do
      begin
       close;
       sql.Clear;
       sql.Add('select SUM(IIF(ISNULL(出库明细.出库数量),0,出库明细.出库数量)) as 出库总数 from 出库明细 where 商品编号='+''''+F_rkmx.EditDBEdit2.Text+'''');
       open;
      end;
      kc_amo_out:=mainform.Q_temp.fieldbyname('出库总数').asfloat;
      K_am:=kc_amo_in-kc_amo_out;
      if K_am<mainform.Q_rkmx.FieldByName('数量').asfloat then
         application.MessageBox('进货数大于现有库存总数,不能删除!','系统警告',MB_ok+MB_Iconstop)
        else begin
          mainform.Q_kc_rk.Edit;
          mainform.Q_kc_rk.FieldByName('成本价格').asfloat:=(mainform.Q_kc_rk.FieldByName('成本价格').asfloat*K_am-mainform.Q_rkmx.FieldByName('合计金额').asfloat)/(K_am-mainform.Q_rkmx.FieldByName('数量').asfloat);
          mainform.Q_kc_rk.post;
          with mainform.Q_temp do
            begin
             close;
             sql.Clear;
             sql.Add('select * from 入库明细 where 商品编号='+''''+mainform.Q_rkmx.FieldByName('入库明细.商品编号').asstring+'''');
             open;
            end;
          mainform.Q_temp.Delete;
          mainform.Q_rkmx.Close;
          mainform.Q_rkmx.Open;
        end;
    end;
end;

procedure TF_rkd_Z.BitBtn3Click(Sender: TObject);
begin
  if (mainform.A_sfk.RecordCount>=1) or (mainform.Q_rkmx.RecordCount>=1) then
    begin
      application.MessageBox('本单有相关联的收付款账目或出入库明细,不能删除!','系统警告',MB_ok+MB_Iconstop);
    end else
    begin
      if application.MessageBox('请确认真的要删除本单吗?','系统信息',MB_YESNO+MB_Iconquestion)=IDyes then
         mainform.A_rkd.delete;
    end;
end;

end.

⌨️ 快捷键说明

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