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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2011, 19:55   #1
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию Пвивет как зделат так чтобы так чтобы в edit......

как зделать так чтобы так...... Короче говоря. Eсть база состоящая из 7-ми таблиц. Одна тадлица главная. Код типа счётчик. Он привянан к шести другим таблицам см. (рис. 1) в delphi создано приложение см. (рис. 2) главная таблица центральная ( фамилия, имя, отчество,дата рождения) главная adoquery шесть остальных adotable главный data source adoquery нужно создать два edita и кнопку button в первый edit вводишь дату С а во второй ПО и при нажатии кнопки butten где нибудь в третьем окошечке отображается общий доход компании за данный промежуток времени поиск нужно производить по таблице (страховой полис) в столбце (страховая премия) тип данных string тип даты тоже string в формате (ДД.ММ.ГГГГ.)
рис.1

рис.2

Последний раз редактировалось vmilyoshin; 21.09.2011 в 20:56.
vmilyoshin вне форума Ответить с цитированием
Старый 21.09.2011, 20:06   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

ОФФТОП. А зачем спорили, если вы не уверены, что эту задачу "разжуёте"?
Вадим Мошев вне форума Ответить с цитированием
Старый 21.09.2011, 20:18   #3
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

У меня не получилось сосчитать количество ошибок, как и понять, что тут хотят. Если есть переводчики - переведите на человеческий язык...
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 21.09.2011, 20:34   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Кто мне эту задачку разжуёт - тем я буду сугубо благадарен !!!!!
Что-то неравноценный обмен: разжевывающий рискует сойти с ума еще во время попыток понять, что же вы написали в этом сообщении, а ему только "благадарность". А вы за это получите телефон)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.09.2011, 20:41   #5
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Мне кажется немного понял. Есть БД, сделанная в MS Access. При помощи програмного интерфейса ADO и сделанного в делфи экзешника необходимо прочитать из бд информацию, проанализировать и произвести рассчёты.

А её я вот что понял. Автор разжевать задачу не может, а просит нас. Грубо говоря, слабо понять, что здесь требуется. А я, кажись, понял. Автор, с вас причитается.

ЗЫ. Прости НАС за злостный оффтоп в сей теме...
Вадим Мошев вне форума Ответить с цитированием
Старый 21.09.2011, 20:43   #6
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Мне кажется немного понял. Есть БД, сделанная в MS Access. При помощи програмного интерфейса ADO и сделанного в делфи экзешника необходимо прочитать из бд информацию, проанализировать и произвести рассчёты.
Правильно понял!
vmilyoshin вне форума Ответить с цитированием
Старый 21.09.2011, 21:08   #7
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Разбирайся.
otchet_Q: TADOQuery;
date_zakaza- столбец в таблице
date_ening - столбец в таблице
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
i:integer;// счетчик
date1,date2:string;//date1- C такого,   date2- ПО такое
finder:extended;// finder - значение одной таблицы, которое надо найти в другой таблице
s:extended:// сумма
begin

date1:=Edit3.Text;// В едит 3 начало периода
for I := 1 to length(date1) do
if date1[i]='.' then date1[i]:='/';// корректировка даты для понимания 
//запроса Access`овской БД
date2:=Edit4.Text;// В едит 4 конец периода
for I := 1 to length(date2) do
if date2[i]='.' then date2[i]:='/';// корректировка даты для понимания 
//запроса Access`овской БД
with DataModule3 do
begin
  otchet_Q.SQL.clear;
  OTCHET_Q.SQL.Text:=
  'SELECT *  FROM 'Твоя таблица' WHERE '+
 'date_zakaza>=#'+date1+'# AND date_ening<=#'+date2+'#';
  otchet_Q.ExecSQL;
// А тут Ты сам уж посчитай всю сумму, ибо в OTCHET_Q будут лежать 
// все записи в заданный тобой период , и их нужно будет лишь //перебрать от начала до конца.

end;
Перебрать от начала до конца:
Код:
 
otchet_Q.First;
 while not otchet_Q.EOF do
  begin
//  Твои действия
otchet_Q.Next;
end;
Поиск по отчету производится так:
Код:
finder:=(otchet_Q.FieldByName('Твой столбец').Value);
s:=s+finder;
Тебе остальсь все это правильно соединить.
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 21.09.2011 в 21:16. Причина: Добавление нескольких операторов.
Rin вне форума Ответить с цитированием
Старый 21.09.2011, 22:53   #8
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Rin Посмотреть сообщение
Разбирайся.
otchet_Q: TADOQuery;
date_zakaza- столбец в таблице
date_ening - столбец в таблице
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
i:integer;// счетчик
date1,date2:string;//date1- C такого,   date2- ПО такое
finder:extended;// finder - значение одной таблицы, которое надо найти в другой таблице
s:extended:// сумма
begin

