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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.07.2017, 16:22   #1  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от AfterEarth Посмотреть сообщение
Здравствуйте!
Искал поиском и в помощи, но ничего, кроме EvalBuf не нашёл, а он не работает с переменными.
Есть задача - сделать запрос с динамическими данными -выбирать значения из переменных для insert в зависимости от описания и имён полей, а также переменных по имени из таблицы.
Это выгрузки в различные форматы, чтобы не писать на каждую выгрузку свою функцию.

Что-то типа: "insert 'insert into tablename (FIELD1, FIELD2,etc..... VALUES (%1,%2,etc....),
EvalBuf('var1'),EvalBuf('var2'),etc....

Строковые значения для формирования строки запроса 'FIELD1', 'FIELD2', 'var1', "var2" берутся из таблицы, а сами переменные var1,var2 объявляются в классе

Заранее спасибо за ответ! Отблагодарю за реальную помощь!
А если будет копи-паст, то сколько этих функций? По-честному, а?
Старый 13.07.2017, 17:11   #2  
AfterEarth is offline
AfterEarth
Участник
 
12 / 10 (1) +
Регистрация: 13.07.2017
Адрес: Санкт-Петербург
Цитата:
Сообщение от ax_mct Посмотреть сообщение
А если будет копи-паст, то сколько этих функций? По-честному, а?
Уже "наколбашено" штук 15 и ещё 15 нужно, а потом будут ещё. Смысле копипаст делать? Не по программистки это :-/
Старый 13.07.2017, 18:58   #3  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от AfterEarth Посмотреть сообщение
Есть задача - сделать запрос с динамическими данными -выбирать значения из переменных для insert в зависимости от описания и имён полей, а также переменных по имени из таблицы.
Это выгрузки в различные форматы, чтобы не писать на каждую выгрузку свою функцию.
...
Уже "наколбашено" штук 15 и ещё 15 нужно, а потом будут ещё. Смысле копипаст делать? Не по программистки это :-/
Если вы сидите на клиенте как постоянный программист и просто от скуки извращаетесь, то конечно можно все.

Если вы же профессионал, то за такое программирование надо бить, а потом еще раз бить.
Это программизм небитого энтузиаста, а не программирование.
Если есть общее - выделите в родительский класс, если нет сделайте как набор статических методов.
Пусть их будет 50 методов или 50 классов - вам всем скажут только спасибо, а не будут проклинать.
За это сообщение автора поблагодарили: ta_and (4).
Старый 13.07.2017, 19:22   #4  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
Цитата:
Сообщение от ax_mct Посмотреть сообщение
за такое программирование надо бить, а потом еще раз бить.
Абсолютно согласен.
Извращаться для себя чисто в образовательном плане можно сколько угодно.
Но если это делать в рабочем приложении... то это жесть.

Попробуйте сделать нормальную постановку задачи и тогда будет видно грамотное архитектурное решение без всяких чесаний инсертов через ранбуф.

Последний раз редактировалось ta_and; 13.07.2017 в 19:24.
За это сообщение автора поблагодарили: ax_mct (5).
Старый 17.07.2017, 12:35   #5  
AfterEarth is offline
AfterEarth
Участник
 
12 / 10 (1) +
Регистрация: 13.07.2017
Адрес: Санкт-Петербург
Цитата:
Сообщение от ta_and Посмотреть сообщение
Абсолютно согласен.
Извращаться для себя чисто в образовательном плане можно сколько угодно.
Но если это делать в рабочем приложении... то это жесть.

Попробуйте сделать нормальную постановку задачи и тогда будет видно грамотное архитектурное решение без всяких чесаний инсертов через ранбуф.
  1. Есть N выгрузок файлов в разных форматах - DBF,TXT,XLS для клиентов
  2. Сейчас на каждую выгрузку своя процедура создания файла и вставки строки.
  3. Я переделываю на универсальную выгрузку по 3 типам - TXT, DBF, XLS
  4. Названия полей и их типы теперь в таблице БД и по именам полей создаются файлы с нужными именами и типами полей
Кроме самих полей есть ещё данные, которые выбираются в переменные класса
Нужно сопоставить в какое поле какой выгрузки выгружать данную переменную.
Пример:
Имена полей CODE, KOD, PR_CODE, Код товара должны заполняться из переменной productCode
Имена полей 'CODEKONT, K_CODE, Код контрагента должны заполняться из переменной clientCode
в зависимости от типа и формата выгрузки.
Нужна процедура, генерирующая запрос на вставку в файл с подстановкой полей и переменных класса, без описания через map, например, всех полей и переменных, как мне писали выше.
Пока придумал занести в таблицу кроме имён полей, типов и формата выгрузки ещё их физ смысл - код контрагента, код товара, производитель, etc. , а эти сущности описать в классе через map и подставлять из него.
Старый 18.07.2017, 14:40   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от AfterEarth Посмотреть сообщение
Нужна процедура, генерирующая запрос на вставку в файл с подстановкой полей и переменных класса, без описания через map, например, всех полей и переменных, как мне писали выше.
Присоединяюсь к предыдущим сообщениям о том, что Вы занимаетесь программированием ради программирования. У Вас сам подход к программированию не корректен. Даже в клиппере ТАК делать не стоит

На примере таблицы DBF имеем следующую задачу:

1. Есть таблица, структура которой в каждой конкретной выгрузке своя
2. Значения для заполнения полей в каждой конкретной выгрузке вычисляются по своему

Т.е. в каждой конкретной выгрузке Вы формируете уникальную (отличную от других выгрузок) команду INSERT-SQL.

Вы же хотите (точнее, к этому придете. Пока Вы это явно не сформулировали) вместо явного написания этой самой команды Insert-SQL сделать следующее

1. Организовать некие правила сопоставления полей и выражений для их вычисления (комплекс настроечных таблиц)
2. На основании этих правил "автоматически" конструировать команду Insert-SQL

Теоретически, это возможно. В Ax3.0 посмотрите функционал "Российской Финансовой Отчетности". Там выгрузка в Excel по именованным ячейкам, но, по сути, это мало чем отличается от того, что Вы хотите. Ну, и попробуйте настроить парочку отчетов в этом функционале. Причем вручную

Просто не стоит "овчинка выделки". Трудозатраты на создание и поддержание данного комплекса будут очень большие, а смысла особого нет
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 19.07.2017, 07:45   #7  
mdanko2000 is offline
mdanko2000
Участник
 
44 / 40 (2) +++
Регистрация: 21.04.2014
;)
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Просто не стоит "овчинка выделки". Трудозатраты на создание и поддержание данного комплекса будут очень большие, а смысла особого нет
Не соглашусь.
Для себя разрабатывали нечто подобное, выгружает в txt и xls. Другие форматы никого не интересовали. Базовый функционал был написан за 1 неделю, потом уже шло допиливание хотелок.
Здесь же не нужны сложные формы, структура всегда в виде таблицы. В экселе настраивать ничего не надо. Данные берутся из запроса, который настраивается визуально (пришлось допилить стандартный построитель, чтобы можно было указывать тип связи между таблицами).
Выбрали таблицы, указали связи, условия выборки, указали какие поля выводить и в какой последовательности. ВСЁ! Простейшая выгрузка настраивается за 5 минут.
Если запрос не устраивает можно выгрузить данные из класса возвращающего контейнер.
Старый 17.07.2017, 12:18   #8  
AfterEarth is offline
AfterEarth
Участник
 
12 / 10 (1) +
Регистрация: 13.07.2017
Адрес: Санкт-Петербург
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Если вы сидите на клиенте как постоянный программист и просто от скуки извращаетесь, то конечно можно все.

Если вы же профессионал, то за такое программирование надо бить, а потом еще раз бить.
Это программизм небитого энтузиаста, а не программирование.
Если есть общее - выделите в родительский класс, если нет сделайте как набор статических методов.
Пусть их будет 50 методов или 50 классов - вам всем скажут только спасибо, а не будут проклинать.
"Если вы же профессионал, то за такое программирование надо бить, а потом еще раз бить." - вот и я так -же решил и стал переделывать. Это до меня было сделано.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
где хранятся значения полей удаленных строк? chanchala DAX: Программирование 16 04.09.2008 10:45
Присвоение значения полю активной записи по его имени HorrR DAX: Программирование 9 06.06.2008 12:13
Теряются данные при переносе с 3-ки на 4-ку Stella DAX: Администрирование 8 20.02.2008 19:26
Как получить значения полей (modifiedDate, modifiedTime, modifiedBy и др.) при работе с объектами AOT типа Map? LRA DAX: База знаний и проекты 15 02.04.2007 13:37
Вставка значения container в план запроса SQL mit DAX: Программирование 4 24.11.2005 18:42
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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