powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перемещение записей в Grid
3 сообщений из 3, страница 1 из 1
Перемещение записей в Grid
    #39970654
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
требуется менять местами записи в Grid.
Хочется сделать как в modi stru.
Не подскажете как это реализовано?
...
Рейтинг: 0 / 0
Перемещение записей в Grid
    #39970687
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis
требуется менять местами записи в Grid.
Хочется сделать как в modi stru.
Не подскажете как это реализовано?


Как-то так, допилишь по месту:

Код: 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.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
PUBLIC o
o = CREATEOBJECT('frm')
o.show()

DEFINE CLASS frm as Form 
name = 'frm'
width = 375
PROCEDURE load
CREATE CURSOR test (f1 numeric(10,5), f2 c(30))
SELECT test 
INDEX on f1 TAG f1
FOR i = 1 TO 5
	INSERT INTO test VALUES (i, TRANSFORM(6 - i))
ENDFOR 
GO TOP IN test 
ENDPROC 
PROCEDURE init
WITH this

	.AddObject('grd1','grd')
	.grd1.top = 0
	.grd1.left = 0
	.grd1.Height = .Height 
	.grd1.Width = .Width
	
	.grd1.visible = .t.
	
	.grd1.Column1.AddObject('cmd1','cmd')
	.grd1.Column1.RemoveObject('Text1')
	.grd1.Column1.cmd1.Visible = .t.
	.grd1.Column1.CurrentControl = 'cmd1'
	.grd1.Column1.Sparse = .f.
	
	 
ENDWITH 
ENDPROC 
ENDDEFINE 

DEFINE CLASS cmd as CommandButton 
name = 'cmd'
Caption = 'Тащи меня'
oledragmode = 1
height = 25
width = 110
f1 = 0

PROCEDURE MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.f1 = test.f1
ENDPROC 
ENDDEFINE 

DEFINE CLASS grd as Grid 
name = 'grd'
columncount = 2
oledropmode = 1
HighlightStyle  = 2
Highlight = .t.
AllowCellSelection = .t.
width = 241

PROCEDURE oledragdrop
LPARAMETERS oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord
LOCAL laArr[ 1 ], lnEll, bb 

DO CASE
	CASE oDataObject.GetFormat( "VFP Source Object" )
* пытаемся получить ссылку на обьект
		aa = oDataObject.GetData( "VFP Source Object", @laArr )
		WAIT WINDOW 'Уф - донесли' NOWAIT 
		
		DO CASE 
		CASE (UPPER(aa.BaseClass) == 'COMMANDBUTTON')
			m.bb = test.f1
			replace f1 WITH m.bb - aa.f1 * 0.01 FOR f1 = aa.f1  IN test
			LOCATE FOR f1 = m.bb - aa.f1 * 0.01
		ENDCASE 

		NODEFAULT
		
		this.Refresh() 
		
	ENDCASE 
ENDPROC 

PROCEDURE oledragover
LPARAMETERS oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord, nState

* Проверяем 
IF oDataObject.GetFormat( "VFP Source Object" )
	WAIT WINDOW 'Несём, что надо' nowait
	* пытаемся выделить то что под курсором
	LOCAL nWhere_Out, nRelRow_Out, nRelCol_Out,	nView_Out 
	
	nWhere_Out = 0
	nRelRow_Out = 0
	nRelCol_Out = 0
	nView_Out = 0
	WITH this
	IF .GridHitTest(nXCoord, nYCoord ;
   , @nWhere_Out , @nRelRow_Out , @nRelCol_Out , @nView_Out)
   

		IF nWhere_Out = 3
		   .ActivateCell(nRelRow_Out, nRelCol_Out)
		   .Refresh()
   
		ENDIF 
	ENDIF 
	ENDWITH 

ELSE
	WAIT WINDOW 'Не то' nowait
ENDIF 
ENDPROC 
ENDDEFINE
...
Рейтинг: 0 / 0
Перемещение записей в Grid
    #39971481
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist,
то что надо, спс
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перемещение записей в Grid
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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