date1:=Edit3.Text;// В едит 3 начало периода
for I := 1 to length(date1) do
if date1[i]='.' then date1[i]:='/';// корректировка даты для понимания 
//запроса Access`овской БД
date2:=Edit4.Text;// В едит 4 конец периода
for I := 1 to length(date2) do
if date2[i]='.' then date2[i]:='/';// корректировка даты для понимания 
//запроса Access`овской БД
with DataModule3 do
begin
  otchet_Q.SQL.clear;
  OTCHET_Q.SQL.Text:=
  'SELECT *  FROM 'Твоя таблица' WHERE '+
 'date_zakaza>=#'+date1+'# AND date_ening<=#'+date2+'#';
  otchet_Q.ExecSQL;
// А тут Ты сам уж посчитай всю сумму, ибо в OTCHET_Q будут лежать 
// все записи в заданный тобой период , и их нужно будет лишь //перебрать от начала до конца.

end;
Перебрать от начала до конца:
Код:
 
otchet_Q.First;
 while not otchet_Q.EOF do
  begin
//  Твои действия
otchet_Q.Next;
end;
Поиск по отчету производится так:
Код:
finder:=(otchet_Q.FieldByName('Твой столбец').Value);
s:=s+finder;
Тебе остальсь все это правильно соединить.
procedure TForm1.BitBtn8Click(Sender: TObject);
var
I: integer;// счетчик
date1,date2: string;//date1- C такого, date2- ПО такое
finder: extended;// finder - значение одной таблицы, которое надо найти в другой таблице
s: extended;// сумма
begin
date1:= MaskEdit1.Text;// В начало периода
for I := 1 to length(date1) do
if date1[i]='.' then date1[i]:='/';// корректировка даты для понимания
date2:= MaskEdit2.Text;// В конец периода
for I := 1 to length(date2) do
if date2[i]='.' then date2[i]:='/';// корректировка даты для понимания
//запроса Access`овской БД
with DataModule1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:=
'SELECT * FROM POLIS WHERE '+
'Начало >= #'+date1+'# AND Начало <= #'+date2+'#';
Open;
DataModule1.ADOQuery1.First;
while not EOF do
begin

Ругается на ADOQuery1.First.
vmilyoshin вне форума Ответить с цитированием
Старый 22.09.2011, 00:50   #9
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Код:
with DataModule1.ADOQuery1 do
......
DataModule1.ADOQuery1.First;
Возможно так?
Код:
with DataModule1.ADOQuery1 do
......
First;
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 23.09.2011, 02:48   #10
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Всем спасибо!

Зделал так:

В базе Access поле установил в Дата-Время (00.00.0000;0;_)
В MaskEdit.EditMask (99.99.9999;9;_)

Код:
procedure TForm1.BitBtn8Click(Sender: TObject);
var
  I, J: integer;
  date1,date2: string;
  begin
  date1:= MaskEdit1.Text;
  date2:= MaskEdit2.Text;
  for I:= 1 to length(date1) do
  if date1[I] = '.' then
  date1[I]:= '/';
  for J:= 1 to length(date2) do
  if date2[J] = '.' then
  date2[J]:= '/';
  with DataModule1.ADOQuery2 do
  try
  if (MaskEdit1.Text = '   Начало') and (MaskEdit2.Text = '    Конец') then
  begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT SUM([Страховая премия])  FROM POLIS;');
  Open;
  Panel4.Caption:= FieldByName('Expr1000').AsString;
  end
  else
  begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT SUM([Страховая премия])  FROM POLIS WHERE [DateReg] BETWEEN #'+date1+'# AND #'+date2+'#');
  Open;
  Panel4.Caption:= FieldByName('Expr1000').AsString;
  end;
  except
  MessageDlg('Не корректно введена дата', mtError, [mbOK], 0);
  end;
end;
Может кому пригодится.
vmilyoshin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать так,чтобы он левой рукой до стены коснулся? и если можно чтобы двери лифта закрылись maxon56 Паскаль, Turbo Pascal, PascalABC.NET 0 07.06.2011 18:46
Как сделать так чтобы ... Ромка-12 Помощь студентам 2 16.09.2010 05:52
Как сделать так чтобы.. Дима я Общие вопросы Delphi 2 05.01.2010 19:03
Как сделать так чтобы вводить информацию в Edit Box в двоичной и шестнадцатеричной системах stasy1905 Общие вопросы C/C++ 0 18.12.2009 17:58
Как сделать так, чтобы в компонент edit вводились цифры и аналогично с буквами? Askat Общие вопросы Delphi 6 22.08.2007 21:00