Опытный
 
Профиль
Группа: Участник
Сообщений: 254
Регистрация: 23.12.2004
Репутация: нет Всего: 4
|
ну вот вся процедура только она длинновата. | Код | procedure TTableAccLoader.acOpenFileClientExecute(Sender: TObject); var APP:TExcelApplication; WorkBk : _WorkBook; WorkSheet : _WorkSheet; s:String; i: Integer; Err, Flag:Boolean; begin memAccLoader.Active:=False; memBankLoader.Active:=False; memNostra.Active:=False; memWrong.Active:=False; memAccLoader.Active:=True; memBankLoader.Active:=True; memNostra.Active:=True; memWrong.Active:=True; if (dlgOpenFile.Execute) and (dlgOpenFile.FileName<>'') then begin APP:=TExcelApplication.Create(Self); APP.Workbooks.Add(dlgOpenFile.FileName,0); APP.Connect; APP.DisplayAlerts[0] := False; WorkBk := APP.WorkBooks.Item[1]; memAccLoader.First; WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet; i:=3; Flag:=true; Application.ProcessMessages; while Flag do begin Inc(i); s:=Worksheet.Range['A'+IntToStr(i),'A'+IntToStr(i)].Value; if s='' then Break; memAccLoader.Insert; memAccLoader.FieldByName('Number').AsInteger:=StrToInt(s); memAccLoader.FieldByName('Name').AsString:=Worksheet.Range['B'+IntToStr(i),'B'+IntToStr(i)].Value; memAccLoader.FieldByName('AccNumber').AsInteger:=Worksheet.Range['C'+IntToStr(i),'C'+IntToStr(i)].Value; memAccLoader.FieldByName('BalNumber').AsInteger:=20002; memAccLoader.FieldByName('usd').AsCurrency:=Worksheet.Range['L'+IntToStr(i),'L'+IntToStr(i)].Value; memAccLoader.FieldByName('rur').AsCurrency:=Worksheet.Range['M'+IntToStr(i),'M'+IntToStr(i)].Value; memAccLoader.FieldByName('eur').AsCurrency:=Worksheet.Range['N'+IntToStr(i),'N'+IntToStr(i)].Value; memAccLoader.FieldByName('jpy').AsCurrency:=Worksheet.Range['O'+IntToStr(i),'O'+IntToStr(i)].Value; memAccLoader.FieldByName('byr').AsCurrency:=Worksheet.Range['P'+IntToStr(i),'P'+IntToStr(i)].Value; memAccLoader.FieldByName('dem').AsCurrency:=Worksheet.Range['Q'+IntToStr(i),'Q'+IntToStr(i)].Value; memAccLoader.FieldByName('gbp').AsCurrency:=Worksheet.Range['R'+IntToStr(i),'R'+IntToStr(i)].Value; memAccLoader.FieldByName('lvl').AsCurrency:=Worksheet.Range['S'+IntToStr(i),'S'+IntToStr(i)].Value; memAccLoader.FieldByName('chf').AsCurrency:=Worksheet.Range['T'+IntToStr(i),'T'+IntToStr(i)].Value; memAccLoader.FieldByName('czk').AsCurrency:=Worksheet.Range['U'+IntToStr(i),'U'+IntToStr(i)].Value; memAccLoader.FieldByName('aud').AsCurrency:=Worksheet.Range['V'+IntToStr(i),'V'+IntToStr(i)].Value; memAccLoader.FieldByName('zar').AsCurrency:=Worksheet.Range['W'+IntToStr(i),'W'+IntToStr(i)].Value; memAccLoader.FieldByName('cyp').AsCurrency:=Worksheet.Range['X'+IntToStr(i),'X'+IntToStr(i)].Value; memAccLoader.Post; end; WorkSheet := WorkBk.WorkSheets.Get_Item(4) as _WorkSheet; i:=2; Flag:=true; while Flag do begin Inc(i); Err:=False; s:=Worksheet.Range['A'+IntToStr(i),'A'+IntToStr(i)].Value; if s='' then Break; memAccLoader.Insert; memAccLoader.FieldByName('Number').AsInteger:=Worksheet.Range['A'+IntToStr(i),'A'+IntToStr(i)].Value; memAccLoader.FieldByName('Name').AsString:=Worksheet.Range['B'+IntToStr(i),'B'+IntToStr(i)].Value; memAccLoader.FieldByName('AccNumber').AsInteger:=Worksheet.Range['C'+IntToStr(i),'C'+IntToStr(i)].Value; try memAccLoader.FieldByName('BalNumber').AsInteger:=Worksheet.Range['D'+IntToStr(i),'D'+IntToStr(i)].Value; except memLog.Lines.Add('Неверный номер Балансового счёта у '+Worksheet.Range['B'+IntToStr(i),'B'+IntToStr(i)].Value); Err:=True; end; memAccLoader.FieldByName('usd').AsCurrency:=Worksheet.Range['E'+IntToStr(i),'E'+IntToStr(i)].Value; memAccLoader.FieldByName('rur').AsCurrency:=Worksheet.Range['F'+IntToStr(i),'F'+IntToStr(i)].Value; memAccLoader.FieldByName('eur').AsCurrency:=Worksheet.Range['G'+IntToStr(i),'G'+IntToStr(i)].Value; memAccLoader.FieldByName('jpy').AsCurrency:=Worksheet.Range['H'+IntToStr(i),'H'+IntToStr(i)].Value; memAccLoader.FieldByName('byr').AsCurrency:=Worksheet.Range['I'+IntToStr(i),'I'+IntToStr(i)].Value; memAccLoader.FieldByName('dem').AsCurrency:=Worksheet.Range['J'+IntToStr(i),'J'+IntToStr(i)].Value; memAccLoader.FieldByName('gbp').AsCurrency:=Worksheet.Range['K'+IntToStr(i),'K'+IntToStr(i)].Value; memAccLoader.FieldByName('lvl').AsCurrency:=Worksheet.Range['L'+IntToStr(i),'L'+IntToStr(i)].Value; memAccLoader.FieldByName('chf').AsCurrency:=Worksheet.Range['M'+IntToStr(i),'M'+IntToStr(i)].Value; memAccLoader.FieldByName('czk').AsCurrency:=Worksheet.Range['N'+IntToStr(i),'N'+IntToStr(i)].Value; memAccLoader.FieldByName('aud').AsCurrency:=Worksheet.Range['O'+IntToStr(i),'O'+IntToStr(i)].Value; memAccLoader.FieldByName('zar').AsCurrency:=Worksheet.Range['P'+IntToStr(i),'P'+IntToStr(i)].Value; memAccLoader.FieldByName('cyp').AsCurrency:=Worksheet.Range['Q'+IntToStr(i),'Q'+IntToStr(i)].Value; if not Err then memAccLoader.Post else memAccLoader.Delete; end; WorkSheet := WorkBk.WorkSheets.Get_Item(2) as _WorkSheet; i:=2; Flag:=true; while Flag do begin Inc(i); s:=Worksheet.Range['A'+IntToStr(i),'A'+IntToStr(i)].Value; if s='' then Break; memBankLoader.Insert; memBankLoader.FieldByName('Name').AsString:=Worksheet.Range['B'+IntToStr(i),'B'+IntToStr(i)].Value; memBankLoader.FieldByName('Acc').AsString:=Worksheet.Range['C'+IntToStr(i),'C'+IntToStr(i)].Value; memBankLoader.FieldByName('SWIFT').AsString:=Worksheet.Range['D'+IntToStr(i),'D'+IntToStr(i)].Value; memBankLoader.FieldByName('BIC').AsInteger:=Worksheet.Range['E'+IntToStr(i),'E'+IntToStr(i)].Value; memBankLoader.FieldByName('Address').AsString:=Worksheet.Range['I'+IntToStr(i),'I'+IntToStr(i)].Value; memBankLoader.FieldByName('Mail').AsString:=Worksheet.Range['H'+IntToStr(i),'H'+IntToStr(i)].Value; memBankLoader.FieldByName('City').AsString:=Worksheet.Range['J'+IntToStr(i),'J'+IntToStr(i)].Value; memBankLoader.FieldByName('Country').AsString:=Worksheet.Range['K'+IntToStr(i),'K'+IntToStr(i)].Value; memBankLoader.Post; end; WorkSheet := WorkBk.WorkSheets.Get_Item(3) as _WorkSheet; i:=2; Flag:=true; while Flag do begin Inc(i); s:=Worksheet.Range['A'+IntToStr(i),'A'+IntToStr(i)].Value; if s='' then Break; memNostra.Insert; memNostra.FieldByName('Name').AsString:=Worksheet.Range['B'+IntToStr(i),'B'+IntToStr(i)].Value; memNostra.FieldByName('Acc').AsString:=Worksheet.Range['C'+IntToStr(i),'C'+IntToStr(i)].Value; memNostra.FieldByName('INN').AsString:=Worksheet.Range['D'+IntToStr(i),'D'+IntToStr(i)].Value; memNostra.FieldByName('KPP').AsString:=Worksheet.Range['E'+IntToStr(i),'E'+IntToStr(i)].Value; memNostra.FieldByName('OpenDate').AsDateTime:=Worksheet.Range['F'+IntToStr(i),'F'+IntToStr(i)].Value; memNostra.FieldByName('Currency').AsString:=Worksheet.Range['G'+IntToStr(i),'G'+IntToStr(i)].Value; memNostra.FieldByName('Dest').AsString:=Worksheet.Range['H'+IntToStr(i),'H'+IntToStr(i)].Value; memNostra.FieldByName('BalAcc').AsString:=Worksheet.Range['J'+IntToStr(i),'J'+IntToStr(i)].Value; memNostra.FieldByName('Bal').AsString:=Worksheet.Range['K'+IntToStr(i),'K'+IntToStr(i)].Value; memNostra.FieldByName('SWIFT').AsString:=Worksheet.Range['L'+IntToStr(i),'L'+IntToStr(i)].Value; memNostra.FieldByName('BIC').AsString:=Worksheet.Range['M'+IntToStr(i),'M'+IntToStr(i)].Value; memNostra.Post; end; WorkSheet := WorkBk.WorkSheets.Get_Item(5) as _WorkSheet; i:=1; Flag:=true; while Flag do begin Inc(i); s:=Worksheet.Range['A'+IntToStr(i),'A'+IntToStr(i)].Value; if s='' then Break; memWrong.Insert; memWrong.FieldByName('Number').AsInteger:=Worksheet.Range['B'+IntToStr(i),'B'+IntToStr(i)].Value; memWrong.FieldByName('TheDate').AsDateTime:=Worksheet.Range['A'+IntToStr(i),'A'+IntToStr(i)].Value; memWrong.FieldByName('BankBik').AsString:=Worksheet.Range['C'+IntToStr(i),'C'+IntToStr(i)].Value; memWrong.FieldByName('Amount').AsCurrency:=Worksheet.Range['I'+IntToStr(i),'I'+IntToStr(i)].Value; memWrong.FieldByName('Currency').AsString:=Worksheet.Range['K'+IntToStr(i),'K'+IntToStr(i)].Value; memWrong.FieldByName('Details').AsString:=Worksheet.Range['L'+IntToStr(i),'L'+IntToStr(i)].Value; memWrong.FieldByName('NostroName').AsString:=Worksheet.Range['E'+IntToStr(i),'E'+IntToStr(i)].Value; memWrong.FieldByName('NostroNumber').AsString:=Worksheet.Range['F'+IntToStr(i),'F'+IntToStr(i)].Value; memWrong.FieldByName('Sender').AsString:=Worksheet.Range['G'+IntToStr(i),'G'+IntToStr(i)].Value; memWrong.FieldByName('SenderAcc').AsString:=Worksheet.Range['H'+IntToStr(i),'H'+IntToStr(i)].Value; memWrong.Post; end; APP.Quit; APP.Disconnect; APP.Free; end; end;
|
|