powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по Grid
7 сообщений из 32, страница 2 из 2
Вопрос по Grid
    #33225879
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*И форму лучше запускать
puplic form1
DO Form form1 NAME form1 LINKED
*Тогда к форме можно будет однозначно обращаться по имени, попробуй
...
Рейтинг: 0 / 0
Вопрос по Grid
    #33225901
travek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня заработало... Я только прошу вас помочь мне понять, в чём было не так. Итак вот с этим кодом работает:

DROP TABLE "test1"
SELECT name,p_ser,p_nom, adres from db_path+"vk_klie.dbf" INTO TABLE test1
CLOSE TABLES
DO FORM "c:\Documents and Settings\alexx\Ìîè äîêóìåíòû\Visual FoxPro Projects\proj1\form2" NAME frm1
frm1.Grid1.ColumnCount=4
frm1.Grid1.RecordSourceType=0
frm1.Grid1.RecordSource="test1"
frm1.Grid1.AutoFit()
frm1.Grid1.Column1.Header1.Caption="ÔÈÎ"
frm1.Grid1.Column2.Header1.Caption="Ñåðèÿ Ï."
frm1.Grid1.Column3.Header1.Caption="Íîìåð Ï."
frm1.Grid1.Column4.Header1.Caption="Àäðåñ"

Код, где поиск
SELECT "test1"
GO TOP IN test1
LOCATE FOR test1.name=ALLTRIM(thisform.text1.value)
frm1.Grid1.Refresh()
frm1.Grid1.setfocus()
thisform.Release

А вот с этим кодом не работает:
DROP TABLE "test1"
SELECT name,p_ser,p_nom, adres from db_path+"vk_klie.dbf" INTO TABLE test1
DO FORM "c:\Documents and Settings\alexx\Ìîè äîêóìåíòû\Visual FoxPro Projects\proj1\form2" NAME frm1
frm1.Grid1.ColumnCount=4
frm1.Grid1.RecordSourceType=0
frm1.Grid1.RecordSource="test1"
frm1.Grid1.AutoFit()
frm1.Grid1.Column1.Header1.Caption="ÔÈÎ"
frm1.Grid1.Column2.Header1.Caption="Ñåðèÿ Ï."
frm1.Grid1.Column3.Header1.Caption="Íîìåð Ï."
frm1.Grid1.Column4.Header1.Caption="Àäðåñ"

Различие в том что я добавил close tables. И всё заработало. В чём причина??? Может ошибка серьёзней, чем мне кажется?
...
Рейтинг: 0 / 0
Вопрос по Grid
    #33226039
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DROP TABLE
зачем удалять таблицу из Базы (Removes a table from the current database and deletes it from disk) затем записывать кудато новую свободную таблицу?
Как потом будет применятся данная таблица?
****
Ведь можно к гриду привязать сразу нужную таблицу (db_path+"vk_klie.dbf")
затем по таблице сделать поиск и пр. без каких либо посредников
Можно к гриду и результат запроса подцепить.
...
Рейтинг: 0 / 0
Вопрос по Grid
    #33226257
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НЕ НАДО устанавливать

Grid.RecordSourceType = 0 - Table

Оставьте настройку по умолчанию

Grid.RecordSourceType = 1 - Alias

Включите эту таблицу в DataEnvironment-формы и больше не мучайтесь. Ну, или вручную открывайте эту таблицу в LOAD-формы.
...
Рейтинг: 0 / 0
Вопрос по Grid
    #33226331
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы сделал несколько иначе:
Код: plaintext
1.
public form1
DO Form form1 NAME form1 LINKED

Пытаемся запустить форму
В форме, в Load открываем нужную таблицу, если таблица не открыта или не удается открыть,
Код: plaintext
RETURN .F.

форма не откроется
Дальше варианты: если нужен результат запроса:
Init формы
Код: plaintext
1.
2.
3.
4.
5.
thisform.grid1.RecordSource=''
thisform.grid1.RecordSourceType=  4  
gr_source='SELECT name,p_ser,p_nom, adres from vk_klie INTO Cursor c_test1'
thisform.grid1.RecordSource=gr_source
thisform.grid1.SetFocus() 

после этого все обращения к курсору c_test1

или

просто таблицу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 
WITH thisform.grid1
   .RecordSourceType=  1  
   .Column1.ControlSource=vk_klie.name
   ****
   .Column4.ControlSource=vk_klie.adres
   .SetFocus() 
ENDWITH 

(Так же можно все сделать в конструкторе форм.)

PS
На истину в последней инстанции не претендую :)
...
Рейтинг: 0 / 0
Вопрос по Grid
    #33226382
GrayFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a ya dumayu tak
v Load formu postavit :
public nRecn


DO FORM "form2" NAME frm1
DROP TABLE "test1"
SELECT name,p_ser,p_nom, adres from db_path+"vk_klie.dbf" INTO TABLE test1
frm1.Grid1.ColumnCount=4
frm1.Grid1.RecordSourceType=0
frm1.Grid1.RecordSource="test1"
frm1.Grid1.AutoFit()
frm1.Grid1.Column1.Header1.Caption="xxx"
frm1.Grid1.Column2.Header1.Caption="yyy"
frm1.Grid1.Column3.Header1.Caption="zzz"
frm1.Grid1.Column4.Header1.Caption="aaa"

READ EVENTS

Код кнопки формы, которую вызываю:
SELECT "test1"
GO TOP IN test1
LOCATE FOR test1.name=ALLTRIM(thisform.text1.value)
nRecn =Recno()
frm1.Grid1.Refresh()
frm1.Grid1.setfo

cus()
...
Рейтинг: 0 / 0
Вопрос по Grid
    #33226646
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если этот код будет выполнятся не один раз?
Удалил из БД таблицу и создал свободную таблицу, не воходящую в БД с тем же именем в каталоге, выбранном в данный момент поумоляанию.
При повторном запуске , команда DROP TABLE test1 - выдаст ошибку, т.к. не сможет найти в БД таблицы с именем "test1".
А если эта таблица временная , тогда зачем ее туда (в БД) помещать?
И вообще зачем ее создавать? Если нам просто в таблице vk_klie необходимо найти некоторого клиента? Там ведь можно будет и индексами воспользоваться (если создать конечно), тогда и поиск будет осуществляться быстрей SEEK().
Да и в формате поиска надобно к общему регистру приводить. Можно попробовать в окне комманд ввести:
? 'Aaa'='aaa' и получить .F.
Для Locate не надо предварительно уходить в начало таблицы, она и так будет искать от туда, сама по себе. Можно это экспериментально посмотреть. Будет наглядно видно :) И если найдет запись, то там и остановится, при этом Recno() выдаст номер найденой записи, а found() выдаст .T., получается запомнить номер текущей записи и идти к ней же - к текущей записи!?
IMHO не правельно это все изначально, проще надо быть :)
Хотя хозяин-барин...
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по Grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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