powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с поиском! ну пожалуйста:)
36 сообщений из 36, показаны все 2 страниц
Помогите с поиском! ну пожалуйста:)
    #37231280
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, как сделать чтобы в поле поиск можно было вводить всегда?
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231347
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну хоть ссылку дайте! не могу найти. все книжки уже перелистала
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231352
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы получить правильный ответ нужно задать внятный вопрос. Пока в вашем сообщении царит сумбур: что за форма, где двойное нажатие, что означает "нажатие на Edit" пока не понятно.
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231385
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagЧтобы получить правильный ответ нужно задать внятный вопрос. Пока в вашем сообщении царит сумбур: что за форма, где двойное нажатие, что означает "нажатие на Edit" пока не понятно.
так можно ведь и спросить, что конкретно не понятно. мне то кажется что все должно быть понятно. форма содержит поля типа Text1.....TextN, данные из таблицы Imena(Fields1,..., FieldsN соответственно). пользовалась конструктором, поэтому созданы по умолчанию кнопки Edit(редактирование), Save, Exit и т.п. Все устраивает, кроме поиска. Потому что он выводит значение одно, а у меня таких записей может быть десять. Для этого создала Грид, ищется фамилия, результаты заносятся в Грид . пользователь выбирает нужного человека, нажимает на строку в гриде, и обновляется форма с полями Text1.....TextN (т.е. выводит данные конкретно по этому человеку) из исходной таблицы. так понятнее?...
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231409
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox123Сделала в форме поиск по фамилии,
результаты отображаются в Grid, - это на той же форме, где вводятся параметры поиска или на другой?
как сделать, чтобы при двойном нажатии на результат поиска обновлялись данные в форме?
- результат поиска у вас отображается в Gride, где нужно дважды нажимать и в какой форме должны обновиться данные?

еще у меня форма может редактироваться только при нажатии Edit, как сделать чтобы в поле поиск можно было вводить всегда? - при чем здесь Edit (редактирование) и поиск?

Видите сколько вопросов. И не мне одному непонятно, что же вы хотите. Постарайтесь изложить проблему более понятно, разбив на отдельные пункты непонятные вопросы.
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231436
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNGfox123Сделала в форме поиск по фамилии,
результаты отображаются в Grid, - это на той же форме, где вводятся параметры поиска или на другой?
как сделать, чтобы при двойном нажатии на результат поиска обновлялись данные в форме?
- результат поиска у вас отображается в Gride, где нужно дважды нажимать и в какой форме должны обновиться данные?

еще у меня форма может редактироваться только при нажатии Edit, как сделать чтобы в поле поиск можно было вводить всегда? - при чем здесь Edit (редактирование) и поиск?

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

"результат поиска у вас отображается в Gride, где нужно дважды нажимать и в какой форме должны обновиться данные?" - на нужную строку в гриде (ну например я ввела в поиске Иванов и мне выдало два результата Иванов Петр и Иванов Максим, мне нужен максим, я на него нажимаю (на всю строку.. или не знаю еще на че можно щелкнуть, это не важно)) и данные в этой же форме (ниже сетки) отображаются. Text1...TextN заполняются полями соответствующей записи из таблицы Imena

"еще у меня форма может редактироваться только при нажатии Edit, как сделать чтобы в поле поиск можно было вводить всегда? - при чем здесь Edit (редактирование) и поиск?"
до нажатия кнопки Edit или Add ни одно из полей не доступно для изменения, поэтому чтобы ввести данные для поиска необходимо нажать какую-нибудь из этих кнопок
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231443
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox123,

В поле поиска вводите, например, Иванов.
Далее идет SELECT <все необходимые поля>
В Grid выводятся две записи: Иванов Андрей, Иванов Петр.
Привяжите Text1...TextN (ControlSource) к этому же курсору и при при выборе в Grid того или иного Иванова, в текстовых полях будет соответствующая информация.
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231478
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox123,

