powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отслеживание оставшихся дней
53 сообщений из 53, показаны все 3 страниц
Отслеживание оставшихся дней
    #35995921
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброе время суток!!! У меня такой вопрос... Как можно сделать чтобы когда я задаю дату какую то, то в текст боксе отображалось колличество оставшихся дней с текущей даты до той которую я ввожу в ручную???
Помогите пожалуйста......
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35995929
Danmer,
даты можно вычитать.
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35995931
ПД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вычтите из назначенной даты сегодняшнюю.
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35995945
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну а как это написать то?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996004
Danmerну а как это написать то?
Код: plaintext
Textbox.value - date()
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996106
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а текстбокс в котором находится та дата или же в котором будем отображать оставшиеся дни?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996175
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danmer, вопрос, конечно, интересный... :) Вам, как минимум, требуется 2 Textbox-а - в один Вы вводите дату, в другом отображается кол-во дней (последний можно заменить и на LAbel, в зависимости от обстоятельств). Для 2-х texbox-ов можно написать следующее:

При вводе даты в 1-й (в событии Valid):

Код: plaintext
1.
2.
3.
local nDay
nDay=max(date()-this.value, 0 )
this.parent.Text2.value=IIF(nDay= 0 ,[],allt(str(nDay))+[ ]+IIF(betw(nDay% 100 , 11 , 19 ) or inlist(nDay% 10 , 0 , 5 , 6 , 7 , 8 , 9 ),[дней],IIF(betw(nDay% 10 , 2 , 4 ),[дня],[день])))
this.parent.text2.refresh()
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996195
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а у меня такая ситуация что в первом текст боксе отображается уже существующая дата
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996260
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danmer, а зачем она? Если под "существующей" имеется в виду текущая дата, то программа рассчитана, видимо, на пользователей, приходящих на работу с большого похмела! :) Ну пусть будет 3 TextBox-а...
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996278
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GermanGM - вы не так поняли меня..... в первом текстбоксе введена не текущая дата, а отображается ранее заданная... Так вот нужно во втором текстбоксе вывести сколько дней между текущей и введеной в первый текстбокс.....
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996290
Danmer,
ну так напишите в LostFocus первого бокса
Код: plaintext
1.
thisform.textbox2.value = this.value - date()
thisform.refresh()
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996327
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danmer, замените DATE() на this.parent.Text1.value. Если обе даты могут меняться пользователем, то расчет кол-ва дней надо будет продублировать для обоих Control-ов
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996917
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, получилось!!!!

вот этим методом:
Код: plaintext
1.
thisform.textbox2.value = this.value - date()
thisform.refresh()

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

Как сделать чтобы вместе с первым текстбоксом обновлялся и второй???
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996922
DanmerСпасибо всем, получилось!!!!

вот этим методом:
Код: plaintext
1.
thisform.textbox2.value = this.value - date()
thisform.refresh()

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

Как сделать чтобы вместе с первым текстбоксом обновлялся и второй???Значит приведенный код переместить в то место, откуда обновляется информация в первом боксе.
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35996965
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну у меня в гриде в процедуре AfterRowColChange прописано thisform.Refresh. Таким образом и обновлятся первый текстбокс

Получается здесь же и прописать код?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35997041
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался.... Но теперь када запускаю форму то сразу на первой записи в гриде во втором текстбоксе ничего не отображается, а когда нажму на другую запись в гриде то отображается....

Как сделать чтобы сразу грузилось значение во втором текстбоксе?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998115
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну неужели никто ниче не знает по данной сетуации......
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998167
ПД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Куда катится этот мир :(
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998257
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danmerну неужели никто ниче не знает по данной сетуации......

Ей богу, как обиженный ребенок, у которого отняли погремушку. Кто хотел это узнать, давно уже самостоятельно узнал.
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998268
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем прописал в гриде в методе refresh:

Код: plaintext
thisform.text2.value = thisform.text1.value - date()

и в load формы прописал

Код: plaintext
1.
thisform.text1.Refresh
thisform.text2.Refresh

Но когда запускаю форму, то выдается ошибка...... Но если нажать игнорировать то все работает как надо....... По другому ваще никак не работает. Дело еще в том что эта форма запускается из другой с помощью грида, т.е. при нажатии на записи появляется подробная информация в данной форме.... Так вот всегда во втором текстбоксе отображается колличество дней по первой зиписи таблицы.....Даже если нажать в первой форме какуюнибудь 5 запись, то в данной форме при появлении во втором текстбоксе отображает кол-во дней по первой записи....

Ошибка при запуске следующая:
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998277
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998295
Danmerи в load формы прописал

Код: plaintext
1.
thisform.text1.Refresh
thisform.text2.Refresh

Но когда запускаю форму, то выдается ошибка.В этом методе еще ниет никаких контролов на форме. И самой формы еще нет. Перенисе это в Init формы
Ошибка при запуске следующая:Надо приводить текст ошибки, а не картинку. Ибо с картинки только текст и берется. :)
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998328
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я уже пробовал прописать это в ините, но снова отображает первую запись
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998345
DanmerЯ уже пробовал прописать это в ините, но снова отображает первую записьА это и недолжно было решить проблему отображения только первой записи. Это устранение причины сообщения об ошибке.
А по первой записи - Datasession у формы чему равен?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998363
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Datasession - 1
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998370
DanmerDatasession - 1Прелестно. А что есть в DataEnvironment?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998378
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
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.
PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show( 1 )
RETURN



DEFINE CLASS form1 AS form


	Top =  0 
	Left =  0 
	Height =  210 
	Width =  375 
	DoCreate = .T.
	Caption = "Form1"
	Name = "Form1"


	ADD OBJECT text1 AS textbox WITH ;
		Alignment =  3 , ;
		Value = (date()), ;
		Height =  23 , ;
		Left =  200 , ;
		Top =  84 , ;
		Width =  100 , ;
		Name = "Text1"


	ADD OBJECT text2 AS textbox WITH ;
		Enabled = .F., ;
		Height =  23 , ;
		Left =  200 , ;
		Top =  132 , ;
		Width =  100 , ;
		Name = "Text2"


	ADD OBJECT text3 AS textbox WITH ;
		Alignment =  3 , ;
		Value = (date()), ;
		Enabled = .F., ;
		Height =  23 , ;
		Left =  200 , ;
		Top =  36 , ;
		Width =  100 , ;
		Name = "Text3"


	ADD OBJECT label1 AS label WITH ;
		Caption = "Введи дату", ;
		Height =  17 , ;
		Left =  90 , ;
		Top =  87 , ;
		Width =  75 , ;
		Name = "Label1"


	ADD OBJECT label2 AS label WITH ;
		Caption = "Сегодня", ;
		Height =  17 , ;
		Left =  93 , ;
		Top =  40 , ;
		Width =  75 , ;
		Name = "Label2"


	ADD OBJECT label3 AS label WITH ;
		Caption = "Осталось дней", ;
		Height =  17 , ;
		Left =  93 , ;
		Top =  135 , ;
		Width =  85 , ;
		Name = "Label3"


	PROCEDURE Load
		Set Date BRITISH
	ENDPROC


	PROCEDURE Init
		this.text1.InteractiveChange()
	ENDPROC


	PROCEDURE text1.InteractiveChange
		With thisform
			.text2.value = .text3.value - .text1.value
			.text2.refresh()
		EndWith
	ENDPROC


ENDDEFINE
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998383
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть не в методе refresh грида прописывать:

Код: plaintext
thisform.text2.value = thisform.text1.value - date()

Но без этого при загрузке формы во втором текстбоксе ниче не отображается
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998392
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий. - а где посмотреть DataEnvironment???

прошелмимо - это для чего код???
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998402
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий. - сори за глупый вопрос)))

