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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2010, 10:53   #1
zexxer
Новичок
Джуниор
 
Регистрация: 25.05.2010
Сообщений: 2
По умолчанию не работает счетчик

Доброго времени суток, уважаемые эксперты!
Передо мной стоит задача создавать посменный отчет из БД SQL 2005
Начало и конец запрос задаются руками из DitaTimePicker. Результат отоброжается в DB Grid а оттуда экспортируется в Excel. Помогите пожалуйста со счетчиком.Никак не могу сделать так чтобы от начальной даты до конечной через каждые 12 часов добавлялась следующая строка.Запрос параметризованный.Помогите пожалуйста кто может
текст запроса
Код:
SELECT     table1.Qkline, table2.Qkek, table3.Proiz
FROM         (SELECT   Round  (AVG(Value),2) AS Qkline
FROM          GrafP8
WHERE      (TagIndex = 5) AND (DateAndTime >  :FirstDate) AND (DateAndTime <  :LastDate)) AS table1 CROSS JOIN
(SELECT     Round(avg(Value),2) AS Qkek
                            FROM          GrafP8 AS GrafP8_1
                            WHERE      (TagIndex = 6) AND (DateAndTime >  :FirstDate1) AND (DateAndTime <  :LastDate1)) AS table2 CROSS JOIN

(SELECT     Round(SUM(Value)/12,2) AS Proiz
                            FROM          GrafP8 AS GrafP8_2
                            WHERE      (TagIndex = 9) AND (DateAndTime >  :FirstDate2) AND (DateAndTime <  :LastDate2)) AS table3


код программы
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Menus, FMTBcd, ADODB, DB, SqlExpr, DBTables,
  MXTABLES, ExtDlgs, jpeg, ExtCtrls, ComCtrls, Grids, DBGrids, OleServer,
  Excel2000, DBCtrls, CmAdmCtl;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    DataSource1: TDataSource;
    Label2: TLabel;
    Label3: TLabel;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    DBGrid1: TDBGrid;
    Query1: TQuery;
    Button1: TButton;
    Query3: TQuery;
    Database2: TDatabase;
    COMAdminCatalog1: TCOMAdminCatalog;
    Query2: TQuery;
    Label4: TLabel;
    Memo1: TMemo;
    procedure BitBtn1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Type
  TMasQuery = array [1..8] of TADOQuery;
var
  Form1: TForm1;
  MasTagName: array [1..8] of string;
  MasTagIndex: array [1..8] of string;
  MasQuery: TMasQuery;
  i,j,jj,index: Integer;
ExcelApp,sheet: Variant; 

implementation

uses Unit2, Unit3, ComObj;

{$R *.dfm}


procedure TForm1.BitBtn1Click(Sender: TObject);
var k:integer;
var First,Last,Step: string;
begin
Query3.Active:=False;
//Query3.Close;
//Query3.SQL.Clear;
    begin
    Query3.Params.ParamByName('FirstDate').Value:=FormatDateTime('mm.dd.yyyy', form1.DateTimePicker1.date)+' '+TimeToStr(form1.DateTimePicker3.Time);
    Query3.Params.ParamByName('LastDate').Value:=FormatDateTime('mm.dd.yyyy', form1.DateTimePicker2.date)+' '+TimeToStr(form1.DateTimePicker4.Time);
    Query3.Params.ParamByName('FirstDate1').Value:=FormatDateTime('mm.dd.yyyy', form1.DateTimePicker1.date)+' '+TimeToStr(form1.DateTimePicker3.Time);
    Query3.Params.ParamByName('LastDate1').Value:=FormatDateTime('mm.dd.yyyy', form1.DateTimePicker2.date)+' '+TimeToStr(form1.DateTimePicker4.Time);
    Query3.Params.ParamByName('FirstDate2').Value:=FormatDateTime('mm.dd.yyyy', form1.DateTimePicker1.date)+' '+TimeToStr(form1.DateTimePicker3.Time);
    Query3.Params.ParamByName('LastDate2').Value:=FormatDateTime('mm.dd.yyyy', form1.DateTimePicker2.date)+' '+TimeToStr(form1.DateTimePicker4.Time);
    Query3.Active:=True;
    memo1.Lines:=Query3.SQL;
    end;


COMAdminCatalog1.Connect;
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Visible := False;
ExcelApp.WorkBooks.Add(-4167);
ExcelApp.WorkBooks[1].WorkSheets[1].name :='Export';
Sheet:=ExcelApp.WorkBooks[1].WorkSheets['Export'];
index:=2;
j:=0;

//Ýêñïîðò øàïêè
for jj:=1 to DBGrid1.FieldCount do
if DBGrid1.Columns.Items[jj-1].Visible=true then
 begin
  j:=j+1;
  sheet.cells[1,j]:=DBGrid1.Columns.Items[jj-1].Title.caption;
 end;
//Ýêñïîðò äàííûõ
DBGrid1.DataSource.DataSet.First;
for i:=1 to DBGrid1.DataSource.DataSet.RecordCount do
begin
j:=0;
for jj:=1 to DBGrid1.FieldCount do
 if DBGrid1.Columns.Items[jj-1].Visible=true then
 begin
  j:=j+1;
  sheet.cells[index,j]:=DBGrid1.fields[jj-1].asstring;
 end;

  inc(index);
  DBGrid1.DataSource.DataSet.Next;
end;
//Ïîêàç ïðèëîæåíèÿ Excel
ExcelApp.Visible := true;


end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Close();
end;


end.

Последний раз редактировалось zexxer; 26.05.2010 в 10:12.
zexxer вне форума Ответить с цитированием
Старый 25.05.2010, 14:28   #2
vitaliy1911
Пользователь
 
Аватар для vitaliy1911
 
Регистрация: 19.05.2010
Сообщений: 35
По умолчанию

оформи тело программы по-человечески. в меню редактирования сообщения можно поставить тег CODE
vitaliy1911 вне форума Ответить с цитированием
Старый 26.05.2010, 10:16   #3
zexxer
Новичок
Джуниор
 
Регистрация: 25.05.2010
Сообщений: 2
По умолчанию

Код:
begin
  Last:= dateTimePicker2.DateTime ;
  Current:=dateTimePicker1.DateTime ;
  k:= 1; 
  while Current < Last do
    begin
      Current:= incHour(Current,12);
      Inc(k); // к номер смены
    end;
end;
получается проблема не с самим циклом а как передавать все значения из цикла...каждую запись в DBGrid... Кто-нить может помочь?
zexxer вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счетчик посещений Рустам PHP 7 21.10.2009 09:38
Счетчик чисел Ратмир Паскаль, Turbo Pascal, PascalABC.NET 15 12.08.2009 21:21
Счетчик в Делфи Дмитрий Гриб Помощь студентам 2 09.06.2009 16:48
счетчик Dimati87 Microsoft Office Excel 3 09.04.2009 10:02