📄 qrymaterial.pas
字号:
procedure TfrmMaterialQry.btnCancelClick(Sender: TObject);
begin
ModalResult := mrCANCEL;
Close;
end;
procedure TfrmMaterialQry.SetListViewColumn;
var
Column: TListColumn;
begin
ListViewMTL.Columns.Clear;
FColumnCnt := 0;
//--
Column := ListViewMTL.Columns.Add;
Column.Width := ListViewMTL.Font.Size * 14;
Column.Caption := GetMultiLingalMsg(90028,'Material Code');
Inc(FColumnCnt);
//--
Column := ListViewMTL.Columns.Add;
Column.Width := ListViewMTL.Font.Size * 16;
Column.Caption := GetMultiLingalMsg(90029,'Material Name');
Inc(FColumnCnt);
//--
Column := ListViewMTL.Columns.Add;
Column.Width := ListViewMTL.Font.Size * 20;
Column.Caption := GetMultiLingalMsg(90031,'Guage Name');
Inc(FColumnCnt);
//--
Column := ListViewMTL.Columns.Add;
Column.Width := ListViewMTL.Font.Size * 7;
Column.Alignment := taRightJustify;
Column.Caption := GetMultiLingalMsg(90057,'Suplier');
Inc(FColumnCnt);
//--
Column := ListViewMTL.Columns.Add;
Column.Width := ListViewMTL.Font.Size * 16;
Column.Caption := GetMultiLingalMsg(90198,'Suplier Name');
Inc(FColumnCnt);
//--
Column := ListViewMTL.Columns.Add;
Column.Width := ListViewMTL.Font.Size * 7;
Column.Alignment := taRightJustify;
Column.Caption := GetMultiLingalMsg(90058,'Maker');
Inc(FColumnCnt);
//--
Column := ListViewMTL.Columns.Add;
Column.Width := ListViewMTL.Font.Size * 16;
Column.Caption := GetMultiLingalMsg(90198,'Maker Name');
Inc(FColumnCnt);
//--
Column := ListViewMTL.Columns.Add;
Column.Width := ListViewMTL.Font.Size * 9;
Column.Alignment := taRightJustify;
Column.Caption := GetMultiLingalMsg(90123,'Material Class');
Inc(FColumnCnt);
//--
Column := ListViewMTL.Columns.Add;
Column.Width := ListViewMTL.Font.Size * 12;
Column.Caption := GetMultiLingalMsg(90198,'Name');
Inc(FColumnCnt);
end;
procedure TfrmMaterialQry.SetListView;
var i,j: Integer;
lcP: PSHIZAI;
Item: TListItem;
begin
Screen.Cursor := crHourGlass;
with ListViewMTL.Items do begin
BeginUpdate;
Clear;
EndUpdate;
end;
//--
ListViewMTL.Items.BeginUpdate;
FOnMakeItemCaption := True;
try
for i := 0 to QryMtlList.Count-1 do begin
lcP := QryMtlList.Items[i];
if not Set_QryCondition(lcp) then continue;
Item := ListViewMTL.Items.Add;
for j := 0 to FColumnCnt-1 do Item.Subitems.Add('');
lcP^.ITEM := Item;
Item.Data := lcP;
MakeItemCaption(Item);
end;
finally
FOnMakeItemCaption := False;
ListViewMTL.Items.EndUpdate;
if ListViewMTL.Items.Count > 0 then
begin
ListViewMTL.TopItem.Selected := True;
ListViewMTL.Selected.Selected := true;
end;
stsBarCnt.Panels[0].Text := '符合条件的记录有:'+ IntToStr(ListViewMTL.Items.Count)+' 条';
Screen.Cursor := crDefault;
end;
end;
procedure TfrmMaterialQry.MakeItemCaption(Item: TListItem);
//-- Init int value and '' to 0 value
function IntToStrNull(INum: Integer): string;
begin
if INum = 0 then Result := ''
else Result := IntToStr(INum);
end;
var lcP: PSHIZAI;
begin
if Item = nil then Exit;
if Item.Data = nil then Exit;
lcP := Item.Data;
Item.Caption := '' + lcP^.SHIZAI_CD;
Item.SubItems[00] := lcP^.SHIZAI_NM;
Item.SubItems[01] := lcP^.STANDARD;
Item.SubItems[02] := IntToStrNull(lcP^.SHIIRE_CD);
Item.SubItems[03] := lcP^.SHIIRE_NM;
Item.SubItems[04] := IntToStrNull(lcP^.MAKER_CD);
Item.SubItems[05] := lcP^.MAKER_NM;
Item.SubItems[06] := dm_inventory.Get_Shizai_KubunCode(lcp^.SHIZAI_KUBUN_ID);
Item.SubItems[07] := dm_inventory.Get_Shizai_KubunName(lcp^.SHIZAI_KUBUN_ID);
end;
procedure TfrmMaterialQry.ListViewMTLColumnClick(Sender: TObject; Column: TListColumn);
var
WSB_Pos: Integer;
begin
if ListViewMTL.Items.Count = 0 then Exit;
if ListViewMTL.Selected <> nil then
WSB_Pos := GetScrollPos(ListViewMTL.Handle, SB_HORZ);
ListSortKey := Column.Index + 1;
with ListViewMTL do
case ListSortKey of
1: if Items[0].Caption < Items[Items.Count-1].Caption then
ListSortKey := ListSortKey * -1;
else if Items[0].SubItems[ListSortKey-2] <
Items[Items.Count-1].SubItems[ListSortKey-2] then
ListSortKey := ListSortKey * -1;
end;
QryMtlList.Sort(TListSortCompare(@ListSortCompare));
ListViewMTL.Selected := nil;
SetListView;
ListViewMTL.Selected.MakeVisible(False);
ListViewMTL.Scroll(WSB_Pos, 0);
end;
procedure TfrmMaterialQry.cbxMTPDropDown(Sender: TObject);
begin
dm_inventory.Read_shizai_kubunTocbx(cbxMTP);
end;
procedure TfrmMaterialQry.cbxMTPChange(Sender: TObject);
begin
edtMtlType.Text := Get_PosBeforeStr(cbxMTP.Text,'_');
edtMTPName.Text := Get_PosAfterStr(cbxMTP.Text,'_');
edtMtlType.SetFocus;
iShiZaiKubun := dm_inventory.GetShiZaiKubunID(trim(edtMtlType.Text));
btnQuery.Click;
end;
procedure TfrmMaterialQry.cbxSupDropDown(Sender: TObject);
begin
dm_inventory.Read_SupplyMake_ToCbx(cbxSup);
end;
procedure TfrmMaterialQry.cbxSupChange(Sender: TObject);
begin
edtSupply.Text := Get_PosBeforeStr(cbxSup.Text,'_');
edtSupName.Text := Get_PosAfterStr(cbxSup.Text,'_');
edtSupply.SetFocus;
btnQuery.Click;
end;
procedure TfrmMaterialQry.cbxMakDropDown(Sender: TObject);
begin
dm_inventory.Read_SupplyMake_ToCbx(cbxMak);
end;
procedure TfrmMaterialQry.cbxMakChange(Sender: TObject);
begin
edtMake.Text := Get_PosBeforeStr(cbxMak.Text,'_');
edtMakName.Text := Get_PosAfterStr(cbxMak.Text,'_');
edtMake.SetFocus;
btnQuery.Click;
end;
procedure TfrmMaterialQry.SetMultilingual;
begin
self.Caption := GetMultiLingalMsg(511, 'Inventory Query');
edtMtlType.EditLabel.Caption := GetMultiLingalMsg(90123, 'Material Class');
edtSupply.EditLabel.Caption := GetMultiLingalMsg(90057, 'Suplier');
edtMake.EditLabel.Caption := GetMultiLingalMsg(90058, 'Maker');
edtFMtlCode.EditLabel.Caption:= GetMultiLingalMsg(90121, 'Start Material Code');
edtEMtlCode.EditLabel.Caption:= GetMultiLingalMsg(90122, 'End Material Code');
rdoSort.Caption := GetMultiLingalMsg(90135, 'Sort By');
rdoSort.Items[0] := GetMultiLingalMsg(90197, 'Code');
rdoSort.Items[1] := GetMultiLingalMsg(90198, 'Name');
rdoSort.Items[2] := GetMultiLingalMsg(90123, 'Materiral Class');
rdoSort.Items[3] := GetMultiLingalMsg(90057, 'Suplier');
rdoSort.Items[4] := GetMultiLingalMsg(90058, 'Maker');
chkMaterial.Caption := GetMultiLingalMsg(90286, 'Only Show Material');
chkOther.Caption := GetMultiLingalMsg(90287, 'Only Show Other Material');
btnQuery.Caption := GetMultiLingalMsg(90115, 'Filter Query');
end;
procedure TfrmMaterialQry.ListViewMTLDblClick(Sender: TObject);
begin
if ListViewMTL.Selected.Selected then btnOk.Click;
end;
procedure TfrmMaterialQry.edtSupplyChange(Sender: TObject);
begin
edtSupName.Text := dm_inventory.GetShigenName(StrToIntDef(trim(edtSupply.Text),0));
//btnQuery.Click;
end;
procedure TfrmMaterialQry.edtMakeChange(Sender: TObject);
begin
edtMakName.Text := dm_inventory.GetShigenName(StrToIntDef(trim(edtMake.Text),0));
//btnQuery.Click;
end;
procedure TfrmMaterialQry.edtMtlTypeChange(Sender: TObject);
begin
edtMTPName.Text := dm_inventory.Get_Shizai_KubunName2(trim(edtMtlType.Text));
//btnQuery.Click;
end;
///////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
procedure TfrmMaterialQry.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 TfrmMaterialQry.Init_TabStopAndTabOrder;
begin
edtMtlType.TabStop := true;
edtMtlType.TabOrder := 9;
edtFMtlCode.TabStop := true;
edtFMtlCode.TabOrder := 8;
edtEMtlCode.TabStop := true;
edtEMtlCode.TabOrder := 7;
edtSupply.TabStop := true;
edtSupply.TabOrder := 6;
edtMake.TabStop := true;
edtMake.TabOrder := 5;
rdoSort.TabStop := true;
rdoSort.TabOrder := 4;
btnOk.TabStop := true;
btnOk.TabOrder := 3;
btnCancel.TabStop := true;
btnCancel.TabOrder := 2;
btnQuery.TabStop := true;
btnQuery.TabOrder := 1;
end;
procedure TfrmMaterialQry.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 TfrmMaterialQry.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (Key = VK_TAB) or (Key = VK_RETURN) then //--
GetNextTabOrder(VK_TAB, Shift);
end;
procedure TfrmMaterialQry.edtFMtlCodeChange(Sender: TObject);
begin
// btnQuery.Click;
end;
procedure TfrmMaterialQry.edtEMtlCodeChange(Sender: TObject);
begin
//btnQuery.Click;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -