Ekspor Database ke Berbagai Format 2

Assalamu’alaikum Wr.Wb

Berikut ini adalah lanjutan dari artikel Ekspor Database ke Berbagai Format. Kali ini kita akan membuat prosedur untuk mengekspor table ke dalam format HTML.

Berikut adalah prosedur EksporHTML:

procedure TForm1.EksporHTML(NamaTabel, NamaFolder : string);
var
 cmdEkspor : TADOCommand;
begin
 cmdEkspor := TADOCommand.Create(nil);
 try
 cmdEkspor.Connection := ADOConnection1;
 cmdEkspor.CommandText :=
 Format('SELECT * INTO [%s] IN "%s" %s FROM %s',
 [NamaTabel+'.html', NamaFolder, '"HTML Export;"', NamaTabel]);
 //ShowMessage(cmdEkspor.CommandText);
 cmdEkspor.Execute;
 finally
 cmdEkspor.Free;
 end;
end;

OKE, selanjutnya, tambahkan kode ini pada vcl btnEkspor dengan event btnEksporClick(Sender : TObject):

procedure TForm1.btnEksporClick(Sender: TObject);
var
 strNamaFile : string;
begin
 ....
 if ListBox1.ItemIndex > -1 then
 begin
 ...
 if rdbHTMl.Checked then
 begin
 EksporHTML(ListBox1.Items[ListBox1.ItemIndex],edtFolderSimpan.Text);
 MessageDlg('Data sudah berhasil di ekspor ke format HTML ' +
 'dalam file ' + QuotedStr(strNamaFile + '.html'),
 mtInformation,[mbOk], 0 );
 end;
 // untuk dbase, dan csv/txt untuk tulisan berikutnya
 end;
end;

Untuk kode tambahan saya kasih warna ini.

Berikut adalah tampilan hasil outputnya yang dibuka dengan firefox 3:

Halaman Ekspor HTML

Info Ekspor HTML

xpado_html

Bersambung……….

Semoga Bermanfaat, Wassalam

Ekspor Database ke Berbagai Format

Assalamu’alaikum Wr.Wb.

Hallo programmer, bagi anda yang biasanya menggunakan Delphi dalam pemrograman dan pembuatan aplikasi sehari-hari atau proyek anda :-) , tentunya anda menginginkan cara untuk mengekspor data anda ke dalam format tertentu yang anda inginkan sebagai backup data atau sebagai keperluan lain.

Nah, pada tulisan kali ini saya akan mencoba untuk memberikan sedikit trik untuk mengekspor tabel dalam database anda ke dalam berbagai format (saat ini hanya satu dahulu – excel, yang lainnya menyusul). Hehe…

Berikut adalah langkah-langkah untuk melakukannya:

- Buka aplikasi delphi kesayangan anda ( pada contoh ini saya impelementasikan menggunakan delphi 11)

- Buat proyek baru anda, dan simpanlah dilokasi sesuai keinginan anda sendir.

- Kemudian susun tampilan anda seperti tampilan berikut ini:

Tampilan Form Rancangan

Tampilan Form Rancangan

Biar form rancangan anda sama, anda bisa menggunakan skrip untuk form1.dfm berikut dalam mode teks:object Form1: TForm1
 Left = 0
 Top = 0
 BorderStyle = bsDialog
 Caption = 'Demo Ekspor ADO Database'
 ClientHeight = 281
 ClientWidth = 305
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'Tahoma'
 Font.Style = []
 OldCreateOrder = False
 Position = poDesktopCenter
 PixelsPerInch = 96
 TextHeight = 13
 object Label1: TLabel
 Left = 8
 Top = 8
 Width = 154
 Height = 13
 Caption = 'Lokasi Database Acces (*.mdb):'
 end
 object Label2: TLabel
 Left = 8
 Top = 53
 Width = 67
 Height = 13
 Caption = 'Daftar Tabel :'
 end
 object Label3: TLabel
 Left = 8
 Top = 198
 Width = 88
 Height = 13
 Caption = 'Simpan ke Folder :'
 end
 object Label4: TLabel
 Left = 135
 Top = 53
 Width = 67
 Height = 13
 Caption = 'Format Data :'
 end
 object edtLokasi: TEdit
 Left = 8
 Top = 27
 Width = 202
 Height = 21
 TabOrder = 0
 end
 object btnBrowse: TButton
 Left = 214
 Top = 25
 Width = 75
 Height = 25
 Caption = '&Browse'
 TabOrder = 1
 OnClick = btnBrowseClick
 end
 object ListBox1: TListBox
 Left = 8
 Top = 72
 Width = 121
 Height = 97
 ItemHeight = 13
 TabOrder = 2
 end
 object StatusEkspor: TStaticText
 Left = 8
 Top = 175
 Width = 281
 Height = 17
 AutoSize = False
 BorderStyle = sbsSunken
 Caption = 'Pilih database -> Tabel -> Format dan Ekspor'
 TabOrder = 3
 end
 object btnEkspor: TButton
 Left = 135
 Top = 248
 Width = 75
 Height = 25
 Caption = '&Ekspor'
 Default = True
 Enabled = False
 TabOrder = 4
 OnClick = btnEksporClick
 end
 object btnTutup: TButton
 Left = 216
 Top = 248
 Width = 75
 Height = 25
 Caption = '&Tutup'
 TabOrder = 5
 OnClick = btnTutupClick
 end
 object edtFolderSimpan: TEdit
 Left = 8
 Top = 213
 Width = 202
 Height = 21
 TabOrder = 6
 end
 object btnBrowseFolder: TButton
 Left = 214
 Top = 211
 Width = 75
 Height = 25
 Caption = '&Browse'
 TabOrder = 7
 OnClick = btnBrowseFolderClick
 end
 object rdbExcel: TRadioButton
 Left = 135
 Top = 72
 Width = 113
 Height = 17
 Caption = 'Excel 8.0 (97/2000)'
 Checked = True
 TabOrder = 8
 TabStop = True
 end
 object rdbHTML: TRadioButton
 Left = 135
 Top = 95
 Width = 113
 Height = 17
 Caption = 'HTML'
 Enabled = False
 TabOrder = 9
 end
 object rdbDBase: TRadioButton
 Left = 135
 Top = 118
 Width = 113
 Height = 17
 Caption = 'DBase'
 Enabled = False
 TabOrder = 10
 end
 object rdbCSV: TRadioButton
 Left = 135
 Top = 141
 Width = 113
 Height = 17
 Caption = 'CSV / TXT'
 Enabled = False
 TabOrder = 11
 end
 object OpenDialog1: TOpenDialog
 Filter = 'Access Database|*.mdb'
 Left = 248
 Top = 8
 end
 object ADOConnection1: TADOConnection
 LoginPrompt = False
 Left = 10
 Top = 242
 end
end

Untuk bisa menggunakan kode di atas, klik kanan pada form anda dan pilih menu ‘Views as text, dan anda timpa semua kode teks anda dengan kode di atas. Klik kanan kembali pada tampilan ‘Code Editor’ anda dan pilih menu ‘View as Form‘, maka anda akan melihat Tampilan Form Rancangan di atas.

Berikut adalah kode program selengkapnya (baru excel aja lho.. yang lain disabled) :

unit unEkspor;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, DB, ADODB, FileCtrl;

type
 TForm1 = class(TForm)
 Label1: TLabel;
 edtLokasi: TEdit;
 btnBrowse: TButton;
 OpenDialog1: TOpenDialog;
 ListBox1: TListBox;
 Label2: TLabel;
 StatusEkspor: TStaticText;
 btnEkspor: TButton;
 btnTutup: TButton;
 ADOConnection1: TADOConnection;
 edtFolderSimpan: TEdit;
 btnBrowseFolder: TButton;
 Label3: TLabel;
 Label4: TLabel;
 rdbExcel: TRadioButton;
 rdbHTML: TRadioButton;
 rdbDBase: TRadioButton;
 rdbCSV: TRadioButton;
 procedure btnBrowseFolderClick(Sender: TObject);
 procedure btnEksporClick(Sender: TObject);
 procedure btnTutupClick(Sender: TObject);
 procedure btnBrowseClick(Sender: TObject);
 private
 procedure EksporExcel(NamaTabel, NamaFile : string);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.EksporExcel(NamaTabel, NamaFile: string);
var
 cmdEkspor : TADOCommand;
begin
 cmdEkspor := TADOCommand.Create(nil);
 try
 cmdEkspor.Connection := ADOConnection1;
 cmdEkspor.CommandText :=
 Format('SELECT * INTO ["Excel 8.0;Database=%s"].[%s] FROM %s',
 [NamaFile,NamaTabel,NamaTabel]);
 //ShowMessage(cmdEkspor.CommandText);
 cmdEkspor.Execute;
 finally
 cmdEkspor.Free;
 end;
end;

procedure TForm1.btnBrowseClick(Sender: TObject);
const
 CONN = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False';
begin
 if (OpenDialog1.Execute) and (OpenDialog1.FileName<>'') then
 begin
 ListBox1.Clear;
 edtLokasi.Text := OpenDialog1.FileName;
 // menghubungkan dengan database access
 if ADOConnection1.Connected then ADOConnection1.Connected := false;
 ADOConnection1.ConnectionString := Format(CONN,[edtLokasi.Text]);
 ADOConnection1.Connected := true;
 ADOConnection1.GetTableNames(ListBox1.Items);
 if ListBox1.Items.Count > 0 then
 ListBox1.ItemIndex := 0;
 btnEkspor.Enabled := true;
 end;
end;

procedure TForm1.btnBrowseFolderClick(Sender: TObject);
var
 strLokasi : string;
begin
 SelectDirectory('Pilih lokasi folder untuk menyimpan data hasil ekspor','',
 strLokasi,[sdNewUI, sdNewFolder, sdShowShares, sdValidateDir]);
 if strLokasi <> '' then
 begin
 edtFolderSimpan.Text := strLokasi;
 end;
end;

procedure TForm1.btnEksporClick(Sender: TObject);
var
 strNamaFile : string;
begin
 if Length(Trim(edtFolderSimpan.Text)) < 3 then
 begin
 MessageDlg('Maaf, anda harus mengisi atau memilih folder dengan benar!',
 mtWarning,[mbOk],0);
 exit;
 end;

 if Length(edtFolderSimpan.Text)=3 then
 strNamaFile := edtFolderSimpan.Text
 else
 strNamaFile := edtFolderSimpan.Text + '\';
 strNamaFile := strNamaFile + ListBox1.Items[ListBox1.ItemIndex];

 if ListBox1.ItemIndex > -1 then
 begin
 if rdbExcel.Checked then
 begin
 EksporExcel(ListBox1.Items[ListBox1.ItemIndex],strNamaFile + '.xls');
 MessageDlg('Data sudah berhasil di ekspor ke format EXCEL 97/2000 ' +
 'dalam folder ' + QuotedStr(strNamaFile), mtInformation,
 [mbOk], 0 );
 end;
 // untuk html, dbase, dan csv/txt untuk tulisan berikutnya
 end;
end;

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

end.

Kemudian anda jalankan program anda, dan anda akan melihat tampilan berikut:

exado_run_main

xpado_browse_folder

xpado_info

xpado_xls

Bersambung……

Moga bermanfaat, Wassalam.


How To Use Intraweb Delphi – Hello World

Assalamu’alaikum Wr.Wb.

Delphi sudah menyertakan fasilitas Intraweb semenjak dari versi 6 keatas, tetapi cukup jarang yang menggunakan fitur ini. Yap, kemungkinan karena jarang di otak-atik dan dilihat-lihat. hehe.. (maaf). Pada tutor kali ini, kita akan membuat sebuah aplikasi intraweb menggunakan Borland Delphi 2006 atau Turbo Delphi 2006 yang gratis..

Langkah awal:

1. Buat aplikasi intraweb baru dengan memilih menu File -> New -> Other, dan pada jendela New Items, pilih Delphi projects, dan terakhir pilih Intraweb. Selanjutnya sorot icon Intraweb Application Wizard.

Dialog New Items

Dialog New Items

2. Lalu tampil jendela Intraweb Application Wizard. Pada jendela ini pilih “StandAlone Application” pada Application Type, dan hilangkan tanda cek “Create User Session”. Beri nama pada “Project Name” dengan nama : HelloWorld, klik tombol OK.

Intraweb Application Wizard

Intraweb Application Wizard

3. Aktifkan jendela IWForm2 pada aplikasi baru anda, dan ubah properti Name menjadi IWIndex, dan ubah title menjadi “Hello World Intraweb Delphi”.
4. Lebarkan pallete IW Standard pada jendela Tool Pallete di IDE Delphi. Letakkan komponen IWLabel1 dan IWButton1 pada form IWindex.

5. Ubah properti caption IWLabel1 menjadi “Tekan Tombol Proses Di bawah ini.”, lalu ubah properti Font - Font Family menjadi “Arial, Sans-Serif, Verdana“, dan ubah properti caption IWButton1 menjadi “Proses”.
6. Ubah properti BGColor dari IWIndex menjadi clWebBISQUE. Atur seperti tampilan berikut ini:

Desain Tampilan Helloworld

Desain Tampilan Helloworld

7. Klik ganda pada IWButton1, dan ketikkan kode seperti berikut ini:

procedure TIWIndex.IWButton1Click(Sender: TObject);
begin
  WebApplication.ShowMessage('Hallo Dunia, Selamat Datang di Websiteku');
end;

8. Kemudian jalankan aplikasi anda.
9. Lalu, anda melihat sebuah tampilan dialog HelloWorld Server, yang artinya, server intraweb anda sudah berhasil dijalankan.

10. Untuk melihat hasilnya, buka web browser anda (misal: Internet Explorer 7), dan ketikkan pada browser anda : http://127.0.0.1:8888/ dan tekan tombol GO, dan berikut ini adalah hasil dari aplikasi yang baru saja anda buat.

HelloWorld Intraweb Delphi

HelloWorld Intraweb Delphi

Selamat Mencoba

Assalamu’alaikum Wr.Wb

Created by : 2008, Dedy Gunanto

How to use TListView (Cara menggunakan TListView)

Assalamu’alaikum Wr.Wb.

Bagi anda yang pemula dalam menggunakan komponen TListView mungkin agak kebingungan dalam menggunakan komponen ini, hal ini juga pernah saya alami sendiri. Dulu saya bingung untuk apa sih komponen ini? Akhirnya saya mengetahui bagaimana cara penggunaannya. Yah, terkadang kita butuh untuk menampilkan data dalam bentuk baris, icon atau sebagainya. Berikut ini cara mempergunakannya:

Tampilan TListView

ListView memiliki empat buah tipe tampilan, yaitu: vsIcon, vsSmallIcon, vsList, dan vsReport. Berikut cara untuk mengubah tampilan TListView dari kode delphi, misalnya:

ListView1.ViewStyle := vsReport;

Menambah Item Baru Pada ListView

Cara untuk menambah baris / item baru menggunakan kode program adalah sebagai berikut:

var
   ItemBaru : TListItem;
begin
   ItemBaru : ListView1.Items.Add;
   ItemBaru.Caption := 'Delphi';
   ItemBaru.SubItems.Add('Borland');
end;

Nah, untuk jelasnya, buat sebuah aplikasi baru. Tambahkan komponen TRadioGroup1 dan isikan pada items-nya: vsIcon, vsList, vsReport, dan vsSmallIcon. Tambahkan dua buah TEdit, satu buah TButton, dan sebuah TImageList. Terakhir tambahkan sebuah komponen TListView pada form, dan atur seperti tampilan berikut ini:

Tampilan Desain

Tampilan Desain

Berikut adalah skrip program selengkapnya:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, ImgList;

type
  TForm1 = class(TForm)
    ListView1: TListView;
    RadioGroup1: TRadioGroup;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    ImageList1: TImageList;
    procedure Button1Click(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  BarisBaru : TListItem;
begin
  // menambahkan baris baru
  BarisBaru := ListView1.Items.Add;
  BarisBaru.Caption := Edit1.Text;
  BarisBaru.SubItems.Add(Edit2.Text);

  // membersihkan TEdit
  Edit1.Text := '';
  Edit2.Text := '';
  Edit1.SetFocus;
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
    0: ListView1.ViewStyle := vsIcon;
    1: ListView1.ViewStyle := vsList;
    2: ListView1.ViewStyle := vsReport;
    3: ListView1.ViewStyle := vsSmallIcon;
  end;
end;

end.

Dan ini adalah tampilan hasil dari program di atas:

Demo Listview

Demo Listview

Moga bermanfaat :-)

Wassalamu’alaikum

Created by : 2008, Dedy Gunanto

How to Sort Table With DBGrid TitleClick + ZeosLib (Mengurutkan Table dengan Mengklik Kolom Title DBGrid + ZeosLib)

Assalamu’alaikum Wr.Wb.

Anda mungkin ingin aplikasi database anda menjadi lebih cantik dan penuh fitur untuk memudahkan pengguna aplikasi yang nantinya anda buat. Karena procedure untuk mengurutkan data beradasarkan TitleClick dengan Zeos belum ada, maka penulis mencari cara untuk mengurutkan data dengan DBGrid serta zeos. Hmm, akhirnya berhasil juga….  Silakan anda mencobanya.

Tips berikut ini dibutuhkan sebuah komponen database Zeoslib, penulis menggunakan Zeos versi 6.6.2RC, TDBGrid, TZConnection, TZQuery, dan TStatusBar. Perlu anda perhatikan, di sini, anda perlu membuat sebuah unit atau bisa anda tempelkan pada unit form anda (anda bisa memilih sendiri yang anda butuhkan), yaitu:

procedure CursorTitle.. dan procedure SortColumn.

Perhatian!
Anda harus menginstall terlebih dahulu komponen ZeosLib

Rancanglah sebuah form seperti tampilan berikut ini:

Design Form

Design Form

Untuk jelasnya, lihat procedure berikut ini:

procedure CursorTitle(Sender: TObject; PosisiMouse: TGridCoord; X,Y : integer);
var
  sCap : string;
begin
  PosisiMouse := (Sender as TDBGrid).MouseCoord(X,Y);
  if PosisiMouse.Y = 0 then
  begin
    if PosisiMouse.X > 0 then
    begin
      sCap := (Sender as TDBGrid).Columns[PosisiMouse.X-1].Title.Caption;
      if (Pos('« ', sCap) = 1) then Delete(sCap,1,2);
      if (Pos('» ', sCap) = 1) then Delete(sCap,1,2);
      (Sender as TDBGrid).Hint := 'Klik di sini untuk mengurutkan data berdasarkan '
                                + '''' + sCap + '''';
    end else
      (Sender as TDBGrid).Hint := '';
    (Sender as TDBGrid).Cursor := crHandPoint;
  end else
  begin
    (Sender as TDBGrid).Hint := '';
    (Sender as TDBGrid).Cursor := crDefault;
  end;
end;

procedure SortColumn(myGrid: TDBGrid; myQuery: TZQuery; Column: TColumn;
          var PreviousColumnIndex : integer);
var
  sCap : string;
begin
  myQuery.DisableControls;
  try
    if PreviousColumnIndex > -1 then
    begin
      sCap := myGrid.Columns[PreviousColumnIndex].Title.Caption;
      if (Pos('« ', sCap) = 1) then Delete(sCap,1,2);
      if (Pos('» ', sCap) = 1) then Delete(sCap,1,2);
      myGrid.Columns[PreviousColumnIndex].Title.Caption := sCap;
      myGrid.Columns[PreviousColumnIndex].Title.Font.Color := clWindowText;
      myGrid.Columns[PreviousColumnIndex].Title.Font.Style :=
      myGrid.Columns[PreviousColumnIndex].Title.Font.Style - [fsBold];
      myGrid.Columns[PreviousColumnIndex].Font.Color := clWindowText;
      Column.Font.Color := clWindowText;
    end;

    PreviousColumnIndex := Column.Index;

    with myQuery do
    begin
      if SortType = stAscending then
      begin
        SortedFields := Column.Field.FieldName;
        SortType := stDescending;
        Column.Title.Caption := '» ' + Column.Title.Caption;
      end else
      begin
        SortedFields := Column.Field.FieldName;
        SortType := stAscending;
        Column.Title.Caption := '« ' + Column.Title.Caption;
      end;
    end;
    myGrid.Columns[PreviousColumnIndex].Title.Font.Color := clBlue;
    myGrid.Columns[PreviousColumnIndex].Title.Font.Style := [fsBold];
    myGrid.Columns[PreviousColumnIndex].Font.Color := clGreen;
  finally
    myQuery.EnableControls;
  end;
end;

Cara penggunaan procedure di atas, yaitu:

Tambahkan di var, contoh (kode tambahan berwarna biru):

var
  Form1 : TForm1;
  KolomSebelumnya : integer = -1;

...

procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var pt : TGridCoord;
begin
  CursorTitle(Sender, pt, X, Y);
end;
procedure TfrmGridBuku.DBGrid1TitleClick(Column: TColumn);
begin
  SortColumn(DBGrid1, ZQuery1, Column, KolomSebelumnya);
end;

Berikut ini adalah hasilnya:

Demo

Screnshot Demo

Catatan:
Sebagai kode etik dalam dunia pemrograman, jika anda menggunakan kode program dari programmer lain, maka anda harus mencantumkan nama pembuat source code tersebut dalam credit aplikasi anda. Terima kasih.

Wassalamu’alaikum

Dibuat oleh : Dedy Gunanto, 2008.

Apa itu Delphi?

Borland Delphi adalah IDE yang digunakan untuk membuat aplikasi yang cocok dengan sistem operasi Windows 2000, XP dan Vista. Delphi tidak hanya digunakan untuk mengembangkan aplikasi pada tiga platform tersebut, tapi juga bisa aplikasi yang dibuat menggunakan Delphi bisa diinstal pada ketiga sistem operasi tersebut. Hal ini tentunya memberikan ke fleksibelitasan untuk digunakan pada sistem operasi yang anda butuhkan. Delphi for Win32 bisa digunakan untuk mengembangkan aplikasi pada sistem operasi Windows Vista dengan lingkungan Win32, mudah untuk membuat aplikasi web yang mendukung bahasa pemrograman AJAX (versi 2007 atau versi 12), dan memiliki koneksi pada database bertaraf enterprise.