⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 finditem.pas

📁 this is sample for traders
💻 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, selectgudang;

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 AND GDGCODE=:nGdg),0)  AS ONHAND, '+
              'ITEM.UNITID '+
              'FROM item '+
              'WHERE ITEM.ITEMCODE LIKE:NCari '+
              'Order By ITEM.ITEMCODE ASC ');
        ParamByName('Ncari').AsString:=edFind.Text+'%';
        ParamByName('nGDG').Value:=SELECTGUDANGFORM.CODE;
        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 AND GDGCODE=:nGdg),0)  AS ONHAND, '+
              'ITEM.UNITID '+
              'FROM item '+
              'WHERE ITEM.ITEMNAME LIKE:NCari '+
              'Order By ITEM.ITEMNAME ASC ');
        ParamByName('Ncari').AsString:=edFind.Text+'%';
        ParamByName('nGDG').Value:=SELECTGUDANGFORM.CODE;
        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 + -