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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2011, 21:26   #1
Discovery-24
Новичок
Джуниор
 
Регистрация: 03.05.2011
Сообщений: 1
Сообщение Экспорт содержимого Dbgrid в html и xml

Имеется код программы. Экспортирование содержимого таблицы Dbgrid в Exel проходит нормально. Необходимо экспортировать в html и xml, то есть добавить ещё пару кнопок с запрограммированным кодом. Как правильно сделать?
Код программы:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids,DBGrids,ComObj,ActiveX;

type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
ComboBox1: TComboBox;
ADOQuery2: TADOQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
ComboBox2: TComboBox;
Edit1: TEdit;
ADOQuery3: TADOQuery;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
ADOQuery4: TADOQuery;
Button3: TButton;
Edit2: TEdit;
Label2: TLabel;
Button2: TButton;
Label1: TLabel;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var str:string;
begin
ADOQuery1.First ;
ComboBox1.Items.Clear;
ComboBox1.Items.Add('Âèä òîâàðà');
ComboBox1.ItemIndex := 0;


while not ADOQuery1.Eof do
begin
Str :=ADOQuery1.FieldByName('TypeName') .AsString;
ComboBox1.Items.Add(str);
ADOQuery1.Next;
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
Sum:real;
Values, ID, Marka, Firm, Pokupatel, Zena, Kol :string;
begin
ID := ADOQuery2.FieldByName('ID').AsStrin g;
Marka := '''' + ADOQuery2.FieldByName('Marka').AsSt ring + '''';
Firm := '''' + ADOQuery2.FieldByName('Firm').AsStr ing + '''';
Pokupatel := '''' + ComboBox2.Text + '''';
Zena := ADOQuery2.FieldByName('Zena').AsStr ing;
Kol := Edit1.Text;

ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add('INSERT INTO Pokupki (ID, Marka, Firm, Pokupatel, Zena, Kol) ');
Values := 'VALUES (' + ID + ', '
+ Marka + ', '
+ Firm + ', '
+ Pokupatel + ', '
+ Zena + ', '
+ Kol + ')' ;
ADOQuery4.SQL.Add(Values);
ADOQuery4.ExecSQL;

ADOQuery3.Close;
ADOQuery3.Open;

Sum := 0;
while not ADOQuery3.Eof do
begin
Sum := Sum + ADOQuery3.FieldByName('Zena').AsFlo at * ADOQuery3.FieldByName('Kol').AsFloa t;
ADOQuery3.Next;
end;

Edit2.Text := FloatToStr(Sum);
end;

procedure TForm1.Button3Click(Sender: TObject);
var Sum :real;
ID:string;
begin
ID:= ADOQuery3.FieldByName('ID').AsStrin g;

ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add('DELETE FROM Pokupki WHERE ID = ' + ID) ;
ADOQuery4.ExecSQL;

ADOQuery3.Close;
ADOQuery3.Open;

Sum := 0;
while not ADOQuery3.Eof do
begin
Sum := Sum + ADOQuery3.FieldByName('Zena').AsFlo at * ADOQuery3.FieldByName('Kol').AsFloa t;
ADOQuery3.Next;
end;

Edit2.Text := FloatToStr(Sum);
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
Var CurID:integer;
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('Select * From Device ');


if ComboBox1.ItemIndex>0 then
begin
ADOQuery2.SQL.Add('WHERE TypeID= TypeID');

ADOQuery1.Locate('TypeName', ComboBox1.Text,[]);
CurID:=ADOQuery1.FieldByName('TypeI D').AsInteger;
ADOQuery2.Parameters.ParamByName('p TypeID').Value := CurID;
end;
ADOQuery2.Open;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i,j,index: Integer;
ExcelApp,sheet: Variant;
begin
ExcelApp := CreateOleObject('Excel.Application' );
ExcelApp.Visible := False;

ExcelApp.WorkBooks.Add(-4167);

ExcelApp.WorkBooks[1].WorkSheets[1].name := 'Export';
sheet:=ExcelApp.WorkBooks[1].WorkSheets['Export'];

Sheet.Cells[1,1]:='¹';
Sheet.Cells[1,2]:='Ìàðêà';
Sheet.Cells[1,3]:='Ôèðìà';
Sheet.Cells[1,4]:='Ïîêóïàòåëü';
Sheet.Cells[1,5]:='Öåíà';
Sheet.Cells[1,6]:='Êîëè÷åñòâî';

index:=2;

ADOQuery3.First;

for i:=1 to ADOQuery3.RecordCount do
begin
for j:=1 to ADOQuery3.FieldCount do
sheet.cells[index,j]:=ADOQuery3.Fields[j-1].asstring;
inc(index);
ADOQuery3.Next;
end;

ExcelApp.Visible := true;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin

end;

end.

Последний раз редактировалось Discovery-24; 03.05.2011 в 21:49.
Discovery-24 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт в xml alco84 Microsoft Office Access 0 12.12.2010 20:16
Экспорт xls на xml armagedon_atyrau Microsoft Office Excel 9 29.06.2010 15:52
экспорт из xls в xml для excell 2000 zzz007 Microsoft Office Excel 0 20.08.2009 22:47
импорт TXT в XLS(расчет по формулам)-экспорт в XML Zhiltsov Microsoft Office Excel 27 06.07.2009 11:27
Обновление содержимого в HTML XeN0N Общие вопросы .NET 0 01.03.2009 13:57