Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Дата из формы для запроса / 15 сообщений из 15, страница 1 из 1
03.05.2007, 13:04
    #34501908
snowdeath
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
Итак, нужно собственно вот чего. В форме в текстовое поле ввожу дату, жму кнопочку ОК, по клику которой выполняется вот чего:
создается запрос к базе данных что-то вроде
select * from tablica1 where chislo=...
и вот где число, туда надо подставить значение нашего текстового поля. ну грубо говорят текстовое поле зовется text1. по сути надо написать
select * from tablica1 where chislo=thisform.text1.value
но работать оно конечно же не будет, т.к. дату надо писать вида
chislo={^year-month-day}
как быть? выручите плз... очень надо. какие пути решения могут быть? поиском рылся, но ничего подобного не нашел... Заранее огромнейшее спасибо всем!
...
Рейтинг: 0 / 0
03.05.2007, 13:15
    #34501955
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
немного не понимаю, но кажется все проще чем Вы думаете

Код: 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.
PUBLIC oform1

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


	**************************************************
DEFINE CLASS form1 AS form


	DoCreate = .T.
	Caption = "Form1"
	*-- XML Metadata for customizable properties
	_memberdata = ""
	Name = "Form1"


	ADD OBJECT command1 AS commandbutton WITH ;
		Top =  144 , ;
		Left =  156 , ;
		Height =  27 , ;
		Width =  84 , ;
		Caption = "Command1", ;
		Name = "Command1"


	ADD OBJECT text1 AS textbox WITH ;
		Height =  23 , ;
		Left =  144 , ;
		Top =  84 , ;
		Width =  100 , ;
		Name = "Text1"


	PROCEDURE Load
		create cursor tt (id i autoinc, d d)
		for i= 1  to  10 
			insert into tt (d) values (date()-i)
		endfor
	ENDPROC


	PROCEDURE Init
		set date british 
		this.text1.Value = date()
	ENDPROC


	PROCEDURE command1.Click
		LOCAL ldDate 
		ldDate = thisform.text1.Value
		select * from tt where d=ldDate
	ENDPROC


ENDDEFINE
*
*-- EndDefine: form1
**************************************************
...
Рейтинг: 0 / 0
03.05.2007, 13:18
    #34501968
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
но работать оно конечно же не будет, т.к. дату надо писать вида
chislo={^year-month-day}

И кто ж это вам такую чушь сказал?

В общем-то, данные надо хранить не в контролах, а в полях таблиц/курсоров или в переменных. А вот контролы к ним и привязывать с помощью ControlSource. И тогда задача решается очень просто.

Допустим, у нас есть переменная lcDate, содержащая некую дату, именно дату, в формате Date или DateTime, и текстбокс txtDate, привязанный к этой переменной. То есть txtDate.ControlSource = lcDate

В этом случае решение сводится к простейшему виду:

Код: plaintext
select * from tablica1 where chislo=?lcDate
...
Рейтинг: 0 / 0
03.05.2007, 13:25
    #34502004
snowdeath
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
PROCEDURE command1.Click
LOCAL ldDate
ldDate = thisform.text1.Value
select * from tt where d=ldDate

ну это тоже самое, что я и пытаюсь сделать... и выдает ошибку
...
Рейтинг: 0 / 0
03.05.2007, 13:28
    #34502015
snowdeath
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
Допустим, у нас есть переменная lcDate, содержащая некую дату, именно дату, в формате Date или DateTime, и текстбокс txtDate, привязанный к этой переменной. То есть txtDate.ControlSource = lcDate

как раз таки немного не так... наоборот мне надо, чтобы переменная lcDate брала в себя значение, введенное в txtDate...
т.е. грубо говоря надо lcDate=txtdate.value
...
Рейтинг: 0 / 0
03.05.2007, 13:30
    #34502034
snowdeath
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
а вот если я напишу вручную дату в запрос, а не буду брать значение формы, то все получается, т.е. если я напишу
select * from tablica where chislo={^2007/12/30}
сделаю browse, то я увижу все записи, у которых число соответствует 30/12/2007
надо тоже самое, только вот число не вручную вписывать, а брать его значение из text1.value
...
Рейтинг: 0 / 0
03.05.2007, 13:32
    #34502047
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
snowdeath

танцы с бубном на пустом месте

определитесь пожалуйста что там в переменной - дата или строка

Вы именуете lcDate - это что строка

Вы вводите строку?????
Вы желаете контролировать правильность ввода??? дат??? сами????

автори выдает ошибку

какую???

в таблице дата???
в переменной что???
...
Рейтинг: 0 / 0
03.05.2007, 13:33
    #34502048
Peisov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
Ну - в конструкторе формы в свойстве Value того текстового поля, в которое вводится дата, пропишите {..} и будет щастье ...
...
Рейтинг: 0 / 0
03.05.2007, 13:34
    #34502052
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
snowdeathPROCEDURE command1.Click
LOCAL ldDate
ldDate = thisform.text1.Value
select * from tt where d=ldDate

ну это тоже самое, что я и пытаюсь сделать... и выдает ошибкуУ тебя ошибка идет, т.к. скорее всего поле text1 - действительно текстовое значение. Посмотри как тебе описал alex11100
Код: plaintext
this.text1.Value = date()
Здесь у него поле имеет тип даты. И уже в процедуре нажатия кнопки переменная ldDate - имеет тип дата.
Код: plaintext
1.
2.
3.
4.
PROCEDURE command1.Click
		LOCAL ldDate 
		ldDate = thisform.text1.Value
		select * from tt where d=ldDate
ENDPROC
...
Рейтинг: 0 / 0
03.05.2007, 13:38
    #34502075
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
Допустим, у нас есть переменная lcDate, содержащая некую дату, именно дату, в формате Date или DateTime, и текстбокс txtDate, привязанный к этой переменной. То есть txtDate.ControlSource = lcDate

как раз таки немного не так... наоборот мне надо, чтобы переменная lcDate брала в себя значение, введенное в txtDate...
т.е. грубо говоря надо lcDate=txtdate.value

Батенька, если б Вы потрудились немного подучить матчасть, то узнали бы, что написанное мной работает именно так как Вам надо, то есть при вводе информации в контрол эта самая информация попадает в тот самый элемент для хранения данных(поле или переменная)), к которому контрол привязан.
...
Рейтинг: 0 / 0
03.05.2007, 13:39
    #34502079
snowdeath
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
в таблице дата =). сделать строку, чтобы все прокатило?
...
Рейтинг: 0 / 0
03.05.2007, 13:41
    #34502090
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
2 Sergey Sizov

lc - строка
ld - дата
lt - ...
ll
ln
lu ....

давайте придерживаться в примерах нотации
...
Рейтинг: 0 / 0
03.05.2007, 13:43
    #34502098
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
snowdeath


упертый

Вы желаете в текстбоксе вводить строку????
как Вы желаете контролировать правильность ввода даты???

пользователь ввел
5555.4444.44444

хорошо,
читайте в хелпе про ctod()
...
Рейтинг: 0 / 0
03.05.2007, 13:47
    #34502112
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
2 Alex11100

Ну давайте, так и быть. :)

В моем примере lcDate читать как ldDate.
...
Рейтинг: 0 / 0
03.05.2007, 14:02
    #34502174
snowdeath
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата из формы для запроса
alex11100snowdeath


упертый

Вы желаете в текстбоксе вводить строку????
как Вы желаете контролировать правильность ввода даты???

пользователь ввел
5555.4444.44444

хорошо,
читайте в хелпе про ctod()

Нет, я желаю вводить туда ДАТУ. вручную контролировать ввод даты не хочу =) я только понять не могу ничерта...
в процедуру init вписал:
thisform.text1.value=date()

в click написал:
local lddate
lddate=thisform.text1.value
select * from tbl1 where chislo=lddate

заработало. до этого я просто не писал в процедуру init
thisform.text1.value=date()

спасибо всем огромнейшее =)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Дата из формы для запроса / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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