12.06.2010, 14:11 | #1 |
Участник
|
Как преобразовать банковский счёт в код IBAN
Нужен код преобразующий банковский счёт в код IBAN, для 1380 клиентов. Начальство задало задание написать программу состоящую из нескольких строк кода. Программу можно было написать нагенерировав множество строк кода в Excel с последующей их вставкой в Джоб.
Им не понравилось, что надо много записей вставлять в Джоб, мол можно несколькими записями строк кода решить данную задачу. Фамилия № банковского счёта IBAN Агапов 1102030082856120 KZ110204F0345GF56745 Аглямов 1102030082856120 KZ110204F0345GF56746 Агапитов 1102030082856120 KZ110204F0345GF56747 Берковски 1102030082856120 KZ110204F0345GF56748 Богдаев 1102030082856120 KZ110204F0345GF56749 Предыдущий пример для одной записи выглядел так - static void Job 23(Args _args) { EmplBank Account_RU emplBankAccount_RU; ; update recordset emplBankAccount_RU setting AccountNum='KZ110204F0345GF56745' where emplBankAccount_RU.AccountNum=='1102030082856120'; } Уму не приложу как можно поменять значение несколькими строками кода. Помогите! Если не выполню то меня выгонят с работы. |
|
12.06.2010, 15:18 | #2 |
Модератор
|
1. Переименовал тему. Было "IBAN". Не очень информативно.
2. Скажите поточнее условия задачи - а где лежат данные с соответствием? 3. Можно посмотреть на лист Ёхеля, и по нему преобразовать. 3.1. Быстрый Excel 3.2. Как-то так: X++: static void GetDataFromExcel(Args _args) { OdbcConnection connection; Statement statement; ResultSet resultset; LoginProperty LP = new LoginProperty(); EmplBank Account_RU emplBankAccount_RU ; try { ttsbegin; LP.setDSN("Excel4"); //Имя соединения connection = new OdbcConnection(LP); statement = connection.createStatement(); resultset = statement.executeQuery ("SELECT * FROM [Worksheet1$]"); //имя листа while (resultset.next()) { //получаем необходимые данные из столбцов select forupdate emplBankAccount_RU where emplBankAccount_RU.AccountNum == resultset.getString(2) if(emplBankAccount_RU) { emplBankAccount_RU.AccountNum = resultset.getString(3); emplBankAccount_RU.update(); } } connection = NULL; ttscommit; } catch (Exception::Error) { connection = NULL; ttsAbort; } } |
|
|
За это сообщение автора поблагодарили: serbgush (1). |
12.06.2010, 15:27 | #3 |
Moderator
|
Ох, да вы не уйметесь А начальство тоже "хорошо" - им надо побыстрей коды заменить или протестировать вас как программера? Что-то не пойму..
Читайте повнимательнее свои предыдущие темы. Вам уже давался совет иного характера, чем генерирование 1380 строк для джоба: Цитата:
Сообщение от Gustav
Можно еще освоить чтение из Excel, если вам более по душе цикл. Воспользуйтесь Вспомогательный класс для импорта из Excel через ADO или Импорт из 'офисной БД' (Excel, Access). Только времени займет больше, чем создание формулы в Excel, а результат будет тем же
А если ссылки в цитате вас не устроят, то еще на Форуме существует поиск. Поищите по строке "Excel импорт". |
|
|
За это сообщение автора поблагодарили: serbgush (1). |
12.06.2010, 15:31 | #4 |
Moderator
|
|
|
12.06.2010, 15:49 | #5 |
Участник
|
Коды IBAN на которые надо заменить банковский счёт клиента прислали в формате Excel из банка. В соответствии с этой таблицей надо выбрать поля из столбца IBAN и заменить этими полями запись AccountNum - банковский счёт сотрудника в общей таблице счетов emplBankAccount_RU
|
|
14.06.2010, 20:47 | #6 |
Участник
|
IBAN
Уважаемый George Nordic я написал код как вы и посоветовали он откомпилировался без ошибок. Единственнственная проблема возникает в момент запуска . По моменту запуска выдается ошибка следующего содержания -
1.Невозможно выбрать запись 2.[Microsoft] [Драйвер ОDBCExcel].Недопустимое имя Worksheet1$. Проверьте, что оно не содержит недопустимые символы или знаки препинания, а также не является слишком длинным. Помогите пожалуйста исправить ошибку. Может как-то надо подготовить таблицу Excel. |
|
15.06.2010, 13:36 | #7 |
Moderator
|
Вместо Worksheet1 должно быть имя вашего листа Excel, содержащего данные. Если имя листа по умолчанию не изменялось, то у вас должно быть либо Sheet1, либо Лист1. Соответственно, в выражение SELECT подставляете либо [Sheet1$], либо [Лист1$].
|
|
15.06.2010, 13:39 | #8 |
Модератор
|
Э... возможно, сначала надо правильно настроить ODBC. В нем создать соединение с источником типа xls и путь к файлу.
С Уважением, Георгий Upd: Часть темы вынесена в ветку Может не стоит мучиться, если вы не умеете программировать |
|
|
|