📄 upurpayment.pas
字号:
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 + -