Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как обратиться к источнику / 23 сообщений из 23, страница 1 из 1
23.10.2006, 15:39
    #34074374
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Добрый день.
Пишу класс формы. На форме лежит грид. В качестве источника записей ему будет назначен источник (RecordSourceType=5 (Alias)). То есть свойству RecordSource будет присвоено нужное значение. А в классе мне нужно обратиться к конкретному полю текущей записи источника. Каков должен быть синтаксис, чтобы подобные выражения были верны?
Код: plaintext
LEFT(THISFORM.Grid1.RecordSource .Field1, 5 )
...
Рейтинг: 0 / 0
23.10.2006, 15:50
    #34074424
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Код: plaintext
MyGrid.Columns(i).ControlSource
...
Рейтинг: 0 / 0
23.10.2006, 16:19
    #34074565
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Чой-то я не соображу. По
Код: plaintext
1.
MyGrid.Columns(i).ControlSource
я получаю имя источника. А как вытянуть текущее значение из этого источника?
...
Рейтинг: 0 / 0
23.10.2006, 16:27
    #34074607
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Код: plaintext
1.
Lvar = MyGrid.Columns(i).ControlSource
? &Lvar
...
Рейтинг: 0 / 0
23.10.2006, 16:41
    #34074674
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Павел, ну чему Вы учите молодежь?!

Код: plaintext
1.
Lvar = MyGrid.Columns(i).ControlSource
? Evaluate(Lvar)
...
Рейтинг: 0 / 0
23.10.2006, 16:46
    #34074692
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
ну и я ляпну

на буферизованном курсоре

? curval('поле','алиаз')
...
Рейтинг: 0 / 0
23.10.2006, 16:47
    #34074698
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Понятно. Спасибо!
...
Рейтинг: 0 / 0
23.10.2006, 17:00
    #34074738
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
проходящий
? Evaluate(Lvar)[/src]

Не всё так просто, макроподстановка работает чаще чем др. ф-ии

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CREATE CURSOR test (f1 i)

INSERT INTO test VALUES ( 1 )
INSERT INTO test VALUES ( 2 )

a = 'test.f1' 
SELECT test 
INDEX ON &a TAG Macrro  
CANCEL 
* Выполнить одну строку
BROWSE 
CANCEL 

a = 'test.f1' 
SELECT test 
INDEX ON EVALUATE(a) TAG Evval
CANCEL 
* Выполнить одну строку
BROWSE 

Например в RunTime EXECSCRIPT() не выполнит команду createobject() если она прописана в Char/Memo поле курсора, а & отрабатывает.
...
Рейтинг: 0 / 0
23.10.2006, 17:06
    #34074769
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Не всё так просто, макроподстановка работает чаще чем др. ф-ии

И это повод пользоваться только ею и ничем иным? Особенно в конкретном случае, описанном в основном вопросе топика? С учетом значительно меньшего быстродействия по сравнению с другими возможностями?
...
Рейтинг: 0 / 0
23.10.2006, 17:14
    #34074799
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
проходящий
И это повод пользоваться только ею и ничем иным? Особенно в конкретном случае, описанном в основном вопросе топика? С учетом значительно меньшего быстродействия по сравнению с другими возможностями?

Да я не против, пусть использует др. возможности вопрос-то стоял

проходящийну чему Вы учите молодежь?!

пытался рассказать про надежный способ.
...
Рейтинг: 0 / 0
23.10.2006, 17:25
    #34074841
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
авторRunTime EXECSCRIPT()

а как такое работает?

список( 'Список всякой фигни', ;
'[nn|Привет|макрос_03] ;
[pp|Куку]' ;
)


***
* prg список
***
lparameters tcTitle,tcSections

local lcAlias
lcAlias = alias()
if empty(lcAlias)
messagebox('Необходимо указать имя курсора!',16,'Список')
return
endif
local loForm

loForm = createobject('oBrow',tcSections,lcAlias,tcTitle)
loForm.show()



EXECSCRIPT() выполнит команду createobject()
...
Рейтинг: 0 / 0
24.10.2006, 11:13
    #34076238
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Нифига себе, какая дисскуссия развернулась. Вопрос решен (мог бы и сам догадаться.). Сейчас возник другой вопрос. Первой колонке грида будет соответствовать поле источника, где данные лежат в формате DATETIME. А я хочу показывать в колонке грида только время. Вычленить время я могу (например TTOC(tExpression, 2) ), только не соображу куда это преобразование вставить. Имя источника не фиксировано и преобразовывать надо каждое значение перед показом. Источник - реальная дбф таблица, открытая с опцией NOUPDATE.
PS VFP6SP5
...
Рейтинг: 0 / 0
24.10.2006, 11:20
    #34076274
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
2alex11100

Ну, упёртый ты.

Код: 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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
PUBLIC oForm
oForm = CREATEOBJECT('execscriptclass')
oform.show()

