Workbooks := TDispatchHelper.Create(app.PropertyGet('Workbooks', []));
Worksheets := TDispatchHelper.Create(Workbooks.InvokeMethod('Open', [edFile.Text]));
vSheet := TDispatchHelper.Create(Worksheets.PropertyGet('Worksheets', [1]));
for r := 5 to maxr - 1 do begin //每一行循环
Business.Forms.Forms.Application.ProcessMessages;
//单号
cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, 1]));
if cells.PropertyGet('value', []) <> nil then begin
if objecthelper.ToString(cells.PropertyGet('value', [])) <> '' then HideOrderNo := objecthelper.ToString(cells.PropertyGet('value', [])); //单号
end;
//单号
cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, 2]));
if cells.PropertyGet('value', []) <> nil then begin
orderno := objecthelper.ToString(cells.PropertyGet('value', []));
end;
//条码
cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, 3]));
if cells.PropertyGet('value', []) <> nil then begin
BoxCode := objecthelper.ToString(cells.PropertyGet('value', []));
end;
// 款号
cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, 4]));
if cells.PropertyGet('value', []) <> nil then begin
ProdCode := objecthelper.ToString(cells.PropertyGet('value', []));
end;
// 颜色
cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, 5]));
if cells.PropertyGet('value', []) <> nil then begin
ColorValue := objecthelper.ToString(cells.PropertyGet('value', []));
end;
// 交货时间
cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, DealCol]));
if cells.PropertyGet('value', []) <> nil then begin
//DealTime := objecthelper.ToString(cells.PropertyGet('value', []));
DealTime := FormatDateTime('yyyy-mm-dd', objecthelper.ToDelphiDateTime(cells.PropertyGet('value', []), 0));
end;
//该行的列循环开始
for c := 7 to DealCol - 1 do begin
cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, c]));
if cells.PropertyGet('value', []) <> nil then begin
sColValue := objecthelper.ToString(cells.PropertyGet('value', []));
end else sColValue := '';
if (sColValue <> '') and (sColValue <> '0') then begin
//配码
cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [3, c]));
if cells.PropertyGet('value', []) <> nil then begin
SizeRate := objecthelper.ToString(cells.PropertyGet('value', []));
end;
//配码率
cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [4, c]));
if cells.PropertyGet('value', []) <> nil then begin
MateRate := objecthelper.ToString(cells.PropertyGet('value', []));
end;
//数量
cells := TDispatchHelper.Create(vSheet.PropertyGet('Cells', [r, c]));
if cells.PropertyGet('value', []) <> nil then begin
MateNum := objecthelper.ToString(cells.PropertyGet('value', []));
end;
sqlStr := 'insert into SC_ORDERPRODUCEBOX(linksn,Meetcode,ProdCode,ColorValue,SizeRate,MateRate,qty,Unit,Barcode,DealTime,MateNum,Orderno,Rowno,nHideOrderNo)'+
' values('+Quotedstr(Business.System.JSCommon.CreateGUIDStr)+','+QuotedStr(MeetCode)+','+QuotedStr(ProdCode)+','+ QuotedStr(ColorValue)+','+
QuotedStr(SizeRate)+','+QuotedStr(MateRate)+','+MateNum+',''大件'','+QuotedStr(BoxCode)+','+
QuotedStr(DealTime)+',12,'+QuotedStr(orderno)+','+IntToStr(r)+','+QuotedStr(HideOrderNo)+')';
with qryTmp do begin
Close;
CommandText := sqlStr;
Execute;
end;
end;
end;
progbar.Position := progbar.Position + 1;
end;
那我每访问完一个都要(cells as System.IDisposable).Dispose; 吗? 有没有更好的办法。 |