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

📄 unitmonthsum.~pas

📁 此代码为企业原料管理代码
💻 ~PAS
字号:
unit Unitmonthsum;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBTables, Db, StdCtrls, ComCtrls, ExtCtrls, Buttons;

type
  TForm3 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Panel1: TPanel;
    DateTimePicker_From: TDateTimePicker;
    DateTimePicker_To: TDateTimePicker;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Bevel1: TBevel;
    Label1: TLabel;
    ListBox1: TListBox;
    Label2: TLabel;
    Button1: TButton;
    Table1: TTable;
    Table2: TTable;
    Query1: TQuery;
    Query2: TQuery;
    Query3: TQuery;
    Query4: TQuery;
    Table3: TTable;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
     procedure zdymaterCheckDiary();
     function  zdyGetmaterCheckDate():TDate;
  end;

var
  form3:Tform3;
implementation

uses Unit_Mater_PrtSum, IniFiles, Unit_Mater_Main, UnitProdStock,
  UnitProdkhjz;

{$R *.DFM}
function Tform3.zdyGetmaterCheckDate():TDate; //函数声明  查询上月结账日期
var
  dCheck:TDate;
begin
  with table3 do
  begin
     open;
    if recordcount = 0 then
    begin
      Result :=strtodatetime('00-01-01');//DateTimePicker_From.date;
      table3.close;
      panel2.caption:='起始日期';
      DateTimePicker_From.visible:=true;
      DateTimePicker_From.enabled:=true;
      exit;
    end;
      //first;
      last;
      dCheck:=fieldbyname('jzrq').asdatetime;
      filter:='';
      filtered:=false;
      close;
      result := dCheck;
   end;

end;

procedure Tform3.FormCreate(Sender: TObject);
var
  fm,fy:integer;
  tm,ty:integer;

//  d:Tdate;
begin

  tm:=strtoint(formatdatetime('m',date)) ;
  ty:=strtoint(formatdatetime('yyyy',date));

  fm:=tm-1;
  fy:=ty;

  if tm = 1 then
  begin
    fm:=12;
    fy:=fy-1;
  end; //if

  if (fy mod 4 <> 0) and (fm = 2)  then
    DateTimePicker_From.date:= strtodate(inttostr(fy) + '-' + inttostr(fm)+ '-28')
  else
    DateTimePicker_From.date:= strtodate(inttostr(fy) + '-' + inttostr(fm)+ '-29');

  DateTimePicker_To.date:=strtodate(inttostr(ty) + '-' + inttostr(tm)+ '-28');


end;

procedure Tform3.BitBtn1Click(Sender: TObject);
var
  d_from,d_to:Tdate;
  fFrom:Tdate ;
  name:string;
  s_from,s_to:string;
  n_DateMinus:integer;
  JLSumSys:TIniFile;
  er,Sum_hk,per,zjbl:real;
