Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отображение данных / 10 сообщений из 10, страница 1 из 1
16.04.2014, 10:36
    #38616158
Людмila
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных
Что нибудь подобное можно реализовать на FoxPro9 ?
Если да! то каким образом?
...
Рейтинг: 0 / 0
16.04.2014, 10:46
    #38616164
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных
Людмila,
только если подобное, или создавать отдельный класс. полностью.
похоже на grid, но в нем нельзя объединить строки в столбце и добавить в поле иконку. это навскидку. пытался разместить в отдельный столбец динамическую картинку - настолько тяжело ворочается, что пришлось отказаться
...
Рейтинг: 0 / 0
16.04.2014, 10:59
    #38616193
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных
Можно, если взять какой-нибудь сторонний грид, у которого есть такой функционал. Какой именно - не подскажу.
...
Рейтинг: 0 / 0
16.04.2014, 11:13
    #38616210
Отображение данных
Людмila,

Можно, но муторно. Нужно создать курсор, в котором правильно разместить данные...
Для того, чтобы можно было не ограничивать число врачей, запрос делаем динамическим...
При этом помним, что число колонок в Гриде имеет ограничения... если не ошибаюсь, то что-то около 256 колонок....

Покажу основную идею:
Код: sql
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
Local nKodHddoc, nKodStdoc, dBegDate, lReadOnly, nkodtype, ndays

ndays = 12
dBegDate = lv.begdata  

WAIT window "Отбираем данные..." nowait
ThisForm.grdb1.RecordSource = ''

USE IN SELECT("ma")

&& собираем нужные нам значения в нужные колонки
&& Колонок столько, столько нужно. В данном случае 12
TEXT TO lcSelect TEXTMERGE NOSHOW PRETEXT 7
   SELECT mtrx.kodd, mtrx.kodst, min(mtrx.begdata) as begdata,
     sum(case when date_part('month',mtrx.begdata) = 1 then mtrx.quantity else 0 end) as day1,
     sum(case when date_part('month',mtrx.begdata) = 2 then mtrx.quantity else 0 end) as day2,
     sum(case when date_part('month',mtrx.begdata) = 3 then mtrx.quantity else 0 end) as day3,
     sum(case when date_part('month',mtrx.begdata) = 4 then mtrx.quantity else 0 end) as day4,
     sum(case when date_part('month',mtrx.begdata) = 5 then mtrx.quantity else 0 end) as day5,
     sum(case when date_part('month',mtrx.begdata) = 6 then mtrx.quantity else 0 end) as day6,
     sum(case when date_part('month',mtrx.begdata) = 7 then mtrx.quantity else 0 end) as day7,
     sum(case when date_part('month',mtrx.begdata) = 8 then mtrx.quantity else 0 end) as day8,
     sum(case when date_part('month',mtrx.begdata) = 9 then mtrx.quantity else 0 end) as day9,
     sum(case when date_part('month',mtrx.begdata) = 10 then mtrx.quantity else 0 end) as day10,
     sum(case when date_part('month',mtrx.begdata) = 11 then mtrx.quantity else 0 end) as day11,
     sum(case when date_part('month',mtrx.begdata) = 12 then mtrx.quantity else 0 end) as day12,
     mtrx.kodm as code,
     min(sprm.name)::varchar(200) as namem,
     MIN(coalesce(unitd.kod,0)) as kodunitdim,
     MIN(coalesce(unitd.smallname,'')) as unitdimname 
    FROM ma_vm mtrx
    inner join hdd doc on mtrx.kodd = doc.kod
    inner join std on std.kod = mtrx.kodstd
    inner join sprm on mtrx.kodmsc = sprm.kod
    left join unitd on sprm.kodunitd = unitd.kod
    where <условие отбора записей>
    group by mtrx.kodhddoc, mtrx.kodstdoc, mtrx.kodmsc
ENDTEXT

SqlExecute(lcSelect,"Ma")

WITH ThisForm.grdb1
	.RecordSource = "Ma"
	.Column1.ControlSource = .RecordSource + ".code"
	.Column1.Width = 74
	.Column2.ControlSource = .RecordSource + ".namem"
	.Column2.Width = 274
	.Column3.ControlSource = .RecordSource + ".day1"
	.Column4.ControlSource = .RecordSource + ".day2"
	.Column5.ControlSource = .RecordSource + ".day3"
	.Column6.ControlSource = .RecordSource + ".day4"
	.Column7.ControlSource = .RecordSource + ".day5"
	.Column8.ControlSource = .RecordSource + ".day6"
   	.Column9.ControlSource = .RecordSource + ".day7"
  	.Column10.ControlSource = .RecordSource + ".day8"
	.Column11.ControlSource = .RecordSource + ".day9"
	.Column12.ControlSource = .RecordSource + ".day10"
	.Column13.ControlSource = .RecordSource + ".day11"
 	.Column14.ControlSource = .RecordSource + ".day12"

	.Column1.header1.Caption = "Код"
	.Column2.header1.Caption = "Наименование"
	.Column3.header1.Caption = "Январь"
	.Column4.header1.Caption = "Февраль"
	.Column5.header1.Caption = "Март"
	.Column6.header1.Caption = "Апрель"
	.Column7.header1.Caption = "Май"
	.Column8.header1.Caption = "Июнь"
	.Column9.header1.Caption = "Июль"
	.Column10.header1.Caption = "Август"
	.Column11.header1.Caption = "Сентябрь"
	.Column12.header1.Caption = "Октябрь"
	.Column13.header1.Caption = "Ноябрь"
	.Column14.header1.Caption = "Декабрь"
	
	FOR i = 3 TO .ColumnCount
	 lcColumn = ".Column"+ALLTRIM(STR(i))
	 &lccolumn..width = 59
         &lccolumn..FORMAT = 'ZK'
	 &lccolumn..InputMask = '999999999.999'
	 
          &lccolumn..DynamicFontBold = 'IIF(Ma.day'+ALLTRIM(STR(i-2))+' <> 0, .T., .F.)'
	ENDFOR 

	FOR EACH loCol IN .Columns
		BINDEVENT(loCol.Header1, "Click", ThisForm.grdb1, "SortAuto")
	ENDFOR
	.Refresh()
ENDWITH
WAIT CLEAR 


Запрос здесь написан на PostgreSQL... У Вас будет другой, но смысл остается...
В Вашем случае группировка, скорее всего, будет не нужна...

Исходные данные у меня лежат в структуре:
код документа(kodd), код расширения документа(kodst), дата, код материала (kodm), потребность(quantity)

Ваши данные скорее всего будут лежать в структуре:
врач(kodd), пациент(kodst), дата+время, длительность приема, признак записи(quantity)
...
Рейтинг: 0 / 0
16.04.2014, 19:12
    #38616873
Людмila
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных
В Delphi и С++ от Borlanda есть такой элемент TPlanner и TDBPlanner наверное от слова - планировщик (дополнительный платный компонент), который такие вещи делает на ура.
Жаль, что FoxPro отстал. Навсегда.
...
Рейтинг: 0 / 0
16.04.2014, 19:15
    #38616875
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных
ЛюдмilaЖаль, что FoxPro отстал. Навсегда.
Жаль что что одно из тысяч возможных решений не подошло.
...
Рейтинг: 0 / 0
16.04.2014, 21:03
    #38616935
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных
Людмila... (дополнительный платный компонент), который такие вещи делает на ура.
Жаль, что FoxPro отстал. Навсегда.
У FoxPro есть тоже огромное количество платных компонентов, до которых еще не доросли некоторые сегодняшние среды разработки.
Мы Вам пытались дать ответ как это реализовать без использования таковых...
...
Рейтинг: 0 / 0
16.04.2014, 21:37
    #38616975
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных
Людмila,

Были подобные решения на фоксклабе, только обычно по горизонтали время
...
Рейтинг: 0 / 0
17.04.2014, 04:18
    #38617107
Людмila
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных
Sergey ChУ FoxPro есть тоже огромное количество платных компонентов...
Я о них ничего не слышала, да и в данном случае дело не в деньгах
Мне бы что подобное
...
Рейтинг: 0 / 0
08.05.2014, 11:20
    #38636414
makar12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных
Людмila,

Как вариант
http://foxclub.ru/sol/solution679.php
Есть описание и примеры.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отображение данных / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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