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

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

и так каждый раз когда перенастраиваешь курсоры
...
Рейтинг: 0 / 0
В Grid автоматическое изменение количества СТОЛБЦОВ
    #32407993
Erlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос по теме.
Как изменить хедеры у колонок ?
У меня выводятся только первые два,
остальные пишутся "header1".
Кроме того, хотелось бы чтобы в заголовке было не название колонки
в таблице, а, скажем, перевод названия.
...
Рейтинг: 0 / 0
В Grid автоматическое изменение количества СТОЛБЦОВ
    #32408058
bdv9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишешь свой класс Grid'а.
В нем создаешь метод добавления столбца.
В этом методе можно изменять Header.
Если таблица включена в БД и заполнены св-ва Caption для полей, то можно использовать DBGETPROP("table.fieldname", "FIELD", "CAPTIONS").
...
Рейтинг: 0 / 0
В Grid автоматическое изменение количества СТОЛБЦОВ
    #32408185
Erlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
..а можно подробнее (желательно, с примером) ?
сам сообразить не могу - туго доходит :-)
...
Рейтинг: 0 / 0
В Grid автоматическое изменение количества СТОЛБЦОВ
    #32408189
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
В Grid автоматическое изменение количества СТОЛБЦОВ
    #32409068
bdv9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создешь класс на основе 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
Период между сообщениями больше года.
В Grid автоматическое изменение количества СТОЛБЦОВ
    #35118473
Alex45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
* смотрим первую таблицу
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
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / В Grid автоматическое изменение количества СТОЛБЦОВ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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