powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Select и grid
15 сообщений из 15, страница 1 из 1
Select и grid
    #35251941
neznakomka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возник вопросик. Нужно выбрать из таблицы записи с некоторыми условиями и вывести результат на форму в грид.

Подскажите пожалуйста, это возможно? Если да, то как это сделать?
...
Рейтинг: 0 / 0
Select и grid
    #35251966
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В событиии Load формы создать курсор, в который извлекается из ВАшей таблицы
нужная информация: Select p1,p2,p3 from MyTable;
where <Условия на поля p1,p2,p3> into cursor MyCursor

В событии Init формы задать MyCursor в качестве источника грида
thisform.Grid1.recordsourceType=1
thisform.Grid1.recordsource='MyCursor'
...
Рейтинг: 0 / 0
Select и grid
    #35252000
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей КВ событиии Load формы создать курсор, в который извлекается из ВАшей таблицы
нужная информация: Select p1,p2,p3 from MyTable;
where <Условия на поля p1,p2,p3> into cursor MyCursor

В событии Init формы задать MyCursor в качестве источника грида
thisform.Grid1.recordsourceType=1
thisform.Grid1.recordsource='MyCursor'
В качестве источника грида можно и сразу указать SELECT ... FROM ... INTO CURSOR cName и GRID.RecordSourceType=4
...
Рейтинг: 0 / 0
Select и grid
    #35252095
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если условие "стандартное" в том смысле, что запрос всегда один и тот же, а меняется только значения с которым сравниваются поля в условии отбора, то можно еще использовать Local View или CursorAdapter как источник для Grid.
...
Рейтинг: 0 / 0
Select и grid
    #35252107
neznakomka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то не получается. Пишу так:

par1=thisformset.form1.combo1.Value
par2=thisformset.form1.combo2.Value
SELECT t.title, m.magazin, m.adres, p.kolvo FROM table1 as t JOIN prise_list as p ON t.kod=p.kod JOIN magazin as m ON p.kodmag=m.kodmag WHERE t.kod=par1 AND m.kodmag=par2 INTO cursor cur_query1

thisform.grid1.RecordSourceType=1
thisform.grid1.RecordSource='cur_query1'

При запуске возникает ошибка: operator/operand type masmatch
...
Рейтинг: 0 / 0
Select и grid
    #35252162
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В событии Form.Load объектов формы еще в принципе не существует. Поэтому команда вроде

par1=thisformset.form1.combo1.Value

бессмысленна. Нет тех объектов, к которым пытаетесь обратится. Они еще просто не созданы.

Перенесите свой код в событие Form.Init. Хотя тут возможны некоторые заморочки с Grid.

Я бы Вам предложил сделать параметризированный Local View. По данному запросу это будет сделать проще.

Замечание :
Префикс "m." закреплен за обращением к переменным памяти. Т.е. выражение "m.kodmag" может быть воспринято как обращение к переменной памяти с именем "kodmag".

Чтобы избежать подобных недоразумений крайне не желательно давать однобуквенные алиасы таблицам. Лучше или используйте полное имя таблицы или алиас из 2...3 символов.
...
Рейтинг: 0 / 0
Select и grid
    #35252168
neznakomka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению я не знаю как создать Local View. Подскажите пожалуйста как это сделать.
...
Рейтинг: 0 / 0
Select и grid
    #35252235
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начинать с Local View трудновато.
Сделайте так.
В событие Form.init сформируйте курсор , считая, что два Ваши комбобокса - пустые.
Сделайте этот курсор источником для грида, как было показано ранее.
Сделайте на форме кнопку, создающую в методе Click курсор с учётом значений комбобоксов.
В качестве последней команды метода Click выполните метод Thisform.Grid1.refresh
...
Рейтинг: 0 / 0
Select и grid
    #35252281
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznakomkaК сожалению я не знаю как создать Local View. Подскажите пожалуйста как это сделать.
- Открыть файл проекта
- Перейти на закладку Data
- Открыть узел с именем базы данных
- Встать на узел с именем "Local Views"
- Нажать кнопку New

Далее откорется достаточно понятный мастер создания Local View.

Параметр в Local View задается через вопросительный знак. Т.е. на закладке Filter в столбце Example пишется нечто вроде

Код: plaintext
?par1

Вопросительный знак как раз и указывает на то, что далее следует параметр. Т.е. некая переменная памяти, значение которой будет определено непосредственно перед открытием или перезапросом Local View. Если значение параметра не будет задано, то в тот момент, когда она потребуется откроется диалоговое окно с предложением указать значение параметра.

После того, как Local View будет создано с ней можно работать как с обычной таблицей FoxPro. Добавляешь его в DataEnvironment формы и указываешь свойство

Код: plaintext
NoDataOnLoad = .T.

Этот параметр означает, что в момент инициализации формы Local View откроется, но данными наполнен не будет. Т.е. будет пустая таблица. Но, кроме того, не последует запроса на указание параметров, поскольку к этому моменту значение параметров пока не известно.

Далее в событии Form.Init определяются значения параметров и выполняется перезапрос для наполнения данными Local View примерно следующим способом

Код: plaintext
1.
2.
3.
par1=thisformset.form1.combo1.Value
par2=thisformset.form1.combo2.Value
=Requery("MyLocalView")

Здесь MyLocalView - это алиас Local View с которым он включен в DataEnvironment формы.

Этот код можно повторять при изменении выбранных значений Combo1 и Combo2
...
Рейтинг: 0 / 0
Select и grid
    #35252285
neznakomka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за объяснения!!! Всё работает. Сделала без кнопки. поместила создание курсора в событие paint.
Надо попробовать ещё с LocalView.
...
Рейтинг: 0 / 0
Select и grid
    #35252485
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Спасибо большое за объяснения!!! Всё работает. Сделала без кнопки.
> поместила создание курсора в событие paint.
В какое событие????

А при чем здесь paint?

Или нужно, чтобы данные перелопачивались когда мы меняем размер формы,
скрываем, а потом снова показываем всю форму/часть формы?...


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Select и grid
    #35252548
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galyamov RinatА при чем здесь paint?
Ну, карта так легла! :)
...
Рейтинг: 0 / 0
Select и grid
    #35565272
haze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В качестве источника грида можно и сразу указать SELECT ... FROM ... INTO CURSOR cName и GRID.RecordSourceType=4[/quot]
если использовать SQL Statement, то все конечно работает, но предварительно выскакивает таблица, сформированная select. Можно как нибудь с этим побороться?
...
Рейтинг: 0 / 0
Select и grid
    #35565293
hazeВ качестве источника грида можно и сразу указать SELECT ... FROM ... INTO CURSOR cName и GRID.RecordSourceType=4
если использовать SQL Statement, то все конечно работает, но предварительно выскакивает таблица, сформированная select. Можно как нибудь с этим побороться?[/quot]
Обратить самое пристальное внимание на INTO CURSOR. Вот без этого и "выскакивает таблица".
...
Рейтинг: 0 / 0
Select и grid
    #35565477
haze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, всё понятно и оченнь просто.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Select и grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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