Пользовательская форма открывается при выборе кнопки. Как сделать так, чтобы ввод данных в текстовые поля формы вставлялся в строку на отдельном листе?

Из Spring Data JPA 1.10 есть еще один вариант для этого: Query By Example . Ваш репозиторий должен реализовывать помимо JpaRepository также интерфейс QueryByExampleExecutor , где вы получаете такие методы, как:

 Iterable findAll(Example example)

Затем вы создаете пример для поиска например:

Employee e = new Employee();
e.setEmployeeNumber(getEmployeeNumberSomewherFrom());
e.setName(getNameSomewhereFrom());
e.setMarried(getMarriedSomewhereFrom());
e.setProfession(getProfessionSomewhereFrom());
e.setDateOfBirth(getDateOfBirthSomewhereFrom());

, а затем:

employeeRepository.findAll(Example.of(e));

Если некоторые параметры равны нулю, они не будут приняты в предложение WHERE, поэтому вы получите динамические запросы.

Чтобы уточнить соответствие атрибутов String, просмотрите ExampleMatcher

. А ExampleMatcher, который делает регистр без учета регистра like, например:

ExampleMatcher matcher = ExampleMatcher.matching().
          withMatcher("profession", ExampleMatcher.GenericPropertyMatcher.of(ExampleMatcher.StringMatcher.CONTAINING).ignoreCase());

Примеры QBE: https://github.com/spring-projects/spring-data-examples/tree/master/jpa/query-by-example

1
задан Pᴇʜ 16 January 2019 в 10:16
поделиться

3 ответа

Вы были так близко

Dim ctrl As Control
    Dim ws As Worksheet
    Set ws = Sheets("Splits")

erow = ws.Cells(Rows.Count, 1).End(x1Up).Offset(1, 0)
    ws.Cells(erow, 1) = OriginalTourCode.Text
    ws.Cells(erow, 2) = OriginalStartDate.Text
    ws.Cells(erow, 3) = OriginalEndDate.Text
    ws.Cells(erow, 4) = NewTourCode1.Text
    ws.Cells(erow, 5) = NewStartDate1.Text
    ws.Cells(erow, 6) = NewEndDate1.Text
    ws.Cells(erow, 7) = NewTourCode2.Text
    ws.Cells(erow, 8) = NewStartDate2.Text
    ws.Cells(erow, 9) = NewEndDate2.Text
    ws.Cells(erow, 10) = ReasonForSplit.Text


End Sub
0
ответ дан Harassed Dad 16 January 2019 в 10:16
поделиться

Переменная объекта не нужна

Конечным параметром является xlUp , а не x1Up.

Версия массива

Option Explicit

Private Sub SplitTourCommand_Click()

    Const cSheet As String = "Splits"

    Dim erow As Long
    Dim vnt As Variant

    ReDim vnt(1 To 1, 1 To 10) As String

    vnt(1, 1) = OriginalTourCode.Text
    vnt(1, 2) = OriginalStartDate.Text
    vnt(1, 3) = OriginalEndDate.Text
    vnt(1, 4) = NewTourCode1.Text
    vnt(1, 5) = NewStartDate1.Text
    vnt(1, 6) = NewEndDate1.Text
    vnt(1, 7) = NewTourCode2.Text
    vnt(1, 8) = NewStartDate2.Text
    vnt(1, 9) = NewEndDate2.Text
    vnt(1, 10) = ReasonForSplit.Text

    With Worksheets(cSheet)
        erow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(erow, 1).Resize(, 10) = vnt
    End With

End Sub

Версия диапазона

Option Explicit

Private Sub SplitTourCommand_Click()

    Const cSheet As String = "Splits"

    Dim erow As Long

    With Worksheets(cSheet)
        erow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(erow, 1) = OriginalTourCode.Text
        .Cells(erow, 2) = OriginalStartDate.Text
        .Cells(erow, 3) = OriginalEndDate.Text
        .Cells(erow, 4) = NewTourCode1.Text
        .Cells(erow, 5) = NewStartDate1.Text
        .Cells(erow, 6) = NewEndDate1.Text
        .Cells(erow, 7) = NewTourCode2.Text
        .Cells(erow, 8) = NewStartDate2.Text
        .Cells(erow, 9) = NewEndDate2.Text
        .Cells(erow, 10) = ReasonForSplit.Text
    End With

End Sub
0
ответ дан VBasic2008 16 January 2019 в 10:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: