|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Таблица - БД - Excel Всем привет) Помогите пожалуйста с заданием. Надо сделать простой массив с переменной привязанной к дате и времени: то есть таблицу, в которой первый столбец - дата, второй - время и 3-й - просто переменная. И надо эту таблицу сначала записать в Базу Данных, а потом сделать экспорт в Excel ввиде таблицы. Помогите пожалуйста, отдельные компоненты для решения вроде нашел, но собрать все в целое совершенно не получается - в Delphi раньше вообще не работал. | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Недостаточно данных. 1. Что за переменная "привязанная к дате"? Какого типа данные в ней? Как вычисляется дата/время? Как это хранится в программе? 2. Какая БД? От этого зависит какие типы данных доступны. В общем случае: Код: CREATE TABLE MyTable ( ColDate Date, ColTime Time, ColVar Varchar(100) -- тип данных неизвестен, потому сделал текстом ); Код: INSERT INTO MyTable VALUES (:dd, :tt:, :vv) 3. Ну а вот тут примеров работы с Excel через OLE полно. | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   Извиняюсь, сейчас попробую пояснить) Но Вы примерно правильно поняли задание.  И так: 1. Случайно генерируется переменная (например температура) и вносится в базу данных с текущим временем и датой. 2. А потом эта табличка экспортируется в Excel. Пример таблички во вложенных файлах. Должно получиться что-то примерное такое: нажимаешь на кнопку на форме - генерируется переменная - записывается в базу данных с датой и временем - и в конце экспортируется эта табличка в книгу Excel. По мере возможностей можете пожалуйста детально расписать как это сделать, большой спасибо  | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   1. Генерируется как? По кнопке? В цикле (тогда сколько надо)? 3. Опять же, какая база? И вообще, нужна ли она, может можно все в памяти держать? Или в файле? Непонятно зачем тут БД... Ради одной таблички как-то излишне. Или надо накапливать данные за несколько дней и потом экспортироват за опр. дату? | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   1. Да, по кнопке. 2. Не суть вообще, например можно Microsoft Access в формате *.mdb. Или надо накапливать данные за несколько дней и потом экспортироват за опр. дату? - Да-да-да, именно так) Чтобы можно было вызвать и посмотреть по дате, что было в тот день. | 
| 
			 
			#6  
			
			
			
			
		 | |||
| 
 | |||
|   1. Содаешь базу, в ней табицу с 3мя полями: event_ts timestamp value_1 decimal(10,4) value_2 decimal(10,4) Думаю длинны 6.4 для твоих данных вполне хватит. 2. На форме нужны будут: Connection: TADOConnection qAdd : TADOQuery qExport : TADOQuery 3. В qAdd вводишь такой запрос: Код: INSERT INTO DataTbl VALUES (:ts, :v1, :v2) 4. По кнопке: Код: procedure TForm1.Buttion1Click(Sender : TObject);
begin
  qAdd.Params.ParamByName('ts').AsDateTime := Date + Time;
  qAdd.Params.ParamByName('v1').AsFloat := random*20-10; // -10..+10
  qAdd.Params.ParamByName('v2').AsFloat := random*20-10; // -10..+10
  qAdd.ExecSql;
end;5. Дальше, на форму бросаешь TDateTimePicker для фильтра по дате. 6. В qExport добавляешь запрос: Код: SELECT event_ts, value_1, value_2 from DataTbl where event_ts >= :dt1 and event_ts < :dt2 7. По второй кнопке для экспорта: Код: procedure TForm1.Button2Click(Sender : TObject);
begin
  qExport.Active := False; // ну, на всякий случай
  qExport.Params.ParamByName('dt1').AsDate := DateTimePicker1.Date;
  qExport.Params.ParamByName('dt2').AsDate := DateTimePicker1.Date + 1;
  qExport.Open;
  qExport.First;
  While Not qExport.Eof Do
    Begin
      // Здесь собственно экспорт в Excel строк
      // Предварительно надо создать объект экселя
      // Вообще, можно просто вывести в csv текстовый файл, он экселем прекрасно читается
     qExport.Next;
    End;
  qExport.Close;
end;
end;Ну вот как-то так. Работу с экселем через OLE ищи поиском, было много примеров, в т.ч. и на этом сайте, там не сложно, но лень писать. | 
| 
			 
			#7  
			
			
			
			
		 | |||
| 
 | |||
|   А можете пожалуйста более подробно расписать... Или исходник кинуть. Буду очень благодарен, не получается связать все компоненты  |