Страница 1 из 1

Добавлено: 29 Март 2004, 10:42
Гость
Hello clalist,

Как можно еще обращаться к полю таблицы кроме как через точку?
<имя таблицы>.<имя поля>

Код: Выделить всё

             
Нельзя ли это делать через номер поля?
       напр.: <имя таблицы>.ПОЛЯ[<индекс поля>]
                            ^^^^ - есть ли что-то вроде этого?
                            
или через имя поля в качестве параметра?
       напр.: <имя таблицы>.ПОЛЯ[<имя поля как строка>]
                            ^^^^ - есть ли что-то вроде этого?

или просто использовать своего рода указатели на поля?
<указатель на поле> = <имя таблицы>.<имя поля>
чтобы уже потом использоваться его для доступа в к полю (для любой другой записи)

======
мне интересно, можно ли таким образом оптимизировать структуру программы:

IF NGroup = 1
YearSum[Realizacia.Month] = Realizacia.SW1
IF NGroup = 2
YearSum[Realizacia.Month] = Realizacia.SW2
IF NGroup = 3
YearSum[Realizacia.Month] = Realizacia.SW3
IF NGroup = 4
YearSum[Realizacia.Month] = Realizacia.SW4
IF NGroup = 5
YearSum[Realizacia.Month] = Realizacia.SW5
IF NGroup = 6
YearSum[Realizacia.Month] = Realizacia.SW6
IF NGroup = 7
YearSum[Realizacia.Month] = Realizacia.SW7

чтобы здесь был только один оператор присваивания!
естественно, перед этим потребуеться выполнить примерно те же действия, но уже только один раз

--
Best regards,
Ivan mailto:shkmail@inbox.ru

(Добавление)
Нельзя ли это делать через номер поля?
Можно, используя функции Who/What/Where . Но сначала скажи, какая у тебя версия Кларион.
или просто использовать своего рода указатели на поля?
<указатель на поле> = <имя таблицы>.<имя поля>
чтобы уже потом использоваться его для доступа в к полю (для любой другой записи)
И так можно. По крайней мере попробовать. Весь вопрос - нужно ли
мне интересно, можно ли таким образом оптимизировать структуру программы:
Угу.

YearSum[Realizacia.Month]=Choose(NGroup,Realizacia.Sw1,
Realizacia.Sw2,.....)

А если на Realizaсia.SW наложить (по Over) массив, будет совсем круто

Код: Выделить всё

SWGroup  Group,Pre()
SW1      Long
SW2      Long
SW3      Long
         ...
         End

SwOver   Long,Dim(12),Over(SwGroup)
И брюки превращаются ...

YearSum[Realizacia.Month]=SwOver[NGroup]

--
C уважением
Юрий Философов
Адрес:yufil@mail.ru

(Добавление)

СПАСИБО!

--
Best regards,
Ivan

Здравствуйте, Ivan.

Чтение Хелпа рулит
Почитайте операторы
WHAT и WHO

--
С уважением,
Олег mailto:iov@freemail.ru

Я пробовал поискать в доках, но не нашел.
В каком именно руководстве искать?

Найти я нашел, а как использовать не понял :(

WHERE Returns a field’s ordinal position within a GROUP, RECORD, CLASS, or QUEUE structure.

WHO Returns a string containing the name of a specified field from a group structure.

А мне надо по имени или номеру поля получать его значение

--
Best regards,
Ivan
Написал: ClaList(2)

Добавлено: 01 Апрель 2004, 19:52
Гость
YearSum[Realizacia.Month] = Evaluate('Realizacia.SW'& NGroup)

Будько Валерий Казимирович <w_budko@tut.by>
Написал: ClaList(2)