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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2010, 14:20   #1
Милана666
Пользователь
 
Регистрация: 19.05.2010
Сообщений: 47
Радость как соеденить DBGrid and MonthCalendar?

я поискала по форуму но такого не нашла, видела где описывали подключение DateTimePicker с ДБГРИДом, но мне нужно именно MonthCalendar. Суть таков что в ДБГРИДе есть поля (Фамилия имя Дата и т.д.) и как мне организовать поиск и редактирование по полю Дата через MonthCalendar? допустим я выбираю Дату в календаре(19мая) и в ДБГрид показывает ту строку (19мая)которую я ищу и затем я сразу изменяю дату в гриде. Заранее Благодарю за помощь!
Милана666 вне форума Ответить с цитированием
Старый 19.05.2010, 17:01   #2
Милана666
Пользователь
 
Регистрация: 19.05.2010
Сообщений: 47
По умолчанию

Или это тема избитая, или никто не сталкивался? ответье?!
Милана666 вне форума Ответить с цитированием
Старый 19.05.2010, 17:22   #3
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

вам надо организовать поиск по Tdataset используя для выбора параметров TMonthCalendar?

можно на онклик по MonthCalendar

DBGrid1.DataSource.DataSet.Locate(' имя поля',MonthCalendar1.Date,[]);
vovk вне форума Ответить с цитированием
Старый 19.05.2010, 17:42   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

На форме у меня лежат
1. DbGrid
2. MonthCalendar
3. Edit
4. BitBtn

Я могу дату задавать в календаре(она тут же выводится в Edit), либо в самом Эдите... При нажатии на кнопку BitBtn выполняется фильтрация данных таблицы. Все это видно из приведенных ниже процедур-обработчиков...
Код:
procedure TFrmEvents.MonthCalendarClick(Sender: TObject);
begin
  EditData.Text:=DateToStr(MonthCalendar.Date)
end;


procedure TFrmEvents.DataOkClick(Sender: TObject);
begin
  FrmControl.cdsEvents.Filtered:=false;
  FrmControl.cdsEvents.Filter:='[Дата]='+''''+EditData.Text+'''';
  FrmControl.cdsEvents.Filtered:=true
end;
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 19.05.2010, 17:55   #5
Милана666
Пользователь
 
Регистрация: 19.05.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
вам надо организовать поиск по Tdataset используя для выбора параметров TMonthCalendar?

можно на онклик по MonthCalendar

DBGrid1.DataSource.DataSet.Locate(' имя поля',MonthCalendar1.Date,[]);
Код:
 
procedure TForm1.MonthCalendar1Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.Locate('Дата',MonthCalendar1.Date,[]);
end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (gdFocused in State) then
  begin
    if (Column.Field.FieldName = 'Дата') then
    with MonthCalendar1 do
    begin
      Left := Rect.Left + DBGrid1.Left + 1;
      Top := Rect.Top + DBGrid1.Top + 1;
      Width := Rect.Right - Rect.Left + 2;
     Width := Rect.Right - Rect.Left + 2;
    Height := Rect.Bottom - Rect.Top + 2;
      Visible := True;
    end;
end;          
end;

procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
  if DBGrid1.SelectedField.FieldName = 'Дата' then
    MonthCalendar1.Visible:= False;
end;

procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if (key = Chr(9)) then Exit;
  if (DBGrid1.SelectedField.FieldName = 'Дата') then
  begin
    MonthCalendar1.SetFocus;
end;
end;

end.
1.когда я нажимаю на "Дату" в ДБгриде, календарь выскакивает в нем
2.пишет "ошибка неизвестного типа" когда я на календаль нажимаю
Милана666 вне форума Ответить с цитированием
Старый 19.05.2010, 18:12   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

странно, может ещё чтото происходит? у себя перенёс все действия, работает как ожидалось. А какие компоненты доступа? TDataset кто он TQuery TTable Tadodatase как фамилия у вашего Tdataset?
vovk вне форума Ответить с цитированием
Старый 19.05.2010, 18:16   #7
Милана666
Пользователь
 
Регистрация: 19.05.2010
Сообщений: 47
По умолчанию

[QUOTE=Grag;530280]На форме у меня лежат
1. DbGrid
2. MonthCalendar
3. Edit
4. BitBtn

Я могу дату задавать в календаре(она тут же выводится в Edit), либо в самом Эдите... При нажатии на кнопку BitBtn выполняется фильтрация данных таблицы. Все это видно из приведенных ниже процедур-обработчиков...
QUOTE]


Спасибо! Сделала все получается,Но задание мне дали именно такое которое я описала выше((
Прпод сказал ""типа"" чтоб было проще без лишних компонентов(
Милана666 вне форума Ответить с цитированием
Старый 19.05.2010, 18:33   #8
Милана666
Пользователь
 
Регистрация: 19.05.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
странно, может ещё чтото происходит? у себя перенёс все действия, работает как ожидалось. А какие компоненты доступа? TDataset кто он TQuery TTable Tadodatase как фамилия у вашего Tdataset?
у меня только DataSource DBGrid DBNavigator ADOTable и MonthCalendar. я Их всех подключила. когда запускаю программу и нажимаю на календарь, у меня вылазиет ошибка(( что делать?((
Милана666 вне форума Ответить с цитированием
Старый 19.05.2010, 19:12   #9
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

в аксесе табличку сделал подключился, попробовал нормально, правда так приходилось DBGrid1.DataSource.DataSet.Locate(' Дата1',datetostr(MonthCalendar1.Dat e),[]);

Попробуйте отследить, что вызывает ошибку, в пошаговом режиме
vovk вне форума Ответить с цитированием
Старый 19.05.2010, 20:06   #10
Милана666
Пользователь
 
Регистрация: 19.05.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
в аксесе табличку сделал подключился, попробовал нормально, правда так приходилось DBGrid1.DataSource.DataSet.Locate(' Дата1',datetostr(MonthCalendar1.Dat e),[]);

Попробуйте отследить, что вызывает ошибку, в пошаговом режиме
пошагово сделала и ошибка вылазиет когда подключаю этот календарь
скиньте пожалуйста ваше решение,я устала от этого календаря
Милана666 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как соеденить формулы. ROBERT033 Microsoft Office Excel 11 12.04.2010 09:56
Как правильно использовать MonthCalendar Shanuzina Компоненты Delphi 1 04.03.2010 11:58
Как соеденить два роутера? psihadelic Компьютерное железо 0 23.11.2009 13:29
Как соеденить два Dbgrid disaer БД в Delphi 2 06.11.2009 01:17
Как соеденить 2-е таблицы Cvieri Microsoft Office Excel 6 19.03.2009 18:07