|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
Честно прочитала все про поиск на форуме) Сделала в форме поиск по фамилии, результаты отображаются в Grid, как сделать, чтобы при двойном нажатии на результат поиска обновлялись данные в форме? текст для поиска такой: use in select('MyTempCursor') local lcFam lcFam=ALLTRIM(thisform.Text1.value) select person_fam, person_im, person_ot, person_dr from dozl; where rtrim(person_fam)==lcFam into cursor MyTempCursor if _tally=0 =MESSAGEBOX("Записей не найдено!") return endif with thisform.Grid1 .RecordSourceType=1 .RecordSource='MyTempCursor' .refresh() endwith еще у меня форма может редактироваться только при нажатии Edit, как сделать чтобы в поле поиск можно было вводить всегда? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 03:55 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
Ну хоть ссылку дайте! не могу найти. все книжки уже перелистала ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 08:47 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
Чтобы получить правильный ответ нужно задать внятный вопрос. Пока в вашем сообщении царит сумбур: что за форма, где двойное нажатие, что означает "нажатие на Edit" пока не понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 08:54 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
DagЧтобы получить правильный ответ нужно задать внятный вопрос. Пока в вашем сообщении царит сумбур: что за форма, где двойное нажатие, что означает "нажатие на Edit" пока не понятно. так можно ведь и спросить, что конкретно не понятно. мне то кажется что все должно быть понятно. форма содержит поля типа Text1.....TextN, данные из таблицы Imena(Fields1,..., FieldsN соответственно). пользовалась конструктором, поэтому созданы по умолчанию кнопки Edit(редактирование), Save, Exit и т.п. Все устраивает, кроме поиска. Потому что он выводит значение одно, а у меня таких записей может быть десять. Для этого создала Грид, ищется фамилия, результаты заносятся в Грид . пользователь выбирает нужного человека, нажимает на строку в гриде, и обновляется форма с полями Text1.....TextN (т.е. выводит данные конкретно по этому человеку) из исходной таблицы. так понятнее?... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 09:25 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
fox123Сделала в форме поиск по фамилии, результаты отображаются в Grid, - это на той же форме, где вводятся параметры поиска или на другой? как сделать, чтобы при двойном нажатии на результат поиска обновлялись данные в форме? - результат поиска у вас отображается в Gride, где нужно дважды нажимать и в какой форме должны обновиться данные? еще у меня форма может редактироваться только при нажатии Edit, как сделать чтобы в поле поиск можно было вводить всегда? - при чем здесь Edit (редактирование) и поиск? Видите сколько вопросов. И не мне одному непонятно, что же вы хотите. Постарайтесь изложить проблему более понятно, разбив на отдельные пункты непонятные вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 09:44 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
IgorNGfox123Сделала в форме поиск по фамилии, результаты отображаются в Grid, - это на той же форме, где вводятся параметры поиска или на другой? как сделать, чтобы при двойном нажатии на результат поиска обновлялись данные в форме? - результат поиска у вас отображается в Gride, где нужно дважды нажимать и в какой форме должны обновиться данные? еще у меня форма может редактироваться только при нажатии Edit, как сделать чтобы в поле поиск можно было вводить всегда? - при чем здесь Edit (редактирование) и поиск? Видите сколько вопросов. И не мне одному непонятно, что же вы хотите. Постарайтесь изложить проблему более понятно, разбив на отдельные пункты непонятные вопросы. ок. собственно этого и хотелось - внимания к моей проблеме, а на вопросы с радостью отвечу, чтобы стало понятно:) "это на той же форме, где вводятся параметры поиска или на другой?" - на этой же "результат поиска у вас отображается в Gride, где нужно дважды нажимать и в какой форме должны обновиться данные?" - на нужную строку в гриде (ну например я ввела в поиске Иванов и мне выдало два результата Иванов Петр и Иванов Максим, мне нужен максим, я на него нажимаю (на всю строку.. или не знаю еще на че можно щелкнуть, это не важно)) и данные в этой же форме (ниже сетки) отображаются. Text1...TextN заполняются полями соответствующей записи из таблицы Imena "еще у меня форма может редактироваться только при нажатии Edit, как сделать чтобы в поле поиск можно было вводить всегда? - при чем здесь Edit (редактирование) и поиск?" до нажатия кнопки Edit или Add ни одно из полей не доступно для изменения, поэтому чтобы ввести данные для поиска необходимо нажать какую-нибудь из этих кнопок ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 09:55 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
fox123, В поле поиска вводите, например, Иванов. Далее идет SELECT <все необходимые поля> В Grid выводятся две записи: Иванов Андрей, Иванов Петр. Привяжите Text1...TextN (ControlSource) к этому же курсору и при при выборе в Grid того или иного Иванова, в текстовых полях будет соответствующая информация. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 10:02 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
fox123, При выводе результатов поиска Text1...TextN сделайте ReadOnly = .T. , а при нажатии на кнопку "Edit" ReadOnly = .F., после редактирования опять .F. Хотя, все громоздить в одной форме не очень-то и хорошо. По крайней мере, я бы редактирование записи сделал в отдельной форме с кнопками "Сохранить" и "Отмена". Ведь результатом поиска у Вас является курсор, а отредактированные записи нужно занести в реальную таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 10:22 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
IgorNGfox123, В поле поиска вводите, например, Иванов. Далее идет SELECT <все необходимые поля> В Grid выводятся две записи: Иванов Андрей, Иванов Петр. Привяжите Text1...TextN (ControlSource) к этому же курсору и при при выборе в Grid того или иного Иванова, в текстовых полях будет соответствующая информация. проблема с редактированием остается. вводить можно только после нажатия add или edit. каким образом я выберу того или иного Иванова? просто выделением записи? может оно так и работает, не могу проверить, потому что не знаю как привязать к курсору Text1...TextN, они у меня к таблице привязаны... ну это правильно, логичнее было бы привязать к курсору. я так понимаю к событию клик кнопки ПОИСК нужно что-то дописать.. выложите пожалуйста пример строчки.. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 10:28 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
IgorNGfox123, При выводе результатов поиска Text1...TextN сделайте ReadOnly = .T. , а при нажатии на кнопку "Edit" ReadOnly = .F., после редактирования опять .F. Хотя, все громоздить в одной форме не очень-то и хорошо. По крайней мере, я бы редактирование записи сделал в отдельной форме с кнопками "Сохранить" и "Отмена". Ведь результатом поиска у Вас является курсор, а отредактированные записи нужно занести в реальную таблицу. поиск нужен как раз для редактирования! если находится запись - редактируем, нет записи - создаем новую... в одной форме делаю, потому что в старой проге пользователи привыкли все в одном окне делать... это желательно, но не обязательно. если я данные из курсора выводить в форму буду, то при редактировании, они в таблицу не сохранятся?.. надо чтобы сохранялись.. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 10:34 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
fox123, Ввели в поле поиска "Иванов" SELECT fio, address, birthday, sex и что там еще у вас Text1.ControlSource = "Cursor.fields" Text1.ReadOnly = .T. Text2.ControlSource = "Cursor.fields" Text2.ReadOnly = .T. Text3.ControlSource = "Cursor.fields" Text3.ReadOnly = .T. ... TextN.ControlSource = "Cursor.fields" TextN.ReadOnly = .T. В кнопке Edit и Add Text1.ReadOnly = .F. Text2.ReadOnly = .F. Text3.ReadOnly = .F. TextN.ReadOnly = .F. Вопрос, как вы будете измененные данные заносить в реальную таблицу, т.к. значения в текстовых полях у вас их курсора. По логике д.б. еще и кнопка "Сохранить", которая может быть доступно только после нажатия кнопки Edit или Add. После сохраненияч данных делать ее опять недоступной. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 10:47 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
Подскажите где взять какой-нибудь демо-проектик, чтобы посмотреть как все нормальные программисты делают, а то постоянно какие-нибудь глупые вопросы возникают, чтобы там коды подсмотреть) читаю в "Гурвиц Г.А. - Разработка реального приложения с использованием Visual FoxPro 9" но там большинство кодов по принципу - 3/4 часть кода мы написали, 1/4 догадайся сама.. в M Access насколько я помню в универе все изучали на демо-базе Борей, там все так хорошо было показано:) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 10:51 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
fox123, Поищите у себя на диске в папке Visual Foxpro в Samples проект solution.pjx ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 10:55 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
Визардами тут народ не шибко пользуется. Потому как там работает кнопка Edit лично я без понятия. Попробуйте в событии GotFocus поля поиска прописать Код: plaintext 1.
Действительно ли нужен двойной клик на гриде? Вам проще создать новую кнопку "Обновить данные" с кодом в событии Click Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 10:58 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
IgorNGfox123, Поищите у себя на диске в папке Visual Foxpro в Samples проект solution.pjx Спасибо! пошла искать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 10:58 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
fox123fox123, Спасибо! пошла искать. Вы, конечно, ищите (непонятно что), только в SELECT-SQL потом не забудьте и слово FROM <таблица>. В событии DoubleClick текстбокса грида можете вставить что-то вроде Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 11:45 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
DagДействительно ли нужен двойной клик на гриде? Вам проще создать новую кнопку "Обновить данные" с кодом в событии Click Код: plaintext 1. 2. 3.
Идея канешно хороша и проста, только какие именно данные он будет брать из курсора, если результат поиска 10 фамилий?? если бы один результат был, не было бы вопроса.. а двойной клик, это к примеру. на старой проге так было. можно и один клик:) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 04:59 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
DagВизардами тут народ не шибко пользуется. Потому как там работает кнопка Edit лично я без понятия. Попробуйте в событии GotFocus поля поиска прописать Код: plaintext 1.
[/src] поробовала. пишет property Enable и ReadOnly Not found ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 05:05 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
rewarefox123fox123, Спасибо! пошла искать. Вы, конечно, ищите (непонятно что), папку Solution rewarefox123fox123, Спасибо! пошла искать. Вы, конечно, ищите (непонятно что), только в SELECT-SQL потом не забудьте и слово FROM <таблица>. В событии DoubleClick текстбокса грида можете вставить что-то вроде Код: plaintext 1. 2. 3. 4. 5.
что значит "текстбокса грида"? вставила в событие DBLClick Grid1: LPARAMETERS nRow, nCol z=this.value Grid.RecordSource='' use in MyTempCursor && (MyCursor есть RecordSource для грида) select person_fam from dozl where person_fam==z into cursor MyTempCursor Grid.RecordSource='MyTempCursor' Grid.refresh никак не реагирует. наверно не туда вставила.. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 05:18 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
IgorNGfox123, Ввели в поле поиска "Иванов" SELECT fio, address, birthday, sex и что там еще у вас Text1.ControlSource = "Cursor.fields" Text1.ReadOnly = .T. Text2.ControlSource = "Cursor.fields" Text2.ReadOnly = .T. Text3.ControlSource = "Cursor.fields" Text3.ReadOnly = .T. ... TextN.ControlSource = "Cursor.fields" TextN.ReadOnly = .T. опять таки не понятно, как он будет выводить нужную запись .. IgorNGfox123, В кнопке Edit и Add Text1.ReadOnly = .F. Text2.ReadOnly = .F. Text3.ReadOnly = .F. TextN.ReadOnly = .F. Вопрос, как вы будете измененные данные заносить в реальную таблицу, т.к. значения в текстовых полях у вас их курсора. По логике д.б. еще и кнопка "Сохранить", которая может быть доступно только после нажатия кнопки Edit или Add. После сохраненияч данных делать ее опять недоступной. кнопка Save также имеется. без грида все работает и сохраняется в таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 05:24 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
Вопрос остается открытым. нужно, чтобы результаты поиска выводились в гриде и при выборе какой-либо записи, на экран в форме выводились данные по этому человеку но из таблицы, чтобы можно было редактировать и сохранять. как вариант, чтобы результы поиска выводились на другой открывающейся форме. хочется избавиться от грида в главной форме, потому что из-за него кнопки обработки (add, edit ...) работают с ошибками. в исходной таблице все записи проиндексированы по номеру записи. может с этим как-то связать? подойдут любые идеи с реализацией, главное чтобы работало как надо). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 05:39 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
fox123Честно прочитала все про поиск на форуме) Сделала в форме поиск по фамилии, результаты отображаются в Grid, как сделать, чтобы при двойном нажатии на результат поиска обновлялись данные в форме? текст для поиска такой: use in select('MyTempCursor') local lcFam lcFam=ALLTRIM(thisform.Text1.value) select person_fam, person_im, person_ot, person_dr from dozl; where rtrim(person_fam)==lcFam into cursor MyTempCursor if _tally=0 =MESSAGEBOX("Записей не найдено!") return endif with thisform.Grid1 .RecordSourceType=1 .RecordSource='MyTempCursor' .refresh() endwith Еще у меня форма может редактироваться только при нажатии Edit, как сделать чтобы в поле поиск можно было вводить всегда? Всё красиво, только где в SELECT-SQL слово FROM ? Откуда, собсно, выбираем ? В событии DoubleClick текстбокса : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 06:13 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
rewarefox123Честно прочитала все про поиск на форуме) Сделала в форме поиск по фамилии, результаты отображаются в Grid, как сделать, чтобы при двойном нажатии на результат поиска обновлялись данные в форме? текст для поиска такой: use in select('MyTempCursor') local lcFam lcFam=ALLTRIM(thisform.Text1.value) select person_fam, person_im, person_ot, person_dr from dozl; where rtrim(person_fam)==lcFam into cursor MyTempCursor if _tally=0 =MESSAGEBOX("Записей не найдено!") return endif with thisform.Grid1 .RecordSourceType=1 .RecordSource='MyTempCursor' .refresh() endwith Еще у меня форма может редактироваться только при нажатии Edit, как сделать чтобы в поле поиск можно было вводить всегда? Всё красиво, только где в SELECT-SQL слово FROM ? Откуда, собсно, выбираем ? В событии DoubleClick текстбокса : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
причем тут FROM MyTempCursor ? это был код для поиска из таблицы "from dozl" "в событии DoubleClick текстбокса" какого текстбокса?? и вообще вся эта конструкция с FROM MyTempCursor даже компилица не хочет, я вас не понимаю...... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 07:12 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
rewarefox123Честно прочитала все про поиск на форуме) Сделала в форме поиск по фамилии, результаты отображаются в Grid, как сделать, чтобы при двойном нажатии на результат поиска обновлялись данные в форме? текст для поиска такой: use in select('MyTempCursor') local lcFam lcFam=ALLTRIM(thisform.Text1.value) select person_fam, person_im, person_ot, person_dr from dozl; where rtrim(person_fam)==lcFam into cursor MyTempCursor if _tally=0 =MESSAGEBOX("Записей не найдено!") return endif with thisform.Grid1 .RecordSourceType=1 .RecordSource='MyTempCursor' .refresh() endwith Еще у меня форма может редактироваться только при нажатии Edit, как сделать чтобы в поле поиск можно было вводить всегда? Всё красиво, только где в SELECT-SQL слово FROM ? Откуда, собсно, выбираем ? В событии DoubleClick текстбокса : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Вот так скомпилится ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 09:36 |
|
Помогите с поиском! ну пожалуйста:)
|
|||
---|---|---|---|
#18+
fox123rewareпропущено... Вы, конечно, ищите (непонятно что), папку Solution rewareпропущено... Вы, конечно, ищите (непонятно что), только в SELECT-SQL потом не забудьте и слово FROM <таблица>. В событии DoubleClick текстбокса грида можете вставить что-то вроде Код: plaintext 1. 2. 3. 4. 5.
что значит "текстбокса грида"? вставила в событие DBLClick Grid1: LPARAMETERS nRow, nCol z=this.value Grid.RecordSource='' use in MyTempCursor && (MyCursor есть RecordSource для грида) select person_fam from dozl where person_fam==z into cursor MyTempCursor Grid.RecordSource='MyTempCursor' Grid.refresh никак не реагирует. наверно не туда вставила.. НУЖНАЯ запись - это текущая запись Grida, т.е. на которой стоит курсор. При перемещению по Gridу меняются значения в Text1...TextN ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 09:39 |
|
|
start [/forum/topic.php?fid=41&fpage=75&tid=1584372]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 167ms |
0 / 0 |