📄 main.pas
字号:
else
begin
panduan:=true;
tmpquery2.Next;
end;
end;
end;
if panduan=false then
begin}
if tmpQuery1.eof then
begin
showmessage('商品库中没有所销售商品的纪录,请检查');
Exit;
end;
if tmpquery2['orgtotal']<0 then
begin
wuliubiaoji:='退货';
wuliulaiyuan:='零售';
//strlcat(wuliumubiao,PChar(tmpquery2['dept']),2);
wuliumubiao:=tmpquery2['dept'];
end
else
begin
wuliubiaoji:='售出';
//strlcat(PChar(wuliumubiao),PChar(tmpquery2['dept']),2);
wuliulaiyuan:=tmpquery2['dept'];
wuliumubiao:='零售';
end;
jinjia:=tmpquery1['进价'];
shoujia:=tmpquery2['price'];
cbje:=floattostr(tmpquery2['num']*tmpquery1['进价']);
xsje:=(tmpquery2['num']*tmpquery2['price']);
tmpsql:='insert into goodsflowbase(品名,牌号,规格,分类编码,等级,物流方向标记,物流来源,';
tmpsql:=tmpsql+'物流目标,数量,单位,成本单价,销售单价,成本金额,销售金额,支付方式,操作员,操作日期,备注,保质期,部门编码,经手人,厂家代表,返货日期,修改纪录时间,条码,修改纪录日期)';
tmpsql:=tmpsql+' values('''+trim(tmpquery2['name'])+''''+',';
tmpsql:=tmpsql+''''+trim(tmpquery1['牌号'])+''',';
tmpsql:=tmpsql+''''+trim(tmpquery1['规格'])+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['code'])+''',';
tmpsql:=tmpsql+''''+trim(tmpquery1['等级'])+''',';
tmpsql:=tmpsql+''''+Trim(wuliubiaoji)+''',';
tmpsql:=tmpsql+''''+Trim(wuliulaiyuan)+''',';
tmpsql:=tmpsql+''''+Trim(wuliumubiao)+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['num'])+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['unit'])+''',';
tmpsql:=tmpsql+jinjia+',';
tmpsql:=tmpsql+shoujia+',';
tmpsql:=tmpsql+cbje+',';
tmpsql:=tmpsql+xsje+',';
{if (tmpquery2['pay1']<>null) and (tmpquery2['pay2']<>null) or (tmpquery2['pay1']<>null)and (tmpquery2['pay3']<>null) or (tmpquery2['pay1']<>null) and (tmpquery2['pay4']<>null) or (tmpquery2['pay2']<>null) and
(tmpquery2['pay3']<>null) or (tmpquery2['pay2']<>null)and (tmpquery2['pay4']<>null) or (tmpquery2['pay3']<>null)and (tmpquery2['pay4']<>null)or(tmpquery2['pay1']<>null)and (tmpquery2['pay2']<>null)and (tmpquery2['pay3']<>null)or
(tmpquery2['pay1']<>null)and (tmpquery2['pay2']<>null)and (tmpquery2['pay4']<>null)or(tmpquery2['pay2']<>null)and (tmpquery2['pay3']<>null) and (tmpquery2['pay4']<>null) or (tmpquery2['pay1']<>null) and (tmpquery2['pay2']<>null) and (tmpquery2['pay3']<>null) and (tmpquery2['pay4']<>null)
then tmpsql:=tmpsql+''''+trim('综合')+''','}
if tmpquery2['pay1']<>null then tmpsql:=tmpsql+''''+trim('现金')+''','
else if tmpquery2['pay2']<>null then tmpsql:=tmpsql+''''+trim('支票')+''','
else if tmpquery2['pay3']<>null then tmpsql:=tmpsql+''''+trim('信用卡')
else if tmpquery2['pay4']<>null then tmpsql:=tmpsql+''''+trim('其他方式')+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['saler'])+''',';
tmpsql:=tmpsql+''''+formatdatetime('20yy-mm-dd',tmpquery2['saledate'])+''',';
if tmpquery1['备注']=null then tmpsql:=tmpsql+'null,'
else tmpsql:=tmpsql+''''+trim(tmpquery1['备注'])+''',';
tmpsql:=tmpsql+'null,';
if tmpquery2['dept']=null then tmpsql:=tmpsql+'null,'
else tmpsql:=tmpsql+''''+trim(tmpquery2['dept'])+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['clerk'])+''',';
tmpsql:=tmpsql+'null,';
tmpsql:=tmpsql+'null,';
tmptime1:=tmpquery2.fieldbyname('saletime').asdatetime;
tmptime2:=inttostr(year)+'-'+inttostr(month)+'-'+inttostr(day);
tmpsql:=tmpsql+''''+formatdatetime('hh:mm:ss',tmptime1)+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['code'])+'''';
tmpsql:=tmpsql+''''+formatdatetime('yy-mm-dd',strtodatetime(tmptime2))+''')';
//tmpquery3:=tquery.Create(self);
//tmpquery3.Databasename:='guohua1';
with tmpquery3 do
begin
close;
sql.Clear;
sql.Add(tmpsql);
// showmessage(tmpsql);
prepare;
execsql;
end;
tmpquery2.Next;
end;
tmpsql:='select a=max(修改纪录时间) from goodsflowbase where 物流方向标记=''售出'' or 物流方向标记=''退货''';
tmpquery1:=tquery.Create(self);
tmpquery1.Databasename:='guohua1';
tmpquery1.Close;
tmpquery1.SQL.Clear;
tmpquery1.SQL.Add(tmpsql);
tmpquery1.Prepare;
tmpquery1.Open;
//if tmpquery1['a']=Null then showmessage('a');
tmpsql:='select b=max(修改纪录日期) from goodsflowbase where 物流方向标记=''售出'' or 物流方向标记=''退货''';
tmpquery3:=tquery.Create(self);
tmpquery3.Databasename:='guohua1';
tmpquery3.Close;
tmpquery3.SQL.Clear;
tmpquery3.SQL.Add(tmpsql);
tmpquery3.Prepare;
tmpquery3.Open;
tmpfile:=fillname;
tmpquery2:=tquery.create(self);
tmpquery2.Databasename:='E:\guohua\new\';
tmpsql:='select * from '''+tmpfile+''' where op='''+trim('.')+'''';
tmpquery2.close;
tmpquery2.SQL.Clear;
tmpquery2.SQL.Add(tmpsql);
tmpquery2.Prepare;
tmpquery2.open;
//formatdatetime('hh:mm:ss',tmpquery1['a']);
if tmpquery1['a']<>Null then
begin
//tmpquery2:=tquery.create(self); //打开该文件
//tmpquery2.Databasename:='E:\guohua\new\';
tmpsql:='select * from '+''+tmpfile+''+' where op='''+trim('.')+''' and saledate>'''+formatdatetime('mm/dd/yy',tmpquery3['b'])+'''';
tmpquery2.close;
tmpquery2.SQL.Clear;
tmpquery2.SQL.Add(tmpsql);
tmpquery2.Prepare;
tmpquery2.open;
end;
while not tmpquery2.Eof do
begin
tmpsql:='select * from goodsbase where 条码='''+tmpquery2['code']+'''';
tmpquery1:=tquery.Create(self);
tmpquery1.Databasename:='guohua1';
tmpquery1.Close;
tmpquery1.SQL.Clear;
tmpquery1.SQL.Add(tmpsql);
tmpquery1.Open;
{while not tmpquery2.Eof do //判断库中记录是否比当前纪录新
begin
panduan:=false;
if tmpquery1['条码']= null then break
else
begin
if tmpquery1['操作日期']>tmpquery2.fieldbyname('saledate').asdatetime then tmpquery2.Next
else
begin
if tmpquery1['操作日期']<tmpquery2.fieldbyname('saledate').asdatetime then tmpquery1.Next
else if (tmpquery1['操作日期']=tmpquery2.fieldbyname('saledate').asdatetime) and (tmpquery1['修改纪录时间']<tmpquery2.fieldbyname('saletime').asdatetime) then tmpquery1.Next
else
begin
panduan:=true;
tmpquery2.Next;
end;
end;
end;
if panduan=false then
begin}
if tmpQuery1.eof then
begin
showmessage('商品库中没有所销售商品的纪录,请检查');
Exit;
end;
if tmpquery2['orgtotal']<0 then
begin
wuliubiaoji:='退货';
wuliulaiyuan:='零售';
//strlcat(wuliumubiao,PChar(tmpquery2['dept']),2);
wuliumubiao:=tmpquery2['dept'];
end
else
begin
wuliubiaoji:='售出';
//strlcat(PChar(wuliumubiao),PChar(tmpquery2['dept']),2);
wuliulaiyuan:=tmpquery2['dept'];
wuliumubiao:='零售';
end;
jinjia:=tmpquery1['进价'];
shoujia:=tmpquery2['price'];
cbje:=floattostr(tmpquery2['num']*tmpquery1['进价']);
xsje:=(tmpquery2['num']*tmpquery2['price']);
tmpsql:='insert into goodsflowbase(品名,牌号,规格,分类编码,等级,物流方向标记,物流来源,';
tmpsql:=tmpsql+'物流目标,数量,单位,成本单价,销售单价,成本金额,销售金额,支付方式,操作员,操作日期,备注,保质期,部门编码,经手人,厂家代表,返货日期,修改纪录时间,条码,修改纪录日期)';
tmpsql:=tmpsql+' values('''+trim(tmpquery2['name'])+''''+',';
tmpsql:=tmpsql+''''+trim(tmpquery1['牌号'])+''',';
tmpsql:=tmpsql+''''+trim(tmpquery1['规格'])+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['code'])+''',';
tmpsql:=tmpsql+''''+trim(tmpquery1['等级'])+''',';
tmpsql:=tmpsql+''''+Trim(wuliubiaoji)+''',';
tmpsql:=tmpsql+''''+Trim(wuliulaiyuan)+''',';
tmpsql:=tmpsql+''''+Trim(wuliumubiao)+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['num'])+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['unit'])+''',';
tmpsql:=tmpsql+jinjia+',';
tmpsql:=tmpsql+shoujia+',';
tmpsql:=tmpsql+cbje+',';
tmpsql:=tmpsql+xsje+',';
{if (tmpquery2['pay1']<>null) and (tmpquery2['pay2']<>null) or (tmpquery2['pay1']<>null)and (tmpquery2['pay3']<>null) or (tmpquery2['pay1']<>null) and (tmpquery2['pay4']<>null) or (tmpquery2['pay2']<>null) and
(tmpquery2['pay3']<>null) or (tmpquery2['pay2']<>null)and (tmpquery2['pay4']<>null) or (tmpquery2['pay3']<>null)and (tmpquery2['pay4']<>null)or(tmpquery2['pay1']<>null)and (tmpquery2['pay2']<>null)and (tmpquery2['pay3']<>null)or
(tmpquery2['pay1']<>null)and (tmpquery2['pay2']<>null)and (tmpquery2['pay4']<>null)or(tmpquery2['pay2']<>null)and (tmpquery2['pay3']<>null) and (tmpquery2['pay4']<>null) or (tmpquery2['pay1']<>null) and (tmpquery2['pay2']<>null) and (tmpquery2['pay3']<>null) and (tmpquery2['pay4']<>null)
then tmpsql:=tmpsql+''''+trim('综合')+''','}
if tmpquery2['pay1']<>null then tmpsql:=tmpsql+''''+trim('现金')+''','
else if tmpquery2['pay2']<>null then tmpsql:=tmpsql+''''+trim('支票')+''','
else if tmpquery2['pay3']<>null then tmpsql:=tmpsql+''''+trim('信用卡')
else if tmpquery2['pay4']<>null then tmpsql:=tmpsql+''''+trim('其他方式')+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['saler'])+''',';
tmpsql:=tmpsql+''''+formatdatetime('20yy-mm-dd',tmpquery2['saledate'])+''',';
if tmpquery1['备注']=null then tmpsql:=tmpsql+'null,'
else tmpsql:=tmpsql+''''+trim(tmpquery1['备注'])+''',';
tmpsql:=tmpsql+'null,';
if tmpquery2['dept']=null then tmpsql:=tmpsql+'null,'
else tmpsql:=tmpsql+''''+trim(tmpquery2['dept'])+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['clerk'])+''',';
tmpsql:=tmpsql+'null,';
tmpsql:=tmpsql+'null,';
tmptime1:=tmpquery2.fieldbyname('saletime').asdatetime;
tmptime2:=inttostr(year)+'-'+inttostr(month)+'-'+inttostr(day);
tmpsql:=tmpsql+''''+formatdatetime('hh:mm:ss',tmptime1)+''',';
tmpsql:=tmpsql+''''+trim(tmpquery2['code'])+'''';
tmpsql:=tmpsql+''''+formatdatetime('yy-mm-dd',strtodatetime(tmptime2))+''')';
//tmpquery3:=tquery.Create(self);
//tmpquery3.Databasename:='guohua1';
with tmpquery3 do
begin
close;
sql.Clear;
sql.Add(tmpsql);
//showmessage(tmpsql);
prepare;
execsql;
end;
tmpquery2.Next;
end
end
else
begin
showmessage('没有今天的销售纪录');
exit;
end;
tmpquery2.Free;
tmpquery1.Free;
//tmpquery3.Free;
end;
procedure Tmainfm.SpeedButton32Click(Sender: TObject);
var
OpStruc:TSHFileOpStruct;
FromBuf,ToBuf:Array[0..128] of char;
present:tdatetime;
year,month,day:word;
fillname,fillname2,filldata,filldata2,laststr: string ;
begin
//copy 销售数据
present:=now;
DecodeDate(Present, Year, Month, Day);
filldata:=formatdatetime('yymmdd',now);
fillname2:='Xs'+filldata+'.dbf';
laststr:=copy(IntToStr(year),Length(IntToStr(year)),1);
filldata2:=formatdatetime('mmdd',now);
fillname:='Trd'+laststr+filldata2+'.1';
showmessage(fillname);
if FileExists(fillname2) then
begin
//删除旧文件
DeleteFile(fillname);
DeleteFile('Trd00'+inttostr(month)+inttostr(day)+'.2');
DeleteFile('Trd00'+inttostr(month)+'0'+inttostr(day)+'.2');
end;
FillChar(FromBuf,Sizeof(FromBuf),0);
FillChar(ToBuf,Sizeof(ToBuf),0);
StrPCopy(FromBuf,Pchar('\\server\posfile\posfile\*.*'));
StrPCopy(ToBuf,Pchar('e:\guohua\new\'));
with OpStruc do
begin
Wnd:=handle;
wFunc:=FO_COPY;
pFrom:=@FromBuf;
pTo:=@Tobuf;
fFlags:=FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
fAnyOperationsAborted:=False;
hNameMappings:=nil;
lpszProgressTitle:=nil;
end;
if SHFileOperation(OpStruc)=0 then
messageBox(Handle,'复制完毕。','信息',MB_OK+MB_ICONINFORMATION);
//转换二进制文件为*.dbf库//
winexec('E:\guohua\new\Exptrade.exe',1);
end;
procedure Tmainfm.SpeedButton30Click(Sender: TObject);
var
tmpquery2:tquery;
present,tmptime:tdatetime;
Year, Month, Day: Word;
tmpint:integer;
tmpsql,tmpfile,time,sday,filldata,fillname,sdate:string;
tmpbiaozhi:integer;
begin
present:=now;
DecodeDate(Present, Year, Month, Day);
filldata:=formatdatetime('yymmdd',now);
fillname:='Xs'+filldata+'.dbf';
{ if day<10 then sday:='0'+inttostr(day)
else sday:=inttostr(day); }
if fileexists(fillname) then
begin
//打开xs000***.dbf
tmpfile:=fillname;
tmpint:=queryrefresh['当前库存'];
tmpquery2:=tquery.create(self);
tmpquery2.Databasename:='E:\guohua\new\';
tmpsql:='select * from '''+tmpfile+''' where op<>'''+trim('T')+'''';
tmpquery2.close;
tmpquery2.SQL.Clear;
tmpquery2.SQL.Add(tmpsql);
tmpquery2.Prepare;
tmpquery2.open;
while not tmpquery2.Eof do
begin
//打开goodsbase
tmpsql:='select * from goodsbase where 条码='''+trim(tmpquery2['code'])+'''';
queryrefresh.close;
queryrefresh.SQL.Clear;
queryrefresh.SQL.Add(tmpsql);
queryrefresh.Prepare;
queryrefresh.open;
while not queryrefresh.Eof do
begin
present:=tmpquery2['saledate'];
DecodeDate(Present, Year, Month, Day);
sdate:=copy(IntToStr(year+100),3,2)+'/'+IntToStr(Month)+'/'+IntToStr(Day);
sdate:=sdate+' '+tmpquery2['saletime'];
//showmessage(datetimetostr(queryrefresh['最后更新日期']));
if datetimetostr(queryrefresh['最后更新日期'])<sdate then
begin
tmpint:=queryrefresh['当前库存'];
tmpint:=tmpint-strtoint(tmpquery2['num']);//得到差量
tmpsql:='update goodsbase set 当前库存='''+trim(inttostr(tmpint))+'''where 条码='''+trim(tmpquery2['code'])+'''';
tmpsql:=tmpsql+'update goodsbase set 最后更新日期='''+formatdatetime('yyyy-mm-dd hh:mm:ss',strtodatetime(sdate))+''' where 条码='''+trim(tmpquery2['code'])+'''';
with queryrefresh do
begin
close;
sql.clear;
sql.Add(tmpsql);
prepare;
execsql;
end;
end
else break;
end;
tmpquery2.Next;
end;
tmpsql:='select * from goodsbase';
queryrefresh.Close;
queryrefresh.SQL.Clear;
queryrefresh.SQL.Add(tmpsql);
queryrefresh.Prepare;
queryrefresh.Open
end
else
begin
showmessage('no file found!');
exit;
end;
end;
procedure Tmainfm.SpeedButton34Click(Sender: TObject);
begin
while Querysupplier.Eof do
begin
showmessage('供货商纪录为空,请输入纪录');
exit;
end;
application.CreateForm(tfrmaddnewgoods,frmaddnewgoods);
frmaddnewgoods.ShowModal;
end;
procedure Tmainfm.SpeedButton35Click(Sender: TObject);
var
tmpsql1,changjia:string;
tmpquery1:tquery;
begin
if MessageDlg('你确实想删除当前的这条纪录
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -