powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отображение данных
10 сообщений из 10, страница 1 из 1
Отображение данных
    #38616158
Людмila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что нибудь подобное можно реализовать на FoxPro9 ?
Если да! то каким образом?
...
Рейтинг: 0 / 0
Отображение данных
    #38616164
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмila,
только если подобное, или создавать отдельный класс. полностью.
похоже на grid, но в нем нельзя объединить строки в столбце и добавить в поле иконку. это навскидку. пытался разместить в отдельный столбец динамическую картинку - настолько тяжело ворочается, что пришлось отказаться
...
Рейтинг: 0 / 0
Отображение данных
    #38616193
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, если взять какой-нибудь сторонний грид, у которого есть такой функционал. Какой именно - не подскажу.
...
Рейтинг: 0 / 0
Отображение данных
    #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
Отображение данных
    #38616873
Людмila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Delphi и С++ от Borlanda есть такой элемент TPlanner и TDBPlanner наверное от слова - планировщик (дополнительный платный компонент), который такие вещи делает на ура.
Жаль, что FoxPro отстал. Навсегда.
...
Рейтинг: 0 / 0
Отображение данных
    #38616875
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюдмilaЖаль, что FoxPro отстал. Навсегда.
Жаль что что одно из тысяч возможных решений не подошло.
...
Рейтинг: 0 / 0
Отображение данных
    #38616935
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмila... (дополнительный платный компонент), который такие вещи делает на ура.
Жаль, что FoxPro отстал. Навсегда.
У FoxPro есть тоже огромное количество платных компонентов, до которых еще не доросли некоторые сегодняшние среды разработки.
Мы Вам пытались дать ответ как это реализовать без использования таковых...
...
Рейтинг: 0 / 0
Отображение данных
    #38616975
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Людмila,

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

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


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