当前位置: 代码迷 >> .NET相关 >> 求解析delphi里面的业务代码解决方案
  详细解决方案

求解析delphi里面的业务代码解决方案

热度:114   发布时间:2016-04-24 03:02:54.0
求解析delphi里面的业务代码
unit AsnImport1;
uses PubGrid1, PubDb1, PubComm1, PubExcel1;
{$R *.dfm}
{ TAsnImport }

procedure TAsnImport.Import;
var s1,s2,s3,s4,sql:String;
    E_App,E_Wb,E_Sheet:Variant;
    i1,i2,i3,i4:integer;
begin
  
  if pubexcel.OpenExcel.Execute then
  Begin
    s1:=pubexcel.OpenExcel.FileName;
    if s1<>'' then
    Begin
      self.Text_Clear;
//      sql:= 'Select distinct cast(null as   nvarchar2(50)) as ID, cast(null as nvarchar2(50)) as SKU,'+
//            ' cast(null as nvarchar2(50)) as SKU1, cast(null as NUMBER) as Qty, cast(null as nvarchar2(50)) as LOC,'+
//            ' cast(''0'' as nvarchar2(2)) as CheckSku, cast(''0'' as nvarchar2(2)) as CheckAltSku, cast(''0'' as nvarchar2(2)) as CheckLoc from tttuser ';
      sql := ' SELECT ''0'' AS ID , A.SKU AS SKU,A.DESCR AS SKU1,B.QTYEXPECTED AS QTY, '
         +' B.TOLOC AS LOC ,A.DESCR AS udf5,A.DESCR AS DepotCount, ''0'' AS CheckSku,''0'' AS CheckAltSku, ''0'' AS CheckLoc'
         +' FROM SKU A,receiptdetail B WHERE A.SKU = B.SKU AND 1 = 0 AND A.SKU =''A'' ';
      pubdb.DOpenGrid(Grid1,SQL);
  self.TextSetValue('TYPE','正常');
      //Grid1.DataSource.DataSet.Delete;
      try
        E_App := GetActiveOleObject('Excel.Application');
      except
        E_App := CreateOleObject('Excel.Application');
      end;
      E_Wb:=E_App.workbooks.open(s1);
      E_Sheet:=E_Wb.sheets[1];
      E_App.Visible:=True;

      s2:=E_Sheet.cells[4,2];
      self.TextSetValue('EXTERNKEY',s2);

      s2:=E_Sheet.cells[5,2];
      self.TextSetValue('VENDOR',s2);

      i1:=9;
      s2:=E_Sheet.cells[i1,1];

      while s2<>'' do
      Begin
        s3:=E_Sheet.cells[i1,6];
        if ((s3<>'') and (s3<>'0')) then
        Begin
          Grid1.DataSource.DataSet.Append;
          Grid1.DataSource.DataSet.FieldByName('ID').Value:=s2;
          s2:=E_Sheet.cells[i1,2];
          Grid1.DataSource.DataSet.FieldByName('SKU').Value:=s2;
          s2:=E_Sheet.cells[i1,3];
          Grid1.DataSource.DataSet.FieldByName('SKU1').Value:=s2;
          Grid1.DataSource.DataSet.FieldByName('QTY').Value:=strtoint(s3);
          s2:=E_Sheet.cells[i1,8];
          if s2='' then s2:='STAGE';
          Grid1.DataSource.DataSet.FieldByName('LOC').Value:=s2;
          s2:=E_Sheet.cells[i1,9];
          if trim(s2)='' then s2:=pubdb.DGetValue('Select UDF5 from altsku where sku='''+Grid1.DataSource.DataSet.FieldByName('SKU').AsString+
                ''' and vendor='''+TextGetValue('VENDOR')+''' ','');
          Grid1.DataSource.DataSet.FieldByName('UDF5').Value:=trim(s2);

          i2:=0;
          i3:=0;
          try
            i2:=strtoint(Grid1.DataSource.DataSet.FieldByName('QTY').AsString);
            i3:=strtoint(Grid1.DataSource.DataSet.FieldByName('udf5').AsString);
            if ((i2<=0) or (i3<=0)) then
              Grid1.DataSource.DataSet.FieldByName('DepotCount').Value:='0'
  相关解决方案