仓库管理系统,做入库登记时,我想让入库编号有一个固定的格式,如“RK-20100222-001”,前缀是RK(入库),中间为日期,最后为数字001,002,003逐渐递加。数据库中的入库编号字段名为StI_ID。现在我想的实现的是:单击增加按钮,在formshow时,将入库编号赋给edtStockInID.Text。如果不存在RK-20100222的记录,那么edtStockInID.Text就等于RK-20100222-001;如果存在RK-20100222的记录,那么就查找最大编号,然后edtStockInID.Text就等于最大编号加1。请问这个怎么实现?
现在程序能执行,但是每次formshow的时候,总提示错误“列名RK无效”。是不是这个符号‘-’有问题?我的代码有错误,请大家帮忙使劲修改,谢谢。 var
lDate , lBillNo : string;
lQry : TADOQuery; lQry := TADOQuery.Create(nil);
lQry.Connection := gADOConn;
lDate := FormatDateTime('yyyymmdd',date);
try
with lQry do
begin
Close;
SQL.Text := 'select StI_ID from TB_StockIn where left(StI_ID,11)='+'RK-'+lDate;
Open;
if IsEmpty then
begin
lBillNo :='001' ;
edtStockInID.Text :='RK-'+lDate+'-'+lBillNo;
end
else
begin
Close;
SQL.Text := 'select max(StI_ID) from TB_StockIn where left(StI_ID,11)='+'RK-'+lDate;
Open;
lBillNo := IntToStr(StrToInt(copy(Fields[0].AsString,4,8))+1);
case Length(lBillNo) of
1: edtStockInID.Text :='RK-'+lDate+'-'+'00'+lBillNo;
2: edtStockInID.Text :='RK-'+lDate+'-'+'0'+lBillNo;
3: edtStockInID.Text :='RK-'+lDate+'-'+lBillNo;
end;
end;
end;
finally
lQry.Free;
end;
现在程序能执行,但是每次formshow的时候,总提示错误“列名RK无效”。是不是这个符号‘-’有问题?我的代码有错误,请大家帮忙使劲修改,谢谢。 var
lDate , lBillNo : string;
lQry : TADOQuery; lQry := TADOQuery.Create(nil);
lQry.Connection := gADOConn;
lDate := FormatDateTime('yyyymmdd',date);
try
with lQry do
begin
Close;
SQL.Text := 'select StI_ID from TB_StockIn where left(StI_ID,11)='+'RK-'+lDate;
Open;
if IsEmpty then
begin
lBillNo :='001' ;
edtStockInID.Text :='RK-'+lDate+'-'+lBillNo;
end
else
begin
Close;
SQL.Text := 'select max(StI_ID) from TB_StockIn where left(StI_ID,11)='+'RK-'+lDate;
Open;
lBillNo := IntToStr(StrToInt(copy(Fields[0].AsString,4,8))+1);
case Length(lBillNo) of
1: edtStockInID.Text :='RK-'+lDate+'-'+'00'+lBillNo;
2: edtStockInID.Text :='RK-'+lDate+'-'+'0'+lBillNo;
3: edtStockInID.Text :='RK-'+lDate+'-'+lBillNo;
end;
end;
end;
finally
lQry.Free;
end;
改为
SQL.Text := 'select StI_ID from TB_StockIn where left(StI_ID,11)='''+'RK-'+''''+lDate;