On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 3589
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.08.14 22:00. Заголовок: Как создать код блока из статик переменной ?


Вот сижу и не могу сделать вроде простую вещь.
Имеются две статик переменных, в которые передаю разные поля базы, например для бд CITY:
cStPole_Kod := "KCITY"
cStPole_Name := "CITY"

А в обработке, нужно получить кодоблок из этих переменных:
AADD(aColorUsl, { { || cStPole_Kod == 0 } , "12/2" } )
AADD(aColorUsl, { { || LEN(cStPole_Name) == 0 }, "12/3" } )

Помогите пожалуйста.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]





Пост N: 106
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 24.08.14 06:21. Заголовок: кодоблок


Цитата: { || cStPole_Kod == 0 }
Что-то не так.. это же ( "KCITY" == 0 ), то есть сравнение разных типов - строка и число

Может, нужно вычислить { || &cStPole_Kod == 0 } ?

Тогда можно { || FieldGet(Fieldnum(cStPole_Kod)) == 0 }
если в переменной - точно имя поля , а не любое значение

Или добавить две новые функции доступа к этим переменным
Function cStPole_Kod()
return &cStPole_Kod

Function cStPole_Name()
return &cStPole_Name

тогда блок будет { || cStPole_Kod() == 0 }


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3591
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.08.14 20:02. Заголовок: petr707 пишет: Что-..


petr707 пишет:

 цитата:
Что-то не так.. это же ( "KCITY" == 0 ), то есть сравнение разных типов - строка и число


Мне нужно сделать { || KCITY == 0 } !

petr707 пишет:

 цитата:
Может, нужно вычислить { || &cStPole_Kod == 0 } ?



При такой макроподстановке - идет ошибка:
Harbour 3.2.0dev (r1406261642)
Copyright (c) 1999-2014, http://harbour-project.org/
Sel_DimHmg.prg(909) Error E0047 Code block contains both macro and declared symbol references 'CSTPOLE_KOD'
Sel_DimHmg.prg(909) Error E0042 Macro of declared symbol '{ || &cStPole_Kod == 0 }'
Sel_DimHmg.prg(910) Error E0047 Code block contains both macro and declared symbol references 'CSTPOLE_NAME'
Sel_DimHmg.prg(910) Error E0042 Macro of declared symbol '{ || LEN(&cStPole_Name) == 0 }'


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 107
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 24.08.14 20:31. Заголовок: В том и дело, что дл..


В том и дело, что для типа Static переменной, вроде как, нельзя использовать &cStPole_Kod в блоке кода
нужно
- или Fieldget(..
- или функции
- или { || &(cStPole_Kod) == 0 }
- или cStPole_Kod объявить как Public


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3593
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.08.14 21:10. Заголовок: petr707 пишет: { &#..


petr707 пишет:

 цитата:
{ || &(cStPole_Kod) == 0 }



Спасибо БОЛЬШОЕ !
Заработало как статик:
{ || &(cStPole_Kod) == 0 }
{ || LEN(ALLTRIM(&(cStPole_Name))) == 0 }


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 680
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет