Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Новая строка в гриде + одно поле автоматом = 1 / 9 сообщений из 9, страница 1 из 1
03.02.2009, 10:54
    #35793151
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новая строка в гриде + одно поле автоматом = 1
Доброго дня!
Есть табличка загруженная в грид (dataenv), в этой табличке есть одно поле, которое я хочу чтобы автоматически заполнялось определенным значением при добавлении строки.
Например из конкретной формы это поле должно заполняться "1", из другой формы - "2", из третьей - "3".
Т.е. в гриде ставлю разрешение на добавление строк. И когда пользователь добавляет строку, то автоматически в определенное поле заносится значение.
Как такое прикрутить?
...
Рейтинг: 0 / 0
03.02.2009, 10:57
    #35793173
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новая строка в гриде + одно поле автоматом = 1
И я хочу обойтись без GETNEXTMODIFIED
...
Рейтинг: 0 / 0
03.02.2009, 11:02
    #35793189
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новая строка в гриде + одно поле автоматом = 1
авторИ я хочу обойтись без GETNEXTMODIFIED

можно вопрос?
почему такое упорное пренебрежение нововведениями
старшей версии и возникают попытки изобрести велосипед?

не проще взять готовый инструмент, существующий в фокспро и правильно использовать?


авторНапример из конкретной формы это поле должно заполняться "1", из другой формы - "2", из третьей - "3".
цель? что это за признак и зачем? что будет затем зависеть от 1 2 3 ...
...
Рейтинг: 0 / 0
03.02.2009, 11:09
    #35793202
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новая строка в гриде + одно поле автоматом = 1
Дело в том что данные из этой таблицы пересекаются с тремя разными журналами.
я хочу чтоб при открытии необходимого журнала, юзер видел только те данные которые касаются именно этого журнала. И соответственно при заполнении определенного журнала ему не надо было выставлять что это данные которые относятся к этому журналу.
...
Рейтинг: 0 / 0
03.02.2009, 11:11
    #35793210
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новая строка в гриде + одно поле автоматом = 1
все решается очень просто

кад + форма

в кад селект с условием 1 2 или 3

ну и пусть добавляет
перед таблапдейтом
вначале апдейт пустоты поля нужным 1 2 или 3
(т.е. апдейтим не в момент вставки записи, а попытки сохранить изм-я)
...
Рейтинг: 0 / 0
03.02.2009, 11:15
    #35793222
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новая строка в гриде + одно поле автоматом = 1
или я не понял, или понял так:
сначала я пробегаю getnextmodified выискиваю все новые строки вставляю в эти строки необходимые 1 2 3, и затем делаю tableupdate
так?
...
Рейтинг: 0 / 0
03.02.2009, 11:21
    #35793250
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новая строка в гриде + одно поле автоматом = 1
Код: plaintext
1.
2.
update cAlias set ttt = ... 
   where ttt= 0 

т.e.
старые записи будут отмечены признаком,
все вновь добавленные будут иметь пустое значение,
т.к. пустоту исключаем, то вначале перед сохранением
апдейтим всю пустоту на нужный признак

в кад можно поступить по-шамански,
там есть возможность настроить на поле ф-ю проверки
и она будет вып-ся перед апдейтом автоматом
...
Рейтинг: 0 / 0
03.02.2009, 11:37
    #35793317
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новая строка в гриде + одно поле автоматом = 1
блин, точно, не учел ...
вот и никаких getnextmodified :)
пасиба!
...
Рейтинг: 0 / 0
03.02.2009, 12:20
    #35793456
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новая строка в гриде + одно поле автоматом = 1
пример шаманства
Код: 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.
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.
create cursor tt (id i autoinc, cvalue c( 10 ), uuu i null)
local i
for i= 1  to  100 
	insert into tt (cvalue) values (ltrim(str(i)))
endfor

local loMyCad
loMyCad = createobject('mycad')
with loMyCad
	.SelectCmdSet('1=1')
	select mycursor
	update mycursor set cvalue=cvalue, ;
	                    uuu=null
	if tableupdate(.t.,.t.,"mycursor")
		select * from tt
	else
		local lArr[ 1 ]
		aerror(lArr)
		messagebox('не шмогла tableupdate  '+lArr[ 2 ])
	endif
endwith




DEFINE CLASS mycad AS CursorAdapter

	BufferModeOverride =  5 
	DataSourceType = "Native"
	WhereType =  4 
	ConflictCheckType =  1 
	Alias = "mycursor"
	KeyFieldList = "Id"
	Tables = "tt"
	Name = "mycad"
	UpdatableFieldList = "cvalue, uuu"
	UpdateNameList = "Id tt.Id, cvalue tt.cvalue, uuu tt.uuu"
	ConversionFunc = "uuu checkUUU"
	
	procedure SelectCmdSet
		lparameters tcWhere
		text to this.SelectCmd noshow textmerge pretext  15 
			select *
				from <<this.Tables>>
					where <<tcWhere>>
		endtext
		if this.cursorfill()
			return .t.
		else
			messagebox('не шмогла cursorfill')
		endif
enddefine

procedure checkUUU
	lparameters ttt
	return id+ 10 
endproc
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Новая строка в гриде + одно поле автоматом = 1 / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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