AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.06.2010, 14:11   #1  
serbgush is offline
serbgush
Участник
 
9 / 10 (1) +
Регистрация: 05.06.2010
Записей в блоге: 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  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
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  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Ох, да вы не уйметесь А начальство тоже "хорошо" - им надо побыстрей коды заменить или протестировать вас как программера? Что-то не пойму..

Читайте повнимательнее свои предыдущие темы. Вам уже давался совет иного характера, чем генерирование 1380 строк для джоба:
Цитата:
Сообщение от Gustav Посмотреть сообщение
Можно еще освоить чтение из Excel, если вам более по душе цикл. Воспользуйтесь Вспомогательный класс для импорта из Excel через ADO или Импорт из 'офисной БД' (Excel, Access). Только времени займет больше, чем создание формулы в Excel, а результат будет тем же
И вопрос ваш должен звучать не как замена каких-то конкретных кодов чего-либо, а пошире, что-нибудь вроде "Чтение значения из Excel и запись его в таблицу Аксапты".

А если ссылки в цитате вас не устроят, то еще на Форуме существует поиск. Поищите по строке "Excel импорт".
За это сообщение автора поблагодарили: serbgush (1).
Старый 12.06.2010, 15:31   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от George Nordic Посмотреть сообщение
2. Скажите поточнее условия задачи - а где лежат данные с соответствием?
Джордж, пройди по моей ссылке - это тема уже в четвертый раз поднимается
Старый 12.06.2010, 15:49   #5  
serbgush is offline
serbgush
Участник
 
9 / 10 (1) +
Регистрация: 05.06.2010
Записей в блоге: 1
Коды IBAN на которые надо заменить банковский счёт клиента прислали в формате Excel из банка. В соответствии с этой таблицей надо выбрать поля из столбца IBAN и заменить этими полями запись AccountNum - банковский счёт сотрудника в общей таблице счетов emplBankAccount_RU
Старый 14.06.2010, 20:47   #6  
serbgush is offline
serbgush
Участник
 
9 / 10 (1) +
Регистрация: 05.06.2010
Записей в блоге: 1
IBAN
Уважаемый George Nordic я написал код как вы и посоветовали он откомпилировался без ошибок. Единственнственная проблема возникает в момент запуска . По моменту запуска выдается ошибка следующего содержания -
1.Невозможно выбрать запись
2.[Microsoft] [Драйвер ОDBCExcel].Недопустимое имя Worksheet1$. Проверьте, что оно не содержит недопустимые символы или знаки препинания, а также не является слишком длинным.
Помогите пожалуйста исправить ошибку.
Может как-то надо подготовить таблицу Excel.
Старый 15.06.2010, 13:36   #7  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от serbgush Посмотреть сообщение
Недопустимое имя Worksheet1$
Вместо Worksheet1 должно быть имя вашего листа Excel, содержащего данные. Если имя листа по умолчанию не изменялось, то у вас должно быть либо Sheet1, либо Лист1. Соответственно, в выражение SELECT подставляете либо [Sheet1$], либо [Лист1$].
Старый 15.06.2010, 13:39   #8  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Э... возможно, сначала надо правильно настроить ODBC. В нем создать соединение с источником типа xls и путь к файлу.

С Уважением,
Георгий

Upd: Часть темы вынесена в ветку Может не стоит мучиться, если вы не умеете программировать
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Счет фактура по строке общего журнала Starling DAX: Функционал 2 28.09.2011 18:31
Channel9: Peter Villadsen and Gustavo Plancarte: X++ to MSIL Blog bot DAX Blogs 30 24.08.2010 17:11
Счет и корр. счет не могут быть одинаковыми? Flomik DAX: Функционал 32 10.03.2010 10:19
Перечисление денег со счета банка на счет деньги в пути.Как правильно? Aquarius DAX: Функционал 1 13.04.2007 22:44
sp5. Возможность получить Корр.счет ГК попроводкам клиента/поставщика без извращений studentLPC DAX: Функционал 20 27.05.2003 13:55

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:28.