Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Передача данных в Grid / 25 сообщений из 38, страница 1 из 2
27.07.2006, 15:27
    #33882546
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Добрый день. Помогите сталкнулся с такой проблемой. Делаю такой запрос


Код: plaintext
1.
2.
3.
4.
5.
 

SQLEXEC(con_handle, "select mig_pasp.*, strana.text_ from li, li_mig_pasp, mig_pasp,                 strana where Li.NI = ?nNi and;
              Li.NI = li_mig_pasp.li_ni and li_mig_pasp.mig_pasp_ni = mig_pasp.ni and strana.kod_ = mig_pasp.grajdanstvo_","cllist")


Как мне правильно отправитьь этот курсор в Grid, куда и что необходимо прописать,
в свойствах GRID - INIT, и на форме в INIT затолкал эту строку, ( ругаться что его нет), но данные не отображает.

в GRID - RECORDSOURCE прописал также cllist
в GRID - CLOUMN1 - CONTROLSOURCE прописал cllist.ni

чего мне еще нехватает ???
...
Рейтинг: 0 / 0
27.07.2006, 15:34
    #33882565
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
sqlexec делать в Load form'ы
в гриде
RecordSourseType - Alias
RecorSource - cllist
Ну и колонки какие надо соответственно
...
Рейтинг: 0 / 0
27.07.2006, 15:42
    #33882593
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
а что раньше вызывается INIT или LOAD, а то у меня все SQLEXEC-и в INITe это что, придется их все туда заталкивать, или есть еще какои - нибудь способ ??
...
Рейтинг: 0 / 0
27.07.2006, 15:54
    #33882637
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Первым идет LOAD и загрузку данных надо делать там.
...
Рейтинг: 0 / 0
27.07.2006, 16:02
    #33882669
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
А теперь такой вопрос, как мне туда передать LPARAM, у меня они туда не хотят залазить, определяются в INIT, а там ошибку выдает, как мне быть, просто мне необходимо туда передать номер nNi
...
Рейтинг: 0 / 0
27.07.2006, 16:05
    #33882678
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
проходящийПервым идет LOAD и загрузку данных надо делать там.
В LOAD формы нельзя делать инициализацию GRID - его еще нет.
Проще и загрузку данных и инициализацию GRID делать в контрукторе формы (INIT) или в методе формы, вызываемого из него.
С уважением, Алексей.
...
Рейтинг: 0 / 0
27.07.2006, 16:06
    #33882683
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
А можно поподробней, что и куда прописать, а то я только учусь, перехожу с Delphi на FOX, и не все понимаю, там все проще.
...
Рейтинг: 0 / 0
27.07.2006, 16:19
    #33882730
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
перехожу с Delphi на FOX

вот и переходи правильно

у лисы есть объект КА
ините подними ка
опиши ему свойства
и дерни данные
и затем привяжи грид
после того как потрогал есть у КА
есть функция TABLEUPDATE( )

вот и будет все проще
можешь из всего этого сделать
мини-фрейм на классах
...
Рейтинг: 0 / 0
27.07.2006, 16:29
    #33882775
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Scorpio_mdА можно поподробней, что и куда прописать, а то я только учусь, перехожу с Delphi на FOX, и не все понимаю, там все проще.
Событие INIT любого объекта VFP - это примерный аналог конструктора в других языках с поддержкой ООП.
Параметры, которые передаются в форму при ее вызове (DO FORM ffff WITH pa1, par2, ...) нужно принять в событии INIT:
LPARAMETERS lnPar, lcPar2, ...

Не знаю, как в Delphi, а в VFP INIT контейнера происходит ПОСЛЕ INIT всех объектов внутри контейнера.
Дальше, думаю, что разберетесь сами.
С уважением, Алексей.
...
Рейтинг: 0 / 0
27.07.2006, 16:35
    #33882798
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Так я то параметры принимаю, но LOAD формы их не видит, он раньше срабатывает чем INIT.
...
Рейтинг: 0 / 0
27.07.2006, 16:52
    #33882860
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
http://sql.ru/forum/actualfile.aspx?id=2930620

посмотри здесь как поднимается грид

здесь классы
...
Рейтинг: 0 / 0
27.07.2006, 17:01
    #33882894
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Код: plaintext
ВСЕМ СПАСИБО. ЗАРАБОТАЛО 
...
Рейтинг: 0 / 0
27.07.2006, 17:12
    #33882936
космонахт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
1. Создай класс на базе грида
2. Добавь к нему свойства : calias, csql, flag_poisk,id

В инит этого грида добавь такой код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
LOCAL m.nCount, m.i
m.nCount= 0 
m.i= 0 
lcNameAlias	=	'['+this.calias+']'

DIMENSION af[ 1 , 1 ]
this.RecordSource=''

cSql	=	this.csql

SQLExec(gnconnect,cSQL,&lcNameAlias)

SELECT &lcNameAlias
IF this.flag_poisk= 1 
	LOCATE FOR id=this.id
	IF NOT FOUND()
		GO top
	ENDIF 
ENDIF

this.id	=	id
IF this.RecordSourceType= 1  && alias
	this.RecordSource=&lcNameAlias

	m.nCount=AFIELDS(af,&lcNameAlias)
	
	FOR m.i= 1  TO this.ColumnCount
		 this.Columns(m.i).controlsource= af(m.i, 1 )
	ENDFOR

ENDIF 




Код прозрачный.
Теперь наследуй от этого грида объекты и располагай на формах.

В свойстве сsql указывай строку запроса к серверу.
В свойстве calias - имя возвращаемого курсора

Чтобы обновить данные просто вызывай в нужном месте thisform.myGrid.ini

Для этого примера в возвращаемом курсоре обязательно д.быть поле id

ничто не слишком!
...
Рейтинг: 0 / 0
27.07.2006, 17:33
    #33883038
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
слушай, но ведь можно же жить без макроподстановок

ну нафиг'['+this.calias+']'
что бы затем заколебаться??


lcAlias = sys(2015)
if sclexec(...,lcAlias)<0
retu .f.
endif
this.recordsourse = lcAlias

и т.д.

зачем макроподстановка??
чтобы проблымов больше было??
...
Рейтинг: 0 / 0
27.07.2006, 17:41
    #33883073
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Здесь можно обойтись и вполне нормальным "говорящим" именем курсора и не пользоваться SYS(2015). Дабы потом не ломать голову в Data window в попытках определить, что же у нас в курсоре с многозначительным именем _1AGDASHD.
...
Рейтинг: 0 / 0
27.07.2006, 17:47
    #33883091
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
когда пишешь классы
мне имя алиаза по-барабану
и мне оно ничего не говорит

мне что "курсор" что "52555"

у меня мозга по-другому работает

а макроподстановкой писать низя


взметни 3 раза форму
у которой взлет с именем курсора "cursor"

угу
...
Рейтинг: 0 / 0
27.07.2006, 17:49
    #33883095
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
хорошо

lcAlias = this.name+sys(2015)

а нафиг макроподстановки??
...
Рейтинг: 0 / 0
27.07.2006, 17:59
    #33883132
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Слушайте, грид я вобщем запустил, а теперь такой вопрос, есть поле NI, как мне оттуда вытащить правильно значение, я пишу в GRID1.AfterRowColChange:

mmm = this.coLUMN1.text1
или
mmm = this.coLUMN1.nI_
не работает, хотя не знаю точно, но переменная получается object, но это происходит в момент открытия грида. Какое мне там еще прописать условие ???
...
Рейтинг: 0 / 0
27.07.2006, 18:06
    #33883162
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
ну если уж знаешь какой алиаз

то и пишешь

mmm = table.field

а если уж по-хитрому пишешь, то так
mmm = evaluate(lcAlias+".field")
...
Рейтинг: 0 / 0
27.07.2006, 18:07
    #33883172
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Scorpio_md
лиса - это не делфя
мозги разворачивай в сторону источника
...
Рейтинг: 0 / 0
27.07.2006, 20:19
    #33883515
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
А можно еще вопос но не по этой теме, с гридом разобрался работает отменно, так вот, в гриде я выбираю данные паспортов, есть еще кнопка добавления паспорта, там открывается новая модальная форма, как мне сделать так, чтобы после записи в новую форму у меня этот паспорт добавился в этот грид, ну и курсор соответственно.
...
Рейтинг: 0 / 0
27.07.2006, 20:38
    #33883562
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Данные добавляются не в грид, а в таблицу/курсор, лежащий под ним. В самом гриде ничего нет, он не хранит в себе никакой информации. Кроме своих свойств, конечно же. После добавления записи сделай grid.Refresh() или grid.Setfocus() и будет тебе счастье.
...
Рейтинг: 0 / 0
27.07.2006, 20:51
    #33883589
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Непошло, она насколько я понял при закрытии формы (relase), когда добавил паспорт, из формы откуда я открывал не обновляет ее заново, теперь мне какимто образом обновить все курсоры. Пробовал писать:


DO FORM mig_pasp WITH cNi

thisform.Refresh или thisform.grid1.Refresh

Это в кнопке открытия формы заполнения паспорта, но после закрыти ничего не происходит, как мне быть ??
...
Рейтинг: 0 / 0
27.07.2006, 22:06
    #33883688
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Пробовал писать

thisform.init

возникает ошибка из-за того что на форму передаются до этого LPARAM
Как мне быть с курсором и гридом, как мне их правильно обновить ??
...
Рейтинг: 0 / 0
28.07.2006, 09:01
    #33884077
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных в Grid
Объявление глобальных переменных, и потом передача их на предыдущую форму, это не выход, неужели нет другого способа ??
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Передача данных в Grid / 25 сообщений из 38, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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