Список форумов Шадринский форум -> Программирование -> Общие вопросы программирования -> Foxpro
Начать новую тему   Ответить на тему   вывод темы на печать

Foxpro

Автор
Сообщение
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.09.28 08:29.40
Ответить с цитатой
Кусочек программы

if Val(alltrim(W_OPER[M.I,4]))>0
M.ANAESTHES = Val(alltrim(W_OPER[M.I,4])
endif

это из ***.err
M.ANAESTHES = Val(alltrim(W_OPER[M.I,4])
Error in line 433: Syntax error.

что я делаю не так?

Поясняю:
W_OPER[M.I,4]
это строка (а точнее чать данных из мемо поля) там может быть как цифры так и буквы

if Val(alltrim(W_OPER[M.I,4]))>0
проверяю что тут есть число

M.ANAESTHES = Val(alltrim(W_OPER[M.I,4])
тут присваиваю это число...

M.ANAESTHES числовое поле длинной 2
Посмотреть профиль Отправить личное сообщение ICQ Number
moishe
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1668


Статус: Offline
СообщениеДобавлено: 2007.09.28 09:30.21
Ответить с цитатой
Никогда не используйте в фоксе алиас М, т.к. М - это также префикс переменных памяти. Если в данном случае M - алиас, то надо писать
Replace M.anaesthes with val(alltrim(W_OPER[M.I,4]))
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.09.28 11:42.27
Ответить с цитатой
moishe

Это не я. Я просто переделываю программу под новые нужды ... Razz , и плохо разбираюсь в фоксе....

в err
Replace M.anaesthes with val(alltrim(W_OPER[M.I,4]))
Error in line 433: Unrecognized phrase/keyword in command.

может так проще будет

sss=00
sss=val(alltrim(W_OPER[M.I,4]))
If sss>0
M.anaesthes=sss
endif

Добавлено спустя 1 час 48 минут 47 секунд:

попробывал
sss=00
sss=val(alltrim(W_OPER[M.I,4]))
If sss>0
M.anaesthes=sss
endif

Ошибок нету но забил все одни и тем же значение , причем первым
Посмотреть профиль Отправить личное сообщение ICQ Number
moishe
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1668


Статус: Offline
СообщениеДобавлено: 2007.09.28 17:25.26
Ответить с цитатой
У тебя фокс какой?
И что такое все-таки "M"?
Это в цикле делается, или как?
И что такое W_OPER, массив?
А M.I - это поле?
Приведи, что ли, фрагмент покрупнее. И распиши, что где открыто.
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.10.01 12:26.06
Ответить с цитатой
1. Foxpro 2.6
2. сам не заю Embarassed
3. Да цикл
4. declare W_OPER[15,9]
5. М.I на скока я поянл это мемо поле там текст разделен спец символами те получается 9, как бы сказать, типа значений .

т.е мемо поле содержит примерно такую запись |- это типа спец символа.

аааааааааааа|ббббббббббббб|ввввв|гггг|ддддддддд|||

вот это и есть M.I
а циферка после запятой указывает какое значения нам надо выбрать

вот место где это делается

if !empty(WYP.OPERACII)
declare W_OPER[15,9]
store "" to W_OPER
do GET_OPER with WYP.OPERACII
for I=1 to alen(W_OPER, 1)
if empty(W_OPER[M.I,2])
loop
endif

M.OPERATION = Val(alltrim(W_OPER[M.I,8]))
* ------- Вто это я добавил всяко пробывал .....
sss=Val(alltrim(W_OPER[M.I,4]))
if sss >0
*Replace M.anaesthes with sss
*val(alltrim(W_OPER[M.I,4]))
M.ANAESTHES = sss
* Val(alltrim(W_OPER[M.I,4])
endif
*----------------
M.DATA_OPER = W_OPER[M.I,2]
M.TIME_OPER = W_OPER[M.I,7]
M.FIO = alltrim(W_OPER[M.I,5])
M.APP_ENDOK = 0
M.APP_LASER = 0
M.APP_KRIOG = 0
select OPERAT
insert into OPERAT from memvar
endfor
endif

Добавлено спустя 3 часа 46 минут 14 секунд:

все победил.
moishe спасибо
тему можно закрыть
Посмотреть профиль Отправить личное сообщение ICQ Number
Страница 1 из 1
Начать новую тему   Ответить на тему   вывод темы на печать
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> Общие вопросы программирования -> Foxpro

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы