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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.04.2011, 19:15   #1  
GOL is offline
GOL
Участник
 
17 / 10 (1) +
Регистрация: 22.03.2011
Работа с tabpage и созданием новой записи
Здраствуйте, возникла проблема, есть простенькая форма с шапкой и строками. В строках есть 2 табпэйджа, под строками лежит 1 таблица, в каждом tabpage лежит по grid-у, и в каждом оторбажается по 2 поля одной записи. Как сделать так чтобы при нажатии СОЗДАТЬ НОВУЮ ЗАПИСЬ запись создавалась только в 1 гриде, а если надо то заходим во второй tabpage и нажимаем СОЗДАТЬ НОВУЮ ЗАПИСЬ и можем заполнить остальные 2 поля этой записи. Вроде так.
Старый 06.04.2011, 19:20   #2  
GOL is offline
GOL
Участник
 
17 / 10 (1) +
Регистрация: 22.03.2011
Вроде все должно одной строкой в initValue - DataSource проделываться
Старый 06.04.2011, 22:04   #3  
GOL is offline
GOL
Участник
 
17 / 10 (1) +
Регистрация: 22.03.2011
Помогите пожалуйста кто как может :-)
Старый 06.04.2011, 22:18   #4  
lagr221374
Гость
 
n/a
А не поделитесь сокровенным знанием в чем цель подобных манипуляций и изврата?


Просто если есть желание открывать для редактирования некие поля то городить подобное безнравственно так идет в разрез с общепринятыми способами решений подобных задач.
Старый 06.04.2011, 22:23   #5  
GOL is offline
GOL
Участник
 
17 / 10 (1) +
Регистрация: 22.03.2011
Я делаю это по заданию))) Мне и самому не понятно зачем так извращаться. Но сделать надо именно так. Пока что нашел такой вариант - скопировать таблицу еще раз в datasource т.е. для каждого грида у нас свой datasource которые в итоге ссылаются на одну и ту же запись в реальной таблице. Проблема в отображении, т.е. когда смотрю все записи в tabpage-ах, в одном вижу например 2 пустых поля 3 заполненых, в другом вижу 2 заполенных - 3 пустых. Вопрос как это убрать?
Старый 06.04.2011, 22:25   #6  
GOL is offline
GOL
Участник
 
17 / 10 (1) +
Регистрация: 22.03.2011
Если вас не затруднит можете рассказать этот общепринятый способ решения задач??)))))
Старый 06.04.2011, 22:30   #7  
lagr221374
Гость
 
n/a
Цитата:
Сообщение от GOL Посмотреть сообщение
Я делаю это по заданию)))
Сочувствую.

Цитата:
Сообщение от GOL Посмотреть сообщение
Мне и самому не понятно зачем так извращаться. Но сделать надо именно так. Пока что нашел такой вариант - скопировать таблицу еще раз в datasource т.е. для каждого грида у нас свой datasource которые в итоге ссылаются на одну и ту же запись в реальной таблице. Проблема в отображении, т.е. когда смотрю все записи в tabpage-ах, в одном вижу например 2 пустых поля 3 заполненых, в другом вижу 2 заполенных - 3 пустых. Вопрос как это убрать?
Ну вариантов можно придумать много: например отображать в одном гриде временную таблицу привязанную к таблице строк при записи в которую обновлять соответствущие поля.
Старый 06.04.2011, 22:32   #8  
GOL is offline
GOL
Участник
 
17 / 10 (1) +
Регистрация: 22.03.2011
Как сказал постановщик задачи, у тебя все правильно, теперь initValue DataSource надо 1 -2 строки дописать)))) Дополнение к пред. сообщению: не как это убрать, а как сделать так что бы в левом гриде отображались только 3 заполенные строки, а в правом соответсвенно 2 зап. строки)))) Вот
Старый 06.04.2011, 23:17   #9  
lagr221374
Гость
 
