Пример импорта данных в справочник банковских учереждений на основе справочника банков программы "Бизнес Пак".
Источник: Форум Корпорации "Парус"
Пример импорта данных в справочник банковских учереждений на основе справочника банков программы "Бизнес Пак".
1) процедура на сервере create or replace procedure p_BnkSeek_p8xx_import ( --nCompany number, sIndex varchar2, -- почтовый индекс sTNP varchar2, -- тип нас.пункта sNMP varchar2, -- нас.пункт sAdress varchar2, -- адрес sTelef varchar2, -- телефоны sNameP varchar2, -- полное наименование sBIK varchar2, -- БИК 9-тизначный sOKPO varchar2, -- ОКПО sKSNP varchar2, -- корр.счет sRKC varchar2 -- БИК РКЦ ) is -- пока адрес не проверяется и не вводится -- nCompany number(17) := 1002; -- RN КОМПАНИИ nVersion pkg_std.tref; -- RN ВЕРСИИ nRnAL pkg_std.tref; -- RN Контрагента nCrnBank pkg_std.tref; -- RN каталога в контрагентах sCrnBank varchar2(160) :='Банки'; -- наименование каталога в контрагентах nRnAB pkg_std.tref; -- RN каталога в контрагентах nCrnAB pkg_std.tref; -- RN каталога в банк.учр. sCrnAB varchar2(160) :='Банковские учреждения'; -- наименование каталога в банк.учр. begin /* ишем версию для каталога в контрагентах */ find_version_by_company ( ncompany => nCompany, sunitcode => 'AGNLIST', nversion => nVersion ); /* ишем RN для каталога в контрагентах */ find_acatalog_name ( nflag_smart => 0, ncompany => nCompany, nversion => nVersion, sunitcode => 'AGNLIST', sname => sCrnBank, nrn => nCrnBank ); /* ишем версию для каталога в контрагентах */ find_version_by_company ( ncompany => nCompany, sunitcode => 'AGNBANKS', nversion => nVersion ); /* ишем RN для каталога в банк.учр. */ find_acatalog_name ( nflag_smart => 0, ncompany => nCompany, nversion => nVersion, sunitcode => 'AGNBANKS', sname => sCrnAB, nrn => nCrnAB ); /* попробуем найти в контрагентах */ find_agnlist_by_mnemo ( nflag_smart => 1, ncompany => nCompany, sagnabbr => sBIK, nrn => nRnAL ); if nRnAL is null then /* введем как контрагента */ p_agnlist_base_insert ( ncompany => nCompany, ncrn => nCrnBank, sagnabbr => sBIK, sagnname => sNameP, sorgcode => sOKPO, sphone => sTelef, nrn => nRnAL ); end if; /* попробуем найти в БАНКах */ find_agnbanks_agent ( nflag_smart => 1, ncompany => nCompany, sagent => sBIK, nrn => nRnAB ); if nRnAB is null then /* введем как БАНК */ p_agnbanks_base_insert ( ncompany => nCompany, ncrn => nCrnAB, sbankfcodeacc => sBIK, sbankacc => sKSNP, nagnrn => nRnAL, sswift => null, nrn => nRnAB ); end if; end;
2) VBscript Sub import_BNKSEEK() Set objDlg = CreateObject("MSComDlg.CommonDialog") objDlg.Filter = "BankSeek.dbf|bnkseek.dbf"' & strDesc & " (" & strExt & ")|" & strExt objDlg.DialogTitle = " Выберите файл " objDlg.FilterIndex = 1 objDlg.MaxFileSize = 260 objDlg.CancelError = True objDlg.FileName = "" objDlg.ShowOpen strFile = objDlg.FileName sTitle = " - "&objDlg.Filetitle 'Replace(objDlg.Filetitle, ".xls", "") Set objDlg = Nothing Set WshShell = CreateObject("WScript.Shell") If WshShell.AppActivate("Microsoft Excel" & titl) Then Set wBook = GetObject(strFile) xl_q = False Else Set XL = CreateObject("Excel.Application") Set wBook = XL.Workbooks.Open(strFile, 0, true) If wBook Is Nothing Then ' не верно был задан файл MsgBox " файл не выбран или не является книгой Excel" XL.Quit Set XL = Nothing End If xl_q = True End If set wSheet = wBook.WorkSheets("BNKSEEK") SheetsCount = wBook.WorkSheets.Count msgbox ("Ôàéë: "&sTitle&chr(13)) rowsCount = wSheet.UsedRange.Rows.Count msgbox (" Кол-во банков для импорта : "&RowsCount) '"Лист: "&wSheet&" "&chr(13)& nCount = 0 nCount2 = 0 for z=2 to rowsCount strA = wSheet.Cells(z,1).Value strB = wSheet.Cells(z,2).Value strC = wSheet.Cells(z,3).Value strD = wSheet.Cells(z,4).Value strE = wSheet.Cells(z,5).Value strF = wSheet.Cells(z,6).Value strG = wSheet.Cells(z,7).Value strH = wSheet.Cells(z,8).Value strI = wSheet.Cells(z,9).Value strJ = wSheet.Cells(z,10).Value strK = wSheet.Cells(z,11).Value strL = wSheet.Cells(z,12).Value strM = wSheet.Cells(z,13).Value strN = wSheet.Cells(z,14).Value strO = wSheet.Cells(z,15).Value strP = wSheet.Cells(z,16).Value strQ = wSheet.Cells(z,17).Value strR = wSheet.Cells(z,18).Value strS = wSheet.Cells(z,19).Value strT = wSheet.Cells(z,20).Value strU = wSheet.Cells(z,21).Value strV = wSheet.Cells(z,22).Value strW = wSheet.Cells(z,23).Value strX = wSheet.Cells(z,24).Value 'msgbox (strF&" "&strG&" "&strH&" "&strI&" "&strS&" "&strK&" "&strM&" "&strU&" "&strX&" "&strF ) if strM empty then StoredProc.StoredProcName = "P_BNKSEEK_P8XX_IMPORT" 'StoredProc.ParamByName("NCOMPANY").Value = 1002 StoredProc.ParamByName("SINDEX").Value = strF StoredProc.ParamByName("STNP").Value = strG StoredProc.ParamByName("SNMP").Value = strH StoredProc.ParamByName("SADRESS").Value = strI StoredProc.ParamByName("STELEF").Value = strS StoredProc.ParamByName("SNAMEP").Value = strK StoredProc.ParamByName("SBIK").Value = strM StoredProc.ParamByName("SOKPO").Value = strU StoredProc.ParamByName("SKSNP").Value = strX StoredProc.ParamByName("SRKC").Value = strF StoredProc.ExecProc nCount = nCount + 1 else nCount2 = nCount2 + 1 end if next msgbox (" Из файла : "&sTitle&chr(13)&" импортировано "&nCount&" строк !"&chr(13)&"Не перенесено "&nCount2&" строк !" ) xl.ActiveWorkbook.Close end sub
Источник: Форум Корпорации "Парус"
|