DEFINE CLASS execscriptclass AS form

	AutoCenter = .T.
	Caption = "Form1"
	Name = "Form1"


	ADD OBJECT command1 AS commandbutton WITH ;
		Top =  12 , ;
		Left =  48 , ;
		Height =  25 , ;
		Width =  265 , ;
		Caption = "ExecScript (createobject)", ;
		Name = "Command1"


	ADD OBJECT command2 AS commandbutton WITH ;
		Top =  60 , ;
		Left =  48 , ;
		Height =  25 , ;
		Width =  265 , ;
		Caption = "& (createobject)", ;
		Name = "Command2"


	PROCEDURE Init
		this.AddProperty('o')
	ENDPROC


	PROCEDURE Load
		CREATE CURSOR test (f1 m)

		INSERT INTO test VALUES (' thisform.o = createobject([form] ) ' )
	ENDPROC


	PROCEDURE command1.Click
		m.aa =  ALLTRIM(EVALUATE('test.f1') )
		EXECSCRIPT(m.aa)
		thisform.o.show()
	ENDPROC


	PROCEDURE command2.Click
		GO TOP 
		m.aa = ALLTRIM(EVALUATE('test.f1'))
		&aa
		thisform.o.show()
	ENDPROC


ENDDEFINE
...
Рейтинг: 0 / 0
24.10.2006, 12:57
    #34076693
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
ерундой Вы занимаетесь, батенька


EXECSCRIPT(m.aa, thisform)

а там параметром ловить нужно

мне упираться не нужно
у меня другой стиль и другое понимание


в EXECSCRIPT форму нужно передавать и там ловить
EXECSCRIPT не знает что такое зисформ и не должен он этого знать
...
Рейтинг: 0 / 0
24.10.2006, 13:02
    #34076722
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
alex11100 ерундой Вы занимаетесь, батенька

Это не ерунда, это совсем не ерунда дружище, Битнер (с) 17 мгн. весны.
...
Рейтинг: 0 / 0
24.10.2006, 13:06
    #34076751
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Код: 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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
* Mode MS-original

PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show
RETURN


	**************************************************
*-- Form:            form1 (d:\vfp9\formttttttt.scx)
*-- ParentClass:     form
*-- BaseClass:       form
*-- Time Stamp:      10/24/06 01:05:10 PM
*
DEFINE CLASS form1 AS form


	DoCreate = .T.
	Caption = "Form1"
	Name = "Form1"


	ADD OBJECT command1 AS commandbutton WITH ;
		Top =  156 , ;
		Left =  132 , ;
		Height =  27 , ;
		Width =  84 , ;
		Caption = "Command1", ;
		Name = "Command1"


	PROCEDURE Load
		CREATE CURSOR test (f1 m)

		local lcCmd
		text to lcCmd noshow
		lparameters toForm
		toForm.o = createobject('form')
		endtext

		INSERT INTO test VALUES (lcCmd)
	ENDPROC


	PROCEDURE Init
		this.AddProperty('o')
	ENDPROC


	PROCEDURE command1.Click
		local lcCmd
		lcCmd =  ALLTRIM(EVALUATE('test.f1') )
		EXECSCRIPT(lcCmd,thisform)
		thisform.o.show()
	ENDPROC


ENDDEFINE
*
*-- EndDefine: form1
**************************************************

...
Рейтинг: 0 / 0
24.10.2006, 13:07
    #34076754
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
авторЭто не ерунда, это совсем не ерунда дружище,


а это что??
...
Рейтинг: 0 / 0
24.10.2006, 13:15
    #34076788
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
так, что на этом постановим

екзекскрипт работает,
просто нужно правильно передавать ссылку на объект
...
Рейтинг: 0 / 0
24.10.2006, 16:40
    #34077782
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
alex11100так, что на этом постановим

екзекскрипт работает,
просто нужно правильно передавать ссылку на объект

Что-то не сумел найти пример косяков, НО в методе класса есть такие строчки
...
Рейтинг: 0 / 0
24.10.2006, 16:45
    #34077809
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Упс, пост улетел

Продолжаю.

Код: plaintext
1.
2.
3.
4.
5.
			LOCAL aa
*			SET STEP ON 
			m.aa = m.oThisParent.controlSource
*			EXECSCRIPT(EVALUATE(m.aa))
			m.aa = (EVALUATE(m.aa))
			&aa


не от хорошей жизни пришлось закоментировать EXECSCRIPT, и обнаружилось это в RunTime. Если вспомню детали настрогаю пример.
...
Рейтинг: 0 / 0
24.10.2006, 17:18
    #34077936
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
2 PaulWist

косяк я Вам показал - это зисформ

екзекскрипт не знает зисформ
и зисформ в скриптах нельзя пользовать,
поэтому передаем параметром


в Вашем примере
будет работать

INSERT INTO test VALUES (' oForm.o = createobject([form] ) ' )
потому, что Вы пабликом форму объявили
...
Рейтинг: 0 / 0
24.10.2006, 17:31
    #34077989
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
Нет, в том месте не было ссылок вообще ни на что, надо просто было выполнить
Код: plaintext
EXECSCRIPT('DO FORM Form WITH par1, par2')
НО был косяк, в чем сейчас не помню.
...
Рейтинг: 0 / 0
24.10.2006, 17:58
    #34078087
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к источнику
а ду форм - это ужас в ночи-
неуправляемый взлет шаманской мысли

на работе ду форм сплошные - легче застрелиться
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как обратиться к источнику / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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