n/a
Цитата:
Сообщение от GOL Посмотреть сообщение
Если вас не затруднит можете рассказать этот общепринятый способ решения задач??)))))
Америки не открою: как общепринято смотрите на форме SalesTable и т.п.
Строки там просто строки в одном гриде а для заполнения разных полей служат дополнительные tabpage и никаких гридов там не видно.
Старый 06.04.2011, 23:18   #10  
GOL is offline
GOL
Участник
 
17 / 10 (1) +
Регистрация: 22.03.2011
Спасибо!
Старый 07.04.2011, 00:53   #11  
Geo is offline
Geo
Участник
Аватар для Geo
 
258 / 47 (2) +++
Регистрация: 04.04.2008
Может быть, надо фильтры наложить на датасорсы?
За это сообщение автора поблагодарили: S.Kuskov (1).
Старый 07.04.2011, 08:17   #12  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от GOL Посмотреть сообщение
Я делаю это по заданию))) Мне и самому не понятно зачем так извращаться. Но сделать надо именно так. Пока что нашел такой вариант - скопировать таблицу еще раз в datasource т.е. для каждого грида у нас свой datasource которые в итоге ссылаются на одну и ту же запись в реальной таблице. Проблема в отображении, т.е. когда смотрю все записи в tabpage-ах, в одном вижу например 2 пустых поля 3 заполненых, в другом вижу 2 заполенных - 3 пустых. Вопрос как это убрать?
При таком решении в данной ситуации в таблице строк у вас будет 5 строк. Две для одной вкладки и три для другой. Значения двух вкладок у вас не связаны друг с другом, а связаны только с таблицей шапок? Вас это устраивает? Т.е. я хочу сказать что ведь это равносильно использованию двух раздельных таблиц. А при решении с одной универсальной таблицей вы получаете ещё и избыточность, и геморой при отображении, но никаких преимуществ над вариантом с двумя таблицами.
Цитата:
Сообщение от GOL Посмотреть сообщение
Как сказал постановщик задачи, у тебя все правильно, теперь initValue DataSource надо 1 -2 строки дописать)))) Дополнение к пред. сообщению: не как это убрать, а как сделать так что бы в левом гриде отображались только 3 заполенные строки, а в правом соответсвенно 2 зап. строки)))) Вот
Наверное постановщик имел ввиду не initValue, а просто init. Обычно именно в нём накладываются необходимые фильтры. Как программно добавить к запросу фильтр вы знаете?
Старый 07.04.2011, 08:37   #13  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Ещё предположение. У вас обе вкладки должны содержать одинаковый по составу набор столбцов (с такими же типами и с такими же наименованиями)? Если так, то задача проясняется. Таблица строк у вас должна содержать один набор столбцов (в вашем случае это только два поля, а не четыре по два на каждую вкладку, как все подумали прочитав ваш вопрос). Одну и туже пару столбцов вы будете отображать как на первой вкладке так и на второй. Ещё в таблице нужно завести признак "тип строки" или "номер вкладки" или как хотите его называйте (обычно для таких целей используют перечисляемый тип - enum). После этого при помощи фильтров добиваетесь того, чтобы на каждой вкладке отображался только нужный тип строк. Готово. Если фильтры заданы правильно, то при добавлении очередной строки система сама заполнит признак "тип строки" в зависимости от того через грид с каким фильтром вы её вставляете (initValue трогать не нужно).
Старый 07.04.2011, 08:40   #14  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Я вот такой постановки вообще не понимаю. Сделали три строки на первом гриде и заполнили поля, идем на второй грид и хотим заполнить поля для второй строки - как это сделать? Т.е. даже если и реализуете отображение как хочет постановщик, то как будете делать выбор строки во втором гриде?

Поддерживаю коллег - так не делается в AX (да и вообще в нормальных системах). Об этом надо явно сказать постановщику.
__________________
Ivanhoe as is..
Старый 07.04.2011, 09:25   #15  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Я вот такой постановки вообще не понимаю.
Если моя догадка верна, то всё становиться на свои места. Авор просто коряво сформулировал задачу. Как я вижу, на самом деле по структуре таблица строк похожа на InventTableModule, где одни и теже поля используются для хранения настроек разных модулей. А у GOL строки разного типа но с одними и теми же полями. GOL, я прав?
Старый 07.04.2011, 09:34   #16  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Я вот такой постановки вообще не понимаю.
И я не понимаю. А вы можете, хотя бы на качественном уровне, описать бизнес-задачу? Без этого все в один голос будут вам рекомендовать убить ап стену постановщика и потребовать изменения ТЗ.
__________________
С уважением,
Вячеслав
Старый 07.04.2011, 10:41   #17  
GOL is offline
GOL
Участник
 
17 / 10 (1) +
Регистрация: 22.03.2011
Здраствуйте еще раз! Вообщем уточнил условия задачи. Таблица точно должна быть одна, это та которая под разными tabpage, в разных вкладках должны отображаться разные столбцы одной записи, т.е. их может быть и 5 и 10 и сколько угодно. Только должны отображаться они без пропусков т.е. у нас есть 3 строки, в одной заполнены первые 2 колонки, а в остальных две последние колонки. все эти 3 записи однозначно соответсвуют записи из шапки. Когда смотрим в 1 tabpage видим 1 строку из 2 полей заполненую, а во 2 tabpage только 2 строки, без пустых строк! Всем спасибо за внимание!
Старый 07.04.2011, 10:59   #18  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от GOL Посмотреть сообщение
Таблица точно должна быть одна
Это не обсуждается? Вы решаете выдуманную тестовую задачу? Или в этом есть какой-то смысл? Я же правильно вас понял, что каждая строчка должна отображаться только на одной из вкладок и никогда на обеих сразу. Так, как если бы это были бы две разные таблицы?

Цитата:
Сообщение от GOL Посмотреть сообщение
Когда смотрим в 1 tabpage видим 1 строку из 2 полей заполненую, а во 2 tabpage только 2 строки, без пустых строк!
Это называется фильтрация записей, когда нужно показывать не все записи, а только те, которые удовлетворяют какому-то условию. В чём у вас проблема? Вы не можете сформулировать (формализовать) условие фильтрации? Или Вы не можете его реализовать?

Как бы я решал подобную задачу? Я уже писал что в таких случаях обычно в таблице строк делают поле - тип строки, которое определяет на какой из вкладок должна отображаться эта конкретная строчка.

Последний раз редактировалось S.Kuskov; 07.04.2011 в 11:04.
За это сообщение автора поблагодарили: GOL (1).
Старый 07.04.2011, 11:07   #19  
GOL is offline
GOL
Участник
 
17 / 10 (1) +
Регистрация: 22.03.2011
Да, видимо задача тестовая. Её надо решать именно таким образом. Фильтровать надо пустые строки? т.е. если какие то 2 поля строки пустые то не отображать их? Как примерно выглядит такой фильтр, и мне кажется что это надо сделать в init методе DS?
Старый 07.04.2011, 11:12   #20  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Ответьте, все-таки на вопрос: как заполняются поля на разных вкладках? Или в форме только отображение, а заполнение полей происходит в другом месте?
__________________
Ivanhoe as is..
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Wizard для создания новой записи kitty DAX: Программирование 4 20.05.2008 01:15
Создание новой записи + Фильтр (3.0 SP5 KR2 SQL) polygris DAX: Программирование 7 03.01.2008 16:17
Добавление новой записи Gorlum DAX: Программирование 7 27.09.2006 09:36
Как при вводе новой записи установить значение поля по умолчанию Zman DAX: Программирование 3 17.01.2005 10:23
Автоматическое увеличение значения поля при создании новой записи. sguryev DAX: Программирование 3 06.02.2003 14:00

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

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

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