Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Переместить курсор в таблице / 11 сообщений из 11, страница 1 из 1
12.04.2013, 11:11
    #38223112
Новый2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
Добрый день. В общем такое дело. Есть таблица copms с полем pcname, где перечислен список компьютеров которые имеют доступ к одной функции в программе (неважно какая функция). Есть в программе переменная, которая хранит название компьютера. Нужно сделать так чтобы если в таблице есть компьютер совпадающий со значением переменной, то разрешить команду. В общем-то я сделал это но программа у меня всегда на первую запись переходит и все т.к. я написал go top. А КАК СДЕЛАТЬ, ЧТОБЫ ОНА ПРОСМАТРИВАЛА ВСЮ ТАБЛИЦУ COMPS??

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
machine_name = trim(lower(substr(SYS(0),1,at("#",SYS(0))-1)))
select comps
go top
if (machine_name==allt(comps.pcname))
else
  wait window "ЗАПРЕЩЕННО!." timeout 3
  thisform.release
endif
...
Рейтинг: 0 / 0
12.04.2013, 11:17
    #38223128
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
Новый2013,

seek/locate
...
Рейтинг: 0 / 0
12.04.2013, 11:24
    #38223148
Новый2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
tanglir, можете привести пример? я так написал не находит все равно

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select comps
go top
locate for (machine_name==allt(comps.pcname))
if (machine_name==allt(comps.pcname))
else
  wait window "ЗАПРЕЩЕНО!." timeout 3
  thisform.release
endif
...
Рейтинг: 0 / 0
12.04.2013, 11:25
    #38223151
Новый2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
таблица не индексированная наверное seek не подойдет туда.
...
Рейтинг: 0 / 0
12.04.2013, 11:27
    #38223158
DmGr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
Новый2013,

Код: sql
1.
2.
3.
4.
5.
machine_name = LOWER(GETWORDNUM(ID(),1))
select comps
LOCATE FOR machine_name==alltrim(comps.pcname)
IF FOUND()
ENDIF
...
Рейтинг: 0 / 0
12.04.2013, 11:30
    #38223164
Новый2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
DmGr, это все? а где же сообщение что если не найдено соответствие то ЗАПРЕЩЕНО
...
Рейтинг: 0 / 0
12.04.2013, 11:32
    #38223172
Новый2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
не ищет так тоже.. на другом компе запускаю не запрещено пишет
...
Рейтинг: 0 / 0
12.04.2013, 11:38
    #38223182
Новый2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
работаю в 6-м фоскпро
...
Рейтинг: 0 / 0
12.04.2013, 11:41
    #38223188
Новый2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
извиняюсь, заработало
...
Рейтинг: 0 / 0
12.04.2013, 11:41
    #38223189
DmGr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
Новый2013,

machine_name = LOWER(TRIM(GETWORDNUM(ID(),1)))

А вообще, уже не хочется помогать.
Кстати, пользуйся дебагером
...
Рейтинг: 0 / 0
13.04.2013, 07:42
    #38224224
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить курсор в таблице
Новый2013Добрый день. В общем такое дело. Есть таблица copms с полем pcname, где перечислен список компьютеров которые имеют доступ к одной функции в программе (неважно какая функция). Есть в программе переменная, которая хранит название компьютера. Нужно сделать так чтобы если в таблице есть компьютер совпадающий со значением переменной, то разрешить команду. В общем-то я сделал это но программа у меня всегда на первую запись переходит и все т.к. я написал go top. А КАК СДЕЛАТЬ, ЧТОБЫ ОНА ПРОСМАТРИВАЛА ВСЮ ТАБЛИЦУ COMPS??

Чего это, опять курсовой ?
machine_name = trim(lower(substr(SYS(0),1,at("#",SYS(0))-1))) возвращает некое имя машины (там полная галиматья).
Ну, есть у вас некая табла COPMS, но вопрос в том, а чего там визуально видно в поле PCNAME ? Допустим (в чём я сомневаюсь), что в COPMS перечислены компы, имеющие доступ к некой функции. И тут вступает в роль некая переменная Х, "которая хранит название компьютера". Тут как-то сразу возникает сомнение, а соответствует ли значение сей переменной с реальным именем машины (machine_name). Далее, вообще детский сад - "Нужно сделать так чтобы если в таблице есть компьютер совпадающий со значением переменной, то разрешить команду." Судя по всему, вы новичок в фоксе. Это не страшно.
IF UPPER(alltrim(machine_name))==UPPER(alltrim(copms->pcname))
&& разрешить команду
ELSE
&& команду по фигу
ENDIF
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Переместить курсор в таблице / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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