?? invcondqry.pas
字號:
unit InvCondQry;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, InvDef, dpConst, Math;
type
TfrmBalQryCond = class(TForm)
Panel1: TPanel;
btnQuery: TBitBtn;
btnClose: TBitBtn;
Panel2: TPanel;
edtStkID: TLabeledEdit;
edtStkName: TEdit;
cbxStk: TComboBox;
edtMatClass: TLabeledEdit;
edtMatClassName: TEdit;
cbxMatClass: TComboBox;
edtMatCode: TLabeledEdit;
rdoSafeQty: TRadioGroup;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnQueryClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure cbxStkChange(Sender: TObject);
procedure edtStkIDChange(Sender: TObject);
procedure edtStkIDExit(Sender: TObject);
procedure cbxMatClassDropDown(Sender: TObject);
procedure cbxMatClassChange(Sender: TObject);
procedure edtMatClassChange(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
Procedure SetMultilingual;
procedure Close_TabStop;
Procedure Init_TabStopAndTabOrder;
Procedure GetNextTabOrder(Key: Word; ShiftState: TShiftState);
public
{ Public declarations }
iSortKey: integer;
iShiZaiKubun: integer;
ichkStkLess0: Boolean;
function Set_QryCondition(lcP: PBALANCE): Boolean;
end;
var
frmBalQryCond: TfrmBalQryCond;
implementation
uses InvDM;
{$R *.dfm}
procedure TfrmBalQryCond.FormCreate(Sender: TObject);
begin
edtStkID.Text := '';
edtStkName.Text := '';
cbxStk.Text := '';
edtMatClass.Text := '';
edtMatClassName.Text := '';
cbxMatClass.Text := '';
edtMatCode.Text := '';
rdoSafeQty.ItemIndex := 0;
SetMultilingual;
end;
procedure TfrmBalQryCond.FormShow(Sender: TObject);
begin
Close_TabStop;
Init_TabStopAndTabOrder;
edtStkID.SetFocus;
end;
procedure TfrmBalQryCond.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//close;
end;
function TfrmBalQryCond.Set_QryCondition(lcP: PBALANCE): Boolean;
var i: Integer;
WDate: array[0..1] of TDatetime;
WMtlCode: array[0..1] of string;
begin
Result := True;
if ichkStkLess0 then
begin
if (RoundTo(lcp^.QUANTITY,-2)<=0.00) then begin
result := false;
exit;
end;
end;
if trim(edtStkID.Text)<>'' then
if not(lcp^.STK_ID=trim(edtStkID.Text)) then begin
result := false;
exit;
end;
if (trim(edtMatClass.Text)<>'') then
if not (dm_inventory.Get_KubunRecID_FromShiZai(lcp^.CODE) = iShiZaiKubun) then begin
result := false;
exit;
end;
if trim(edtMatCode.Text)<>'' then begin
if not(dm_inventory.GetMaterialCode(lcp^.CODE)=trim(edtMatCode.Text))then begin
result := false;
exit;
end;
end;
case rdoSafeQty.ItemIndex of
0: begin
end;
1: begin
if not (lcp^.IS_SAFETY = 0) then
begin
result := false;
exit;
end;
end;
2: begin
if not (lcp^.IS_SAFETY = 1) then
begin
result := false;
exit;
end;
end;
end;
end;
////////////////////////////////////////////////////////////////////
procedure TfrmBalQryCond.btnQueryClick(Sender: TObject);
begin
ModalResult := mrNone;
iSortKey := 2;
ModalResult := mrOK;
end;
procedure TfrmBalQryCond.btnCloseClick(Sender: TObject);
begin
close;
//ModalResult := mrCancel;
end;
procedure TfrmBalQryCond.cbxStkChange(Sender: TObject);
begin
edtStkID.Text := Get_PosBeforeStr(cbxStk.Text,'_');
edtStkName.Text := Get_PosAfterStr(cbxStk.Text,'_');
edtStkID.SetFocus;
end;
procedure TfrmBalQryCond.edtStkIDChange(Sender: TObject);
begin
edtStkName.Text := dm_Inventory.GetStockName(trim(edtStkID.Text));
end;
procedure TfrmBalQryCond.edtStkIDExit(Sender: TObject);
var iBool: Boolean;
begin
iBool := true;
if not(trim(edtStkID.Text)='') then begin
iBool := dm_Inventory.Get_StockCheck(trim(edtStkID.Text),edtStkName);
if not(iBool) then begin
edtStkID.Text := '';
Exit;
end;
end;
end;
procedure TfrmBalQryCond.cbxMatClassDropDown(Sender: TObject);
begin
dm_inventory.Read_shizai_kubunTocbx(cbxMatClass);
end;
procedure TfrmBalQryCond.cbxMatClassChange(Sender: TObject);
begin
edtMatClass.Text := Get_PosBeforeStr(cbxMatClass.Text,'_');
edtMatClassName.Text := Get_PosAfterStr(cbxMatClass.Text,'_');
edtMatClass.SetFocus;
iShiZaiKubun := dm_inventory.GetShiZaiKubunID(trim(edtMatClass.Text));
end;
procedure TfrmBalQryCond.edtMatClassChange(Sender: TObject);
begin
edtMatClassName.Text := dm_inventory.Get_Shizai_KubunName2(trim(edtMatClass.Text));
end;
///////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
procedure TfrmBalQryCond.Close_TabStop;
var
i:Integer;
begin
for i:=0 To Self.ComponentCount-1 do
try
if not ((Self.Components[i] is TLabel) or (Self.Components[i] is TImageList)or
(Self.Components[i] is TSpeedButton) or (self.Components[i] is TiMage))then
begin
(Self.Components[i] as TWinControl).TabStop := False;
(Self.Components[i] as TWinControl).TabOrder := -1;
end;
except
;
end;
end;
procedure TfrmBalQryCond.Init_TabStopAndTabOrder;
begin
edtStkID.TabStop := true;
edtStkID.TabOrder := 6;
edtMatCode.TabStop := true;
edtMatCode.TabOrder := 5;
edtMatClass.TabStop := true;
edtMatClass.TabOrder := 4;
rdoSafeQty.TabStop := true;
rdoSafeQty.TabOrder := 3;
btnClose.TabStop := true;
btnClose.TabOrder := 2;
btnQuery.TabStop := true;
btnQuery.TabOrder := 1;
end;
procedure TfrmBalQryCond.GetNextTabOrder(Key: Word; ShiftState: TShiftState);
var
nextControl : TWinControl;
begin
if key = VK_TAB then begin
nextControl := FindNextControl(ActiveControl ,false,true,false);
if NextControl <> nil then NextControl.SetFocus;
end
else if key = VK_RETURN then
begin
nextControl := FindNextControl(ActiveControl ,true,true,false);
if NextControl <> nil then NextControl.SetFocus;
end;
end;
procedure TfrmBalQryCond.SetMultilingual;
begin
self.Caption := GetMultiLingalMsg(90021, 'Inventory Query');
edtStkID.EditLabel.Caption := GetMultiLingalMsg(90027, 'Stock ID')+' ';
edtMatClass.EditLabel.Caption := GetMultiLingalMsg(90123, 'Material Class')+' ';
edtMatCode.EditLabel.Caption := GetMultiLingalMsg(90028, 'Material Code')+' ';
rdoSafeQty.Caption := GetMultiLingalMsg(90199, 'Safety Params Filter');
rdoSafeQty.Items[0] := GetMultiLingalMsg(90079, 'ALL');
rdoSafeQty.Items[1] := GetMultiLingalMsg(90041, '<= Safety Quantity');
rdoSafeQty.Items[2] := GetMultiLingalMsg(90042, '> Satety Quantity');
btnQuery.Caption := GetMultiLingalMsg(90115, 'Filter Query');
btnClose.Caption := GetMultiLingalMsg(90025, 'Exit');
end;
procedure TfrmBalQryCond.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_TAB) or (Key = VK_RETURN) then //--
GetNextTabOrder(VK_TAB, Shift);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -