|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.09.2007, 16:42 | #1 |
Пользователь
Регистрация: 10.09.2007
Сообщений: 29
|
Значит представьте есть TDateTimePicker1 и TDateTimePicker2, рядом расположен CheckBox1...
Не обойдите новичка стороной...
Пожалуйста помогите! Значит представьте есть TDateTimePicker1 и TDateTimePicker2, рядом расположен CheckBox1, а ниже всего этого есть RadioButton1. Каков будет код , чтобы изначально два TDateTimePicker (а) были потухшими , а при нажатии на CheckBox1 они загорались (и обратно) и можно было бы осуществить поиск в выбранном диапазоне, результат которого бы отображался в TDBGrid (е), а при нажатии на RadioButton1 поиск осуществлялся бы по текущую дату (т. е. на данный момент времени), и при этом TDateTimePicker2 становился неактивным. Все запросы поиска осуществлять по нажатию на Button1. Искать необходимо по записям в таблице ? Заранее благодарен ... |
11.09.2007, 17:26 | #2 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 16
|
можно было бы осуществить поиск в выбранном диапазоне, результат которого бы отображался в TDBGrid (е) - это в смысле поиск по другому какому-то полю в диапазоне задаваемых дат или нужна фильтрация таблицы по датам?
А насчёт потухающих DateTimePicker1ов можно так: procedure TForm1.CheckBox1Click(Sender: TObject); begin DateTimePicker1.Enabled:=not DateTimePicker1.Enabled; DateTimePicker2.Enabled:=not DateTimePicker2.Enabled; end; Насчёт клика по RadioButton1 - если он один, то лучше заменить его на CheckBox2, если же нужно именно нажатие на RadioButton1, то можно так (только RadioButton один редко используют, я не знаю как с него при помощи мышки можно фокус снять :-))) var LastDate:Tdatetime;// конец диапазона procedure TForm1.FormCreate(Sender: TObject);//задаём конец begin LastDate:=DateTimePicker2.Date;// дата на DateTimePicker2 end; procedure TForm1.RadioButton1Click(Sender: TObject);// меняем конец begin LastDate:=date;//date - текущая дата end; А потом задаём диапазон по DateTimePicker1.date и LastDate (это по нажатии Button1) |
11.09.2007, 17:54 | #3 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 16
|
Вместо Radibutton1 советую RadioGroup1, в Items прописать 'по пикеру' и 'по текущей', RadioGroup1.itemindex присвоить 0, а по событию OnClick RadioGroup1 прописать
if RadioGroup1.itemindex=0 then begin DateTimePicker2.visible:=true; LastDate:=DateTimePicker2.Date; end else begin LastDate:=date;//date - текущая дата DateTimePicker2.visible:=false;//чтоб не мешался end; а для фильтрации есть Table1.filter:='({поле}>'+DateTimeP icker1.Date+')and({поле}<'+LastDate +')'; Table1.filtered:=false; Гарантии точности не даю, но примерно так. |
11.09.2007, 18:24 | #4 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
если надумаешь использовать запросі, то ....:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; CheckBox1: TCheckBox; RadioButton1: TRadioButton; Button1: TButton; procedure FormCreate(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin DateTimePicker1.Enabled :=false; DateTimePicker2.Enabled :=false; end; procedure TForm1.CheckBox1Click(Sender: TObject); begin DateTimePicker1.Enabled :=not(DateTimePicker1.Enabled); DateTimePicker2.Enabled :=not(DateTimePicker2.Enabled); end; procedure TForm1.Button1Click(Sender: TObject); begin ReportQuery .Active :=False; ReportQuery.SQL.Clear; ReportQuery.SQL.add('select *'); ReportQuery.sql.add('from proezd_main'); ReportQuery.SQL.Add('where data_d BETWEEN t and tt;'); ReportQuery.Params[0].Value :=FormatDateTime('yyyy.mm.dd',DateT imePicker1.date); if RadioButton1.Checked then ReportQuery.Params[1].Value :=FormatDateTime('yyyy.mm.dd',now() ) else ReportQuery.Params[1].Value :=FormatDateTime('yyyy.mm.dd',DateT imePicker2.date); ReportQuery.Prepare; ReportQuery.ExecSQl ; end; end.
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
11.09.2007, 19:10 | #5 |
Пользователь
Регистрация: 10.09.2007
Сообщений: 29
|
Pitbull, что ты в Params записал, просто ошибку выдает на нем!Типа
Undeclared identifier: 'Params' |
12.09.2007, 14:07 | #6 | |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
Цитата:
ReportQuery.SQL.Add('where data_d BETWEEN : dt and : dtt;');// между двоеточием и dt не нужно пробелов.... Просто если я не ставлю его, то получается смайлик ... ReportQuery.Params[0].Value :=FormatDateTime('yyyy.mm.dd',DateT imePicker1.date ); если AdoQuery, то : ReportQuery.Parameters[0].value......
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Последний раз редактировалось Pitbull; 12.09.2007 в 14:10. |
|
12.09.2007, 20:28 | #7 |
Пользователь
Регистрация: 10.09.2007
Сообщений: 29
|
Благодарю Pitbull
|
13.09.2007, 08:44 | #8 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите! В АССЕМБЛЕРЕ MOV AH,1AH Что значит 1AH? | veter_s_morya | Фриланс | 1 | 16.06.2008 16:03 |
объясните что значит 3й параметр в выражении | MadBeef | Помощь студентам | 1 | 21.05.2008 16:21 |
приложение рядом с часами | ERASERROR | Общие вопросы Delphi | 10 | 23.01.2008 23:59 |
Два календаря рядом | vladimir_86 | JavaScript, Ajax | 0 | 17.01.2008 17:04 |
Что значит эта ошибка (password dialog) | мазер | Помощь студентам | 4 | 05.01.2007 13:11 |