При выводе результатов поиска Text1...TextN сделайте ReadOnly = .T. , а при нажатии на кнопку "Edit" ReadOnly = .F., после редактирования опять .F.
Хотя, все громоздить в одной форме не очень-то и хорошо. По крайней мере, я бы редактирование записи сделал в отдельной форме с кнопками "Сохранить" и "Отмена". Ведь результатом поиска у Вас является курсор, а отредактированные записи нужно занести в реальную таблицу.
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231489
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNGfox123,

В поле поиска вводите, например, Иванов.
Далее идет SELECT <все необходимые поля>
В Grid выводятся две записи: Иванов Андрей, Иванов Петр.
Привяжите Text1...TextN (ControlSource) к этому же курсору и при при выборе в Grid того или иного Иванова, в текстовых полях будет соответствующая информация.

проблема с редактированием остается. вводить можно только после нажатия add или edit.
каким образом я выберу того или иного Иванова? просто выделением записи? может оно так и работает, не могу проверить, потому что не знаю как привязать к курсору Text1...TextN, они у меня к таблице привязаны... ну это правильно, логичнее было бы привязать к курсору. я так понимаю к событию клик кнопки ПОИСК нужно что-то дописать.. выложите пожалуйста пример строчки..
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231502
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNGfox123,

При выводе результатов поиска Text1...TextN сделайте ReadOnly = .T. , а при нажатии на кнопку "Edit" ReadOnly = .F., после редактирования опять .F.
Хотя, все громоздить в одной форме не очень-то и хорошо. По крайней мере, я бы редактирование записи сделал в отдельной форме с кнопками "Сохранить" и "Отмена". Ведь результатом поиска у Вас является курсор, а отредактированные записи нужно занести в реальную таблицу.

поиск нужен как раз для редактирования! если находится запись - редактируем, нет записи - создаем новую... в одной форме делаю, потому что в старой проге пользователи привыкли все в одном окне делать... это желательно, но не обязательно. если я данные из курсора выводить в форму буду, то при редактировании, они в таблицу не сохранятся?.. надо чтобы сохранялись..
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231534
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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. После сохраненияч данных делать ее опять недоступной.
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231543
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите где взять какой-нибудь демо-проектик, чтобы посмотреть как все нормальные программисты делают, а то постоянно какие-нибудь глупые вопросы возникают, чтобы там коды подсмотреть) читаю в "Гурвиц Г.А. - Разработка реального приложения с использованием Visual FoxPro 9" но там большинство кодов по принципу - 3/4 часть кода мы написали, 1/4 догадайся сама..
в M Access насколько я помню в универе все изучали на демо-базе Борей, там все так хорошо было показано:)
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231553
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox123,

Поищите у себя на диске в папке Visual Foxpro в Samples проект solution.pjx
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231555
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Визардами тут народ не шибко пользуется. Потому как там работает кнопка Edit лично я без понятия. Попробуйте в событии GotFocus
поля поиска прописать
Код: plaintext
1.
This.Enable=.t.
This.ReadOnly=.f.
Может поможет.
Действительно ли нужен двойной клик на гриде?
Вам проще создать новую кнопку "Обновить данные" с кодом в событии Click
Код: plaintext
1.
2.
3.
replace person_fam with MyTempCursor.person_fam, person_im with MyTempCursor.person_im, ;
person_ot with MyTempCursor.person_ot, person_dr with MyTempCursor.person_dr IN dozl
ThisForm.Refresh()
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231557
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNGfox123,

Поищите у себя на диске в папке Visual Foxpro в Samples проект solution.pjx

Спасибо! пошла искать.
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37231671
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox123fox123,
Спасибо! пошла искать.
Вы, конечно, ищите (непонятно что), только в SELECT-SQL потом не забудьте и слово FROM <таблица>. В событии DoubleClick текстбокса грида можете вставить что-то вроде
Код: plaintext
1.
2.
3.
4.
5.
z=this.value
Grid.RecordSource=''
use in MyCursor  && (MyCursor есть RecordSource для грида)
select * from MyTable where fio==z into cursor MyCursor
Grid.RecordSource='MyCursor'
Grid.refresh
Это без деталей, поскольку понадобится восстановление настроек отдельных колонок грида.
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235004
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagДействительно ли нужен двойной клик на гриде?
Вам проще создать новую кнопку "Обновить данные" с кодом в событии Click
Код: plaintext
1.
2.
3.
replace person_fam with MyTempCursor.person_fam, person_im with MyTempCursor.person_im, ;
person_ot with MyTempCursor.person_ot, person_dr with MyTempCursor.person_dr IN dozl
ThisForm.Refresh()

Идея канешно хороша и проста, только какие именно данные он будет брать из курсора, если результат поиска 10 фамилий?? если бы один результат был, не было бы вопроса..
а двойной клик, это к примеру. на старой проге так было. можно и один клик:)
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235006
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagВизардами тут народ не шибко пользуется. Потому как там работает кнопка Edit лично я без понятия. Попробуйте в событии GotFocus
поля поиска прописать
Код: plaintext
1.
This.Enable=.t.
This.ReadOnly=.f.
Может поможет.
[/src]
поробовала. пишет property Enable и ReadOnly Not found
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235010
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rewarefox123fox123,
Спасибо! пошла искать.
Вы, конечно, ищите (непонятно что),
папку Solution
rewarefox123fox123,
Спасибо! пошла искать.
Вы, конечно, ищите (непонятно что), только в SELECT-SQL потом не забудьте и слово FROM <таблица>. В событии DoubleClick текстбокса грида можете вставить что-то вроде
Код: plaintext
1.
2.
3.
4.
5.
z=this.value
Grid.RecordSource=''
use in MyCursor  && (MyCursor есть RecordSource для грида)
select * from MyTable where fio==z into cursor MyCursor
Grid.RecordSource='MyCursor'
Grid.refresh
Это без деталей, поскольку понадобится восстановление настроек отдельных колонок грида.

что значит "текстбокса грида"? вставила в событие 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

никак не реагирует. наверно не туда вставила..
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235012
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 также имеется. без грида все работает и сохраняется в таблице
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235014
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос остается открытым. нужно, чтобы результаты поиска выводились в гриде и при выборе какой-либо записи, на экран в форме выводились данные по этому человеку но из таблицы, чтобы можно было редактировать и сохранять. как вариант, чтобы результы поиска выводились на другой открывающейся форме. хочется избавиться от грида в главной форме, потому что из-за него кнопки обработки (add, edit ...) работают с ошибками. в исходной таблице все записи проиндексированы по номеру записи. может с этим как-то связать? подойдут любые идеи с реализацией, главное чтобы работало как надо).
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235019
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
local lcFam
lcFam=ALLTRIM(this.value)
select person_fam, person_im, person_ot, person_dr from dozl;
FROM MyTempCursor ;
where rtrim(person_fam)==lcFam into cursor MyTempCursor2
if _tally= 0 
 =MESSAGEBOX("Записей не найдено!")
 return
endif
with thisform.Grid1
 .RecordSourceType= 1 
 .RecordSource='MyTempCursor2'
 .refresh()
endwith
При создании курсора (до того) MyTempCursor не забывать про слово READWRITE.
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235031
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
local lcFam
lcFam=ALLTRIM(this.value)
select person_fam, person_im, person_ot, person_dr from dozl;
FROM MyTempCursor ;
where rtrim(person_fam)==lcFam into cursor MyTempCursor2
if _tally= 0 
 =MESSAGEBOX("Записей не найдено!")
 return
endif
with thisform.Grid1
 .RecordSourceType= 1 
 .RecordSource='MyTempCursor2'
 .refresh()
endwith
При создании курсора (до того) MyTempCursor не забывать про слово READWRITE.

причем тут FROM MyTempCursor ? это был код для поиска из таблицы "from dozl"
"в событии DoubleClick текстбокса" какого текстбокса??
и вообще вся эта конструкция с FROM MyTempCursor даже компилица не хочет, я вас не понимаю......
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235160
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
local lcFam
lcFam=ALLTRIM(this.value)
select person_fam, person_im, person_ot, person_dr from dozl;
where rtrim(person_fam)==lcFam into cursor MyTempCursor2
if _tally= 0 
 =MESSAGEBOX("Записей не найдено!")
 return
endif
with thisform.Grid1
 .RecordSourceType= 1 
 .RecordSource='MyTempCursor2'
 .refresh()
endwith
При создании курсора (до того) MyTempCursor не забывать про слово READWRITE.

Вот так скомпилится
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235167
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox123rewareпропущено...

Вы, конечно, ищите (непонятно что),
папку Solution
rewareпропущено...

Вы, конечно, ищите (непонятно что), только в SELECT-SQL потом не забудьте и слово FROM <таблица>. В событии DoubleClick текстбокса грида можете вставить что-то вроде
Код: plaintext
1.
2.
3.
4.
5.
z=this.value
Grid.RecordSource=''
use in MyCursor  && (MyCursor есть RecordSource для грида)
select * from MyTable where fio==z into cursor MyCursor
Grid.RecordSource='MyCursor'
Grid.refresh
Это без деталей, поскольку понадобится восстановление настроек отдельных колонок грида.

что значит "текстбокса грида"? вставила в событие 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
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235329
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox123DagДействительно ли нужен двойной клик на гриде?
Вам проще создать новую кнопку "Обновить данные" с кодом в событии Click
Код: plaintext
1.
2.
3.
replace person_fam with MyTempCursor.person_fam, person_im with MyTempCursor.person_im, ;
person_ot with MyTempCursor.person_ot, person_dr with MyTempCursor.person_dr IN dozl
ThisForm.Refresh()

Идея канешно хороша и проста, только какие именно данные он будет брать из курсора, если результат поиска 10 фамилий?? если бы один результат был, не было бы вопроса.

Вы выводите результат запроса в курсор MyTempCursor. Так? Отображаете его в гриде. Так?
Текущая строка грида - это текущая строка курсора.
Куда вы хотите скопировать данные из текущей записи курсора MyTempCursor? В таблицу dolz?
Тогда команда replace и отработает по текущей записи в курсоре и таблице. Для успокоения можете добавить в команду опцию NEXT 1.
Двойной клик сделать несложно - но тогда начнут появляться вопросы типа:
fox123что значит "текстбокса грида"?
И кстати, что представляет собой "поле поиска"?
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235360
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dag,

Я все это понял так:

Есть Grid, которому привязывается запрос. В Gride указываются фамилии. Под Gridом расположены текстовые поля Text1...TextN, в которых указываются различные данные (например, ата рождения, пол, семейное положение) для текущей строки Grid. Есть еще текстовое поле в которое пользователь вводит фамилию, нажимает на кнопку "Найти", идет requery запроса, данные Grid обновляются. Но автор еще хочет по нажатию на кнопку Add или Edit отредактировать данные в текстовых полях Text1...TextN и при нажатии кнопки "Сохранить" отправить измененные или добаленные данные в таблицу. Т.е. Все в одном флаконе.
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235666
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как там сделано на самом деле может ответить лишь топикстартер. Я понял так, что на форме тестбоксы отображают содержимое основной таблицы dolz, а грид показывает содержимое запроса
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235676
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNGDag,

Я все это понял так:

Есть Grid, которому привязывается запрос. В Gride указываются фамилии. Под Gridом расположены текстовые поля Text1...TextN, в которых указываются различные данные (например, ата рождения, пол, семейное положение) для текущей строки Grid. Есть еще текстовое поле в которое пользователь вводит фамилию, нажимает на кнопку "Найти", идет requery запроса, данные Grid обновляются. Но автор еще хочет по нажатию на кнопку Add или Edit отредактировать данные в текстовых полях Text1...TextN и при нажатии кнопки "Сохранить" отправить измененные или добаленные данные в таблицу. Т.е. Все в одном флаконе.

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

