📄 usale.pas
字号:
unit usale;
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, ComCtrls;
type
Tfrmsale = class(TfrmMDIbaseinfo)
Label7: TLabel;
Label8: TLabel;
Label6: TLabel;
CDSstore: TClientDataSet;
CDSstoreField: TStringField;
CDSmasterfid: TAutoIncField;
CDSmasterfresid: TIntegerField;
CDSmasterfrefno: TWideStringField;
CDSmasterfprovider: TWideStringField;
CDSmasterfsaleer: TWideStringField;
CDSmasterfdelivdate: TDateTimeField;
CDSmasterfnote: TWideStringField;
CDSmasterfcreadate: TDateTimeField;
CDSmasterfcreauser: TWideStringField;
CDSsubfid: TAutoIncField;
CDSsubfresid: TIntegerField;
CDSsubfitemid: TIntegerField;
CDSsubfamount: TFloatField;
OpenDialog1: TOpenDialog;
CDSsubcolorno: TStringField;
CDSsubgno: TStringField;
CDSsubfnote: TStringField;
CDSsubfcode: TStringField;
CDSsubfname: TStringField;
CDSsubfunit: TStringField;
CDSsubftype: TStringField;
CDSsubcolor: TStringField;
CDSsubzs: TStringField;
con1: TADOConnection;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
CDSsuboldfqty: TBCDField;
Query1: TQuery;
Query2: TQuery;
CDSsubfamt: TWideStringField;
CDSsubbt: TStringField;
frDBDataSet1: TfrDBDataSet;
CDSsubkhcode: TStringField;
CDSsubfqty: TFloatField;
CDSsubfprice: TFloatField;
CDSsubtotal: TFloatField;
CDSmasterfk: TStringField;
CDSmasterpz: TStringField;
CDSmasterbz: TStringField;
CDSmasterfsaleno: TWideStringField;
CDSsubchcode: TStringField;
CDSsubchname: TStringField;
wwDBDateTimePicker2: TwwDBDateTimePicker;
wwDBEdit6: TwwDBEdit;
ListBox1: TListBox;
CDSmasterfsalestore: TStringField;
Label5: TLabel;
Edit1: TEdit;
Label9: TLabel;
DateTimePicker1: TDateTimePicker;
Label10: TLabel;
wwDBEdit2: TwwDBEdit;
CDSmasterbc: TStringField;
Label11: TLabel;
Label12: TLabel;
wwDBEdit3: TwwDBEdit;
wwDBEdit4: TwwDBEdit;
wwDBEdit5: TwwDBEdit;
wwDBEdit7: TwwDBEdit;
wwDBEdit8: TwwDBEdit;
wwDBEdit9: TwwDBEdit;
Label13: TLabel;
Label14: TLabel;
CDSmasterhcode: TStringField;
CDSmasterchcode: TStringField;
CDSmasterchname: TStringField;
CDSmastertamt: TFloatField;
CDSmastertqty: TFloatField;
CDSmasterhname: TStringField;
N10: TMenuItem;
SpeedButton5: TSpeedButton;
wwDBEdit10: TwwDBEdit;
Label15: TLabel;
Query3: TQuery;
frDBDataSet2: TfrDBDataSet;
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 acaddExecute(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);
procedure bbEnter(Sender: TObject);
procedure bbChange(Sender: TObject);
procedure GridEnter(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure GridColEnter(Sender: TObject);
procedure acsearchExecute(Sender: TObject);
procedure aclineaddExecute(Sender: TObject);
procedure acdeleteExecute(Sender: TObject);
procedure accancelExecute(Sender: TObject);
procedure GridKeyPress(Sender: TObject; var Key: Char);
procedure acpriorExecute(Sender: TObject);
procedure bbKeyPress(Sender: TObject; var Key: Char);
procedure wwDBEdit3KeyPress(Sender: TObject; var Key: Char);
procedure wwDBEdit5KeyPress(Sender: TObject; var Key: Char);
procedure wwDBEdit8KeyPress(Sender: TObject; var Key: Char);
procedure wwDBEdit9KeyPress(Sender: TObject; var Key: Char);
procedure wwDBEdit3Enter(Sender: TObject);
procedure wwDBEdit3Change(Sender: TObject);
procedure wwDBEdit5Change(Sender: TObject);
procedure wwDBEdit5Enter(Sender: TObject);
procedure refnoEnter(Sender: TObject);
procedure wwDBEdit8Enter(Sender: TObject);
procedure wwDBEdit9Enter(Sender: TObject);
procedure refnoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure p03Execute(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure CDSmasterAfterOpen(DataSet: TDataSet);
procedure wwDBEdit3Exit(Sender: TObject);
procedure bbExit(Sender: TObject);
private
procedure creastoredata;
{ Private declarations }
public
{ Public declarations }
end;
var
frmsale: Tfrmsale;
implementation
uses usale_f, Global, data;
{$R *.dfm}
procedure Tfrmsale.CDSsubCalcFields(DataSet: TDataSet);
begin
inherited;
With CDSSub do
begin
fieldbyname('famount').AsFloat:=fieldbyname('fqty').AsFloat*
fieldbyname('fprice').AsFloat;
end;
end;
procedure Tfrmsale.creastoredata;
begin
with CDSstore do
begin
close;
FieldDefs.Add('选项',ftString,20);
CreateDataSet;
AppendRecord(['仓库1']);
AppendRecord(['仓库2']);
open;
end;
end;
procedure Tfrmsale.FormCreate(Sender: TObject);
begin
inherited;
titlecaption:='出货管理';
Maintable:='Tsale';
MainView:='Vsale';
SubTable:='Tsalesub';
Subview:='Vsalesub';
Searchfrm:=Tfrmsale_f;
frname:=gs_appPath+'\Prints\frsale.frf';
Keyfield:='fid';
if gs_bc='1' then
iBillTypeid:=3 else
iBillTypeid:=7;
end;
procedure Tfrmsale.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;
datetimepicker1.Date:=date;
end;
procedure Tfrmsale.GridColumns3EditButtonDown(Sender: TObject;
TopButton: Boolean; var AutoRepeat, Handled: Boolean);
begin
inherited;
Selectsub;
end;
procedure Tfrmsale.acsaveExecute(Sender: TObject);
var
ini:textfile;
s, cmdStr:string;
y1,m1,d1,yy,mm,dd:word;
begin
decodedate(gs_date,y1,m1,d1);
if cdsmaster['bz']='1' then
cdsmaster['tqty']:=0 else
cdsmaster['tamt']:=0;
with adoquery1 do
begin
sql.Clear;
sql.Add('select fname from titemtype where fcode=:fcode');
Parameters.ParamByName('fcode').Value:=wwdbedit5.text;
open;
if recordcount<=0 then
begin
application.MessageBox('无此车型资料,请检查!','系统提示',mb_ok);
exit;
end;
end;
////////////////////////
with adoquery1 do
begin
sql.Clear;
sql.Add('select fname from titem where fcode=:fcode');
Parameters.ParamByName('fcode').Value:=wwdbedit3.text;
open;
if recordcount<=0 then
begin
application.MessageBox('无此货品资料,请检查!','系统提示',mb_ok);
exit;
end;
end;
///////////////////////
with adoquery1 do
begin
sql.Clear;
sql.Add('select fname from tunit where fcode=:fcode');
Parameters.ParamByName('fcode').Value:=bb.text;
open;
if recordcount<=0 then
begin
application.MessageBox('无此客户资料,请检查!','系统提示',mb_ok);
exit;
end;
end;
with query2 do
begin
SQL.Clear;
SQL.Add('select * from tbilltype where (year(fdate)=:y1 and month(fdate)=:m1 and day(fdate)=:d1 and fid=:fid1) or (year(fdate)=:y2 and month(fdate)=:m2 and day(fdate)=:d2 and fid=:fid2)');
paramByName('y1').Asinteger:=y1;
paramByName('y2').Asinteger:=y1;
paramByName('m1').Asinteger:=m1;
paramByName('m2').Asinteger:=m1;
paramByName('d1').Asinteger:=d1;
paramByName('d2').Asinteger:=d1;
//gs_date;
ParamByName('fid1').AsInteger:=3;
ParamByName('fid2').AsInteger:=7;
open;
if recordcount<=0 then
begin
sql.clear;
SQL.Add('update tbilltype set finnumber=0,fdate=:fd,foutnumber=0 where fid=:fid1 or fid=:fid2');
paramByName('fd').Asdate:=gs_date;
ParamByName('fid1').AsInteger:=3;
ParamByName('fid2').AsInteger:=7;
ExecSQL;
end ;
end;
{ query2.SQL.Clear;
query2.SQL.Add('update tbilltype set fdate=:fd where fid=:fid');
query2.ParamByName('fd').AsDate:=workdate;
query2.ParamByName('fid').AsInteger:= iBillTypeid;
query2.ExecSQL;}
inherited;
cmdStr:='Insert into tptotal(fsid) values('+vartosql(inNumber)+')';
Execsql(cmdStr);
with query2 do
begin
sql.clear;
SQL.Add('update tbilltype set folddate=:fd where fid=:fid1 or fid=:fid2');
paramByName('fd').Asdate:=gs_date;
ParamByName('fid1').AsInteger:=3;
ParamByName('fid2').AsInteger:=7;
ExecSQL;
end ;
Getsqldata(CDSSub,Subview,keyField,'fResid = '+vartosql(cdsmaster.fieldbyname('fresid').Value),10000);
listbox1.Clear;
edit1.Enabled:=true;
datetimepicker1.Enabled:=true;
bb.Enabled:=false;
wwdbedit3.Enabled:=false;
wwdbedit5.Enabled:=false;
wwdbedit8.Enabled:=false;
wwdbedit9.Enabled:=false;
end;
procedure Tfrmsale.BitBtn1Click(Sender: TObject);
var
s,str1,str2,str3,str4:string;
i, ii,jj:integer;
ini:textfile;
Searcht, usercode:string;
begin
inherited;
s:=OpenDialog1.FileName;
if not FileExists(s) then //判断此文件是否存在
showmessage('该文件不存在')
else
begin
AssignFile(ini,s);
reset(ini);
CDSmaster.Append;
// i:=1;
while not eof(ini) do
begin
Readln(ini,usercode);
ii:=length(usercode);
jj:=Pos(',',usercode);
str1:=copy(usercode,1,jj-1);
/////////////////// str1
usercode:= copy(usercode,jj+1,ii-jj);
ii:=length(usercode);
jj:=Pos(',',usercode) ;
str2:=copy(usercode,1,jj-1);
////////////////////// str2
usercode:= copy(usercode,jj+1,ii-jj);
ii:=length(usercode);
jj:=Pos(',',usercode) ;
str3:=copy(usercode,1,jj-1);
/////////////////////////////str3
str4:= copy(usercode,jj+1,ii-jj);
///////////////////////////////////str4
spbtnadd.Click;
CdsSub.Append;
GetsqlData(CDSselectsub,'Vitem','fid','fcode='+vartosql(str1),1);
if CDSselectsub.RecordCount > 0 then
begin
// CDSsub['fid']:=i;
CDSsub['fitemid']:=CDSselectsub['fid'] ;
CDSsub['fcode']:=CDSselectsub['fcode'];
CDSsub['fname']:=CDSselectsub['fname'];
CDSsub['funit']:=CDSselectsub['funit'];
CDSsub['unitqty']:=CDSselectsub['unitqty'];
CDSsub['fqty'] :=strtofloat( str2);
CDSsub['total'] :=CDSselectsub['unitqty']*CDSsub['fqty'];
end;
Grid.SelectedIndex:=7;
//i:=i+1;
// CdsSub.FieldByName('fcode').AsString:=str1;
// CdsSub.FieldByName('fqty').AsString:=str2;
end;
CloseFile(ini);
end;
end;
procedure Tfrmsale.acaddExecute(Sender: TObject);
var
i:integer;
begin
inherited;
bb.Enabled:=true;
wwdbedit3.Enabled:=true;
wwdbedit5.Enabled:=true;
wwdbedit8.Enabled:=true;
wwdbedit9.Enabled:=true;
query1.SQL.clear;
query1.SQL.Add('select FNAME from TFULI');
query1.Open;
edit1.Enabled:=false;
datetimepicker1.Enabled:=false;
listbox1.Clear;
wwDBDateTimePicker2.Date:=global.gs_date;
wwDBDateTimePicker2.Time:=now;
wwDBDateTimePicker1.Date:=date;
wwDBDateTimePicker1.Time:=now;
cdsmaster['bc']:=Global.gs_bc;
cdsmaster['fcreauser']:=Global.gs_username;
cdsmaster['fcreadate']:=wwDBDateTimePicker1.DateTime;
cdsmaster['fdelivdate']:=wwDBDateTimePicker2.DateTime;
CDSmaster['fsalestore']:=query1.fieldbyname('FNAME').AsString;
listbox1.Clear;
with adoquery1 do
begin
sql.Clear;
sql.Add('select fname from tunit');
open;
end;
i:=1;
while not adoquery1.Eof do
begin
listbox1.Items.Add(inttostr(i)+'.'+adoquery1.fieldbyname('fname').value);
adoquery1.next;
i:=i+1;
end;
bb.SetFocus;
// wwDBLookupCombo1.Text:='亿溢';
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -