Arsip: error!!!
more 20 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 20 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 20 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 20 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 20 years ago
marvel
yap... error nya cuma muncul kalo edketerangan nya di isi... trus pencet btpreview..
keluar dah tuh error..
hihihi
more 20 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
AI Forward
🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 5 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 13 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 13 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 13 years ago
Random Topic
- Tolongin saya buat bel otomatis di delphi
by juniorie in Tip n Trik Pemrograman more 19 years ago - Error Message "Lost Connections During Query"
by 3m8ooo in MySQL more 16 years ago - import record dari foxpro
by idhiel in Hal umum tentang Pascal Indonesia more 13 years ago - sekedar mau tanya nihhhh masalah file
by barong in Reporting more 14 years ago - Penggunaan TComPort & TCustomComPort
by astonix in Network, Files, I/O & System more 18 years ago - Installer untuk Delphi (7)
by langithitam in Tip n Trik Pemrograman more 18 years ago - Pakai Inno Setup
by Yudho in Hal umum tentang Pascal Indonesia more 18 years ago - numpang tanya coding buat hitung insentif berdasar jam kerja
by angel_tears in Tutorial & Community Project more 13 years ago - Popup Menu ??
by Grandong in Tip n Trik Pemrograman more 18 years ago - ga mau insert tanggal di MySql
by Alfando in Tip n Trik Pemrograman more 17 years ago