Sunday, February 28, 2010
ListView untuk serch dan selection di VB6
Private Sub Form_Load()
Combo1.AddItem "NomorInduk"
Combo1.AddItem "NamaSiswa"
Combo1.AddItem "JenisKelamin"
Call Tabel_barang
Call Data_Barang
End Sub
Private Sub ListView1_DblClick()
On Error Resume Next
If FrmMenu_Utama.MnuPembelian.Enabled = False Then
If Form1.txtnoinduk.BackColor = vbWhite Then
Form1.txtnoinduk.Text = ListView1.SelectedItem
Form1.txtnmsiswa.Text = ListView1.SelectedItem.ListSubItems(1).Text
Else
Form1.txtnoinduk.Text = ListView1.SelectedItem
Form1.txtnmsiswa.Text = ListView1.SelectedItem.ListSubItems(1).Text
End If
Else
Form1.txtnoinduk.Text = ListView1.SelectedItem
Form1.txtnmsiswa.Text = ListView1.SelectedItem
End If
Unload Me
End Sub
Private Sub ListView1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Sub Tabel_barang()
With ListView1
.View = lvwReport
.FullRowSelect = True
.HotTracking = True
With .ColumnHeaders
.Add , , "NomorInduk", 1500
.Add , , "NamaSiswa", 1500
.Add , , "JenisKelamin", 2500
End With
End With
End Sub
Sub Data_Barang()
Call Koneksi_Database
sql = "select nomorinduk, namasiswa,jeniskelamin from siswa"
rs.Open sql, db
If rs.EOF = False Then
ListView1.ListItems.Clear
rs.MoveFirst
Do While Not rs.EOF
Set List = ListView1.ListItems.Add(, , rs.Fields("NomorInduk"))
List.SubItems(1) = rs.Fields("NamaSiswa")
List.SubItems(2) = rs.Fields("JenisKelamin")
rs.MoveNext
Loop
End If
End Sub
beda report footer dengan page footer di Crystal Report
report footer biasanya untuk:
- menampilakan hasil total dari kolom diatasnya
- menampilkan fungsi terbilangnya
- lokasi tampil akan menyesuaikan dengan jumlah row data [detail] diatasnya. Bila row detail data banyak akan makin kebawah dan bila sedikit akan makin keatas.
Page Footer:
- untuk print halaman
- print catatan kaki
- selalu pada bagian bawah kertas, tidak mengikuti banyak sedikitnya row data diatasnya
Agar "Report Footer" di Crystal Report aktif maka lakukan step berikut:
- right klik "report footer" di bagaian kiri (design)
- pilih "Format Section"
- un check "Suppress [No Drill-Down]
- ok
conection ADODC dengan script
- kalo applikasinya makin rumit, tak perlu setting ADODC properties one by one.
- mudah dirubah, misal ketika di copykan ke server orang lain dengan nama server dan password berbeda.
berikut contoh scriptnya bila dijadikan modul
Public Function Koneksi_Database() As Boolean
On Error GoTo Pesan
If db.State = adStateOpen Then
db.Close
End If
db.Open "Provider=SQLOLEDB.1;" & _
"Persist Security Info=False;" & _
"User ID=sa;" & _
"Password=password;" & _
"Initial Catalog=DBName;" & _
"Data Source=ServerName"
db.CursorLocation = adUseClient
Koneksi_Database = True
Exit Function
Pesan:
Koneksi_Database = False
MsgBox "Koneksi ke server tidak berhasil !!!", 16, "ERROR"
End
End Function
Membuat error handling di VB
-On Error Go To .... di awal sub program
-dan Exit Sub
-lalu Pesan: di akhir sub program.
contoh penggunaan di button "ADD" data row
Private Sub BtnEnh6_Click()
On Error GoTo Pesan
SqlMasuk = ""
SqlMasuk = "INSERT INTO transaksi" _
& " (Tanggal,NomorInduk,NamaSiswa,JumlahRupiah)" _
& " VALUES ('" & dttanggal.Value & "','" & txtnoinduk.Text & "',
& txtjumlahrupiah.Text & "')"
db.Execute SqlMasuk, , adCmdText
Call Form_Load
Adodc3.Refresh
Exit Sub
Pesan:
MsgBox "Input harus angka ...!", 16, "ERROR"
End Sub
Fungsi Terbilang / Spell Number in bahasa di crystal report
contoh:
UpperCase (ToWords ({@jumlah},0) + " ONLY " )
dimana @jumlah adalah: Sum ({Transaksi.Amount})
maka script diatas akan merubah hasil SUM dari tabel Transaksi , kolom Amount.
menjadi huruf dalam english, dengan suffic ONLY
Bila ingin membuat fungsi terbilang dalam bahasa Indonesia (number to text) untuk di Crystal report pakai dua file berikut:
- CruflFor.dll
- CruflBil.dll
sebelumnya register dulu dua file diatas ke c:\windows\crystal
dan cari pada bagian additional fuction di crystalreport
contoh penggunaannya, misal untuk terbilang rupiah pada lembar kwitansi
@jumlah=Sum ({Transaksi.Amount})
@format=ForTerformatFormNilai ({@jumlah})
@terbilang = AngTerbilangDekbilang ({@format}) + ' Rupiah.'
Oh ya: kolom Amount harus bertype data angka seperti: money, integer,decimal
agar bisa di SUM.
untuk dua file diatas: CruflFor.dll dan CruflBil.dll, silaken email ke ane.
Saturday, February 13, 2010
Struktur kontrol seleksi
JIKA jam kerja seorang pegawai dalam satu minggu adalah lebih dari 40
MAKA jam lembur sama dengan jumlah jam yang menjadi selisihnya
JIKA TIDAK pegawai tidak mempunyai jam lembur
Variasi sruktur kontrol seleksi yang biasa adalah struktur kontrol kasus.Struktur ini menawarkan labih dari satu keputusan ya atau tidak. Struktur kasus ini memberikan alternatif, atau kasus yang bisa ditampilkan. (JIKA kasus 1 terjadi, MAKA lakukan ….. JIKA kasus 2 terjadi, MAKA ikuti alternatif …… .” Dan seterusnya.) Struktur kontrol jika membuat programer tidak harus mengiindikasikan begitu banyak kondisi JIKA-MAKA-JIKA TIDAK secara terpisah.
Konsep Dasar
Bentuk umum statemen if .. else
Bentuk 1 : Paling sederhana tanpa Else
if (kondisi) aksi;
Bentuk 2 : IF .. Else .. dengan satu kondisi
If (kondisi)
aksi_1;
else
aksi_2;
Bentuk 3 : IF .. Else .. dengan kondisi bertingkat
If (kondisi_1)
aksi_1;
else if (kondisi_2)
aksi_2;
else
aksi_3;
Catatan:
Aksi akan dijalankan hanya apabila kondisi terpenuhi (nilai kondisi true), dan jika
tidak terpenuhi (nilai kondisi false), maka aksi akan diabaikan dan aksi berikutnya
yang akan dijalankan.
Apabila terdapat lebih dari satu baris statement dalam satu aksi, maka harus diawali
dengan ‘{‘ dan diakhiri dengan ‘}’.
Contoh :
If (kondisi)
{
statemen_1;
statemen_2;
statemen_n;
}
Contoh Program : IF - ELSE
#include
#include
int main ()
{
int nilai=0;
cout << "Silahkan masukkan nilai anda : ";
cin >> nilai;
//deklarasi kondisi bercabang
if (nilai>50)
{
cout << "\nNilai anda adalah " << nilai <<"\n";
cout << "Anda lulus! ";
}
else
cout << "\nAnda tidak lulus!";
getch();
return 0;
}
Contoh Program : IF - ELSE Bertingkat
#include
#include
int main ()
{
char ket_hasil;
cout <<"Apa nilai ujian kalkulus mu [A|B|C]: ";
cin >> ket_hasil;
//deklarasi kondisi bercabang
if (ket_hasil=='A' || ket_hasil=='a')
cout << "Selamat ya, pertahankan belajarmu!";
else if (ket_hasil=='B' || ket_hasil=='b')
cout << "Selamat ya, tingkatkan belajarmu!";
else if (ket_hasil=='C' || ket_hasil=='c')
cout << "Anda harus lebih giat lagi belajarnya!";
else
cout << "Maaf, Anda salah memasukkan nilai !";
getch();
return 0;
}
Struktur kontrol sekuensi
contoh program :
// defined constants: calculate circle
#include
using namespace std;
//deklarasi konstanta
#define PI 3.14159
#define NEWLINE '\n'
int main ()
{
//deklarasi variabel lokal
double r=5.0; //nilai radius
double circle;
//Proses
circle = 2 * PI * r;
cout << circle;
cout << NEWLINE;
//akhir program
getch();
return 0;
}
Saturday, February 06, 2010
Friday, February 05, 2010
beda VARCHAR dan CHAR di SQL Server
Tipe data char adalah tipe data karakter yang panjangnya tetap (fixed-length). Ini artinya SQL Server akan mengalokasikan memori pada media penyimpanan untuk menyimpan tipe data ini sebesar ukuran maksimum yang kita minta. Contohnya deklarasi char(5) artinya SQL Server akan otomatis melakukan alokasi ukuran sebesar lima character pada media penyimpanan walaupun kita hanya mengisi data sebanyak tiga karakter misalnya.Tipe data varchar adalah tipe data karakter yang panjangnya tidak tetap (variable-length). Ini berarti SQL Server akan mengalokasikan memori pada media penyimpanan hanya sebesar atau sepanjang ukuran data aktual yang diisikan. Contohnya pada saat kita mendeklarasikan varchar(5) dan pada field tersebut kita isi 3 karakter maka pada media penyimpanan hanya akan dialokasikan sebesar 3 karakter saja.
Sunday, January 24, 2010
include_path in php.ini
;;;;;;;;;;;;;;;;;;;;;;;;;; Paths and Directories ;;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2";include_path = ".:/php/includes";; Windows: "\path1;\path2"
include_path = ".;c:\AppServ\php5\pear"
then please copy folder jpgraph, fpdf, adodb , etc to that path
then restart the apache services
Fatal error: Call to undefined function mssql_connect()
extension=php_mssql.dll
;extension=php_msql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
and Apache services already restart, PC also.
and below dll files also keep at C:\AppServ\php5\ext:
- php_msql.dll and
- php_mssql.dll
please download ntwdblib.dll at http://webzila.com/?wz=dll#results then restore to folder:
C:\AppServ\Apache2.2\bin then restart the apache services
Friday, January 15, 2010
CUPS di LINUX
(Common UNIX Printing System)
The printing system for Unix computers. Designed by Michael Sweet in
the late 1990s, CUPS is the de facto standard for Linux and Unix
machines as well as the built-in printing system in the Macintosh as of
Mac OS X Version 10.2. Prior to CUPS, LPR/LPD, LP print spooler and
LPRng were used in conjunction with the appropriate printer drivers.
Apple used Tioga and the Apple Print Manager.
Starting and Stopping Apache
In order to restart Apache service from command prompt...
need to execute below mentioned command:
/scripts/restartsrv_apache/
di redhat: http://www.redhat.com/docs/manuals/
linux/RHL-9-Manual/ref-guide/s1-apache-startstop.html
10.4. Starting and Stopping httpd
The httpd RPM installs the /etc/rc.d/init.d/httpd script, which can be accessed using the /sbin/service command.
To start the server, as root type:
/sbin/service httpd start |
To stop the server, as root type:
/sbin/service httpd stop |
The restart option is a shorthand way of stopping and then starting the Apache HTTP Server.
To restart the server, as root type:
/sbin/service httpd restart |
File konfigurasi Apache
disimpan di C:\Program Files\Apache Group\Apache2\conf\httpd.conf (kita
asumsikan Anda menginstall Apache di C:\Program Files\Apache Group ).
File ini berbentuk plain text sehingga Anda bisa menggunakan Notepad
atau Text Editor yang lain untuk mengedi
SWAP di LINUX
SWAP itu adalah pastisi harddisk yang dijadikan memori,
semacam virtual memori kalo di windows.
Extended itu adalah format partisi utama linux
yang dipakai buat install linux, biasanya pake ext3,
klo di windows perbandingannya kaya format FAT32 atau NTFS
Sunday, January 10, 2010
Component di VB6
- DTPicker: ada di Microsoft Windows Common Controls-2 6.0
- ADODC di : di Microsoft ADO Data control 6.0 (OLEDB)
- DataCombo (bukan Combobox) dan DataList di Microsoft DataList control 6.0 (OLEDB)
- Crystal Report di Crystal report control
- DATA dan DBGRID , ada pada VB5
bila ingin masih pake di VB6. maka harus register dbgrid32.ocx (tgl: 26/06/1998, size: 514 KB) di c:\windows\system32.exe memakai "regsvr32.exe"
Saturday, January 09, 2010
script dan storeprocedure di SQL Server
didokumentasikan karena sering lupa/ jarang pakai.
dijalaninn pake SQL Analyser atau lainnya.
koneksi ke sesama SQL Server
EXEC sp_addlinkedserver ‘[Nama Server Tujuan]‘,N’SQL Server’
Versi dari SQL Server;
select @@version
pernah kejadian salah install personal edition untuk Live database production. gara-gara tidak cek dulu. Diomelin semua di orang 4 negara (Japan, Hongkong, Malaysia dan Indonesia sendiri). Tapi jalan lo untuk 50 user, cuma lambat aje.
Apabila server tujuan tidak menggunakan user ’sa’, maka perlu di set user n passwordnya.dengan menjalankan query berikut.
EXEC sp_addlinkedsrvlogin ‘[Server Name]‘, ‘false’, NULL, ‘[SQLUser]‘, ‘[Password]‘
attach database
EXEC sp_attach_db @dbname = 'KARYA_KITA',
@filename1 = 'D:\mssql\karya_kita.mdf',
@filename2 = 'D:\mssql\karya_kitalog.ldf'
cara ini lebih mudah ketika kita ingin nama database nya kita rubah namanya.
lebih mudah daripada memakai cara di SQL server management studio.
drop database KARYA_KITA
USE MASTER
GO
DROP DATABASE KARYA_KITA
-->hati hati karena file database akan terhapus juga.
kalo ingin database nya tetap keep di folder,
pakai detach dari SQL server management studio
:::liat semua nama tabel di satu database:::.
USE YourDBName
GO
SELECT *
FROM sys.Tables
GO
:::liat semua nama database di satu server:::.
use master
select * from sysdatabases
:::liat semua nama tabel di satu server:::.
sp_msforeachdb @command1='USE ?;SELECT * FROM sys.Tables':::liat semua tabel di satu database:::.
select * from sysobjects where type='u'
:::liat semua store procedure di satu database:::.
select * from sysobjects where type='p':::insert data ke suatu tabel:::.
INSERT INTO nama_tabel (kolom1, kolom2..)
VALUES (nilai1, nilai2...)
contoh:
insert into pegawai (nopeg,nama,jabatan,gaji)
values ('011','rina','akuntan','5000000');
:::updated/ ubah data:::.
UPDATE nama_tabel
SET kolom1=nilai1
[,kolom2=nilai2]..
WHERE kondisi
contoh:
update pegawai set jabatan='direktur'
where nama='putri'
:::delete / hapus data:::.
DELETE FROM nama_tabel
WHERE kondisi
contoh:
delete from pegawai where nama = 'rina';
:::create / bikin tabel baru dan bikin primary key :::.
contoh: di Oracle spt ini
create table tb_dummy
(
Sr varchar2(3),
PayMonth varchar2(6),
Badge_No varchar2(6),
Nama varchar2(50),
Dept varchar2(10
constraint dummy_pk primary key (paymonth , badge_no )) ;
Thursday, January 07, 2010
Crosstab query di SQL 2005
SELECT Bulan,
SUM(CASE Sales WHEN 'Agus' THEN Jumlah ELSE 0 END) AS Agus,
SUM(CASE Sales WHEN 'Dani' THEN Jumlah ELSE 0 END) AS Dani,
SUM(CASE Sales WHEN 'Fahmi' THEN Jumlah ELSE 0 END) AS Fahmi,
SUM(CASE Sales WHEN 'Firstman' THEN Jumlah ELSE 0 END) AS Firstman,
SUM(CASE Sales WHEN 'Rully' THEN Jumlah ELSE 0 END) AS Rully,
SUM(Jumlah) as [Y Total]
FROM tblSamplePivot
GROUP BY Bulan
UNION
SELECT 'X Total' AS Bulan,
SUM(CASE Sales WHEN 'Agus' THEN Jumlah ELSE 0 END) AS Agus,
SUM(CASE Sales WHEN 'Dani' THEN Jumlah ELSE 0 END) AS Dani,
SUM(CASE Sales WHEN 'Fahmi' THEN Jumlah ELSE 0 END) AS Fahmi,
SUM(CASE Sales WHEN 'Firstman' THEN Jumlah ELSE 0 END) AS Firstman,
SUM(CASE Sales WHEN 'Rully' THEN Jumlah ELSE 0 END) AS Rully,
SUM(Jumlah) as [Y Total]
FROM tblSamplePivot
sekarang di SQL 2005 pake cara berikut bisa:
SELECT Bulan,
ISNULL([Agus],0) AS Agus,
ISNULL([Dani], 0) AS Dani,
ISNULL([Fahmi], 0) AS Fahmi,
ISNULL([Firstman], 0) AS Firstman,
ISNULL([Rully], 0) AS Rully,
[X Total]
FROM(
SELECT Bulan, Sales, ISNULL(Jumlah, 0) AS Jumlah FROM tblSamplePivot
UNION
--Retrieve Data untuk Total dari tiap bulan
SELECT Bulan, 'X Total' as Sales, SUM(Jumlah) AS Jumlah FROM tblSamplePivot GROUP BY Bulan
UNION
--Retrieve Data untuk Total dari tiap Sales
SELECT 'Y Total' AS Bulan, Sales, SUM(Jumlah) AS Jumlah FROM tblSamplePivot GROUP BY Sales
UNION
--Retrieve Data untuk Total Keseluruhan
SELECT 'Y Total' AS Bulan, 'X Total' AS Sales, SUM(Jumlah) AS Jumlah FROM tblSamplePivot
) AS PS
PIVOT
(
SUM(Jumlah) FOR Sales IN(Agus, Dani, Fahmi, Firstman, Rully, [X Total])
) P
diambil dari : http://waroengvb.net/crosstab-query-menggunakan-pivot-pada-sql-server/
Sunday, January 03, 2010
Buat report di PHP
(1) pakai class fpdf (http://www.fpdf.org)
(2) pakai class tcpdf (http://www.tcpdf.org)
(3) pakai crystalreport
(4) pakai html2pdf (http://html2fpdf.sourceforge.net)
Sepertinya pake html2pdf tidak bisa untuk report repot yang model invoice, yang memerlukan header dan footer dan summary total amount di halaman terakhir.
Friday, January 01, 2010
auto generate Code
$sql_isi ="SELECT * FROM permohonan_cuti";
$qr_isi =mysql_query($sql_isi, $koneksi) or die ("Gagal query".mysql_error());
if (mysql_num_rows($qr_isi) <=0) {
$kd_pcuti="PC001";
}
else {
$sql_kdpcuti="SELECT MAX(RIGHT(kd_pcuti,3)) + 1 AS kd_pcuti_baru FROM permohonan_cuti";
$qr_kdpcuti=@mysql_query($sql_kdpcuti) or die ("Gagal query".mysql_error());
$hs_kdpcuti=mysql_fetch_array($qr_kdpcuti) or die ("Hasil pemakai tidak ada");
$kd_pcuti_baru=$hs_kdpcuti[kd_pcuti_baru];
if ($kd_pcuti_baru < 10 ) {
$kd_pcuti="PC00".$kd_pcuti_baru;
}
elseif ($kd_pcuti_baru < 100) {
$kd_pcuti="PC0".$kd_pcuti_baru;
}
elseif ($kd_pcuti_baru < 1000) {
$kd_pcuti="PC".$kd_pcuti_baru;
}
}
Monday, December 28, 2009
tutorial command prompt
- dari RUN - ketik: hh ntcmds.chm atau
- dari DOS prompt ketik: hh ntcmds.chm
- atau berupa script di http://www.chebucto.ns.ca/~ak621/DOS/Bat-Adv3.html
contoh penerapan
:: misal mau bikin PC kita selalu restart tiap pagi
tulis berikut di notepad dan save sebagai, misal restartpagi.bat
shutdown /r
lalu pakai schedule windows untuk jalanin retartpagi.bat , misal tiap jam 07.00 AM
:: misal mau bikin copy automotis beberapa files backup MSSQL server di folder backup ke drive Y (mapping ke PC lain) dengan autoschedule.
tulis berikut di notepad dan beri nama misal copykebackup.bat
@ECHO OFF
copy D:\MSSQL\MSSQL\BACKUP\vmi_smee.bak Y:\
copy D:\MSSQL\MSSQL\BACKUP\vmi_tcpi.bak Y:\
copy D:\MSSQL\MSSQL\BACKUP\vmi_ska.bak Y:\
:END
selanjutnya disetting dengan autoschedule windows dan set waktu untuk jalanin copykebackup.bat tadi

Loading...