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

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

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


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

кад + форма

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

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

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

в кад можно поступить по-шамански,
там есть возможность настроить на поле ф-ю проверки
и она будет вып-ся перед апдейтом автоматом
...
Рейтинг: 0 / 0
Новая строка в гриде + одно поле автоматом = 1
    #35793317
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, точно, не учел ...
вот и никаких getnextmodified :)
пасиба!
...
Рейтинг: 0 / 0
Новая строка в гриде + одно поле автоматом = 1
    #35793456
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример шаманства
Код: 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
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Новая строка в гриде + одно поле автоматом = 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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