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

📄 upurpayment.pas

📁 在打沙场用的最简单
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit upurpayment;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MDIbaseinfo, Menus, FR_Class, FR_DSet, FR_DBSet, DB, DBClient,inifileS,
  ImgList, ActnList, Grids, DBGridEh, wwdbdatetimepicker, StdCtrls, Mask,
  wwdbedit, Buttons, ExtCtrls, wwdblook, PDJComEdit,common, ADODB, DBTables,
  Wwdotdot, Wwdbcomb;

type
  Tfrmpurpayment = class(TfrmMDIbaseinfo)
    wwDBLookupCombo1: TwwDBLookupCombo;
    Label7: TLabel;
    wwDBDateTimePicker2: TwwDBDateTimePicker;
    Label8: TLabel;
    wwDBEdit4: TwwDBEdit;
    Label5: TLabel;
    Label6: TLabel;
    Label9: TLabel;
    wwDBEdit8: TwwDBEdit;
    CDSstore: TClientDataSet;
    CDSstoreField: TStringField;
    CDSmasterfid: TAutoIncField;
    CDSmasterfresid: TIntegerField;
    CDSmasterfrefno: TWideStringField;
    CDSmasterfsaleno: TWideStringField;
    CDSmasterfprovider: TWideStringField;
    CDSmasterfsaleer: TWideStringField;
    CDSmasterfdelivdate: TDateTimeField;
    CDSmasterfnote: TWideStringField;
    CDSmasterfcreadate: TDateTimeField;
    CDSmasterfcreauser: TWideStringField;
    CDSsubfid: TAutoIncField;
    CDSsubfresid: TIntegerField;
    CDSsubfitemid: TIntegerField;
    CDSsubfamount: TFloatField;
    BitBtn1: TBitBtn;
    OpenDialog1: TOpenDialog;
    PDJComEdit1: TPDJComEdit;
    CDSsubcolorno: TStringField;
    CDSsubgno: TStringField;
    CDSsubfnote: TStringField;
    CDSsubfcode: TStringField;
    CDSsubfname: TStringField;
    CDSsubfunit: TStringField;
    CDSsubftype: TStringField;
    CDSsubcolor: TStringField;
    CDSsubzs: TStringField;
    CDSmasterfsalestore: TStringField;
    con1: TADOConnection;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    ADOQuery3: TADOQuery;
    Label10: TLabel;
    wwDBEdit2: TwwDBEdit;
    CDSsuboldfqty: TBCDField;
    Query1: TQuery;
    Query2: TQuery;
    CDSsubfamt: TWideStringField;
    CDSsubbt: TStringField;
    frDBDataSet1: TfrDBDataSet;
    CDSsubkhcode: TStringField;
    CDSsubfqty: TFloatField;
    CDSsubfprice: TFloatField;
    CDSsubtotal: TFloatField;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    CDSmasterfk: TStringField;
    CDSmasterpz: TStringField;
    CDSmasterbz: TStringField;
    wwDBComboBox1: TwwDBComboBox;
    wwDBComboBox2: TwwDBComboBox;
    wwDBComboBox3: TwwDBComboBox;
    wwDBEdit3: TwwDBEdit;
    CDSmastermqty: TFloatField;
    procedure CDSsubCalcFields(DataSet: TDataSet);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure GridColumns3EditButtonDown(Sender: TObject;
      TopButton: Boolean; var AutoRepeat, Handled: Boolean);
    procedure acsaveExecute(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure PDJComEdit1ClickButton(Sender: TObject);
    procedure acaddExecute(Sender: TObject);
    procedure acdeleteExecute(Sender: TObject);
    procedure billnoExit(Sender: TObject);
    procedure GridColExit(Sender: TObject);
    procedure GridKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure p01Execute(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure acmodifyExecute(Sender: TObject);


  private
    procedure creastoredata;  
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmpurpayment: Tfrmpurpayment;

implementation

uses usale_f, Global, data;

{$R *.dfm}

procedure Tfrmpurpayment.CDSsubCalcFields(DataSet: TDataSet);
begin
  inherited;
  With CDSSub do
    begin
      fieldbyname('famount').AsFloat:=fieldbyname('fqty').AsFloat*
                              fieldbyname('fprice').AsFloat;
    end;
end;

procedure Tfrmpurpayment.creastoredata;
begin
  with CDSstore do
    begin
      close;
      FieldDefs.Add('选项',ftString,20);
      CreateDataSet;
      AppendRecord(['仓库1']);
      AppendRecord(['仓库2']);
      open;
    end;
end;

procedure Tfrmpurpayment.FormCreate(Sender: TObject);
begin
  inherited;
  titlecaption:='生产管理';
  Maintable:='Tsc';
  MainView:='Vsc';
  SubTable:='Tscsub';
  Subview:='Vscsub';
  Searchfrm:=Tfrmsale_f;
  frname:=gs_appPath+'\Prints\frsc.frf';
  Keyfield:='fid';
  iBillTypeid:=5;

end;

procedure Tfrmpurpayment.FormShow(Sender: TObject);
var
  s:string;
 ini:Tinifile;
  usercode:string;
  serverIP:string;
begin
  inherited;
  creastoredata;
  s:=Extractfilepath(application.ExeName);
  if s[length(s)]<>'\' then
    s:=s+'\'+'Default.ini'
    else
    s:=s+'Default.ini';
  try
    ini:=Tinifile.Create(s);
    serverIP:=ini.ReadString('ADO','FILE NAME','');
  finally
    ini.Free;
  end;

  if Serverip<>'' then
    con1.ConnectionString:='FILE NAME='+serverip
    else
    con1.ConnectionString:='FILE NAME=\kc.udl';
    con1.Connected:=true;
end;

procedure Tfrmpurpayment.GridColumns3EditButtonDown(Sender: TObject;
  TopButton: Boolean; var AutoRepeat, Handled: Boolean);
begin
  inherited;
  Selectsub;
end;

procedure Tfrmpurpayment.acsaveExecute(Sender: TObject);
var
ini:textfile;
s,  cmdStr:string;
yy,mm,dd:word;
begin
   decodedate(wwDBDateTimePicker2.Date,yy,mm,dd);
//////////////////////////////
    with query2 do
     begin
     SQL.Clear;
     SQL.Add('select ck from tpurreturnsub   where   ');
     sql.add('   fcode=:fcode   and years=:years and months=:months');
     ParamByName('fcode').asstring:=cdsmaster.fieldbyname('fsaleno').asstring;
     ParamByName('years').asinteger:=yy;
     ParamByName('months').asinteger:=mm;
     Open;
     end;

     if  query2.RecordCount>0 then
     begin
     with  query1 do
     begin
      if editstate=1 then
      begin
      SQL.Clear;
      SQL.Add('update  tpurreturnsub set fjqty=fjqty+:qty where   ');
      sql.add(' fcode=:fcode   and years=:years and months=:months');
      ParamByName('fcode').asstring:=cdsmaster.fieldbyname('fsaleno').asstring;
      ParamByName('qty').asfloat:=cdsmaster.fieldbyname('mqty').asfloat;
      ParamByName('years').asinteger:=yy;
      ParamByName('months').asinteger:=mm;
      execsql;
      end;
      if editstate=2 then
      begin
      SQL.Clear;
      SQL.Add('update  tpurreturnsub set fjqty=fjqty+:qty where   ');
      sql.add('  fcode=:fcode   and years=:years and months=:months');
      ParamByName('fcode').asstring:=cdsmaster.fieldbyname('fsaleno').asstring;
      ParamByName('qty').asfloat:=cdsmaster.fieldbyname('mqty').asfloat-strtofloat(bb.text);
      ParamByName('years').asinteger:=yy;
      ParamByName('months').asinteger:=mm;
      execsql;

      end;
     end;
     end else
     begin
     with   query1 do
     begin
      sql.clear;
      sql.Add('insert into tpurreturnsub(funit,ftype,fcode,fjqty,years,months) values (:funit,:ftype,:fcode,:fjqty,:years,:months)');
      ParamByName('fcode').asstring:=cdsmaster.fieldbyname('fsaleno').asstring;
//      ParamByName('fname').asstring:=cdsmaster.fieldbyname('fprovider').asstring;
      ParamByName('funit').asstring:=wwdbcombobox3.Text;
      ParamByName('ftype').asstring:=wwdbcombobox2.Text;
      ParamByName('fjqty').asfloat:=cdsmaster.fieldbyname('mqty').asfloat;
    //  ParamByName('pno').asstring:=billno.Text;
      ParamByName('years').asinteger:=yy;
      ParamByName('months').asinteger:=mm;
      execsql;
    //  showmessage('bbbbbbbb');
     end;
     end;

/////////////////     主单结束
   with  query2 do
     begin
     SQL.Clear;
     sql.add(' select  fcode ');
     sql.add('  from  titem ');
     sql.add(' where  fcode=:fcode ');
     ParamByName('fcode').asstring:=billno.Text;
     Open;
     if recordcount<=0 then
     with  query1 do
      begin
      SQL.Clear;
      SQL.Add('insert into titem(fcode,funit,ftype)');
      sql.add(' values(:fcode,:funit,:ftype )');
      ParamByName('fcode').asstring:=billno.Text;
      ParamByName('funit').asstring:=wwdbcombobox3.Text;
      ParamByName('ftype').asstring:=wwdbcombobox2.Text;
      execsql;
      end;
     end;

   cdssub.DisableControls;
   CDSsub.First;
   while not CDSsub.eof do
   begin
     with query2 do
     begin
     SQL.Clear;
     SQL.Add('select ck from tpurreturnsub   where  ');
     sql.add('   fcode=:fcode   and years=:years and months=:months');
     ParamByName('fcode').asstring:=cdssub.fieldbyname('fcode').asstring;
     ParamByName('years').asinteger:=yy;
     ParamByName('months').asinteger:=mm;
     Open;
     end;

     if  query2.RecordCount>0 then
     begin
     with  query1 do
     begin
      if editstate=1 then
      begin
      SQL.Clear;
      SQL.Add('update  tpurreturnsub set fcqty=fcqty+:qty where  ');
      sql.add(' fcode=:fcode   and  years=:years and months=:months');
      ParamByName('fcode').asstring:=cdssub.fieldbyname('fcode').asstring;
      ParamByName('qty').asfloat:=cdssub.fieldbyname('fqty').asfloat;
      ParamByName('years').asinteger:=yy;
      ParamByName('months').asinteger:=mm;
      execsql;
      end;
      if editstate=2 then
      begin
      SQL.Clear;
      SQL.Add('update  tpurreturnsub set fcqty=fcqty+:qty where  ');
      sql.add('  fcode=:fcode   and years=:years and months=:months');
      ParamByName('fcode').asstring:=cdssub.fieldbyname('fcode').asstring;
      ParamByName('qty').asfloat:=cdssub.fieldbyname('fqty').asfloat-cdssub.fieldbyname('oldfqty').asfloat;
      ParamByName('years').asinteger:=yy;
      ParamByName('months').asinteger:=mm;
      execsql;

      end;
     end;
     end else
     begin
     with   query1 do
     begin
      sql.clear;
      sql.Add('insert into tpurreturnsub(funit,ftype,fresid,fcode,fcqty,years,months) values (:funit,:ftype,1,:fcode,:fcqty,:years,:months)');

⌨️ 快捷键说明

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