powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid.
22 сообщений из 22, страница 1 из 1
Grid.
    #33377529
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как программно в грид, в колонку, добовлять едитбокс?
...
Рейтинг: 0 / 0
Grid.
    #33378056
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MyGrid.Column1.AddObject("Edit1","Editbox")
...
Рейтинг: 0 / 0
Grid.
    #33378148
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для справки.

Объекты, добавленные при помощи метода AddObject() по умолчанию имеют свойство Visible = .F. Для того, чтобы они отобразились, необходимо явно сделать их видимыми

MyGrid.Column1.Edit1.Visible = .T.
...
Рейтинг: 0 / 0
Grid.
    #33378228
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, понятно.
И еще такой вопросик. В грид загнал значения. Как програмно прописать автовыравнивание столбцов по записям?
...
Рейтинг: 0 / 0
Grid.
    #33379184
Jose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myGrid.Autofit()
...
Рейтинг: 0 / 0
Grid.
    #33379705
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myGrid.Autofit() - непашет
Наверное потому что у меня 6. для 6 как-то можно зделать автовыравнивание?
...
Рейтинг: 0 / 0
Grid.
    #33379778
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема такова: в грид заношу значения с таблы в которой ширина поля = 100. соответственно в гриде колонка принимает такую же ширину хотя значения занимают максимум 25 символов. Как мне осуществить автовыравнивание? ведь значения могут меняться.
...
Рейтинг: 0 / 0
Grid.
    #33379828
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай описание функций

FontMetric(6) - ширина в пикселах среднего символа указанного шрифта
TXTWidth() - длина текста в средних символах указаного шрифта

Произведение одного на другое даст длину текста в пикселах. Далее надо добавить несколько пикселей на рамку (BorderWidth) и отступы (Margin).

Ну и наконец просто установить

Grid.Column1.Width = ...

Найти самое широкое значение в таблице можно как-то так

Код: plaintext
SELECT MAX(txtWidth(RTRIM(MyField))) as maxLen FROM MyTable

Надеюсь, общая идея понятна...
...
Рейтинг: 0 / 0
Grid.
    #33379846
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
идея понятна. но теперь попробывать ее внедрить. Дело в том что после создание курсора из той таблы которую я упоминал, я вызываю ворму где в гриде ниче не установлено. Подскажите, где мне прописывать код?
...
Рейтинг: 0 / 0
Grid.
    #33379892
Jose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык прям в Init'e и пиши
...
Рейтинг: 0 / 0
Grid.
    #33379894
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пишу, но вот SELECT MAX(txtWidth(RTRIM(MyField))) as maxLen FROM MyTable
подставляю свои имена а она ругоеться что типа неправильный аргумент. Что делать?
...
Рейтинг: 0 / 0
Grid.
    #33379899
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ругаеться потому что поле числовое
...
Рейтинг: 0 / 0
Grid.
    #33379903
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин задаеться сразу куча вопросов. как программно быстро определить какой тип поля в таблице,т.е. символьный или числовой?
...
Рейтинг: 0 / 0
Grid.
    #33379952
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийБлин задаеться сразу куча вопросов. как программно быстро определить какой тип поля в таблице,т.е. символьный или числовой?

AFIELDS()
?TYPE("MyTable.MyField")

Числа "прижимаются" к правому краю. Значит, ширина столбца должна быть равна макисмально возможному (в соответствии с размерностью поля) количеству символов в числовом поле. Иначе просто не будет видно части значения.

Даты вообще имеют фиксированную ширину.

Т.е. получается, что для всех типов данных, кроме символьных, ширина столбца будет зависеть не от содержимого поля, а от его размерности. Это можно определить через AFIELDS().

А вот у символьных полей придется искать максимально широкое значение, что, вообще-то, достаточно медленный процесс.
...
Рейтинг: 0 / 0
Grid.
    #33381147
Jose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Само значение поля тебе ведь никчему, достаточно лишь найти длину самого длинного значения в поле:
SELECT MAX(LEN(ALLTRIM(myfield))) FROM MyTab
...
Рейтинг: 0 / 0
Grid.
    #33381176
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно сказать и так. Но все выше изложенное тоже мне пригодилось.
Но уменя возникла проблема.
Есть поле в табле - С(200), в нем есть значение. Подобные: 'asd.234535,234234';'afwe.234235';'234345'. Когда ето все отображаеться в гриде, то столбец принимает ширину = ширене поля и все выравнено по правому краю, но когда я потом перевожу это все ексель. то результат странный. Происходит: ширина колонки в экселе = 200, значения которые имеют и буквы и цивры выравнены по левому краю, после них пробелы до конца строки, а где есть значения без букв, они выравниваються по правому краю и впереди гих ставяться пробелы до начала стоки. Как это объяснить и почему так?
...
Рейтинг: 0 / 0
Grid.
    #33381396
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийМожно сказать и так. Но все выше изложенное тоже мне пригодилось.
Но уменя возникла проблема.
Есть поле в табле - С(200), в нем есть значение. Подобные: 'asd.234535,234234';'afwe.234235';'234345'. Когда ето все отображаеться в гриде, то столбец принимает ширину = ширене поля и все выравнено по правому краю, но когда я потом перевожу это все ексель. то результат странный. Происходит: ширина колонки в экселе = 200, значения которые имеют и буквы и цивры выравнены по левому краю, после них пробелы до конца строки, а где есть значения без букв, они выравниваються по правому краю и впереди гих ставяться пробелы до начала стоки. Как это объяснить и почему так?
Потому, что предварительно, перед переносом данных, нужно Экселю явно указать какой тип данных в каком столбце храниться.
...
Рейтинг: 0 / 0
Grid.
    #33381480
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как это сделать? подскажите
...
Рейтинг: 0 / 0
Grid.
    #33382051
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийКак это сделать? подскажите
Это кусок из кода по выгрузке содержимого Grida в Excel^
Код: 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.
	=AFIELDS(laFields, "cExcel")   && Список полей источника в массив
	USE IN cExcel
	lnRowsCount = _TALLY
	loXls = CREATEOBJECT("Excel.Application")
	loWorkbook = loXls.Workbooks.Add()
	loWorkSheet = loWorkbook.Worksheets( 1 )
	loWorkSheet.Cells.Font.Name = ThisForm.grdRvfintotal.FontName 
	loWorkSheet.Cells.Font.Size = ThisForm.grdRvfintotal.FontSize
	FOR lnCnt =  1  TO lnColumnsCount
		loWorkSheet.Cells( 1 , lnCnt).Value = ThisForm.grdRvfintotal.Columns(lnCnt).Header1.Caption
		loWorkSheet.Cells( 1 , lnCnt).Font.Size = ThisForm.grdRvfintotal.Columns(lnCnt).Header1.FontSize
		loWorkSheet.Cells( 1 , lnCnt).Interior.Color  = ThisForm.grdRvfintotal.Columns(lnCnt).Header1.BackColor
		loWorkSheet.Cells( 1 , lnCnt).Font.Bold = ThisForm.grdRvfintotal.Columns(lnCnt).Header1.FontBold
		DO CASE 
			CASE laFields(lnCnt, 2 )="C"
				loWorkSheet.Columns(lnCnt).NumberFormat = "@"
			CASE laFields(lnCnt, 2 )="N"
				loWorkSheet.Columns(lnCnt).NumberFormat = "#,##0"
				IF laFields(lnCnt, 4 )> 0 
					loWorkSheet.Columns(lnCnt).NumberFormat = loWorkSheet.Columns(lnCnt).NumberFormat + "." + REPLICATE("0",laFields(lnCnt, 4 ))
				ENDIF 
			CASE laFields(lnCnt, 2 )="D"
				loWorkSheet.Columns(lnCnt).NumberFormat = "dd.mm.yyyy"
		ENDCASE 
	NEXT lnCnt
...
Рейтинг: 0 / 0
Grid.
    #33382619
Jose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще попробуй воспользоваться поиском. Тут про Ехель столько писали!!! Наверняка найдешь что-то интересное и полезное для себя. ))
...
Рейтинг: 0 / 0
Grid.
    #33382623
Jose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот еще:
Excel
...
Рейтинг: 0 / 0
Grid.
    #33384988
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спаси бо Вам всем очень помогло.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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