IgorNGDag,
Т.е. Все в одном флаконе.

а как по-другому? зачем искать данные без возможности редактирования?.. как вы себе представляете, чтобы не в одном флаконе? я просто не представляю, а так можно и в разных флаконах...наверно:)
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235699
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dagfox123пропущено...

Идея канешно хороша и проста, только какие именно данные он будет брать из курсора, если результат поиска 10 фамилий?? если бы один результат был, не было бы вопроса.

Вы выводите результат запроса в курсор MyTempCursor. Так? Отображаете его в гриде. Так?
Текущая строка грида - это текущая строка курсора.
Куда вы хотите скопировать данные из текущей записи курсора MyTempCursor? В таблицу dolz?
Тогда команда replace и отработает по текущей записи в курсоре и таблице. Для успокоения можете добавить в команду опцию NEXT 1.
Двойной клик сделать несложно - но тогда начнут появляться вопросы типа:
fox123что значит "текстбокса грида"?
И кстати, что представляет собой "поле поиска"?

Зачем копировать записи в таблицу из которой собственно мы эти записи и берем?? мне нужно отобразить данные из текущей записи курсора MyTempCursor на форме, отредактировать их и сохранить в таблице
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37235719
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNGDag,

Под Gridом расположены текстовые поля Text1...TextN, в которых указываются различные данные (например, ата рождения, пол, семейное положение) для текущей строки Grid.
пока данные не для текущей строки грид а из таблицы
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37236443
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У таблицы есть ключевое поле?
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37236768
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox123,

Я представляю, да и делаю всегда форму редактирования отдельно от формы просмотра, т.е. вы на форме нашли нужного человека, нажали на кнопку "Редактировать", открывается форма с текстовыми полями, но без грида, редактируете, по кнопке Сохранить обрабатываете данные, по кнопке отмена выходите из формы без сохранения.
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37237108
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagУ таблицы есть ключевое поле?

есть, я писала выше
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37237129
fox123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNGfox123,

Я представляю, да и делаю всегда форму редактирования отдельно от формы просмотра, т.е. вы на форме нашли нужного человека, нажали на кнопку "Редактировать", открывается форма с текстовыми полями, но без грида, редактируете, по кнопке Сохранить обрабатываете данные, по кнопке отмена выходите из формы без сохранения.

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

в поиске прописываю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
use in select('MyTempCursor2')
local lcFam2
LOCAL lcIm2
lcFam2=ALLTRIM(thisform.Text1.value)
lcIm2=ALLTRIM(thisform.Text2.value)
select person_fam, person_im, person_ot, person_dr from dozl;
  where rtrim(person_fam)==lcFam2 into cursor MyTempCursor2
if _tally= 0 
 =MESSAGEBOX("Записей не найдено!")
 return
ENDIF
with thisform.Grid1
 .RecordSourceType= 1 
 .RecordSource='MyTempCursor2'
 .refresh()
 ENDWITH
выдает ошибку в этой строке:
where rtrim(person_fam)==lcFam2 AND rtrim(person_im)==lcFam2 into cursor MyTempCursor2

после поиска открывает отдельно Form1 со всеми записями из таблицы, а не выводит в грид
если в Environment таблицу dozl вставляю, то заполняется данными из таблицы, на поиск также реагирует. в общем ничего не ищет!((
...
Рейтинг: 0 / 0
Помогите с поиском! ну пожалуйста:)
    #37252546
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox123,

where rtrim(person_fam)==lcFam2 AND rtrim(person_im)==lcFam2 into cursor MyTempCursor2

Удалите таблицу из DE.

В Init сделайте запрос MyTempCursor2 хотя бы пустой, чтобы привязать к Grid
RecordSourceType - 1
RecordSource - MyTempCursor2
И соответственно, для colum'ов тоже
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с поиском! ну пожалуйста:)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]