powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск дилетанта
22 сообщений из 22, страница 1 из 1
Поиск дилетанта
    #34929908
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Маета мает!
Поможите кто чем может,
есть форма на которой грид, поиск по полю fam (фамилия) осуществляется из другой формы ,
где в переменную fi водится значение которое нужно найти в таблице,


код кнопки найдти :

Select Vladelec_t
Locate for UPPER(vladelec_t.fam)=UPPER(fi)

if found()
thisform.grid1.refresh()

else
=messagebox('запись не найдена',16,'error')
endif

Thisform.Release()

бьюсь пол дня но ничего не находится, все время ' запись не найдена'
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34929921
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если fi заполняется через TextBox, то оно автоматом пробелами дополняется.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Select Vladelec_t 
Locate for UPPER(vladelec_t.fam)=UPPER(alltrim(fi))

if found()
 thisform.grid1.refresh()

else
 =messagebox('запись не найдена', 16 ,'error')
 endif
 
Thisform.Release() && Тут форма полюбому закроется
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34929930
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо что то вырисовывается а что с этим
Unknown member grid1
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34929940
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, в общем-то, это должно быть имя твоего грида.
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34929951
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это то понятно, непонятно в чем ошибка, grid1 находится в форме из которой вызывается
форма поиска
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34929959
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikita_2это то понятно, непонятно в чем ошибка, grid1 находится в форме из которой вызывается
форма поиска
Во-первых не хорошо оставлять объектам имена выданные автоматом. Дай гриду нормальное имя: grdFIO например (в окне свойств задать name).
Во-вторых правая кнопка мыши, "object list..." - откроется окно со всеми объектами формы.
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34929979
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я понимаю что в форме поиска объекта grid1 нет, вопрос как отобразить найденную запись в grid1 формы, из которой вызывается форма поиска после ее закрытия
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34930005
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже давно сказано/написано: обновить соответствующий грид

thisform.grid1.refresh()

Вместо thisform подставить форму, в которой этот грид находится.
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34930014
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikita_2я понимаю что в форме поиска объекта grid1 нет, вопрос как отобразить найденную запись в grid1 формы, из которой вызывается форма поиска после ее закрытия
Например:
Form1 – форма с гридом
Form2 – форма с полем ввода искомой фамилии

Тогда вызов Form2 из Form1
Код: plaintext
DO Form Form2.scx WITH thisform

В Form2 создать свойство, например, BaseForm
Тогда в методе Form2.Init
Код: plaintext
1.
2.
PARAMETERS toBaseForm
Thisform.baseform=toBaseForm && это ссылка на форму с гридом

На кнопке в Form2
Код: plaintext
=Thisform.baseform.grid1.refresh()
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34930051
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю Fox Vik. за разжеванный ответ и снятие головной боли! Удачи!
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34971165
Larkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все что здесь было написано, я попробовала - не работает. Объясните, пожалуйста, недотепе попонятнее.
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34971439
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LarkinВсе что здесь было написано, я попробовала - не работает. Объясните, пожалуйста, недотепе попонятнее.
На так поставленный вопрос можно только книжку по фоксу предложить почитать.

Что конкретно не получается? Ошибки происходят или поведение программы не такое как ожидается?
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34971548
Larkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
когда делаю поиск, не происходит вообще никаких движений.
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34971576
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Larkinкогда делаю поиск, не происходит вообще никаких движений.
Я сразу все понял

Как поиск делается? Какой код и где выполняется?
set step on в начало поставь посмотри отладчиком что происходит
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34971603
Larkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне тоже очень смешно!!!
Код кнопки "найти"

Select uchet
seek (alltrim(m.fam))
if found()
goparform.grid1.refresh()
else
=messagebox('запись не найдена,16,'error')
endif
Thisform.Release()

а в ините формы с гридом есть такая ссылка

public goparform
goparform=this
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34971719
Larkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо что заставили подумать, заработало!!!
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34972017
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это:
Код: plaintext
 goparform.grid1.refresh()
относится к текущей форме, то лучше писать thisform .grid1.refresh() и это убрать из инита:
Код: plaintext
1.
public goparform
goparform=this

Достаточно еще раз открыть эту форму или другую с таким же инитом и программа начнет выполнять "мистические" действия. Очень нехороший способ использования глобальных переменных. Если формы разные, то лучше ссылку на форму как параметр передавать. тут пример приводили
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34975842
Larkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все работает, но если, допустим, сначала должна вызываться форма поиска, потом по введенному значению осуществляется поиск на гриде, а потом из формы с гридом может вызываться снова форма поиска?!
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34976196
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LarkinВсе работает, но если, допустим, сначала должна вызываться форма поиска, потом по введенному значению осуществляется поиск на гриде, а потом из формы с гридом может вызываться снова форма поиска?!
проверить если формы с гридом нет, то из формы поиска сначала ее создать, затем найти, затем закрыть форму поиска.
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34976922
Larkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T LarkinВсе работает, но если, допустим, сначала должна вызываться форма поиска, потом по введенному значению осуществляется поиск на гриде, а потом из формы с гридом может вызываться снова форма поиска?!
проверить если формы с гридом нет, то из формы поиска сначала ее создать, затем найти, затем закрыть форму поиска.

Вот именно как проверить и найти её я что-то не соображу!!!
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34977083
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой вариант связи форм используется?
для данной задачи удобней передавать ссылку как параметр:
fox_vikНапример:
Form1 – форма с гридом
Form2 – форма с полем ввода искомой фамилии

Тогда вызов Form2 из Form1
Код: plaintext
DO Form Form2.scx WITH thisform

В Form2 создать свойство, например, BaseForm
Тогда в методе Form2.Init
Код: plaintext
1.
2.
PARAMETERS toBaseForm
Thisform.baseform=toBaseForm && это ссылка на форму с гридом

На кнопке в Form2
Код: plaintext
=Thisform.baseform.grid1.refresh()


тут просто добавить в код кнопки поиска следующее:
Код: plaintext
1.
2.
3.
4.
5.
if vartype(Thisform.baseform) != 'O'
     do form form1
     Thisform.baseform = form1
endif
...
далее работаем с Thisform.baseform...

с глобальной переменной все хуже, если type('goparform') != 'O' надо перебрать коллекцию _screen.forms на предмет поиска нужной формы, если не найдено запустить форму.
...
Рейтинг: 0 / 0
Поиск дилетанта
    #34977096
Larkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, именно это мне и было нужно!
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск дилетанта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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