Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2007, 16:42   #1
kayman
Пользователь
 
Регистрация: 10.09.2007
Сообщений: 29
По умолчанию Значит представьте есть TDateTimePicker1 и TDateTimePicker2, рядом расположен CheckBox1...

Не обойдите новичка стороной...
Пожалуйста помогите!
Значит представьте есть TDateTimePicker1 и TDateTimePicker2, рядом расположен CheckBox1, а ниже всего этого есть RadioButton1.
Каков будет код , чтобы изначально два TDateTimePicker (а) были потухшими , а при нажатии на CheckBox1 они загорались (и обратно) и можно было бы осуществить поиск в выбранном диапазоне, результат которого бы отображался в TDBGrid (е), а при нажатии на RadioButton1 поиск осуществлялся бы по текущую дату (т. е. на данный момент времени), и при этом TDateTimePicker2 становился неактивным. Все запросы поиска осуществлять по нажатию на Button1. Искать необходимо по записям в таблице ?
Заранее благодарен ...
kayman вне форума Ответить с цитированием
Старый 11.09.2007, 17:26   #2
geget
Пользователь
 
Регистрация: 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)
geget вне форума Ответить с цитированием
Старый 11.09.2007, 17:54   #3
geget
Пользователь
 
Регистрация: 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;

Гарантии точности не даю, но примерно так.
geget вне форума Ответить с цитированием
Старый 11.09.2007, 18:24   #4
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 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
Pitbull вне форума Ответить с цитированием
Старый 11.09.2007, 19:10   #5
kayman
Пользователь
 
Регистрация: 10.09.2007
Сообщений: 29
По умолчанию

Pitbull, что ты в Params записал, просто ошибку выдает на нем!Типа
Undeclared identifier: 'Params'
kayman вне форума Ответить с цитированием
Старый 12.09.2007, 14:07   #6
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от kayman Посмотреть сообщение
Pitbull, что ты в Params записал, просто ошибку выдает на нем!Типа
Undeclared identifier: 'Params'
если у тебя просто query, то:
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.
Pitbull вне форума Ответить с цитированием
Старый 12.09.2007, 20:28   #7
kayman
Пользователь
 
Регистрация: 10.09.2007
Сообщений: 29
По умолчанию

Благодарю Pitbull
kayman вне форума Ответить с цитированием
Старый 13.09.2007, 08:44   #8
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от kayman Посмотреть сообщение
Благодарю Pitbull
незачто
все получилось?
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите! В АССЕМБЛЕРЕ 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