Там 3 таблицы
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998433
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо - как делать чтоб считало сколько дней осталось я понял..... проблема в другом, она изложена на первой странице.....
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998443
Danmer проходящий. - сори за глупый вопрос)))

Там 3 таблицыИ они же есть в вызывающей форме?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998469
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только одна
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998496
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
проблема в другом, она изложена на первой странице.....

еще-бы видеть, что Вы желаете....

что за форма,
какие таблички?
что нужно?

если возможно - пример, демонстрирующий проблему и что нужно сделать.
Вы должны понимать, что проще в Вашу форму написать две строки, чем придумывать Вам
пример.
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998663
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо - изначально проблема была в том чтобы сделать так чтобы писалось сколько осталось дней, сней я разобрался, потом встал вопрос о том где этот код приписать, так как у меня задаваемая дата изменяется на форме при выборе записей в гриде, я поместил код
Код: plaintext
1.
thisform.text16.value = thisform.text11.value - date()
thisform.text16.Refresh
в процедуру грида AfterRowColChange

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

Данная форма, назовем ее форма2, запускается из формы1, с помощью грида.....

Так вот как сделать чтобы призапуске формы2 текстбокс в котором должно отображаться кол-во дней был не пустым....
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998679
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВсе заработало, но возникла еще одна проблема, при запуске формы текстбокс в котором должно отображаться кол-во дней пустой, но когда переходишь в гриде на другую запись, то все норм становится.


в конце метода инит
поставьте код

авторthisform.grid.AfterRowColChange()
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35998817
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
метод инит это у чего???У формы?У грида?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35999275
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у формы

проще Вам класть сюда, сдаланные Вами примеры
и отвечающие будут править Ваш код
и Вам удобно - и нам будет чем позабавиться
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #35999424
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не помогло это....Позже постараюсь выложить пример....
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36004713
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините что так долго.....

Вот выкладываю пример.

Надо сделать так чтобы при запуске инф_объекта по первой же записи в таблице выводилось сколько осталось дней...
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36004916
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я просил в метод инит формы
написать строку, которую я показал
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36005121
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так не работало.......я уже об этом писал
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36005151
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТак не работало.......я уже об этом писал

то, что я выслал работает?
обратите внимание на метод инит формы
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36005223
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не работает...

Показывает всегда только кол-во дней по первому объекту, если выбираешь информацию по второму то все равно отображает кол-во дней по первому......
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36005613
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторне работает...

Вы мой ответ(архив) скачали?
Вы посмотрели?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36005769
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скачал и посмотрел, и на своем тоже пробовал когда вы писали добавить в инит формы....

не работает, выдает всегда одно и тоже число при открытии информации по любому объекту
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36005786
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСкачал и посмотрел

у меня работает?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36005849
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, во-первых, я смотрел только одну Вашу форму
и о необх-ти запуска воторой просто не догадывался.

во-вторых
попробуйте позвать 2 формы ред-я и Вы увидите все свои ошибки,
т.е. абсолютно неверное проектирование приложения
и разработки формы редактирования
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36006030
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смысл в том что из формы "объекты" вызывается форма "инф_объекта" с помощью двойного нажатия на объект.....

Посмотрите если не трудно пожалуйста этот вариант.....Может быть поймете в чем проблема...
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36006040
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПосмотрите если не трудно пожалуйста этот вариант

я посмотрел и исправил. (архив - выше)

Ваш вариант реализации не будет работать если позовут одновременно несколько форм
"инф_объекта".
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36006125
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо!!!!!!

А как можно сделать чтобы можно было открыть сразу несколько форм "инф_объекта"?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36006239
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА как можно сделать чтобы можно было открыть сразу несколько форм "инф_объекта"?

это курсовик?
или Вы проф.программист и с этой программой будут работать?
...
Рейтинг: 0 / 0
Отслеживание оставшихся дней
    #36006936
Danmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это диплом....В принцыпе для него и так нормально....Но переделать очень трудно?
...
Рейтинг: 0 / 0
53 сообщений из 53, показаны все 3 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отслеживание оставшихся дней
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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