procedure TF_main.N14Click(Sender: TObject);
var
eclApp,workbook,range:variant;
sbtime:TDateTime;
v,Y5,Y10,Y15,Y50:string;//integer;
i,j:integer;
begin
{。 。 。 。 。 。}
with Dataff do
begin
sqaddr_sql.close();
sqaddr_sql.SQL.Clear;
sqaddr_sql.SQL.Add('select oper.bh,oper.name,oper.wdbh,oper.jb,sign.sbtime from sign,oper where oper.jb=:jb and oper.bh=:bh and sign.oper=oper.bh');
sqaddr_sql.Parameters.ParamByName('jb').value:=JB_user;
sqaddr_sql.Parameters.ParamByName('bh').value:=BH_user;
sqaddr_sql.Active:=true;
sqaddr_sql.open;
v:=trim(sqaddr_sql.fieldbyname('wdbh').asstring);
sbtime:=sqaddr_sql.fieldbyname('sbtime').value;
end;
//上个班结转
with dataff.kcsl_sql do
begin
close();
SQL.Clear;
SQL.text:='select sqaddr,guig,zpsl,kpsl from jbslb where sqaddr='+''''+v+''''+' group by sqaddr,guig,zpsl,kpsl';
open;
for i:=1 to dataff.kcsl_sql.RecordCount do
begin
dataff.kcsl_sql.RecNo:=i;//控制规格列表
if trim(dataff.kcsl_sql.FieldByName('guig').AsString)='YSP-5' then
begin
eclapp.cells[4,2].font.size:=15;
eclapp.cells[4,2]:=trim(dataff.kcsl_sql.FieldByName('zpsl').AsString);
eclapp.cells[4,3].font.size:=15;
eclapp.cells[4,3]:=trim(dataff.kcsl_sql.FieldByName('kpsl').AsString);
end;
end;
end;
//本班销售数量
with Dataff.gdb1_sql do
begin
begin
close();
SQL.Clear;
SQL.Add('select guig,sum(shl) as sl6 from sqfy where wcdate>='+QuotedStr(datetostr(sbtime))+' and wcdate<=GETDATE() and sqaddr='+''''+v+''''+' group by guig');
open;
end;
for i:=1 to gdb1_sql.RecordCount do
begin
gdb1_sql.RecNo:=i;
if trim(gdb1_sql.FieldByName('guig').AsString)='YSP-5' then
begin
gdb1_sql.RecNo:=i;
eclapp.cells[4,7].HorizontalAlignment:= xlCenter;
eclapp.cells[4,7].font.size:=15;
eclapp.cells[4,7]:=trim(gdb1_sql.FieldByName('sl6').AsString);
end; end;
end;
//本班销售回单
with Dataff.cust_sql do
begin
begin
close();
SQL.Clear;
SQL.Add('select sqfy.guig,sum(sqfy.shl) as sll6 from cust,sqfy where cust.time_i>='+QuotedStr(datetostr(sbtime))+' and cust.time_i<=GETDATE() and cust.gqzh=sqfy.gqzh and cust.sqaddr='+''''+v+''''+' group by sqfy.guig');
open;
end;
for i:=1 to cust_sql.RecordCount do
begin
cust_sql.RecNo:=i;
if trim(cust_sql.FieldByName('guig').AsString)='YSP-5' then
begin
cust_sql.RecNo:=i;
Y5:=trim(gdb1_sql.FieldByName('sll6').AsString);
eclapp.cells[4,8].HorizontalAlignment:= xlCenter;
eclapp.cells[4,8].font.size:=15;
eclapp.cells[4,8]:=Format('=G4-%d',[Y5]);
end; end;
end;
//本班移交
with dataff.kcsl_sql do
begin
close();
SQL.Clear;
SQL.text:='select sqaddr,guig,zpsl,kpsl from slb where sqaddr='+''''+v+''''+' group by sqaddr,guig,zpsl,kpsl';
open;
for i:=1 to dataff.kcsl_sql.RecordCount do
begin
dataff.kcsl_sql.RecNo:=i;//控制规格列表
if trim(dataff.kcsl_sql.FieldByName('guig').AsString)='YSP-5' then
begin
eclapp.cells[4,9].font.size:=15;
eclapp.cells[4,9]:=trim(dataff.kcsl_sql.FieldByName('zpsl').AsString);
eclapp.cells[4,10].font.size:=15;
eclapp.cells[4,10]:=trim(dataff.kcsl_sql.FieldByName('kpsl').AsString);
end;
end;
end; //保存上个班数据
with dataff.jbslb_sql do
begin
begin
Close();
SQL.Clear;
SQL.text:='select * from jbslb';
open;
end;
if ((dataff.jbslb_sql.RecordCount<>0) and (HoursBetween(now(), sbtime)>10)) or (dataff.jbslb_sql.RecordCount=0) then
begin
begin
Close();
SQL.Clear;
SQL.text:='delete from jbslb';
ExecSQL;
end;
begin
Close();
SQL.Clear;
SQL.text:='insert into jbslb select sqaddr,guig,zpsl,kpsl,'+QuotedStr(datetostr(sbtime))+','+QuotedStr(DateTimeToStr(Now))+' from slb group by sqaddr,guig,zpsl,kpsl';
ExecSQL;
end;
end;
end;
{。 。 。 。 。 。}
end;
end;运行提示错误:..."Could not convert variant of type (null) into type (Double)"...找不出原因,大家帮分析一下,谢谢!!
var
eclApp,workbook,range:variant;
sbtime:TDateTime;
v,Y5,Y10,Y15,Y50:string;//integer;
i,j:integer;
begin
{。 。 。 。 。 。}
with Dataff do
begin
sqaddr_sql.close();
sqaddr_sql.SQL.Clear;
sqaddr_sql.SQL.Add('select oper.bh,oper.name,oper.wdbh,oper.jb,sign.sbtime from sign,oper where oper.jb=:jb and oper.bh=:bh and sign.oper=oper.bh');
sqaddr_sql.Parameters.ParamByName('jb').value:=JB_user;
sqaddr_sql.Parameters.ParamByName('bh').value:=BH_user;
sqaddr_sql.Active:=true;
sqaddr_sql.open;
v:=trim(sqaddr_sql.fieldbyname('wdbh').asstring);
sbtime:=sqaddr_sql.fieldbyname('sbtime').value;
end;
//上个班结转
with dataff.kcsl_sql do
begin
close();
SQL.Clear;
SQL.text:='select sqaddr,guig,zpsl,kpsl from jbslb where sqaddr='+''''+v+''''+' group by sqaddr,guig,zpsl,kpsl';
open;
for i:=1 to dataff.kcsl_sql.RecordCount do
begin
dataff.kcsl_sql.RecNo:=i;//控制规格列表
if trim(dataff.kcsl_sql.FieldByName('guig').AsString)='YSP-5' then
begin
eclapp.cells[4,2].font.size:=15;
eclapp.cells[4,2]:=trim(dataff.kcsl_sql.FieldByName('zpsl').AsString);
eclapp.cells[4,3].font.size:=15;
eclapp.cells[4,3]:=trim(dataff.kcsl_sql.FieldByName('kpsl').AsString);
end;
end;
end;
//本班销售数量
with Dataff.gdb1_sql do
begin
begin
close();
SQL.Clear;
SQL.Add('select guig,sum(shl) as sl6 from sqfy where wcdate>='+QuotedStr(datetostr(sbtime))+' and wcdate<=GETDATE() and sqaddr='+''''+v+''''+' group by guig');
open;
end;
for i:=1 to gdb1_sql.RecordCount do
begin
gdb1_sql.RecNo:=i;
if trim(gdb1_sql.FieldByName('guig').AsString)='YSP-5' then
begin
gdb1_sql.RecNo:=i;
eclapp.cells[4,7].HorizontalAlignment:= xlCenter;
eclapp.cells[4,7].font.size:=15;
eclapp.cells[4,7]:=trim(gdb1_sql.FieldByName('sl6').AsString);
end; end;
end;
//本班销售回单
with Dataff.cust_sql do
begin
begin
close();
SQL.Clear;
SQL.Add('select sqfy.guig,sum(sqfy.shl) as sll6 from cust,sqfy where cust.time_i>='+QuotedStr(datetostr(sbtime))+' and cust.time_i<=GETDATE() and cust.gqzh=sqfy.gqzh and cust.sqaddr='+''''+v+''''+' group by sqfy.guig');
open;
end;
for i:=1 to cust_sql.RecordCount do
begin
cust_sql.RecNo:=i;
if trim(cust_sql.FieldByName('guig').AsString)='YSP-5' then
begin
cust_sql.RecNo:=i;
Y5:=trim(gdb1_sql.FieldByName('sll6').AsString);
eclapp.cells[4,8].HorizontalAlignment:= xlCenter;
eclapp.cells[4,8].font.size:=15;
eclapp.cells[4,8]:=Format('=G4-%d',[Y5]);
end; end;
end;
//本班移交
with dataff.kcsl_sql do
begin
close();
SQL.Clear;
SQL.text:='select sqaddr,guig,zpsl,kpsl from slb where sqaddr='+''''+v+''''+' group by sqaddr,guig,zpsl,kpsl';
open;
for i:=1 to dataff.kcsl_sql.RecordCount do
begin
dataff.kcsl_sql.RecNo:=i;//控制规格列表
if trim(dataff.kcsl_sql.FieldByName('guig').AsString)='YSP-5' then
begin
eclapp.cells[4,9].font.size:=15;
eclapp.cells[4,9]:=trim(dataff.kcsl_sql.FieldByName('zpsl').AsString);
eclapp.cells[4,10].font.size:=15;
eclapp.cells[4,10]:=trim(dataff.kcsl_sql.FieldByName('kpsl').AsString);
end;
end;
end; //保存上个班数据
with dataff.jbslb_sql do
begin
begin
Close();
SQL.Clear;
SQL.text:='select * from jbslb';
open;
end;
if ((dataff.jbslb_sql.RecordCount<>0) and (HoursBetween(now(), sbtime)>10)) or (dataff.jbslb_sql.RecordCount=0) then
begin
begin
Close();
SQL.Clear;
SQL.text:='delete from jbslb';
ExecSQL;
end;
begin
Close();
SQL.Clear;
SQL.text:='insert into jbslb select sqaddr,guig,zpsl,kpsl,'+QuotedStr(datetostr(sbtime))+','+QuotedStr(DateTimeToStr(Now))+' from slb group by sqaddr,guig,zpsl,kpsl';
ExecSQL;
end;
end;
end;
{。 。 。 。 。 。}
end;
end;运行提示错误:..."Could not convert variant of type (null) into type (Double)"...找不出原因,大家帮分析一下,谢谢!!
看你代码水知道你那个字段是double类型的?
自己调试一下呗
sbtime:TDateTime;sbtime:=sqaddr_sql.fieldbyname('sbtime').value;QuotedStr(datetimetostr(sbtime))SQL.Add('select * from cust where cust.time_i>='+QuotedStr(datetostr(sbtime));