Arsip: error!!!

more 17 years ago
marvel
ini form pemanggilan buat qreport
unit ucetakbelipersupplier;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables;
type
Tfrmcetakbelipersupplier = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
edkodespl: TEdit;
ednamaspl: TEdit;
edtgakhir: TEdit;
btpreview: TButton;
btCetak: TButton;
btsetup: TButton;
btbatal: TButton;
edtgawal: TEdit;
Label5: TLabel;
edketerangan: TEdit;
tbsupplier: TTable;
tbbeli: TTable;
procedure ednamasplKeyPress(Sender: TObject; var Key: Char);
procedure edkodesplKeyPress(Sender: TObject; var Key: Char);
procedure btbatalClick(Sender: TObject);
procedure btpreviewClick(Sender: TObject);
procedure btCetakClick(Sender: TObject);
procedure btsetupClick(Sender: TObject);
procedure edtgawalKeyPress(Sender: TObject; var Key: Char);
procedure edtgakhirKeyPress(Sender: TObject; var Key: Char);
procedure edketeranganKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmcetakbelipersupplier: Tfrmcetakbelipersupplier;
implementation
uses uLembarCetakBeliPerSupplier;
{$R .dfm}
procedure Tfrmcetakbelipersupplier.ednamasplKeyPress(Sender: TObject;
var Key: Char);
begin
if Key=chr(13) then
begin
edTgakhir.SetFocus;
exit;
end;
//index berdasar nama supplier
tbSupplier.IndexName:='namaspl';
//cari yang paling mendekati isi edNama
tbSupplier.FindNearest([edNamaspl.Text+Key]);
edKodeSpl.Text:=tbSupplier['Kode'];
end;
procedure Tfrmcetakbelipersupplier.edkodesplKeyPress(Sender: TObject;
var Key: Char);
begin
if Key=chr(13) then
begin
edNamaspl.SetFocus;
exit;
end;
//index berdasar kode supplier (key)
tbSupplier.IndexName:='';
//cari yang paling mendekati isi edKodeSpl
tbSupplier.FindNearest([edKodeSpl.Text+Key]);
edNamaspl.Text:=tbSupplier['pabrik'];
end;
procedure Tfrmcetakbelipersupplier.btbatalClick(Sender: TObject);
begin
frmCetakBeliPerSupplier.Close;
end;
procedure Tfrmcetakbelipersupplier.btpreviewClick(Sender: TObject);
var PTgAwal, PTgAkhir : TDateTime;
ket:string;
begin
//jika tanggal kosong, anggap dari awal sampai akhir
if length(edTgAwal.Text)=0 then edTgAwal.Text:='01.01.1900';
if length(edTgAkhir.Text)=0 then edTgAkhir.Text:='01.01.2999';
//cek input tanggal
try
begin
PTgAwal:=StrToDate(edTgAwal.Text);
PTgAkhir:=StrToDate(edTgAkhir.Text);
ket:=edketerangan.Text;
end;
except
beep;
ShowMessage('Input data tanggal tidak sah!'+chr(13)+
'Format tanggal: dd.mm.yyyy');
exit;
end;
with uLembarcetakBeliPerSupplier.lbrCetakBeliPerSupplier do
begin
//hapus string SQL lama jika ada
quBeli.SQL.Clear;
//buat string SQL baru
qubeli.SQL.Add('select from '+Quotedstr('beli.db'));
//jika edKodeSpl kosong, anggap semua supplier
if length(trim(edketerangan.Text))=0 then
edketerangan.Text:='%';
quBeli.SQL.Add('where Keterangan Like :ket');
quBeli.SQL.Add('and TglFaktur>=:PTgAwal');
quBeli.SQL.Add('and TglFaktur<=:PTgAkhir');
//set parameter
quBeli.ParamByName('ket').AsString:=edKeterangan.Text;
quBeli.ParamByName('PTgAwal').AsDate:=
StrToDate(edTgAwal.Text);
quBeli.ParamByName('PTgAkhir').AsDate:=
StrToDate(edTgAkhir.Text);
//siapkan query
quBeli.Prepare;
//buka SQL
quBeli.Open;
//isi variabel dalam bandTitle
if edketerangan.Text='%' then
qrketerangan.Caption:='semua jenis obat'
else
qrketerangan.Caption:=edketerangan.Text;
begin
qrKodeSpl.Caption:=edKodeSpl.Text;
qrNamaSpl.Caption:=edNamaspl.Text;
end;
qrPeriode.Caption:=edTgAwal.Text+' s/d '+edTgAkhir.Text;
if Sender=btPreview then
//jika event OnClick berasal dari btPreview
qrCetakBeliPerSupplier.Preview
else
//jika event OnClick berasal dari btCetak
qrCetakBeliPerSupplier.Print;
end;
end;
procedure Tfrmcetakbelipersupplier.btCetakClick(Sender: TObject);
begin
btPreviewClick(Sender);
end;
procedure Tfrmcetakbelipersupplier.btsetupClick(Sender: TObject);
begin
lbrCetakBeliPerSupplier.qrCetakBeliPerSupplier.PrinterSetup;
end;
procedure Tfrmcetakbelipersupplier.edtgawalKeyPress(Sender: TObject;
var Key: Char);
begin
if Key=chr(13) then edTgAkhir.SetFocus;
end;
procedure Tfrmcetakbelipersupplier.edtgakhirKeyPress(Sender: TObject;
var Key: Char);
begin
if Key=chr(13) then btPreview.SetFocus;
end;
procedure Tfrmcetakbelipersupplier.edketeranganKeyPress(Sender: TObject;
var Key: Char);
begin
if Key=chr(13) then
begin
edkodespl.SetFocus;
exit;
end;
//index berdasar nama supplier
tbbeli.IndexName:='';
end;
end.
kalo ini buat tampilan qreportnya
unit ulembarcetakbelipersupplier;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QRCtrls, QuickRpt, DBTables, DB, ExtCtrls;
type
Tlbrcetakbelipersupplier = class(TForm)
qrcetakbelipersupplier: TQuickRep;
tbsupplier: TTable;
tbobat: TTable;
qubeli: TQuery;
DetailBand1: TQRBand;
PageFooterBand1: TQRBand;
SummaryBand1: TQRBand;
TitleBand1: TQRBand;
ChildBand1: TQRChildBand;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
qrkodespl: TQRLabel;
qrnamaspl: TQRLabel;
qrperiode: TQRLabel;
QRLabel8: TQRLabel;
QRLabel9: TQRLabel;
QRLabel10: TQRLabel;
QRLabel11: TQRLabel;
QRLabel12: TQRLabel;
QRLabel13: TQRLabel;
QRLabel14: TQRLabel;
QRDBText1: TQRDBText;
QRLabel15: TQRLabel;
QRSysData1: TQRSysData;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
qrjumbeli: TQRExpr;
QRSysData2: TQRSysData;
qrtotbanyak: TQRLabel;
qrtotbeli: TQRLabel;
qrketerangan: TQRLabel;
tbbeli: TTable;
QRDBText6: TQRDBText;
procedure DetailBand1AfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
procedure SummaryBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
procedure qrcetakbelipersupplierBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
procedure DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
lbrcetakbelipersupplier: Tlbrcetakbelipersupplier;
halaman,nomor:integer;
totbanyak,totbeli :currency;
implementation
{$R .dfm}
procedure Tlbrcetakbelipersupplier.DetailBand1AfterPrint(
Sender: TQRCustomBand; BandPrinted: Boolean);
begin
TotBanyak:=TotBanyak+quBeli['Banyak'];
TotBeli:=TotBeli+quBeli['Banyak'] quBeli['Harga Beli'];
end;
procedure Tlbrcetakbelipersupplier.SummaryBand1BeforePrint(
Sender: TQRCustomBand; var PrintBand: Boolean);
begin
qrTotBanyak.Caption:=Format('%10g',[TotBanyak]);
qrTotBeli.Caption:=Format('%16m',[TotBeli]);
end;
procedure Tlbrcetakbelipersupplier.qrcetakbelipersupplierBeforePrint(
Sender: TCustomQuickRep; var PrintReport: Boolean);
begin
halaman:=0;
Nomor:=0;
Totbeli:=0;
totbanyak:=0;
end;
procedure Tlbrcetakbelipersupplier.DetailBand1BeforePrint(
Sender: TQRCustomBand; var PrintBand: Boolean);
begin
tbobat.FindKey([qubeli.FieldByName('kode obat').AsString]);
end;
end.
kalo di run
keterangan,kode,nama,tglawal,tglakhir nga di isi jalan dia...
tapi kalo misalnya keterangan/kode/nama diisi..
keluar tulisan could not convert variant typer (null) into typer (currency)
salahnya dimana ya ?
plz donk... uda strezz ngehadapinnya :(
more 17 years ago
cyber_hecker
edKodeSpl.Text:=tbSupplier['Kode'];untuk setiap kode yang seperti di atas, sebaiknya di ganti menjadi
edKodeSpl.Text := tbSupplier.FieldByName('Kode').AsString;

more 17 years ago
tox2wow
tapi kalo misalnya keterangan/kode/nama diisi.. keluar tulisan could not convert variant typer (null) into typer (currency)Cek : 1. Cek tipe data keterangan/kode/nama. 2. Cek data di field keterangan/kode/nama, sudah terisi apa belum. 3. Cek data pembanding (yg diambil dari inputbox), terkirim apa ga, atau malah data pembanding yg diambil dari edit box, yang dikirim cuma string kosong. 4. Error nya muncul pas di prosedur (ex. Button1.OnClick) apa ???[/quote]

more 17 years ago
tox2wow
tapi kalo misalnya keterangan/kode/nama diisi.. keluar tulisan could not convert variant typer (null) into typer (currency)Cek : 1. Cek tipe data keterangan/kode/nama. 2. Cek data di field keterangan/kode/nama, sudah terisi apa belum. 3. Cek data pembanding (yg diambil dari inputbox), terkirim apa ga, atau malah data pembanding yg diambil dari edit box, yang dikirim cuma string kosong. 4. Error nya muncul pas di prosedur (ex. Button1.OnClick) apa ???

more 17 years ago
marvel
yap... error nya cuma muncul kalo edketerangan nya di isi... trus pencet btpreview..
keluar dah tuh error..
hihihi

more 17 years ago
cyber_hecker
profecor ceber hecer mo nyoba nganalisa program mu
yup gitu aja saranku. dan kesalahan program kamu terletak pada :


if Key=chr(13) then
begin
edTgakhir.SetFocus;
exit;
end;
perintah ini maksudnya pada saat user menekan tombol enter, maka ke kotak isian berikutnya kan ?
saran :
procedure TFUtama.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
13, 40 : SelectNext(Sender As TWinControl,True,True);
38 : SelectNext(Sender As TWinControl,False,True);
end;
end;
perintah diatas bisa digunakan untuk semua komponen. jadi gak perlu ngetik ulang code, cukup diarahkan semuanya pada Edit1KeyDown. bahkan bisa menggunakan anak panah (key 38 panah atas, key 40 panah bawah).
//index berdasar nama supplier
tbSupplier.IndexName:='namaspl';
//cari yang paling mendekati isi edNama
tbSupplier.FindNearest([edNamaspl.Text+Key]);
edKodeSpl.Text:=tbSupplier['Kode'];
wah perintah ini berbahaya banget. kalo untuk pencarian waktu user menekan tombol hapus, kenapa gak menggunakan onChange aja ? coba waktu kamu isi kan data, truz tekan tombol backspace (hapus). gimana hasilnya ?
itu saran untuk unit ucetakbelipersupplier;
untuk unit ulembarcetakbelipersupplier, saranku hanya satu.
hapus semua koding yang ada pada quickreportnya.
procedure Tlbrcetakbelipersupplier.DetailBand1AfterPrint(
Sender: TQRCustomBand; BandPrinted: Boolean);
begin
TotBanyak:=TotBanyak+quBeli['Banyak'];
TotBeli:=TotBeli+quBeli['Banyak']quBeli['Harga Beli'];
end;
ini maksudnya adalah, nanti pada akhirnya user bisa menghasilkan total keseluruhan jumlah barang dan harga beli barang kan ?. koding yang sia-sia.
procedure Tlbrcetakbelipersupplier.SummaryBand1BeforePrint(
Sender: TQRCustomBand; var PrintBand: Boolean);
begin
qrTotBanyak.Caption:=Format('%10g',[TotBanyak]);
qrTotBeli.Caption:=Format('%16m',[TotBeli]);
end;
nanti setelah dihitung pada perintah DetailBand1AfterPrint, baru ditampilkan pada summary nya kan ? untuk 2 prosedur diatas, udah bisa di wakili dengan menggunakan QRExpr.
pada properties Expression di isi :
SUM(Banyak) untuk total banyak
SUM([harga beli]) untuk total harga beli.
procedure Tlbrcetakbelipersupplier.DetailBand1BeforePrint(
Sender: TQRCustomBand; var PrintBand: Boolean);
begin
tbobat.FindKey([qubeli.FieldByName('kode obat').AsString]);
end;
nah.. prosedur ini gue gak ngerti sama sekali maksudnya. ini buat apa ? kenapa setiap mau ngeprint harus mencari kode obat ? iya kalo datanya hanya satu. tapi kalo udah puluhan ribu gimana ? nangis dunk komputernya. wakakakak 
procedure Tlbrcetakbelipersupplier.DetailBand1AfterPrint(
Sender: TQRCustomBand; BandPrinted: Boolean);
begin
TotBanyak:=TotBanyak+quBeli['Banyak'];
TotBeli:=TotBeli+quBeli['Banyak'] quBeli['Harga Beli'];
end;
untuk mengeset nilai pada variabel gak boleh menggunakan "quBeli['Harga Beli']" kayak gini, karena nilai yang terkandung didalamnya bertipe variant. sebaiknya gunakan yang standard aja kayak saran ku sebelumnya. contoh : TotBeli := TotBeli + quBeli.FieldByName('Banyak').AsCurrency.
nb.
kalo gak ngerti juga, coba ke belakang bentar, trus nyebur ke kolam belakang rumah. wakakakak... 
more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 2 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 3 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 10 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 10 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 10 years ago
Random Topic
- Tanya tentang cara mengganti nilai create object runtime
by busan in Tip n Trik Pemrograman more 13 years ago - Ganti Warna Title Bar...
by ksatria_77 in Tip n Trik Pemrograman more 16 years ago - Size Kaos Biar Nga Trouble
by saysansay in Hal umum tentang Pascal Indonesia more 16 years ago - fungsi tanggal
by yayaretina in Enginering more 16 years ago - Help File
by saysansay in Hal umum tentang Pascal Indonesia more 17 years ago - Mau Tanya Tentang DBMemo ...
by daryl_sukma_gumilar in MySQL more 13 years ago - Connect ke SQL Server dari Client
by unank in MsSQL more 15 years ago - ngebaca s/n processor dg delphi
by ryan in Hal umum tentang Pascal Indonesia more 17 years ago - Bagaimana cara menghapus informasi window dari memory ?
by stoopid in Tip n Trik Pemrograman more 16 years ago - Tanya tentang string
by arjunn_ke in Tutorial & Community Project more 14 years ago