Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поле типа даты в DBGride. Удобная Вставка значения из календарика. 
:(
    Опции темы
Ner-zul
  Дата 13.9.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 24.1.2004
Где: Москва

Репутация: нет
Всего: нет



Я работаю с Delphi6 с базами под InterBase7.1
У меня есть объект TIBDataSet из него я с помощью DataSource вывожу информацию по выборке в DBGride. Одно из полей таблицы по которой и происходит выборка типа Даты(день года и время). Так вот Я хочу чтобы , например при вставке новой записи в таблицу при заполнения этого поля Даты, у меня был такой треугольничек(справа и внутри данной ячейки), на который я нажал и прямо из под этой строки выпал бы стандартный к примеру календарик и я бы там выбрал уж дату с помощью мышки , затем он бы сам убрался и в поле даты в данной строке появилось бы мною выбранное значение!!! Подскажите как же так можно сделать???

 Мне кажется, что это както реализовывается стандартными средствами... Потомучто это можно встретить во всех СУБД, к примеру...
--------------------
 Ner-zul   
PM MAIL ICQ   Вверх
Ner-zul
Дата 13.9.2006, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 24.1.2004
Где: Москва

Репутация: нет
Всего: нет



Пожалуйста не забывайте про мой вопрос...
--------------------
 Ner-zul   
PM MAIL ICQ   Вверх
Rodman
Дата 13.9.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Ты заполнение производишь из Грида???
PM MAIL WWW Skype GTalk YIM MSN   Вверх
jack128
Дата 13.9.2006, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 18.5.2005

Репутация: нет
Всего: 4



хе, как ни странно, но стандартный грид, действительно такой фишки не умеет.  Лудше возьми грид из EhLib, по третью версию включительно он free для ExUSSR
PM MAIL   Вверх
Fedia
Дата 13.9.2006, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 3
Всего: 13



Ner-zulздесь статья на эту тему. Если все же решишь использовать DBGridEh, то скачивай либо новую версию (хотя она платная), либо ищи версию 3.6b, правда для нее использования календаря придется немного подправить. Модуль с исправлениями у меня есть, если нужен будет, то пиши.


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Ner-zul
Дата 14.9.2006, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 24.1.2004
Где: Москва

Репутация: нет
Всего: нет



Спасибо за консультацию, я щас обдумаю все варианты.
--------------------
 Ner-zul   
PM MAIL ICQ   Вверх
Akella
Дата 22.9.2006, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



http://forum.vingrad.ru/index.php?showtopi...ad=#entry299888
здесь есть ссылки на разнве гриды

Добавлено @ 15:52 
http://forum.vingrad.ru/index.php?showtopi...st&p=299891

Добавлено @ 15:55 
user posted image
PM MAIL   Вверх
SergeBS
Дата 25.9.2006, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Fedia
По-моему способ из статьи - мазохизм какой-то. В RxLib есть функция SelectDate() - вызывает календарь.
Навесив на CellClick 
var
    DT0 : TDateTime;
    Ds0 : TDataSet;
begin
  if Column.Field.DataType in [ftDate, ftDateTime] then
  begin
    Dt0 := Column.Field.AsDateTime;
    if SelectDate(Dt0, 'Выбор даты', Mon, [Sat, Sun], clRed, nil) then
    begin      { use selected date }
      Ds0 := Column.Field.DataSet;
      Ds0.Edit;
      Column.Field.Value := Dt0;
      Ds0.Post;
    end;
  end;
end;

а на ColEnter
var
    DT0 : TDateTime;
    Ds0 : TDataSet;
begin
  if TDBGrid(Sender).SelectedField.DataType in [ftDate, ftDateTime] then
  begin
    Dt0 := TDBGrid(Sender).SelectedField.AsDateTime;
    if SelectDate(Dt0, 'Выбор даты', Mon, [Sat, Sun], clRed, nil) then
    begin      { use selected date }
      Ds0 := TDBGrid(Sender).SelectedField.DataSet;
      Ds0.Edit;
      TDBGrid(Sender).SelectedField.Value := Dt0;
      Ds0.Post;
    end;
  end;
end;
имеем 2 процедуры обработки на все колонки с датами всех dbgrid-ов. Ну еще проверку на null можно навесить. 

PM MAIL   Вверх
Fedia
Дата 26.9.2006, 04:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 3
Всего: 13



SergeBS, может и мазохизм, да и написано далеко не профессионально. Я достаточно давно для этих целей использую DBGridEh, поэтому особо с возможностью использования TDateTimePicker-а в DBGrid-е я не разбирался. Кстати для удобного использования календаря RxLib-а ваш пример, по хорошему, придется доработать:
1. Необходимо, чтобы календарь появлялся под редактируемой ячейкой.
2. Отображение календаря должно происходить не при каждом клике на ячейку, а при клике на ее определенной области (поскольку редактировать ячейку с датой пользователи чаше всего предпочитают без календаря).
3. Область, на которой кликнет пользователь для вызова календаря, по хорошему должна содержать соответствующую пиктограмму. 
Вышеперечисленные изменения сделают ваш пример не таким простым. Не говорю, что это догма, просто так работать удобно и многие привыкли именно к такому способу редактирования.

А так, идея с функцией SelectDate очень даже хороша для тех, кто доверяет только стандартному гриду.

Это сообщение отредактировал(а) Fedia - 26.9.2006, 05:04


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0949 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.