with CDS do begin
First;
while Not Eof do begin
i := i + 1;
if FieldbyName('ProdGoods').AsString = '' then Exit; //没有货品
if (FieldbyName('ProdQty').AsString = '') or (FieldbyName('ProdPrice').AsString = '') then Exit;
if FieldbyName('ProdQty').AsFloat<=0 then begin
Result:=0;
ShowMsg('请输入大于0的数量!');
Exit;
end;
if FieldbyName('ProdPrice').AsFloat<=0 then begin
Result:=0;
ShowMsg('请输入大于0的单价!');
Exit;
end;
if FieldbyName('ProdLine').AsString='' then begin
_Sql := 'Insert into VNO_PRO_DET(COMID,ProdProId,ProdLine,ProdGoods,ProdQty,ProdPrice,ProdrPrice'+
',ProdDisc,ProdAmt,ProdRe)'+
' Values(''' + p_comid + ''''+
','''+ FTableid + '''' +
',' + IntToStr(i) +
',''' + FieldbyName('ProdGoods').AsString + '''' +
',' + FieldbyName('ProdQty').AsString +
',' + FieldbyName('ProdPrice').AsString;
if FieldbyName('ProdrPrice').AsString = '' then
_Sql := _Sql + ',null'
else _Sql := _Sql + ','+FieldbyName('ProdrPrice').AsString;
if FieldbyName('ProdDisc').AsString = '' then
_Sql := _Sql + ',null'
else _Sql := _Sql + ',' + FieldbyName('ProdDisc').AsString;
_Sql := _Sql + ',' + FieldbyName('ProdAmt').AsString+
',''' + FieldbyName('ProdRe').AsString+''''+
')';
end
else begin
if FieldbyName('ProdLine').AsInteger=0 then begin
_Sql := 'Insert into VNO_PRO_DET(COMID,ProdProId,ProdLine,ProdGoods,ProdQty,ProdPrice,ProdrPrice'+
',ProdDisc,ProdAmt,ProdRe)'+
' Values(''' + p_comid + ''''+
','''+ FTableid + '''' +
',' + IntToStr(i) +
',''' + FieldbyName('ProdGoods').AsString + '''' +
',' + FieldbyName('ProdQty').AsString +
',' + FieldbyName('ProdPrice').AsString;
if FieldbyName('ProdrPrice').AsString = '' then
_Sql := _Sql + ',null'
else _Sql := _Sql + ','+FieldbyName('ProdrPrice').AsString;
if FieldbyName('ProdDisc').AsString = '' then
_Sql := _Sql + ',null'
else _Sql := _Sql + ',' + FieldbyName('ProdDisc').AsString;
_Sql := _Sql + ',' + FieldbyName('ProdAmt').AsString+
',''' + FieldbyName('ProdRe').AsString+''''+
')';
end
else begin
i := FieldbyName('ProdLine').AsInteger;
_Sql := 'update VNO_PRO_DET set ProdGoods = '''+FieldbyName('ProdGoods').AsString+''''+
',ProdQty = ' + FieldbyName('ProdQty').AsString+
',ProdPrice = ' + FieldbyName('ProdPrice').AsString;
if FieldbyName('ProdrPrice').AsString = '' then
_Sql := _Sql + ',ProdrPrice = null'
else _Sql := _Sql + ',ProdrPrice = '+FieldbyName('ProdrPrice').AsString;
if FieldbyName('ProdDisc').AsString = '' then
_Sql := _Sql + ',ProdDisc = null'
else _Sql := _Sql + ',ProdDisc = '+FieldbyName('ProdDisc').AsString;
_Sql := _Sql + ',ProdAmt = '+FieldbyName('ProdAmt').AsString+
',ProdRe = ''' + FieldbyName('ProdRe').AsString + ''''+
' where COMID = '''+ p_comid + ''''+
' and ProdProId = ''' + FieldbyName('ProdProId').AsString + ''''+
' and ProdLine = ' + FieldbyName('ProdLine').AsString;
end;
end; 运行的时候提示个 错误~~~~~~~~~~~~~说插入重复字段
谁帮忙检查一下~~
First;
while Not Eof do begin
i := i + 1;
if FieldbyName('ProdGoods').AsString = '' then Exit; //没有货品
if (FieldbyName('ProdQty').AsString = '') or (FieldbyName('ProdPrice').AsString = '') then Exit;
if FieldbyName('ProdQty').AsFloat<=0 then begin
Result:=0;
ShowMsg('请输入大于0的数量!');
Exit;
end;
if FieldbyName('ProdPrice').AsFloat<=0 then begin
Result:=0;
ShowMsg('请输入大于0的单价!');
Exit;
end;
if FieldbyName('ProdLine').AsString='' then begin
_Sql := 'Insert into VNO_PRO_DET(COMID,ProdProId,ProdLine,ProdGoods,ProdQty,ProdPrice,ProdrPrice'+
',ProdDisc,ProdAmt,ProdRe)'+
' Values(''' + p_comid + ''''+
','''+ FTableid + '''' +
',' + IntToStr(i) +
',''' + FieldbyName('ProdGoods').AsString + '''' +
',' + FieldbyName('ProdQty').AsString +
',' + FieldbyName('ProdPrice').AsString;
if FieldbyName('ProdrPrice').AsString = '' then
_Sql := _Sql + ',null'
else _Sql := _Sql + ','+FieldbyName('ProdrPrice').AsString;
if FieldbyName('ProdDisc').AsString = '' then
_Sql := _Sql + ',null'
else _Sql := _Sql + ',' + FieldbyName('ProdDisc').AsString;
_Sql := _Sql + ',' + FieldbyName('ProdAmt').AsString+
',''' + FieldbyName('ProdRe').AsString+''''+
')';
end
else begin
if FieldbyName('ProdLine').AsInteger=0 then begin
_Sql := 'Insert into VNO_PRO_DET(COMID,ProdProId,ProdLine,ProdGoods,ProdQty,ProdPrice,ProdrPrice'+
',ProdDisc,ProdAmt,ProdRe)'+
' Values(''' + p_comid + ''''+
','''+ FTableid + '''' +
',' + IntToStr(i) +
',''' + FieldbyName('ProdGoods').AsString + '''' +
',' + FieldbyName('ProdQty').AsString +
',' + FieldbyName('ProdPrice').AsString;
if FieldbyName('ProdrPrice').AsString = '' then
_Sql := _Sql + ',null'
else _Sql := _Sql + ','+FieldbyName('ProdrPrice').AsString;
if FieldbyName('ProdDisc').AsString = '' then
_Sql := _Sql + ',null'
else _Sql := _Sql + ',' + FieldbyName('ProdDisc').AsString;
_Sql := _Sql + ',' + FieldbyName('ProdAmt').AsString+
',''' + FieldbyName('ProdRe').AsString+''''+
')';
end
else begin
i := FieldbyName('ProdLine').AsInteger;
_Sql := 'update VNO_PRO_DET set ProdGoods = '''+FieldbyName('ProdGoods').AsString+''''+
',ProdQty = ' + FieldbyName('ProdQty').AsString+
',ProdPrice = ' + FieldbyName('ProdPrice').AsString;
if FieldbyName('ProdrPrice').AsString = '' then
_Sql := _Sql + ',ProdrPrice = null'
else _Sql := _Sql + ',ProdrPrice = '+FieldbyName('ProdrPrice').AsString;
if FieldbyName('ProdDisc').AsString = '' then
_Sql := _Sql + ',ProdDisc = null'
else _Sql := _Sql + ',ProdDisc = '+FieldbyName('ProdDisc').AsString;
_Sql := _Sql + ',ProdAmt = '+FieldbyName('ProdAmt').AsString+
',ProdRe = ''' + FieldbyName('ProdRe').AsString + ''''+
' where COMID = '''+ p_comid + ''''+
' and ProdProId = ''' + FieldbyName('ProdProId').AsString + ''''+
' and ProdLine = ' + FieldbyName('ProdLine').AsString;
end;
end; 运行的时候提示个 错误~~~~~~~~~~~~~说插入重复字段
谁帮忙检查一下~~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货