Документ пользовательский интерфейс с использованием QuantumGrid (TCXGRID) из Developer Express

StackOverflow https://stackoverflow.com/questions/1928321

  •  20-09-2019
  •  | 
  •  

Вопрос

Мне нужно сгенерировать пользовательский интерфейс для ввода документа продаж (например, счета -фактуры). Я пытаюсь использовать компоненты «разработчика Express», в частности, компонента QuantumGrid (TCXGRID). Я видел демонстрации компонентов Master-Detail и поиска в Центре поддержки DeVexPress, но ни одна из них не помогла мне, потому что все используют 2 сетки для обработки отношения мастер-дететаж и редактировать несколько записей одновременно.

Мне просто нужно отредактировать запись (документ) за раз и использовать пару компонентов DataWare объектов (например, TDBEDIT) в заголовке и сетку для обработки деталей.

что-то вроде этого

alt text

Где я могу найти базовый пример использования этих компонентов таким образом?

Это было полезно?

Решение

Свойства Master/Child в квантовой грандиозе в основном предназначены для гнезда нескольких элементов в сетке. Если вы настраиваете отношения в компонентах данных, вы можете просто подключить элементы управления к правильному источнику данных, и все будет работать.

Так что, если у вас есть два набора данных клиента и счета. Счет -фактор Master DataSource - это дат данных клиента. Затем на вашем редактировании вы указываете на дату данных клиента, и вы указываете сетку на дат данных.

Если вы подумаете о том, что отношения Master/Detail это делают, это действительно просто отфильтровывает записи в наборе данных Detail, чтобы соответствовать текущей записи в мастер -наборе данных. Индивидуальные элементы управления редактированием всегда будут отображать «текущую» запись в наборе данных, к которому они подключены. Сетки покажут все видимые записи в наборе данных, к которому они подключены.

Я имею тенденцию не использовать отношения мастера/детализации в форме редактирования, как вы показываете здесь. Я предполагаю, что на другом экране есть какой -то путь, чтобы выбрать счет для редактирования. Я обычно создаю копию необходимых наборов данных только с записями, необходимыми для этого редактирования. Если я редактирую существующий счет, я скопирую текущие записи. Если это новый счет, я могу начать с пустого набора записей. Это больше работы - у меня есть несколько общих библиотечных функций, которые скопируют структуру набора данных, а затем копируют один или несколько записей в этот набор данных. В зависимости от вашей настройки вы также можете запрашивать свою базу данных, чтобы просто получить интересные вам записи. Очевидно, что это не следует делать во всех случаях. Другая проблема с этим подходом - вам нужен способ обновить любые другие наборы данных, которые у вас могут быть с этими данными - т.е. ваш основной экран поиска.

Однако, как только я попаду на экран редактирования, я обнаружил, что это делает вещи Eaiser. Теперь мне не нужно беспокоиться о главных отношениях с деталями на верхнем уровне. Если счета -фактура имеет внутренние отношения мастера/детализации, вы можете просто с ними иметь дело, но вы знаете, что наборы данных имеют только данные для этого одного счета - не все в базе данных.

В случае вашей формы, если вы ограничиваете данные в наборах данных, вы можете просто подключить все напрямую, и это должно работать так, как вы ожидаете. У вас будет только одна запись в наборе данных клиента, и счета -фактуру будут иметь записи для этого счета.

Другие советы

Я думаю, что вам нужно позаботиться о отношениях с магистратурой в ваших компонентах ClientDataSource. Затем сетка будет следовать этому отношению.

Почему бы вам не спросить об этом по адресу support@devexpress.com?

Причина, по которой у меня есть подписка на VCL, это, кроме качества компонентов, конечно, потому что у них отличный сайт поддержки и персонал?

Там вы спрашиваете это напрямую людям, которые написали это, и они, скорее всего, рады предоставить вам образец программы (по крайней мере, я получил много образцов за эти годы).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top