Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.03.2016, 20:07
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию Вопросы по базам данных

Уважаемые помогите решить 2 проблемы
1. Имеется любая база данных аксес, в ней есть столбцы типа DateTime, ДБГрид при клике на них, дает выбрать дату, но пишет туда как дату так и время (10.03.2016 20:03:01) а нужно (10.03.2016)

2. Вопрос

Имеются поля, в которых нужно открыть свой внутренний справочник, ок. нахожу данные поля, на них отображаю кнопку, методом (Column.ButtonStyle:=cbsEllipsis)
обрабатываю эту кнопку, открывается новая форма, теперь вопрос, как мне из этой новой формы вставить выбранное значение (скажем 2клик) в таблицу, открытую в форме_1

Раньше прям на форме 1 открывал ListBox1 и делал так
Код:
procedure TForm1.ListBox1DblClick(Sender: TObject);
Var
  Field: TField;
begin
Field := TField(ListBox1.Tag);
Field.DataSet.Edit;
Field.Value := ListBox1.Items[ListBox1.ItemIndex];
Field.DataSet.Post;
ListBox1.Hide;
end;
Ответить с цитированием
  #2  
Старый 10.03.2016, 21:55
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

По первой трабле, в поле типа DateTime можно вбить три варианта значений: DateTime, Date или Time, видимо выбран первый, чем набиваете - если с помощью DateTimePicker то можно просто выбрать у него источник как Date
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
ApxaHGe1 (10.03.2016)
  #3  
Старый 10.03.2016, 22:12
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

тип поля делал и Date и DateTime
Выбор открывается сам средствами DBGridEh.... так как видит что поле типа DateTime ....
Скрин прилагается
Ответить с цитированием
  #4  
Старый 10.03.2016, 22:13
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Второй вопрос решен уже ) оказалось все просто, видимо просто уже устал ....
Ответить с цитированием
  #5  
Старый 10.03.2016, 23:51
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Не пользую эту либу, посему могу только предположить что наверное у и этой сетки выскакивает при даблклике редактор полей, возможно следует задать у поля с датой свойство DisplayFormat как dd.mm.yyyy, у обычного DBGrid такое есть
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
ApxaHGe1 (11.03.2016)
  #6  
Старый 11.03.2016, 03:36
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Цитата:
Сообщение от Alegun
Не пользую эту либу, посему могу только предположить что наверное у и этой сетки выскакивает при даблклике редактор полей, возможно следует задать у поля с датой свойство DisplayFormat как dd.mm.yyyy, у обычного DBGrid такое есть
А как задать ? Да это тот же DBGrid... Просто побольше воможностей у него.... DBGridEh....
количество полей тип Date я не знаю сколько пользователь создаст
есть такакя идея, при прорисовке, форматировать, но я не знаю как

Код:
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
if Column.Field.DataType in [ftDate,ftDateTime] then
begin
//как
end;

end;
Ответить с цитированием
  #7  
Старый 11.03.2016, 22:04
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Up. Помогите
Ответить с цитированием
  #8  
Старый 11.03.2016, 23:37
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от ApxaHGe1
А как задать ? Да это тот же DBGrid...
Ну а я на о чём намекаю, не с чистого же листа эта шараварина собиралась, формат ведь наверное всёже можно задать?
Ответить с цитированием
  #9  
Старый 12.03.2016, 10:48
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Все с чистого листа собиралось
Ответить с цитированием
  #10  
Старый 12.03.2016, 12:40
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Все просто. У вас скорее всего есть на форме AdoQuery. У этого компонента есть локальное меню, в котором есть Fields editor. В нем есть возможность добавить поля и для вашего поля можно выставить DisplayFormat = dd.mm.yyyy
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #11  
Старый 12.03.2016, 14:15
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Да есть. Все через него и делается. Но отображается все в дбгриде. Я не знаю количество полей и имена их. Как быть?
Ответить с цитированием
  #12  
Старый 12.03.2016, 16:35
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Там есть отдельная команда загрузить все поля.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #13  
Старый 12.03.2016, 17:52
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Это можно сделать после запроса и вывода результата в dbgrid? Или же как то иначе?
Ответить с цитированием
  #14  
Старый 12.03.2016, 18:48
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Обычно, в процессе разработки формы, грид настраивают на источник подключив его хотя бы раз к базе данных. Это удобно для создания наиболее компактного и красивого представления данных. После этого отключают от базы и подключение к базе уже делают настраиваемым при старте программы.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #15  
Старый 12.03.2016, 19:09
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Дело в том что пользователь сам создает базу. И количество полей я не знаю сколько будет. Тем более полей типа date
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:38.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter