Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Grid - как вывести в колонке переменное значение  [new]
_Margo_
Member

Откуда:
Сообщений: 58
Доброго Вам дня!
У меня такая проблема:
В grid 2 колонки. В одной я вывожу одно поле таблицы, а вот в другой нужно вывести одно из трех текстовых значений. Вывод этих текстов зависит от значения двух полей в той же таблице.
Приведу пример:
есть следующие поля в таблице:
fio,preds,sekr
Если preds=1 - нужно вывести в строке grid-а один текст
Если sekr=1 - другой текст
Если в этих полях пусто - третий текст.

Я пишу:
Thisform.grid1.ColumnCount=2
thisform.grid1.RecordSource='MyAlias7'
ThisForm.Grid1.Column1.ControlSource='MyAlias7.fio'
ThisForm.Grid1.Column2.ControlSource=''
ThisForm.Grid1.Column2.text1.Value=iif(MyAlias7.preds=1,'Текст 1',IIF(MyAlias7.sekr=1,'Текст 2','Текст 3'))

Но это не работает. Выводятся только фамилии в первой колонке. Кужа же написать эти iif ???
2 июн 10, 11:06    [8875206]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Игорь Горбонос
Member

Откуда: Днепропетровск
Сообщений: 4236

> Автор: _Margo_
> Но это не работает. Выводятся только фамилии в первой колонке. Кужа же написать эти iif ???

В КонтролСоурс третьего столбца не пробовала записать это условие?

Posted via ActualForum NNTP Server 1.4

2 июн 10, 11:17    [8875285]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Местами администратор
Member

Откуда: Ростовская обл
Сообщений: 220
_Margo_,

ThisForm.Grid1.Column2.ControlSource=iif(MyAlias7.preds=1,'Текст 1',IIF(MyAlias7.sekr=1,'Текст 2','Текст 3'))
2 июн 10, 11:17    [8875289]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Игорь Горбонос
Member

Откуда: Днепропетровск
Сообщений: 4236

> Автор: Игорь Горбонос
> третьего столбца

Сори, второго столбца.

Posted via ActualForum NNTP Server 1.4

2 июн 10, 11:18    [8875292]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Местами администратор
Member

Откуда: Ростовская обл
Сообщений: 220
Игорь Горбонос

> Автор: _Margo_
> Но это не работает. Выводятся только фамилии в первой колонке. Кужа же написать эти iif ???

В КонтролСоурс третьего столбца не пробовала записать это условие?


+1
2 июн 10, 11:19    [8875306]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
_Margo_
Member

Откуда:
Сообщений: 58
Игорь Горбонос,

Конечно пробовала и вот что получила при запуске (error см. в файле):

К сообщению приложен файл. Размер - 0Kb
2 июн 10, 11:25    [8875374]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Игорь Горбонос
Member

Откуда: Днепропетровск
Сообщений: 4236

> Автор: _Margo_
> Конечно пробовала и вот что получила при запуске (error см. в файле):

Это у тебя гранаты не правильной конструкции! почти (с) Белое солнце пустыни

Thisform.grid3.column6.ControlSource= [IIF(applications_a.edit=.t.,'Редактируется','Готов')]
Thisform.grid3.column6.header1.Caption=[Состояние]

Posted via ActualForum NNTP Server 1.4

2 июн 10, 11:34    [8875490]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
_Margo_
Member

Откуда:
Сообщений: 58
Игорь Горбонос,

Действительно - не правильной )
Хорошо что Вы написали как должно быть - когда я писала, я не поставила [].
От этого и не работало. Хотя сейчас заработало только частично:
Почему-то выводится только строки которые соответствуют 'Текст 2' и 'Текст 3'. А строка, в которой preds=1 вообще не выводится и соответственно строки 'Текст 1' нет.
Вот моя строка - может я еще что не так написала:
ThisForm.Grid1.Column2.ControlSource=[iif(MyAlias7.preds=1,'Ïðåäñåäàòåëü êîíêóðñíîé êîìèññèè',IIF(MyAlias7.sekr=1,'Ñåêðåòàðü êîíêóðñíîé êîìèññèè','×ëåí êîíêóðñíîé êîìèññèè'))]
2 июн 10, 11:53    [8875720]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
_Margo_
Member

Откуда:
Сообщений: 58
Игорь Горбонос,

Прости-простите - это моя уже проблема - кое-что в фильтре подправила и все появилось.
Так что проблема была в квадратных скобках []. С ними все работает!

СПАСИБО!!!
2 июн 10, 11:58    [8875770]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Местами администратор
Member

Откуда: Ростовская обл
Сообщений: 220
_Margo_,

У меня работает и без квадратных скобок
2 июн 10, 12:14    [8875990]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
_Margo_
Игорь Горбонос,

Прости-простите - это моя уже проблема - кое-что в фильтре подправила и все появилось.
Так что проблема была в квадратных скобках []. С ними все работает!

СПАСИБО!!!

Квадратные скопки просто превращают ваше выражение в строку, как того требует ControlSource
Можно было и так:
Thisform.grid3.column6.ControlSource= "IIF(applications_a.edit=.t.,'Редактируется','Готов')"
С уважением, Алексей
P.S. в HELP об этом, между прочим, сказано:
Object.ControlSource[ = cName]
2 июн 10, 13:17    [8876791]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Игорь Горбонос
Member

Откуда: Днепропетровск
Сообщений: 4236

> Автор: _Margo_
> Так что проблема была в квадратных скобках []. С ними все работает!

Дело не в квадратных скобках, а в том, что в контролсоурс нужно давать строку. Т. е. подойдет любой из терминаторов
строк - кавычки("), квадратные скобки([]), апостроф(')

> Автор: Местами администратор
> У меня работает и без квадратных скобок

А покажи как прописываеш?

Posted via ActualForum NNTP Server 1.4

2 июн 10, 15:20    [8878075]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Местами администратор
Member

Откуда: Ростовская обл
Сообщений: 220
Игорь Горбонос,

не в init grida, а в ControlSource столбца пишу
iif(...,...,...)
2 июн 10, 17:55    [8879925]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Игорь Горбонос
Member

Откуда: Днепропетровск
Сообщений: 4236

> Автор: Местами администратор
> не в init grida, а в ControlSource столбца пишу

Все равно не понял, я ничего не говорил об ините, приложи пример плиз.

Posted via ActualForum NNTP Server 1.4

2 июн 10, 17:57    [8879951]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Игорь Горбонос

> Автор: Местами администратор
> не в init grida, а в ControlSource столбца пишу

Все равно не понял, я ничего не говорил об ините, приложи пример плиз.


Вероятно, он имеет в виду, что пишет напрямую в дизайнере. В окне Properties. Там действительно кавычки не нужны. Более того, они будут мешать. А вот при программном назначении в коде событий и методов уже нужно обрамлять кавычками.
2 июн 10, 21:15    [8880901]     Ответить | Цитировать Сообщить модератору
 Re: Grid - как вывести в колонке переменное значение  [new]
Местами администратор
Member

Откуда: Ростовская обл
Сообщений: 220
ВладимирМ
Игорь Горбонос

> Автор: Местами администратор
> не в init grida, а в ControlSource столбца пишу

Все равно не понял, я ничего не говорил об ините, приложи пример плиз.


Вероятно, он имеет в виду, что пишет напрямую в дизайнере. В окне Properties. Там действительно кавычки не нужны. Более того, они будут мешать. А вот при программном назначении в коде событий и методов уже нужно обрамлять кавычками.


Да, так и делаю. Извините за позднюю рекцию на сообщение, не было возможности зайти на форум.
3 июн 10, 09:53    [8882314]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить