• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

История Изменений

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Всем привет!
вот хочу замутить мульку. Надо сделать сабформу типа history чтоб в нее записивались дание о редактировании доки кто когда ето делал, может кто имее уже готовий вариант :(
 
S

Sandr

Ну Вы даете.. там 2 поля и 3 строчки собак... а можно и одним полем обойтись...
 
O

Omh

Sandr
А если потом надо будет на бекграунде апдетить?
Я бы лучше сразу не стал бы заморачиваться с кампутед полями, а сделал бы связку сабформа + библиотека.
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Ну Вы даете.. там 2 поля и 3 строчки собак... а можно и одним полем обойтись...
2 поля 3 собаки ето вам просто а мне уви не очень как говорят москва не сразу строилась вот и я не все сразу научусь делать:)

Я бы лучше сразу не стал бы заморачиваться с кампутед полями, а сделал бы связку сабформа + библиотека.
ето как подскажи:)
 
30.05.2006
1 345
12
BIT
0
Ну Вы даете.. там 2 поля и 3 строчки собак... а можно и одним полем обойтись...
Ну, на все @IsDocBeingSaved (или PostSave в LS) отловить и за-журналировать действительно не сложно. Но лишнего много будет. Мне, к примеру, хотелось повторные редактирования одного и того-же юзера объединять - уже усложнение.

А потом клиЭнт потребует, что-б регистрировалось не только кем, но и ЧТО менялось :blink:
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
мне просто надо кто и когда редактировал документ, но как ето сделать уви незнаю

[codebox]
REM {ListSize contains the number of document saves that will be shown in the document};
ListSize := 5;

REM {See if the document is being saved. If not, exit without change.};
@If(IsDocBeingSaved; @True; @Return(SaveHistory));
EditList := SaveHistory;

REM {Document is being saved. Determine the number of the prior save.};
REM {For example, if A is 6, that indicates the document has been saved 6 times and this current save will be the seventh.};
A := @Word(EditList; "-"; 1);

REM {Calculate the current save number, taking into account the number 1-9 are only one character long.};
NEWNUM := @Text(@TextToNumber("0" + @Word(@Implode(A); " "; 1)) + 1);

REM {Build the new edit line(format the date correctly)};
REM {Notice the second parameter on the @Text function. This seldom used};
REM {parameter allows us to automatically format a date/time argument};
REM {In this case, it strips off the seconds from @Now.};
NEWLINE := NEWNUM + "-" + @Text(@Now; "D0T1") + "-" + @UserName; @Trim(@Subset(NEWLINE : EditList; ListSize))
[/codebox]
вот нарил код но чуть не то он показивает когда било последнее изминение:blink:
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
В самом простом случае это многозначное Computed поле(с галкой Compute After Validation) и формулой типа:
Код:
@If(@IsDocBeingSaved; @Trim((@UserName + " " + @Text(@Now)) : @ThisValue); @ThisValue)
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
А потом клиЭнт потребует, что-б регистрировалось не только кем, но и ЧТО менялось blink.gif
в 10 только что мне ето предявили.............блин.... сказали чтоб возле юзера которий редактировал било ещо например полеА имеет значение "1" а после имеет значение "2" чтоб ето тоже показивало "било" и "стало"

В самом простом случае это многозначное Computed поле(с галкой Compute After Validation) и формулой типа:

спасибо большое но уви мало:)
 
O

Omh

Вот тебе одна моя библиотечка для отслеживаняи полей, можешь посмотреть.
Юзать примерно так:
Form Globals Declarations -> тут аррай нужного размера:
Код:
Dim Watches(3) As DWElem
Form Globals Initialize -> тут сетишь наблюдаемые айтемы:
Код:
Watches(0).ItemName = "Name"
Watches(1).ItemName = "Position"
Watches(2).ItemName = "Env"
Watches(3).ItemName = "UseProjectDelivery"
На PostOpen заполняешь:
Код:
Call DWInit(Doc, Watches)
В нужный момент проверяешь:
Код:
If DWEModified(Doc, Watches, "Name") Then... 'изменилось ли одно значение
If DWModified(Doc, Watches) Then... 'изменилось ли хоть что-то
Апдейтить (обычно на PostSave), так же как и при открытии:
Код:
Call DWInit(Doc, Watches)

А заполнять поля истории - сам :)
 

Вложения

  • dwe.zip
    635 байт · Просмотры: 169
A

AmintasVik

День добрый.
Подскажите, в аналогичном вопросе...
"Историзм" по отправленным сообщениям и изменениям по документу в виде таблицы (дата создания, дата отправки, текст сообщения, получатель и т.п.)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!