?? lsitem.~pas
字號:
unit LsItem;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, Menus, DB, StdCtrls, ExtCtrls, Grids, DBGrids,
JvExDBGrids, JvDBGrid, JvDBUltimGrid, Buttons, JvExControls, JvComponent,
JvDBLookup, JvStaticText, frxClass, frxDBSet, Provider, DBClient, JvMenus,
ComCtrls, JvExComCtrls, JvStatusBar, JvExExtCtrls, JvRadioGroup,
JvSpeedButton, ZAbstractRODataset, ZAbstractDataset, ZDataset,
JvExStdCtrls, JvButton, JvCtrls, JvFooter, JvExtComponent,
JvGradientCaption, SkinCtrls, DynamicSkinForm;
type THackDBGrid = class(TJvDBUltimGrid);
type
TLsItemForm = class(TForm)
GroupBox3: TGroupBox;
ItemGrid: TJvDBUltimGrid;
dsItem: TDataSource;
IL1: TImageList;
dsItembrand: TDataSource;
dsItemgrup: TDataSource;
JvPopupMenu1: TJvPopupMenu;
EditUbahRecordItem1: TMenuItem;
EditUbahHarga1: TMenuItem;
StBAR: TJvStatusBar;
AddBtn: TSpeedButton;
JvFooter1: TJvFooter;
PrintSellPrice: TJvFooterBtn;
btnTotalRec: TJvFooterBtn;
RadioGroup1: TspSkinRadioGroup;
N1: TMenuItem;
frxReport1: TfrxReport;
ImageList1: TImageList;
spDynamicSkinForm1: TspDynamicSkinForm;
spSkinGroupBox1: TspSkinGroupBox;
edFind: TEdit;
spSkinGroupBox2: TspSkinGroupBox;
GroupLookUp: TJvDBLookupCombo;
spSkinGroupBox3: TspSkinGroupBox;
BrandLookUp: TJvDBLookupCombo;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure edFindChange(Sender: TObject);
procedure dsItemDataChange(Sender: TObject; Field: TField);
procedure RadioGroup1Click(Sender: TObject);
procedure ItemGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure GroupLookUpChange(Sender: TObject);
procedure BrandLookUpChange(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure EditUbahData1Click(Sender: TObject);
procedure PurcCardClick(Sender: TObject);
procedure HapusRecordClick(Sender: TObject);
procedure EditUbahHarga1Click(Sender: TObject);
procedure EditUbahRecordItem1Click(Sender: TObject);
procedure AddBtnClick(Sender: TObject);
procedure PrintSellPriceClick(Sender: TObject);
procedure btnTotalRecClick(Sender: TObject);
private
procedure ViewData;
procedure EditRec;
public
end;
var
LsItemForm: TLsItemForm;
PrevRec: TBookMark;
implementation
{$R *.dfm}
uses DataMod1, FuncLib, edItem, itemSellprice, RPreview;
procedure TLsItemForm.ViewData;
var
sqltext: String;
begin
if (GroupLookUp.Text='') and (BrandLookUp.Text='') then Exit;
QueryPerformanceFrequency(Frequency);
QueryPerformanceCounter(start);
with DM1.qitem do
begin
Close;
if (GroupLookUp.Text='') and (BrandLookUp.Text<>'') then
sqltext:=('SELECT ITEM.ITEMCODE,ITEM.ITEMNAME,ITEM.SIZENAME,ITEM.GRUPCODE, ')+
('ITEM.BRANDCODE,ITEM.ONHAND,ITEM_PRICE.SELLPRICE,ITEM_PRICE.CURR, ')+
('ITEM_BRAND.BRANDNAME,ITEM_UNIT.UNITNAME AS SAT ')+
('FROM ITEM,ITEM_PRICE,ITEM_BRAND,ITEM_UNIT ')+
('WHERE ITEM.BRANDCODE=:BRANDCODE ')+
('AND ITEM.ITEMCODE=ITEM_PRICE.ITEMCODE AND ITEM_PRICE.DEFAU=1 ')+
('AND ITEM.UNITID=ITEM_UNIT.UNITID ')+
('AND ITEM.BRANDCODE=ITEM_BRAND.BRANDCODE ')+
('ORDER BY ITEM.ITEMCODE, ITEM.ITEMNAME ASC ');
if (GroupLookUp.Text<>'') and (BrandLookup.Text='') then
sqltext:=('SELECT ITEM.ITEMCODE,ITEM.ITEMNAME,ITEM.SIZENAME,ITEM.GRUPCODE, ')+
('ITEM.BRANDCODE,ITEM.ONHAND,ITEM_PRICE.SELLPRICE,ITEM_PRICE.CURR, ')+
('ITEM_BRAND.BRANDNAME,ITEM_UNIT.UNITNAME AS SAT ')+
('FROM ITEM,ITEM_PRICE,ITEM_BRAND,ITEM_UNIT ')+
('WHERE ITEM.GRUPCODE=:GRUPCODE ')+
('AND ITEM.ITEMCODE=ITEM_PRICE.ITEMCODE AND ITEM_PRICE.DEFAU=1 ')+
('AND ITEM.UNITID=ITEM_UNIT.UNITID ')+
('AND ITEM.BRANDCODE=ITEM_BRAND.BRANDCODE ')+
('ORDER BY ITEM.ITEMCODE, ITEM.ITEMNAME ASC ');
if (GroupLookUp.Text<>'') and (BrandLookUp.Text<>'') then
sqltext:=('SELECT ITEM.ITEMCODE,ITEM.ITEMNAME,ITEM.SIZENAME,ITEM.GRUPCODE, ')+
('ITEM.BRANDCODE,ITEM.ONHAND,ITEM_PRICE.SELLPRICE,ITEM_PRICE.CURR, ')+
('ITEM_BRAND.BRANDNAME,ITEM_UNIT.UNITNAME AS SAT ')+
('FROM ITEM,ITEM_PRICE,ITEM_BRAND,ITEM_UNIT ')+
('WHERE ITEM.GRUPCODE=:GRUPCODE ')+
('AND ITEM.BRANDCODE=:BRANDCODE ')+
('AND ITEM.ITEMCODE=ITEM_PRICE.ITEMCODE AND ITEM_PRICE.DEFAU=1 ')+
('AND ITEM.UNITID=ITEM_UNIT.UNITID ')+
('AND ITEM.BRANDCODE=ITEM_BRAND.BRANDCODE ')+
('ORDER BY ITEM.ITEMCODE, ITEM.ITEMNAME ASC ');
SQL.Text:=sqltext;
if GroupLookUp.Text<>'' then Params.ParamByName('GRUPCODE').Value:=GroupLookUp.KeyValue;
if BrandLookUp.Text<>'' then Params.ParamByName('BRANDCODE').Value:=BrandLookUp.KeyValue;
Open;
end;
QueryPerformanceCounter(stop);
stBAR.Panels[1].Text := ' >> '+format('%.2f',[(stop-start)/frequency])+' detik';
end;
procedure TLsItemForm.FormCreate(Sender: TObject);
begin
Top:=1; Left:=1; Width := 785; Height := 490;
DateSeparator := '-'; ShortDateFormat := 'dd/mm/yyyy';
dsitembrand.DataSet.Open;
dsitemgrup.DataSet.Open;
end;
procedure TLsItemForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TLsItemForm.edFindChange(Sender: TObject);
var
sqltext: String;
begin
if edFind.Text='' then Exit;
QueryPerformanceFrequency(Frequency);
QueryPerformanceCounter(start);
with DM1.qitem do
begin
Close;
if RadioGroup1.ItemIndex = 0 then
begin
sqltext:=('SELECT ITEM.*, ')+
('ITEM_UNIT.UNITNAME AS SAT,ITEM_BRAND.BRANDNAME,ITEM_GRUP.GRUPNAME ')+
('FROM ITEM,ITEM_UNIT,ITEM_BRAND,ITEM_GRUP ')+
('WHERE ITEM.ITEMCODE LIKE :NCari ')+
('AND ITEM.UNITID=ITEM_UNIT.UNITID ')+
('AND ITEM.BRANDCODE=ITEM_BRAND.BRANDCODE ')+
('AND ITEM.GRUPCODE=ITEM_GRUP.GRUPCODE ')+
('ORDER BY ITEM.ITEMCODE, ITEM.ITEMNAME ASC ');
end else
begin
sqltext:=('SELECT ITEM.*, ')+
('ITEM_UNIT.UNITNAME AS SAT,ITEM_BRAND.BRANDNAME,ITEM_GRUP.GRUPNAME ')+
('FROM ITEM,ITEM_UNIT,ITEM_BRAND,ITEM_GRUP ')+
('WHERE ITEM.ITEMNAME LIKE :NCari ')+
('AND ITEM.UNITID=ITEM_UNIT.UNITID ')+
('AND ITEM.BRANDCODE=ITEM_BRAND.BRANDCODE ')+
('AND ITEM.GRUPCODE=ITEM_GRUP.GRUPCODE ')+
('ORDER BY ITEM.ITEMNAME, ITEM.ITEMCODE ASC ');
end;
SQL.Text:=sqltext;
Params.ParamByName('NCari').Value:=edFind.Text+'%';
Open;
if (Recordcount = 0) and (RadioGroup1.ItemIndex = 0) then
AddBtn.Enabled := True else AddBtn.Enabled := False;
EnableControls;
end;
QueryPerformanceCounter(stop);
stBAR.Panels[1].Text := ' >> '+format('%.2f',[(stop-start)/frequency])+' detik';
end;
procedure TLsItemForm.dsItemDataChange(Sender: TObject; Field: TField);
begin
stBAR.Panels[0].Text := ' >> ' + FormatFloat('#,##0',DM1.qitem.RecordCount)+' Records';
end;
procedure TLsItemForm.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex = 0 then
begin
edFind.MaxLength := 20;
DM1.qitem.IndexFieldNames:='ITEMCODE';
end else
begin
edFind.MaxLength := 30;
DM1.qitem.IndexFieldNames:='ITEMNAME';
end;
edFind.Clear;
edFind.SetFocus;
end;
procedure TLsItemForm.ItemGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Shift = [ssCtrl]) and (Key = VK_DELETE) then Key := 0;
end;
procedure TLsItemForm.GroupLookUpChange(Sender: TObject);
begin
ViewData;
end;
procedure TLsItemForm.BrandLookUpChange(Sender: TObject);
begin
ViewData;
end;
procedure TLsItemForm.FormActivate(Sender: TObject);
begin
if (DM1.qItem.State <> dsInActive) then RefreshRec(DM1.qItem);
edFind.SetFocus;
end;
procedure TLsItemForm.EditUbahData1Click(Sender: TObject);
begin
EditRec;
end;
procedure TLsItemForm.PurcCardClick(Sender: TObject);
var
sqltxt: string; ReportName: string;
begin
with DM1.qhispurc do
begin
Close;
sqltxt:=('SELECT PURCLINE.QTY, PURCLINE.SAT, PURCLINE.PRICE, PURCLINE.BONUS,PURCLINE.DISC_1, PURCLINE.DISC_2, '+
'PURC.SJNO, PURC.SJDATE, SPL.NAMASPL, ITEM.ITEMCODE, ITEM.ITEMNAME '+
'FROM PURCLINE,PURC,SPL,ITEM '+
'WHERE purcline.ITEMCODE =:nKODE AND purcline.trno=purc.trno '+
'AND purc.splcode=spl.splcode AND '+
'purcline.itemcode=item.itemcode Order By Purc.SJDATE DESC ');
SQL.Text:=sqltxt;
Params.ParamByName('nKODE').AsString:=DM1.qitem.FieldValues['ITEMCODE'];
Open;
end;
ReportName:='purccard';
RPreviewForm:=TRPreviewForm.Create(nil);
try
frxreport1.Preview := RPreviewForm.frxPreview1;
frxreport1.LoadFromFile(ExtractFilePath(ParamStr(0)) + '..\Reports\'+ReportName+'.fr3');
frxreport1.PrepareReport;
frxreport1.ShowReport;
RPreviewForm.ShowModal;
finally
RPreviewForm.Free;
end;
end;
procedure TLsItemForm.HapusRecordClick(Sender: TObject);
begin
{if ChkDeleteItem(DM1.qItem.FieldValues['ITEMCODE']) then
begin
if Confirm('Hapus Record Item : '+DM1.qItem.FieldValues['ITEMNAME']+#13#10+
'Sekarang ...?') then
begin
DeleteRecItem(DM1.qItem.FieldValues['ITEMCODE']);
RefreshRec(DM1.qItem);
end;
end else
begin
MessageDlg('Item ini sudah ada transaksi...!'+#13#10+'Tidak bisa di-hapus !!',mtWarning,[mbOK],0);
end;
}
end;
procedure TLsItemForm.EditUbahHarga1Click(Sender: TObject);
begin
with DM1.qItempriceEdit do
begin
Close;
SQL.Text:='SELECT * FROM ITEM_PRICE WHERE ITEMCODE=:ITEMCODE ;';
Params.ParamByName('ITEMCODE').Value:=DM1.qItem.FieldValues['ITEMCODE'];
Open;
end;
Item_PriceForm.Edit;
RefreshRec(DM1.qItem);
end;
procedure TLsItemForm.EditRec;
begin
with DM1.qitemedit do
begin
Close;
SQL.Text:='SELECT * FROM ITEM WHERE ITEMCODE=:ITEMCODE ;';
Params.ParamByName('ITEMCODE').Value:=DM1.qitem.FieldValues['ITEMCODE'];
Open;
end;
edItemForm.Edit;
RefreshRec(DM1.qItem);
end;
procedure TLsItemForm.EditUbahRecordItem1Click(Sender: TObject);
begin
EditRec;
end;
procedure TLsItemForm.AddBtnClick(Sender: TObject);
begin
with DM1.qItemEdit do
begin
Close;
SQL.Text:='SELECT * FROM ITEM WHERE ITEMCODE=:ITEMCODE ';
Params.ParamByName('ITEMCODE').Value:=edFind.Text;
Open;
end;
if DM1.qItemEdit.RecordCount<>0 then
MessageDlg('KODE sudah ada ...',mtWarning,[mbOk],0) else
edItemForm.Enter(edFind.Text);
RefreshRec(DM1.qItem);
end;
procedure TLsItemForm.PrintSellPriceClick(Sender: TObject);
var
ReportName: string;
begin
if DM1.qItem.RecordCount<>0 then
begin
DM1.qItem.DisableControls;
ReportName:='itemprice';
RPreviewForm:=TRPreviewForm.Create(nil);
try
frxreport1.Preview := RPreviewForm.frxPreview1;
frxreport1.LoadFromFile(ExtractFilePath(ParamStr(0)) + '..\Reports\'+ReportName+'.fr3');
frxreport1.PrepareReport;
frxreport1.ShowReport;
RPreviewForm.ShowModal;
finally
RPreviewForm.Free;
end;
DM1.qItem.EnableControls;
end;
end;
procedure TLsItemForm.btnTotalRecClick(Sender: TObject);
var
fdb: TZQuery;
begin
Fdb := TZQuery.Create(nil); Fdb.Connection := DM1.dtaCon;
with fdb do
begin
Close;
SQL.Clear;
SQL.Text:='SELECT COUNT(ITEMCODE) AS TOTAL FROM ITEM';
Open;
end;
ShowMessage('TOTAL RECORD ITEM : '+#13#10+FormatFloat('#,##0',fdb.FieldValues['TOTAL'])+' Record...');
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -