Передача пользовательского параметра на экран в Lightswitch

У меня есть таблица "Счета" и таблица "Чеки". У меня есть экран для создания счетов и экран для создания чеков. На экране чеков у меня есть кнопка «Выбрать счета». При нажатии на кнопку откроется экран «Счета», чтобы пользователь мог выбрать счета для добавления к текущему чеку.

На экране «Счета» я добавил командную кнопку «Добавить в чек», поэтому, когда пользователь нажимает кнопку, счет добавляется в чек.

Вот скриншот экрана счетов.

введите здесь описание изображения

Вопросы:

  1. Является ли этот подход правильным? Я имею в виду, есть ли лучший способ добавить счета в чек?
  2. Если это правильный путь, то как я могу передать текущий экземпляр проверки на экран «Счета», чтобы я мог заполнить свойство «Проверки» в таблице «Счета»?

person Michelle    schedule 20.11.2012    source источник


Ответы (2)


Насколько я понимаю, у вас есть два экрана: экран счетов и экран чеков. Я бы предложил следующие шаги:

  1. Создайте свойство checkId на экране «Счета»
  2. Отметьте свойство checkId как параметр экрана.
  3. Когда вы нажимаете кнопку и переходите к экрану «Счета», передайте идентификатор выбранного чека.
  4. В созданном событии экрана «Счета» обработайте свойство checkId.
  5. Вы можете загрузить объект проверки, а затем использовать этот объект для заполнения свойства Checks.
person Bryan Hong    schedule 22.11.2012
comment
То, что вы предлагаете, - это решение, которое я использовал для решения проблемы. Но я хочу знать, возможно ли передать текущий объект проверки на экран счета-фактуры, потому что, как вы предлагаете, я должен сохранить () чек, прежде чем передавать его в качестве параметра, потому что, если пользователь создает новый чек, я не есть идентификатор, поэтому я должен сохранить его, чтобы получить идентификатор. - person Michelle; 22.11.2012
comment
Да, при таком подходе вам придется сначала сохранить чек, чтобы получить идентификатор. другой способ — вместо перенаправления на новый экран вы можете использовать модальное окно. Или используйте вкладки, как предложил Янн :) - person Bryan Hong; 23.11.2012

  1. Да, это хороший подход
  2. Судя по вашему дизайну экрана, я не вижу необходимости открывать экран счета, когда вы нажимаете кнопку.

Все, что вам нужно сделать, это:

ВБ:

Private Sub ButtonName_Execute
    If (Me.Invoices.SelectedItem Is Nothing) Then Return

    Me.Invoices.SelectedItem.Check = Me.CheckProperty
End Sub

С#:

private void ButtonName_Execute()
{
    if (this.Invoices.SelectedItem == null) { return; }

    this.Invoices.SelectedItem.Check = this.CheckProperty;
}

Предполагается, что коллекция Listado de Ofertas/Facturas называется Invoices, если это что-то другое (например, Facturas, просто замените фактическое имя коллекции.То же самое с именем CheckProperty, просто подставьте фактическое имя свойства Check, к которому привязан экран.

person Yann Duran    schedule 22.11.2012
comment
Экран, который вы видите на снимке экрана, — это экран «Счета», и на нем есть список счетов, которые соответствуют условию фильтра, фильтр находится в верхней части экрана, а кнопка Buscar означает «Поиск», поэтому, как только вы нажмете кнопку «Поиск», он перечислит все Счета, соответствующие условию фильтра. Таким образом, пользователь может нажать кнопку Agregar (Добавить), и счет-фактура будет добавлен к выбранному чеку на экране чеков. Продолжение в следующем комментарии... - person Michelle; 22.11.2012
comment
Экран с чеками — это другая вкладка Crear Cheque. В Screen Crear Check есть кнопка, при нажатии которой открывается этот экран «Счета» (то, что вы видите на скриншоте). То, что вы предлагаете, это то, что я хочу, но я не знаю, как получить текущий объект на экране «Проверки» с экрана «Счета». - person Michelle; 22.11.2012
comment
Ах, извините, я не понял, что счета-фактуры не были на том же экране, что и сам чек. Я бы сделал две вкладки на экране «Проверка», одну со списком неназначенных в настоящее время счетов-фактур (на выбор), другую со счетами-фактурами, назначенными для проверки, тогда все работало бы так, как я показал в образец кода. Вы можете сделать это с ними на разных экранах, но это может немного запутать. Дайте мне знать, подходит ли вам то, что я только что предложил, или вы хотите сделать это более запутанным способом. - person Yann Duran; 23.11.2012
comment
Я согласен с вами в том, что размещение счетов-фактур на отдельном экране немного запутанно, но мне нужно добавить фильтр в верхней части экрана, чтобы отображались только отфильтрованные счета-фактуры, потому что их могут быть тысячи. Еще один способ, которым я думал, - иметь модальное окно на экране чеков для отображения экрана счетов, но я не знаю, возможно ли это в LS. - person Michelle; 23.11.2012
comment
Это вопрос работы с сущностью в целом. Поэтому, если я создам объект чека, и теперь мне нужно добавить счета-фактуры в этот чек, я бы хотел, чтобы список нераспределенных счетов-фактур на выбор (отфильтрованный, однако вам нужно уменьшить числа). Каждый раз, когда я выбираю счет-фактуру и нажимаю «Выделить», я просто устанавливаю родительское свойство счета-фактуры на сам чек. Делаете ли вы это в одном списке или если у вас есть два списка (нераспределенный/распределенный), каждый на вкладке или рядом на экране, зависит от вас. Но это простое и элегантное решение для достижения того, что вам нужно, не так ли? Я надеюсь, что это имело смысл для вас. - person Yann Duran; 23.11.2012