📄 finditem.~pas
字号:
unit FindItem;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Grids, DBGrids, JvExDBGrids, JvDBGrid,
JvDBUltimGrid, Buttons, JvExControls, JvComponent, JvDBLookup, DBCtrls,
DB, ImgList, JvExStdCtrls, JvButton, JvCtrls, JvFooter, JvExExtCtrls,
JvExtComponent, JvRadioGroup, JvGradientCaption, SkinCtrls,
DynamicSkinForm;
type
TFindItemForm = class(TForm)
Panel1: TPanel;
edFind: TEdit;
AddBtn: TSpeedButton;
GroupBox1: TGroupBox;
FindItemGrid: TJvDBUltimGrid;
dsFindItem: TDataSource;
JvFooter1: TJvFooter;
btnCancel: TJvFooterBtn;
btnOk: TJvFooterBtn;
ImageList1: TImageList;
JvGradientCaption1: TJvGradientCaption;
RadioGroup1: TspSkinRadioGroup;
spDynamicSkinForm1: TspDynamicSkinForm;
procedure FindItemGridDblClick(Sender: TObject);
procedure edFindChange(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FindItemGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edFindKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure btnCancelClick(Sender: TObject);
procedure AddBtnClick(Sender: TObject);
procedure btnOkClick(Sender: TObject);
private
function GetCODE: string;
procedure SetCODE(NewCODE: string);
public
property CODE: string read GetCODE write SetCODE;
function ShowModalCODE: integer;
end;
var
FindItemForm: TFindItemForm;
implementation
{$R *.dfm}
uses DataMod1, edItem;
function TFindItemForm.GetCODE: string;
begin
if DM1.qFindItem.FieldByName('ITEMCODE').Value <> Null Then
Result := DM1.qFindItem.FieldByName('ITEMCODE').Value
end;
function TFindItemForm.ShowModalCODE: integer;
begin
Result:=ShowModal;
end;
procedure TFindItemForm.SetCODE(NewCODE: string);
begin
NewCODE := DM1.qFindItem.FieldByName('ITEMCODE').Value;
end;
procedure TFindItemForm.FindItemGridDblClick(Sender: TObject);
begin
ModalResult := mrOK;
end;
procedure TFindItemForm.edFindChange(Sender: TObject);
begin
if edFind.Text='' then Exit;
with DM1.qFindItem do
begin
DisableControls;
Close;
SQL.Clear;
if RadioGroup1.ItemIndex = 0 then
begin
SQL.Add('SELECT ITEM.ITEMCODE,ITEM.ITEMNAME, '+
'IFNULL((SELECT ITEM_QTY.ONHAND FROM ITEM_QTY WHERE ITEMCODE=ITEM.ITEMCODE),0) AS ONHAND, '+
'ITEM.UNITID '+
'FROM item '+
'WHERE ITEM.ITEMCODE LIKE:NCari '+
'Order By ITEM.ITEMCODE ASC ');
ParamByName('Ncari').AsString:=edFind.Text+'%';
Open;
if Recordcount = 0 then AddBtn.Enabled := True else AddBtn.Enabled := False;
end else
begin
SQL.Add('SELECT ITEM.ITEMCODE,ITEM.ITEMNAME, '+
'IFNULL((SELECT ITEM_QTY.ONHAND FROM ITEM_QTY WHERE ITEMCODE=ITEM.ITEMCODE),0) AS ONHAND, '+
'ITEM.UNITID '+
'FROM item '+
'WHERE ITEM.ITEMNAME LIKE:NCari '+
'Order By ITEM.ITEMNAME ASC ');
ParamByName('Ncari').AsString:=edFind.Text+'%';
Open;
end;
EnableControls;
end;
end;
procedure TFindItemForm.RadioGroup1Click(Sender: TObject);
begin
edFind.SetFocus;
end;
procedure TFindItemForm.FormActivate(Sender: TObject);
begin
edFind.SetFocus;
end;
procedure TFindItemForm.FindItemGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_return then ModalResult:=mrOk;
end;
procedure TFindItemForm.edFindKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_DOWN then FindItemGrid.SetFocus;
end;
procedure TFindItemForm.btnCancelClick(Sender: TObject);
begin
ModalResult := mrCancel;
end;
procedure TFindItemForm.AddBtnClick(Sender: TObject);
begin
with DM1.qItemEdit do
begin
Close;
ParamByName('ITEMCODE').Value:=edFind.Text;
Open;
end;
edItemForm.Enter(edFind.Text);
end;
procedure TFindItemForm.btnOkClick(Sender: TObject);
begin
ModalResult := mrOK;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -