powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как отобразить Конкретную,предыдущую, следующую записи?
30 сообщений из 30, показаны все 2 страниц
Как отобразить Конкретную,предыдущую, следующую записи?
    #34372615
Хелп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в комбобоксе выбирается запись, и нужно чтобы она и те которые рядом с ней(предыдущая и следующая отобразились)
как выбрать запись из комбобокс знаю, а вот чтобы еще и предыдущая и следующая вот вопрос..
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34372712
А зачем это?
Предлагаю не мучать комбо, а рядом с ним дорисовать два текстовых поля read-only, куда и выводить предыдущее и последующее значение.
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34372791
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
и как это вывести? мне всеравно, лишь бы выводило гденибудь предыдущую,следующую и конкретную запись из таблицы
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34372829
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в Grid отображать не пробовали?
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34373771
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
и как это там делать? просто запрос один не то сделал.. нужно переделывать
с грид не думаю что это то.. нужно из таблицы с помощью стандартных операций... а грид вроде не проходили :)
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34374281
Сорри, я думал не про записи, а про элементы списка.
Если надо отобразить несколько полей, а не только значение в ключевом поле, то лучше всего юзать грид. Навскидку я вижу два варианта - фильтр или обновляемый курсор.
Ну можно еще листбокс.
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34375674
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
а можно поконкретнее? как сделать такой запрос? а то завтра уже будут говорить что неправильно сделал, а тут покажу исправленный вариант :)
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34376035
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
никто незнает чтоли?

select fams
from stud
where fams=thisform.combo1.value

вот отображает конкретную запись.. а как сделать чтобы отобразилась еще следующая, предыдущая записи?
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34376048
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что Вы понимаете под термином следующая/предыдущая? Что определяет "порядок следования"?

В принципе, достаточно встать на найденную запись (SEEK, LOCATE). По SKIP окажетесь на "следующей", по SKIP -1 - на "предыдущей". Значения из этих записей напрямую присвойте TextBox.Value двух дополнительных объектов на форме. Затем ThisForm.Refresh() и все.
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34376058
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
Что такое следующая и предыдущая (физически, либо с установленным индексом)?
Если физически, по значению текущей записи взять prec=RECNO() или другой уникальный параметр
SELE * from table WHERE 1=-1 INTO CURSOR cur READ (копия структуры таблицы)
sele table
loca for (по параметру)
SKIP -1
SCATER TO memvar
sele cur
APPEND BLANK
gather from memvar
sele table
skip
и опять вставить
skip

вывести курсор в грид
Не писал о проверках на первую, последнюю записи, если не LOCA и других возможных ситуациях
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34378990
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
положил грид.. и сделал 2 кнопки чтобы вперед и назад записи прокручивать(скип). однако с конкретной проблемы.. вот положил еще одну кнопку и какимто образом нужно сделать так, чтобы в этом грид курсор установился на запись в котором значение некоторой строки равно выбранном в комбобоксе, пробовал loсate но там постоянно какието ошибки возникают
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34382327
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
ну так что? как сделать чтобы при выборе из комбо бокса записи, при нажатии кнопки в гриде курсор установился на запись соответсвующую?
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34382335
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
Прошу прощения, но какой вопрос такой ответ, какие-то ошибки возникают, может поимённо.
Без это не разобраться кот не прав, вопрошающий или сочиняющий ответ.
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34382814
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
а какая разница какая ошибка? яж прошу не ошибку исправить а написать так чтоб было без ошибки.
а ошибка такая возникает неизвесная команда, или неверный синтаксис или еще чтото, пишу например вот что:Look for thisform.grid1.value=thisform.combo1.value
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34382825
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
команда пишется LOCA не LOOC, не важно какая ошибка? Ведь сообщают неизвестная команда.
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34382995
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
написал
locate for thisform.grid1.Value=thisform.combo1.value
ошибок при запуске нет, однако при выполнении при нажатии на кнопку пишут:
operator/operand type mismatch
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34382999
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
thisform.grid1.Value - может указать и колонку в которой данные, а то что несоответствие типов данных, определите какие они у Вас.
Мое мнение, лучше запись искать не на гриде, а в курсоре или таблице, не будет путаницы в каком месте грида указанные данные : myTable.MyField= и короче и понятней. НО, это только моё мнение.
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34383152
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
как сделать с курсором то? вообще ничего не понимаю, можете всетаки написать эту 1 строчку чтобы работало ? :)

а тип данных в гриде и в комбо одинаковый был,- текстовый
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34385355
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
если Вы создали курсор, я уже показывал SELE * from ... into cursor myCursor readwrite
то работа с ним аналогична работе с таблицей
Работают: APPEND,LOCATE,REPLACE .. WITH ..., не очень понял какую строчку надо написать.
Повторюсь: создаёте курсор,как уже говорил заполняете 3-мя записями и показываете в гриде на форме, но и грид и кнопку и комбо надо рисовать и программировать.
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34385612
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
написал:
SELECT fams from student WHERE student.fams=thisform.combo1.value into cursor Cur;
locate grid1.fams FROM cur

выдает ошибку мол не так написанно, а команда read тоже выдает ошибки
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34385629
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
1. При таком построении курсора Вы получите только одну записть, я говорил о копии структуры таблицы в курсор и заполнении её записями.
2. Преже чем делать команду LOCATE в курсоре? необходимо сделать активной рабочую область с курсором : SELECT cur
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34385638
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
Цитата locate grid1.fams FROM cur

выдает ошибку мол не так написанно, а команда read тоже выдает ошибки

да, не так написано см/ подробнее Хелп ( locate for student.fams=' условие отбора')
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34385720
_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
_
Гость
BMJ1. При таком построении курсора Вы получите только одну записть, я говорил о копии структуры таблицы в курсор и заполнении её записями.
2. Преже чем делать команду LOCATE в курсоре? необходимо сделать активной рабочую область с курсором : SELECT cur

1) так в грид там есть много записей, причем так сократил высоту, чтобы было видно 3 записи
вот нужно чтобы курсор перемещался на запись которая совпадает с выбранным в комбо
2)
теперь такой код у кнопки?

SELECT fams from student WHERE student.fams=thisform.combo1.value into cursor Cur
select cur
LOCATE FOR thisform.grid1.fams=cur

но пишет что такое свойство не найдено..
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34385878
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
Вы путаете GRID.fam не данные в гриде, данные grid.column.value,
команда LOCA сработает если написать как у Вас, но не грид, а его источник данных table.fam и в правой части не просто cur (имя курсора), а указания поля в курсоре (напр. cur.fam).

НО!!! Я говорил об одном алгоритме, ВЫ пошли своим путем, поэтому мои ответы рассматривайте только в качестве ликбеза (ликвидация безграмотности) по написанию отдельных команд. Смешение подходов не даст правильного результата.
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34386892
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
убрал грид, изменил код получилось:
SELECT fams from student WHERE student.fams=thisform.combo1.value into cursor Cur
SELECT fams,kg,semestr,do,no,nd,ocen FROM student
LOCATE FOR student.fams=cur.fams

поидее должно работать(сначала копируется значение из комбо в курсор, потом открываетсыя таблица и в этой таблице курсор должен установится там где фамилия совпадает со значением курсора, так понял..), но ничего не ставится курсор, хотя ошибок нет. просто открывается:SELECT fams,kg,semestr,do,no,nd,ocen FROM student и все
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34386945
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Select без указания направления вывода, напрмер, INTO cursor MyCursor, показывает результат запроса в окне Browse.
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34387079
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT RECNO() from bd WHERE условие INTO ARRAY tmp
SELECT * from bd WHERE RECNO()=tmp(1) or RECNO()=tmp(1)+1 or RECNO()=tmp(1)-1
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34388474
!! :)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
q1w1e1SELECT RECNO() from bd WHERE условие INTO ARRAY tmp
SELECT * from bd WHERE RECNO()=tmp(1) or RECNO()=tmp(1)+1 or RECNO()=tmp(1)-1

Благодарю! :)

наконецно кто-то просто и ясно ответил, уже наверное неделю пытался добится как это сделать..
вопрос только что такое recno? что делает эта команда? а tpm это я так понимаю массив?
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34388555
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
1.Значение не копируется из комбо в курсор, а отбирается из курсора по условию равенства.
2. Чтобы не открывался "просто селект" селект должен быть "IN CURSOR namecur"
потом SELE namecur и внём LOCATE.
...
Рейтинг: 0 / 0
Как отобразить Конкретную,предыдущую, следующую записи?
    #34389861
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
!! :) q1w1e1SELECT RECNO() from bd WHERE условие INTO ARRAY tmp
SELECT * from bd WHERE RECNO()=tmp(1) or RECNO()=tmp(1)+1 or RECNO()=tmp(1)-1

Благодарю! :)

наконецно кто-то просто и ясно ответил, уже наверное неделю пытался добится как это сделать..
вопрос только что такое recno? что делает эта команда? а tpm это я так понимаю массив?

tmp -временный массив, куда передаются результаты запроса
функция RECNO( )
Возвращает номер текущей записи в текущей или заданной таблице.

Синтаксис

RECNO([nWorkArea | cTableAlias])

Параметры

nWorkArea

Задает номер рабочей области для таблицы, открытой в другой рабочей области. Если в заданной рабочей области нет открытых таблиц, функция RECNO( ) возвращает 0.

cTableAlias

Задает псевдоним таблицы, открытой в другой рабочей области.

Результат

Числовой

Комментарии

Текущая запись ѕ это запись, на которой установлен указатель записи.
Если указатель записи расположен за последней записью таблицы, функция RECNO( ) возвращает значение, на единицу большее числа записей в таблице. Если указатель записи установлен перед первой записью таблицы или если в таблице нет записей, RECNO( ) возвращает 1. Если в таблице нет записей, функция EOF( ) всегда возвращает значение "истина" (.T.).
Функция RECNO( ), выданная без аргументов nWorkArea и cTableAlias, возвращает номер текущей записи для таблицы, находящейся в выбранной в данный момент рабочей области.
Если вы безуспешно применили команду SEEK в индексированной таблице, то задав 0 в качестве nWorkArea, можно воспользоваться алгоритмом "мягкого поиска", возвращающим номер наиболее похожей записи. RECNO(0) возвращает 0, если такой похожей записи найти не удается. Если выдать GO RECNO(0), когда похожая запись не найдена, Visual FoxPro сгенерирует сообщение об ошибке.
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как отобразить Конкретную,предыдущую, следующую записи?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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