powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / enabled
7 сообщений из 7, страница 1 из 1
enabled
    #32717175
sasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
enabled
    #32717208
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делай проверку в 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
enabled
    #32717908
Philin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в продолжение топика:
у меня имя таблицы хранится в свойстве формы thisform.mytable
каким образом мне работать с полями этой таблицы?
вот так не получается:
Код: plaintext
&thisform.mytable..FldName
можно конечно делать и так:
Код: plaintext
1.
Local lcFld
lcFld = thisform.mytable+'.FldName'
и далее работать с &lcFld,
но хочется чего-нибудь изящного, как, например, выше было описано....
возможно ли это?
...
Рейтинг: 0 / 0
enabled
    #32717978
SergeyPl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
enabled
    #32717984
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Со свойствами формы по другому не получится Только предварительная запись в переменную памяти и макроподстановка к этой переменной.

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

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

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

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

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

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


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