begin
   with query1 do
  begin
    close;
    sql.Clear;
    sql.Add('select * from khjzrq');
    open;
    if recordcount<>0 then
    DateTimePicker_From.date:=zdyGetmaterCheckDate;
    end;
 // frmProdStock.visible:=false;
  //fFrom:=zdyGetmaterCheckDate; //上次结帐日期
  //fFrom:=DateTimePicker_From.date;  //上次结帐日期送起始日
  //zdymaterCheckDiary;//上次结帐日期
  if (zdyGetmaterCheckDate >= strtodate(datetostr(DateTimePicker_To.date ))) then
    begin
      showmessage('您选择的结帐日期早于上次结帐日期!'+#13+#13+'上次结帐日期是:'+datetostr(zdyGetmaterCheckDate));
      exit;
    end;

   with  query1 do
  begin
    close;
    sql.Clear;
    sql.Add('delete from byqk');
    execsql;
  end; //with
   with  query1 do
  begin
  Close;
  SQL.Clear;
  SQL.Add('select * from commManufacturer');
  Open;
  First;
  while not eof do
  begin
   er:=0;
   per:=0;
   zjbl:=0;
   sum_hk:=0;
    query2.Close;
    query2.SQL.Clear;
    query2.SQL.add('select prodid,number from prodoutcard where manufacturerid=:manu');
    query2.SQL.Add('and outdate>:from and outdate<=:to');
    query2.ParamByName('from').AsDate:=DateTimePicker_From.Date;
    query2.ParamByName('to').AsDate:=DateTimePicker_to.Date;
    query2.ParamByName('manu').AsString:=Fieldbyname('manufacturerid').asstring;
    query2.open;//找出所有产品ID和数量

   // if query2.RecordCount=0 then
   // break;
    query2.First;
    while not query2.Eof do
    begin //查销售单价
      query3.Close;
      query3.SQL.Clear;
      query3.SQL.Add('select sellprice from proddictionary where prodid=:id');
      query3.ParamByName('id').AsString:=query2.Fieldbyname('prodid').asstring;
      query3.open;
      //query3.First;
      per:=query2.Fieldbyname('number').asfloat;
      zjbl:=query3.Fieldbyname('sellprice').asfloat;
      zjbl:=zjbl*per;
      sum_hk:=sum_hk+zjbl;//计算本期货款
      sum_hk:=strtofloat(formatfloat('0.00',sum_hk));
      query2.Next;
    end; //查本月客户交款金额
      query4.Close;
    query4.SQL.Clear;
    query4.SQL.Add('SELECT sum(je) as bysk1 from prodzmb where khmc=:kh');
    query4.SQL.Add('and skrq>:from and skrq<=:to');
    query4.ParamByName('from').AsDate:=DateTimePicker_From.Date;
    query4.ParamByName('to').AsDate:=DateTimePicker_to.Date;
    query4.ParamByName('kh').asstring:=query1.fieldvalues['manufacturer'];
    query4.open;
    er:=query4.Fieldbyname('bysk1').asfloat;
    query3.Close;//查上月欠款
    query3.SQL.Clear;
    query3.SQL.Add('SELECT qk from syqk where khname=:kh and bdate=:from ');
    query3.ParamByName('from').AsDatetime:=zdyGetmaterCheckDate;
    query3.ParamByName('kh').asstring:=query1.fieldbyname('manufacturer').asstring;
    query3.open;
    //showmessage(floattostr(query3.Fieldbyname('qk').asfloat));
     table1.open;
      table1.insert;
    table1.FieldValues['syqk']:=query3.Fieldbyname('qk').asfloat;
    table1.FieldValues['manufacturer']:=query1.FieldValues['manufacturer'];
    //showmessage(floattostr(sum_hk));
    table1.Fieldbyname('byhk').asfloat:=sum_hk;
    table1.Fieldbyname('ysk').asfloat:=er;
    table1.Fieldbyname('qk').asfloat:=query3.Fieldbyname('qk').asfloat+sum_hk-er;
    table1.Post;
     table2.open;

    table2.append;
    table2.FieldByName('khname').asstring:=query1.Fieldbyname('manufacturer').asstring;
    //table2.FieldValues['khname']:=query1.FieldValues['manufacturer'];
   // table2.FieldValues['qk']:=query3.Fieldbyname('qk').asfloat+sum_hk-er;
    table2.FieldByName('qk').asfloat:=query3.Fieldbyname('qk').asfloat+sum_hk-er;
    table2.FieldByName('bdate').asdatetime:=form3.DateTimePicker_To.date;
    table2.Post;
    table2.close;
    //showmessage(query1.fieldvalues['manufacturer']);
    // end;
    query1.Next;

    end;
    end;
    table3.open;
    table3.append;
    table3.FieldByName('jzrq').asdatetime:=form3.DateTimePicker_To.date;
    table3.post;
    zdymaterCheckDiary(); //显示结帐日期表

    Panel2.caption:='只设截止日期';
      DateTimePicker_From.visible:=false;
      DateTimePicker_From.enabled:=false;
       Label1.caption:='上次结帐日期是'+datetostr( zdyGetmaterCheckDate);
       if  Panel2.caption='起始日期' then
       Label1.caption:='没结过帐,请输入结帐起始日期:';

       form5.Table1.Open;
        //hide;
    Form5.showmodal;
   // form3.visible:=false;

    // exit;
end;





procedure Tform3.BitBtn2Click(Sender: TObject);
begin
   frmProdStock.show;
    close;
end;

procedure Tform3.FormShow(Sender: TObject);
begin
    zdymaterCheckDiary(); //显示结帐日期表

    Panel2.caption:='只设截止日期';
      DateTimePicker_From.visible:=false;
      DateTimePicker_From.enabled:=false;
       Label1.caption:='上次结帐日期是'+datetostr( zdyGetmaterCheckDate);
       if  Panel2.caption='起始日期' then
       Label1.caption:='没结过帐,请输入结帐起始日期:';
    DateTimePicker_From.date :=date-30;
    DateTimePicker_To.date :=date;
end;

procedure Tform3.zdymaterCheckDiary();
var
  dDate:Tdate;
begin
  Listbox1.Clear;
  with table3 do
  begin
    open;
    first;
    while not eof do
    begin
      dDate:=fieldbyname('jzrq').asdatetime;
      listbox1.items.append(datetostr(dDate));
      next;
    end; //while
    close;
  end; //with

  listbox1.ItemIndex:=listbox1.Items.Count-1  ;

end;

procedure Tform3.Button1Click(Sender: TObject);
var
 dDate:Tdate;
 JLSumSys:TIniFile;
begin
  //===================================
// 修改 ProdCheckDiary最后一条记录
//===================================
   dDate:=zdyGetmaterCheckDate;





  with table3 do
  begin
    open;

    last;
      if recordcount = 0 then
    begin
     panel2.caption:='起始日期';
     Label1.caption:='没结过帐,请输入结帐起始日期:';
      DateTimePicker_From.visible:=true;
      DateTimePicker_From.enabled:=true;
      zdyGetmaterCheckDate;
      zdymaterCheckDiary;
    table3.close;
    exit;
    end;
    delete;
     with  query1 do
  begin
    close;
    sql.Clear;
    sql.Add('delete from syqk where bdate=:kh');
    ParamByName('kh').asdatetime:=dDate;
    execsql;
  end; //with
     if recordcount = 0 then
    begin
     panel2.caption:='起始日期';
     Label1.caption:='没结过帐,请输入结帐起始日期:';
      DateTimePicker_From.visible:=true;
      DateTimePicker_From.enabled:=true;
      zdyGetmaterCheckDate;
      zdymaterCheckDiary;
    table3.close;
    exit;
    end;
    zdymaterCheckDiary;//上次结帐日期
    close;
  end; //with //写入Ini文件  结账日期
   zdyGetmaterCheckDate; //显示修改后的日期
    Label1.caption:='上次结帐日期是'+datetostr( zdyGetmaterCheckDate);
   //dDate:=zdyGetmaterCheckDate; //显示修改后的日期

end;

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  frmProdStock.show;
end;

end.


⌨️ 快捷键说明

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