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

📄 qrymaterial.pas

📁 文件包含程序源原文件
💻 PAS
📖 第 1 页 / 共 2 页
字号:

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 + -