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

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

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

? curval('поле','алиаз')
...
Рейтинг: 0 / 0
Как обратиться к источнику
    #34074698
Кузнецов Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно. Спасибо!
...
Рейтинг: 0 / 0
Как обратиться к источнику
    #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
Как обратиться к источнику
    #34074769
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не всё так просто, макроподстановка работает чаще чем др. ф-ии

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

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

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

пытался рассказать про надежный способ.
...
Рейтинг: 0 / 0
Как обратиться к источнику
    #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
Как обратиться к источнику
    #34076238
Кузнецов Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нифига себе, какая дисскуссия развернулась. Вопрос решен (мог бы и сам догадаться.). Сейчас возник другой вопрос. Первой колонке грида будет соответствовать поле источника, где данные лежат в формате DATETIME. А я хочу показывать в колонке грида только время. Вычленить время я могу (например TTOC(tExpression, 2) ), только не соображу куда это преобразование вставить. Имя источника не фиксировано и преобразовывать надо каждое значение перед показом. Источник - реальная дбф таблица, открытая с опцией NOUPDATE.
PS VFP6SP5
...
Рейтинг: 0 / 0
Как обратиться к источнику
    #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
Как обратиться к источнику
    #34076693
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ерундой Вы занимаетесь, батенька


EXECSCRIPT(m.aa, thisform)

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

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


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

Это не ерунда, это совсем не ерунда дружище, Битнер (с) 17 мгн. весны.
...
Рейтинг: 0 / 0
Как обратиться к источнику
    #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
Как обратиться к источнику
    #34076754
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЭто не ерунда, это совсем не ерунда дружище,


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

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

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

Что-то не сумел найти пример косяков, НО в методе класса есть такие строчки
...
Рейтинг: 0 / 0
Как обратиться к источнику
    #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
Как обратиться к источнику
    #34077936
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 PaulWist

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

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


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

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

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


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