Arsip: Cara menampilkan data di DBGrid secara mendatar

 
user image
more 17 years ago

murphy

Teman2, Bisa bantuin saya untuk menampilkan data di dbgrid secara mendatar? Misalnya gini nih, data penjualan item (item A dan B) tiap bulan ingin ditampilkan di dbgrid dengan format : A 10 30 40 25 ... dst B 75 81 40 93 ... dst Trims.
user image
more 17 years ago

kaka-delphi

Sebelumnya anda menggunakan database apa ? Klo misal pake dbf, ga tau dech .... mendingan kabur aja ... wakakakakakkaakak ... :lol: Tapi mungkin penjelasan berikut setidaknya dapat membantu .... Misal saya punya tabel sebagai berikut :
CREATE TABLE tb_barang (
  KdBarang int(10) unsigned NOT NULL auto_increment,
  NamaBarang varchar(45) NOT NULL,
  PRIMARY KEY  (KdBarang)
)
CREATE TABLE tb_penjualan (
  KdPenjualan int(10) unsigned NOT NULL auto_increment,
  Tanggal date NOT NULL,
  PRIMARY KEY  (KdPenjualan)
)
CREATE TABLE tb_penjualan_detail (
  KdPenjualan int(10) unsigned NOT NULL,
  KdBarang int(10) unsigned NOT NULL,
  Qty int(10) unsigned NOT NULL,
  PRIMARY KEY  (KdPenjualan,KdBarang),
  KEY FK_tb_penjualan_detail_2 (KdBarang),
  CONSTRAINT FK_tb_penjualan_detail_1 
  FOREIGN KEY (KdPenjualan) REFERENCES tb_penjualan (KdPenjualan) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT FK_tb_penjualan_detail_2 
  FOREIGN KEY (KdBarang) REFERENCES tb_barang (KdBarang) ON UPDATE CASCADE
)
Untuk mendapatkan hasil sum tiap barang perbulan dari tabel penjualan detail, bisa menggunakan skrip berikut :
SELECT SUM(pj.Qty) 
FROM tb_penjualan_detail pj
JOIN tb_penjualan p ON (pj.KdPenjualan=p.KdPenjualan)
WHERE pj.KdBarang=:pKdBarang
AND MONTH(p.Tanggal)=:pBulan
AND YEAR(p.Tanggal)=:pTahun;
Terlihat di skrip di atas ada 3 parameter. Parameter 1 :pKdBarang untuk Kode Barang, Parameter 2 :pBulan untuk menyeleksi perbulan, Parameter 3 :pTahun untuk menyeleksi pertahun. Yupz, tentunya skrip di atas mengahasilkan jumlah cuman satu 1 bulan dan 1 tahun yang diminta aja .. lho lalu gimana caranya supaya bisa semuanya ... tenang .. bersambung ke halaman berikutnya .... :lol: :wink:
user image
more 17 years ago

kaka-delphi

Nach untuk memudahkan, kita buat Store Procedure (dalam hal ini saya asumsikan memakai database MySQL 5.0). Kutipan skrip diatas menjadi berikut :
DELIMITER $$
DROP FUNCTION IF EXISTS demodb.Bulan$$
CREATE FUNCTION Bulan(pBulan INT, pTahun INT, pKdBarang INT) RETURNS int(11)
BEGIN
  DECLARE x INT;
  SELECT SUM(pj.Qty)
  INTO x
  FROM tb_penjualan_detail pj
  JOIN tb_penjualan p ON (pj.KdPenjualan=p.KdPenjualan)
  WHERE pj.KdBarang=pKdBarang
  AND MONTH(p.Tanggal)=pBulan
  AND YEAR(p.Tanggal)=pTahun;
  RETURN x;
END$$
DELIMITER ;
Sekarang kita buat query sebagai berikut :
SELECT b.NamaBarang,
  Bulan(1,2006,b.KdBarang) AS Jan,
  Bulan(2,2006,b.KdBarang) AS Feb,
  Bulan(3,2006,b.KdBarang) AS Mar,
  Bulan(4,2006,b.KdBarang) AS Apr,
  Bulan(5,2006,b.KdBarang) AS Mei,
  Bulan(6,2006,b.KdBarang) AS Jun,
  Bulan(7,2006,b.KdBarang) AS Jul,
  Bulan(8,2006,b.KdBarang) AS Aug,
  Bulan(9,2006,b.KdBarang) AS Sep,
  Bulan(10,2006,b.KdBarang) AS Oct,
  Bulan(11,2006,b.KdBarang) AS Nov,
  Bulan(12,2006,b.KdBarang) AS Des
FROM tb_barang b
Dan hasilnya sebagai berikut : Ada cara yang lebih simple lagi ? ... xixixxiiiiii kasih tau dunk CMIIW Untuk contoh source code dapat di download di PublicFolder dengan nama Totaled.rar Tetep Semangat !!! Support To Luri Darmawan Note : Contoh source code memakai database MySQL versi 5.0. Untuk restore databasenya bisa pake file db.sql Koneksi ke MySQL pake komponen ZEOS. Klo yang ga punya, ga tau dech ..... xixixixixixixiiiiii ....
user image
more 17 years ago

arbain

@arbain: Teman2, Bisa bantuin saya untuk membuat aplikasi didelphi menggunakan package sehingga aplikasi saya bisa diinstal layaknya sofware yang bisa diinstal dimana saja example program ninstal game :roll: Trims.
:roll:
user image
more 17 years ago

kaka-delphi

Wow ... salah kamar nich ......
user image
more 15 years ago

e_soep

maaf nih temen2...terpaksa aq buka kasus lama, coz yg aq cari ternyata tread ini...n ternyatanya lagi...tread ini belum terselesaikan...padahal aq butuh itu jg...dbgrid yang bisa menampilkan data secara mendatar...
user image
more 15 years ago

alvonz

@arbain ini threadnya beda lagi ...xixiiixix
user image
more 15 years ago

betamax

@ e_Sop DB Grid secara mendatar itu vertikal apa horizontal : asumsi mendatar adalah horizontal. dimana mana database arah horizontal adalah hasil dari query, baik satu tabel atau multi tabel. kalo lihat kasus mu mungkin cara manualnya buat tabel temproary 13 field. field pertama di isi kode barang, field ke dua sampat 13 di isi jumlah transaksi. cara ngisinya terserah anda, mo pake query ato manual looping juga gpp. authorized aja kok. tampilin di grid nya manual juga. coba di oprek properti grid nya adanya apa saja. emt mencoba yah. :)
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com