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

Откуда:
Сообщений: 62
Добрый день
есть у кого нить нормально работающий прогресс бар в гриде? поделитесь :)
стандартный актив Х вроде нормально работает но видно его тока когда ячейка с ним активна ну и у него нету текстового поля куда можно вывести значение.
Свой сделал но никак не пойму почему он не ресайзится вместе с колонкой грида.
одним словом если у кого есть примеры поделитесь.
спасибо.
26 май 14, 14:16    [16073583]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
Dima T
Member

Откуда:
Сообщений: 15291
walking_ua
но видно его тока когда ячейка с ним активна

Поставь Column.Sparse = .F.
26 май 14, 14:39    [16073753]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
walking_ua
Member

Откуда:
Сообщений: 62
ставил, все равно не видно.
26 май 14, 15:03    [16073971]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
walking_ua
Member

Откуда:
Сообщений: 62
с ресайзами разобрался, не к тому привязывался:)
ну теперь другая проблема. объяснять долго, может все таки у кого нить есть нормально работающий прогресс бар в гриде, поделитесь буду благодарен.
спасибо.
27 май 14, 14:35    [16079805]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
walking_ua,

Что имеется в виду "прогресс бар в гриде"? Что прогрессировать?
27 май 14, 15:57    [16080577]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
walking_ua
Member

Откуда:
Сообщений: 62
в таблице есть поле которое показывает в % выполнение определенных задач, сейчас это выглядит что-то типа 10% задача1, 50% задача2. Вот захотелось на фоне этих % закрашивать ячейку в зависимости от % выполнения. если 50% выполнено то закрасить ячейку на 50% и т.п. Это напоминает обычный прогресбар но для каждой строки свой.
27 май 14, 16:29    [16080879]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
walking_ua,
Почитай здесь [url=]http://forum.foxclub.ru/read.php?29,513213,513213#msg-513213[/url]
Может, что подчерпнешь.
27 май 14, 16:41    [16080975]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
walking_ua
Member

Откуда:
Сообщений: 62
Спасибо, почитал, но тема не раскрыта до конца.
Уперся в то что не могу для каждой колонки отрисовать свой прогресс они у меня все одного уровня получаются.
может кто все таки бился над подобной темой поделитесь опытом.
спасибо.
28 май 14, 09:19    [16083393]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
Станислав С...кий
Guest
walking_ua
в таблице есть поле которое показывает в % выполнение определенных задач, сейчас это выглядит что-то типа 10% задача1, 50% задача2. Вот захотелось на фоне этих % закрашивать ячейку в зависимости от % выполнения. если 50% выполнено то закрасить ячейку на 50% и т.п. Это напоминает обычный прогресбар но для каждой строки свой.


В бытность ДОСа это реализовывалось через "закрашенные квадратики", количество которых в строке/поле определялось на основе %% выполнения и "масштабного коэффициента"

Но вообще, в рамках Фокса задачка несколько тяжеловато выглядит, так как, исходя из описания, так и хочется отдельные потоки организовать... А Фокс не стал многопоточным, несмотря на то, что давно уже в виндах работает...
28 май 14, 09:41    [16083469]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
walking_ua
Member

Откуда:
Сообщений: 62
мда, вот и мне кажется что задача не с простых.
Хоть одиночный прогресс отрисовать и не сложно, а вот что бы в каждой строке было свое значение тут загвоздка.
28 май 14, 09:55    [16083518]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
Dima T
Member

Откуда:
Сообщений: 15291
Можно извратится с картинками (я так статусы вывожу): сделать 10-15 однотипных картинок с разным состоянием прогресбара.
Затем добавить все в колонку грида
with MyGrid.Column
	.AddObject('img1', 'Image')
	.img1.Picture = 'img1.bmp'
	.img1.BackStyle = 0

	.AddObject('img2', 'Image')
	.img2.Picture = 'img2.bmp'
	.img2.BackStyle = 0
...
	.Text1.Visible = .F.
	.Sparse = .F.
	.AlignMent = 2
	.Width = 40
	.Header1.Caption = 'Готовность'
	.ControlSource = 'MyTable.MyField'

	.DynamicCurrentControl = 'iif(!between(MyTable.MyField, 1, 10), "Text1", "img" + alltrim(str(MyTable.MyField)))'
endwith

Будет показывать картинку в соответствии со значением MyTable.MyField.

Можно не прогрессбар, а чего-нибудь другое нарисовать.
28 май 14, 10:11    [16083601]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
walking_ua
мда, вот и мне кажется что задача не с простых.
Хоть одиночный прогресс отрисовать и не сложно, а вот что бы в каждой строке было свое значение тут загвоздка.
Разумеется. Ибо таковы свойства ActiveX контролов. Они не лежат на форме и не принадлежат фоксу. Это отдельные окна, плавающие над формой. А в гриде из контролов состоит только текущая строка, а в остальных только картинка, след от контрола. А так как ActiveX контролы в угоду фоксу не научили оставлять после себя следы, то...
28 май 14, 11:10    [16084048]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
walking_ua
Member

Откуда:
Сообщений: 62
с DynamicCurrentControl попробую, но хотелось бы конечно чтобы это был график для любого % выполнения а не тока 10,20,30,40...100.
за активх спасибо за разъяснение, теперь понятно чего он так себя ведет.
28 май 14, 11:18    [16084121]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
rikitiki
Guest
walking_ua, почитайте [url=]http://www.sweetpotatosoftware.com/spsblog/2005/12/10/SimpleBarGraphsViaGridAndBackstyleAccess.aspx[/url]
там есть пример
28 май 14, 13:43    [16085180]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
walking_ua
Member

Откуда:
Сообщений: 62
rikitiki,

Это то что нужно.
труба как все у него просто :)
спасибо за ссылку
28 май 14, 14:36    [16085598]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
Станислав С...кий
Guest
Из ссылки
lnWidth = (This.Parent.Width - 35) * (lnValue/lnTotalTicks)


Я примерно про то же и говорил:
Станислав С...кий
В бытность ДОСа это реализовывалось через "закрашенные квадратики", количество которых в строке/поле определялось на основе %% выполнения и "масштабного коэффициента"

Все новое - хорошо забытое строе...
28 май 14, 14:53    [16085753]     Ответить | Цитировать Сообщить модератору
 Re: Прогресс бар в гриде  [new]
Дед Евгений
Member

Откуда: Московская область
Сообщений: 118
В свою бытность делал что то подобное, закрашивался техтбох(.TextScrol_2), наложеной на него квадратиком другого цвета (.Shape1). Где nScanLine счетчик выполнения прохождения, отностельно общего количества зписей в таблице (MyTable). Вычисляется процентное отношения отсканированных записей от общего количества, и относительно размера длины поля Техтбокса (OBJTOCLIENT), заполняется закрашеным квадратиком. В певоначально значении перед сканированием .Shape1.Width = 0. :

SELECT MyTable
nScanLine = 0
SCAN
   nScanLine = nScanLine + 1   
   .Shape1.Width  = ROUND((OBJTOCLIENT(.TextScrol_2,3))*((nScanLine/RECCOUNT("MyTable"))*100)/100,0)
ENDSCAN

Под себя можешь переписать этот код, так как это просто выдранный кусок, но думаю мысль понятна.
28 май 14, 15:48    [16086271]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить