Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / enabled / 7 сообщений из 7, страница 1 из 1
29.09.2004, 16:40
    #32717175
sasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enabled
Pomaqite pojalusta! takoy vopros: v tablitse 2 polya.

kod nazv_label
1 label1
1 label2
0 label3
0 label4
1 label5
0 label6
1 label7

label1....label7 nazvaniya labela nad form1.
nado cdelat tak chto, kajdiy raz koqda proqramma nachinaet rabotat
proveryala eto tablitsu,qde kod=1 dlya etoqo labela enabled=true
yesli kod=0 dlya etoqo labela enabled=false

kak eto cdelat?
...
Рейтинг: 0 / 0
29.09.2004, 16:51
    #32717208
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enabled
Делай проверку в INIT-формы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
LOCAL lcLableName
select MyTab
SCAN
	lcLableName = MyTab.nazv_label
	IF TYPE("ThisForm."+m.lcLableName)="O"
		ThisForm.&lcLableName..enabled=(MyTab.kod= 1 )
	ENDIF
ENDSCAN

Здесь 2 точки подряд - это не опечатка. После символа макроподстановки так и надо писать.
...
Рейтинг: 0 / 0
30.09.2004, 06:27
    #32717908
Philin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enabled
Вопрос в продолжение топика:
у меня имя таблицы хранится в свойстве формы thisform.mytable
каким образом мне работать с полями этой таблицы?
вот так не получается:
Код: plaintext
&thisform.mytable..FldName
можно конечно делать и так:
Код: plaintext
1.
Local lcFld
lcFld = thisform.mytable+'.FldName'
и далее работать с &lcFld,
но хочется чего-нибудь изящного, как, например, выше было описано....
возможно ли это?
...
Рейтинг: 0 / 0
30.09.2004, 09:10
    #32717978
SergeyPl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enabled
Philin
но хочется чего-нибудь изящного, как, например, выше было описано....
возможно ли это?
Изящное :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Local lcFld
lcFld = GetTableField(thisform.mytable,FldName)
...
...
endproc

function GetTableField
    lparameters strTableName,strFieldName
    return EVALUATE(strTableName+"."+strFieldName)
endfunc
...
Рейтинг: 0 / 0
30.09.2004, 09:19
    #32717984
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enabled
Со свойствами формы по другому не получится Только предварительная запись в переменную памяти и макроподстановка к этой переменной.

Впрочем, если использовать в качестве макроподстановки функцию EVALUATE() или регулярные выражения, то, при определенных условиях, можно

* Чтение значения поля таблицы
FieldValue = EVALUATE(ThisForm.MyTable+".FieldName")

* Выборка данных из таблицы
SELECT * FROM (ThisForm.MyTable)

Однако такие заменители макроподстановки далеко не универсальные. Т.е. сработают не во всех командах. Например, поменять местами варианты макроподстановок в приведенных примерах - не получится.
...
Рейтинг: 0 / 0
30.09.2004, 09:20
    #32717986
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enabled
я бы использовал алиасы можно для каждой формы свои
и не забивал бы себе голову проблемами с макроподстановками
...
Рейтинг: 0 / 0
01.10.2004, 01:20
    #32719326
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enabled
2 leaf

Очевидно в этом свойстве и хранится алиас - и он как раз и есть "для каждой
формы свой"

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / enabled / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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