Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / В Grid автоматическое изменение количества СТОЛБЦОВ / 12 сообщений из 12, страница 1 из 1
13.12.2003, 13:57
    #32351848
Dancer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
Дорогие Фокс-Программеры! Есть ли в гриде возможность автоматического изменения количества столбцов в зависимости от количества полей в таблице, подключаемой (через RecordeSource в гриде) к данному Гриду. У меня такая ситуация:
к одному и тому же гриду подключаю разные таблице, в одной таблице 5 полей, а в другой - 3-и. После того как я подключаю вторую таблицу, в гриде остаютяс пустые 2 колонки. А если я подключаю сначало 2-ю табл., потом 1-ю, то в гриде не отображается 2 нужных поля. Чё делать?
...
Рейтинг: 0 / 0
13.12.2003, 14:50
    #32351867
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
За количество столбцов отвечает свойство ColumnCount грида
...
Рейтинг: 0 / 0
13.12.2003, 15:00
    #32351868
Dancer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
Спасибо большое, но когда устанавливаешь количество столбцов в гриде столько сколько полей в таблице(.ColumnCount = fcount("myTable")), в гриде они отображаются совершенно пустыми даже с пустыми хедерами. Вот я думаю, может в гриде где-то есть св-во, которое отвечает за автоматическое установление количества столбцов в гриде в зависимости от таблицы??
...
Рейтинг: 0 / 0
13.12.2003, 15:40
    #32351876
MaestroEv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
Автоматический GRID????
Ну это .... BROWSE...и все будет ОК.
А все остальные GRIDы надо писать ручками....
...
Рейтинг: 0 / 0
13.12.2003, 20:41
    #32351942
brahew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
можно в columncount оставить -1 и это почти тоже что browse на таблицу
...
Рейтинг: 0 / 0
18.12.2003, 12:24
    #32356523
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
Ставишь columncount=-1
Когда захочешь в ней отобразить курсор пиши

thisform.grid_name.RecordeSource=.null.
thisform.grid_name.RecordeSource='имя_курсора'

и так каждый раз когда перенастраиваешь курсоры
...
Рейтинг: 0 / 0
13.02.2004, 07:54
    #32407993
Erlan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
Вопрос по теме.
Как изменить хедеры у колонок ?
У меня выводятся только первые два,
остальные пишутся "header1".
Кроме того, хотелось бы чтобы в заголовке было не название колонки
в таблице, а, скажем, перевод названия.
...
Рейтинг: 0 / 0
13.02.2004, 09:26
    #32408058
bdv9
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
Пишешь свой класс Grid'а.
В нем создаешь метод добавления столбца.
В этом методе можно изменять Header.
Если таблица включена в БД и заполнены св-ва Caption для полей, то можно использовать DBGETPROP("table.fieldname", "FIELD", "CAPTIONS").
...
Рейтинг: 0 / 0
13.02.2004, 10:51
    #32408185
Erlan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
..а можно подробнее (желательно, с примером) ?
сам сообразить не могу - туго доходит :-)
...
Рейтинг: 0 / 0
13.02.2004, 10:53
    #32408189
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
To: bdv9

Можно еще попробовать в свойстве init Grid - прописать в ручную, типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Thisform.grid1.ColumnCount = Fcount()
For i= 1  To Fcount()
  lctmp='Thisform.grid1.Column'+Alltrim(Str(i))
  With &lctmp
    Do Case

    Case Field(i)='CHE'
      .Width= 140 
      .ControlSource='table.CHE'
      .header1.Caption='Мой любимый заголовок'
      .header1.Alignment= 2 
      
    CASE FIELD(i)  = "CAT" 
      .Width= 40 
      .ControlSource= "table.CAT" 
      .header1.Alignment= 2 
      .addobject( "comb1" , "COMBOBOX" )
      .currentControl='comb1'
      .sparse=.t.
      .comb1.visible=.t.
       .comb1.rowsourcetype= 3 
       .comb1.rowsource='select code,name from cat_equ into cursor t1 order by 1'
       .comb1.columncount= 2 
      
    Case Field(i)='DOMESTIC'
      .Width= 40 
      .ControlSource= "table.PR" 
      .header1.Alignment= 2 
      .addobject( "chkpr" , "CHECKBOX" )
      .currentControl='chkpr'
      .sparse=.f.
      .chkpr.visible=.t.
      .chkpr.caption='Ага'
      
    Otherwise

    Endcase
  Endwith
Endfor


Хотя написать свой класс было бы более приемлемо...
...
Рейтинг: 0 / 0
13.02.2004, 16:42
    #32409068
bdv9
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
Создешь класс на основе Grid'а.
Добавляешь метод, например AppendColumn

И в нем
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
*********************************
*** Добавление столбца в Grid ***
*********************************
*!*	tcControlSource	- источник данных для столбца
*!*	tcHeaderCaption	- заголовок для столбца
*!*	tnColumnWidth	- ширина столбца
*!*	Вызов: .AppendColumn(tcControlSource, tcHeaderCaption, tnColumnWidth)
lParameters tcControlSource, tcHeaderCaption, tnColumnWidth

With This
	.AddObject('Column' + AllTrim(Str(.ColumnCount +  1 )), 'Column')

	With .Columns(.ColumnCount)
		.ControlSource = tcControlSource
		.FontSize = .Parent.FontSize
		With .Header1
			.Caption = tcHeaderCaption
			.Alignment =  6 
			.FontBold = .T.
			.FontSize = .Parent.FontSize
		EndWith
		.Text1.FontSize = .Parent.FontSize
		.Width = tnColumnWidth
		.Visible = .T.
		.ReadOnly = .T.
	EndWith
EndWith


Параметр tcHeaderCaption можно опустить, если таблица находится в БД и вместо него использовать DBGETPROP("table.fieldname", "FIELD", "CAPTIONS").
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
08.02.2008, 02:39
    #35118473
Alex45
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Grid автоматическое изменение количества СТОЛБЦОВ
* смотрим первую таблицу
Thisform.Grid1.Visible = .F.
Thisform.Grid1.ColumnCount = -1
Thisform.Grid1.RecordSource = 'таблица1'
Thisform.Grid1.Visible = .T.

wait window 'таблица1' timeout 5

* смотрим вторую таблицу
Thisform.Grid1.Visible = .F.
Thisform.Grid1.ColumnCount = -1
Thisform.Grid1.RecordSource = 'таблица2'
Thisform.Grid1.Visible = .T.

wait window 'таблица2' timeout 5

* И так далее.
* Если не делать Thisform.Grid1.Visible = .F. - автоматическая настройка не сработает
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / В Grid автоматическое изменение количества СТОЛБЦОВ / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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