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

📄 qrydeliverylist.~pas

📁 文件包含程序源原文件
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
  Inc(FColumnCnt);

  Column         := ListViewDelOrd.Columns.Add;
  Column.Width   := ListViewDelOrd.Font.Size * 12;
  Column.Caption := GetMultiLingalMsg(10042,'Sequal No');
  Inc(FColumnCnt);

  //--
  Column         := ListViewDelOrd.Columns.Add;
  Column.Width   := ListViewDelOrd.Font.Size * 10;
  Column.Caption := GetMultiLingalMsg(90255, 'IN Date');
  Inc(FColumnCnt);

  Column         := ListViewDelOrd.Columns.Add;
  Column.Width   := ListViewDelOrd.Font.Size * 10;
  Column.Caption := GetMultiLingalMsg(90065, 'Remarks');
  Inc(FColumnCnt);
end;


procedure TfrmDeliveriedList.ListViewDelOrdColumnClick(Sender: TObject; Column: TListColumn);
var
  WSB_Pos: Integer;
begin
  if ListViewDelOrd.Items.Count = 0 then Exit;
  if ListViewDelOrd.Selected <> nil then
    WSB_Pos := GetScrollPos(ListViewDelOrd.Handle, SB_HORZ);
    ListSortKey := Column.Index + 1;
    with ListViewDelOrd 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;
  FAllReadyInOrderList.Sort(TListSortCompare(@ListSortCompare));
  ListViewDelOrd.Selected := nil;
  SetListView;
  ListViewDelOrd.Selected.MakeVisible(False);
  ListViewDelOrd.Scroll(WSB_Pos, 0)
end;

procedure TfrmDeliveriedList.btnQueryClick(Sender: TObject);
var
  i,j: integer;
  lcP: PAllReadyInOrder;
  Item: TListItem;
  stk_id,hat_code,iss_paperno,in_paperno: string;
  sup_code,order_rec_id: integer;
begin
  /////////////////////////////////////
  Screen.Cursor  := crHourGlass;
  with ListViewDelOrd.Items do begin
    BeginUpdate;
    Clear;
    EndUpdate;
  end;

  stk_id      := trim(edtStkID.Text);
  hat_code    := trim(edtHatCode.Text);
  iss_paperno := trim(edtIssPaper.Text);
  in_paperno  := trim(edtInPaper.Text);
  sup_code    := StrToIntDef(edtSupply.Text,0);
  order_rec_id := dm_inventory.GetOrderRID(edtOrder.Text);
  if (order_rec_id<=0) then order_rec_id := 0;

  dm_inventory.Read_DeliveryOnTimeInfo(FAllReadyInOrderList, stk_id,hat_code,iss_paperno,in_paperno,sup_code,order_rec_id);
  //--
  ListViewDelOrd.Items.BeginUpdate;
  FOnMakeItemCaption := True;
  try
    FAllReadyInOrderList.Sort(TListSortCompare(@ListSortCompare));
    for i := 0 to FAllReadyInOrderList.Count-1 do begin
      lcP  := FAllReadyInOrderList.Items[i];
      
      if not Set_QryCondition(lcp) then continue;
      Item := ListViewDelOrd.Items.Add;
      for j :=0 to FColumnCnt-2 do Item.Subitems.Add('');
      lcP^.ITEM := Item;
      Item.Data := lcP;
      MakeItemCaption(Item);
    end;
  finally
    FOnMakeItemCaption := False;
    ListViewDelOrd.Items.EndUpdate;
    Screen.Cursor := crDefault;
  end;
end;

function TfrmDeliveriedList.Set_QryCondition(lcP: PAllReadyInOrder): Boolean;
var
  iMatAttr: Integer;
  WMtlCode: array[0..1] of string;
  WDate: array[0..1] of TDateTime;
begin
  Result := True;
  //////////////////////
  if lcp^.quantity<=0 then begin
    result := false;
    exit;
  end;

  if default_orderserial<>0 then
    if ((lcp^.order_no)=default_orderserial) then begin
    result := false;
    exit;
  end;

  if (trim(edtMatCode.Text)<>'') then
  if not(dm_inventory.GetMaterialCode(lcp^.material_rec_id)=trim(edtMatCode.Text)) then begin
    result := false;
    exit;
 end;

  iShiZaiKubun := dm_inventory.GetShiZaiKubunID(trim(edtMatClass.Text));
  if (trim(edtMatClass.Text)<>'') then
    if not (dm_inventory.Get_KubunRecID_FromShiZai(lcp^.material_rec_id) = iShiZaiKubun) then begin
      result := false;
      exit;
    end;

  if (trim(edtSupply.Text)<>'') then
    if not (IntToStr(lcp^.supplier_code) = trim(edtSupply.Text)) then begin
    result := false;
    exit;
  end;

  if (trim(edtOrder.Text)<>'') then
    if not (dm_inventory.GetOrderNo(lcp^.order_rec_id) = trim(edtOrder.Text)) then begin
    result := false;
    exit;
  end;
  {
  iMatAttr := dm_inventory.Get_KubunIssMode_FromShiZai(lcp^.material_rec_id);
  if chkMaterial.Checked then begin
    if not ( iMatAttr= 1) then begin
      result := false;
      exit;
    end;
  end;

  if chkOther.Checked then begin
    if not ((iMatAttr=2)or (iMatAttr=3)or (iMatAttr=4)) then begin
      result := false;
      exit;
    end;
  end;
       }
  if (trim(edtHatCode.Text)<>'') then
    if not (lcp^.hat_code = trim(edtHatCode.Text)) then begin
    result := false;
    exit;
  end;
end;

procedure TfrmDeliveriedList.edtOrderChange(Sender: TObject);
begin
  //btnQuery.Click;
end;

procedure TfrmDeliveriedList.cbxSupDropDown(Sender: TObject);
begin
  dm_inventory.Read_SupplyMake_ToCbx(cbxSup);
end;

procedure TfrmDeliveriedList.cbxSupChange(Sender: TObject);
begin
  edtSupply.Text   := Get_PosBeforeStr(cbxSup.Text,'_');
  edtSupName.Text  := Get_PosAfterStr(cbxSup.Text,'_');
  edtSupply.SetFocus;
end;

procedure TfrmDeliveriedList.edtSupplyChange(Sender: TObject);
begin    
  edtSupName.Text := dm_inventory.GetShigenName(StrToIntDef(trim(edtSupply.Text),0));
//  btnQuery.Click;
end;

procedure TfrmDeliveriedList.btnOKClick(Sender: TObject);
begin
  ModalResult := mrNone;
  if ListViewDelOrd.Selected = nil then curr_select_DeliOrd := nil
  else curr_select_DeliOrd := PAllReadyInOrder(ListViewDelOrd.Selected.Data);
  ModalResult := mrOK;
end;

procedure TfrmDeliveriedList.btnCancelClick(Sender: TObject);
begin
  ModalResult := mrCANCEL;
  Close;
end;

procedure TfrmDeliveriedList.ListViewDelOrdDblClick(Sender: TObject);
begin
  if ListViewDelOrd.Selected.Selected then btnOk.Click;
end;

procedure TfrmDeliveriedList.cbxMatClassDropDown(Sender: TObject);
begin
  dm_inventory.Read_shizai_kubunTocbx(cbxMatClass);
end;

procedure TfrmDeliveriedList.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 TfrmDeliveriedList.SetMultilingual;
begin
  self.Caption                 := GetMultiLingalMsg(90285, 'Deliveried List Query');
  edtStkID.EditLabel.Caption   := GetMultiLingalMsg(90027,'Stock ID')+' ';
  edtSupply.EditLabel.Caption  := GetMultiLingalMsg(90057, 'Suplier')+' ';
  edtMatClass.EditLabel.Caption:= GetMultiLingalMsg(90123, 'Material Class')+' ';
  edtMatCode.EditLabel.Caption:= GetMultiLingalMsg(90028, 'Material Code')+' ';
  edtOrder.EditLabel.Caption   := GetMultiLingalMsg(90063, 'Mold Code')+' ';
  edtHatCode.EditLabel.Caption := GetMultiLingalMsg(32093,'Order Code')+' ';
  edtIssPaper.EditLabel.Caption := GetMultiLingalMsg(90236,'Issue Paper')+' ';
  edtInPaper.EditLabel.Caption  := GetMultiLingalMsg(90053,'Paper NO')+' ';
  btnQuery.Caption             := GetMultiLingalMsg(90115, 'Filter Query')+' ';
  //chkMaterial.Caption          := GetMultiLingalMsg(90286, 'Only Show Material')+' ';
  //chkOther.Caption             := GetMultiLingalMsg(90287, 'Only Show Other Material')+' ';
end;

procedure TfrmDeliveriedList.edtMatClassChange(Sender: TObject);
begin
  edtMatClassName.Text := dm_inventory.Get_Shizai_KubunName2(trim(edtMatClass.Text));
end;

////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
procedure TfrmDeliveriedList.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 TfrmDeliveriedList.Init_TabStopAndTabOrder;
begin
  edtStkID.TabStop  := true;
  edtStkID.TabOrder := 10;

  edtSupply.TabStop  := true;
  edtSupply.TabOrder := 9;

  edtMatClass.TabStop  := true;
  edtMatClass.TabOrder := 8;

  edtHatCode.TabStop  := true;
  edtHatCode.TabOrder := 7;

  edtOrder.TabStop  := true;
  edtOrder.TabOrder := 6;

  edtIssPaper.TabStop  := true;
  edtIssPaper.TabOrder := 5;

  edtInPaper.TabStop  := true;
  edtInPaper.TabOrder := 4;

  edtMatCode.TabStop  := true;
  edtMatCode.TabOrder := 3;

  btnOk.TabStop  := true;
  btnOk.TabOrder := 2;

  btnCancel.TabStop  := true;
  btnCancel.TabOrder := 1;

  btnQuery.TabStop  := true;
  btnQuery.TabOrder  := 0;
end;

procedure TfrmDeliveriedList.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 TfrmDeliveriedList.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_TAB) or (Key = VK_RETURN)  then //--
    GetNextTabOrder(VK_TAB, Shift);
end;

function TfrmDeliveriedList.ListSelCheck: Boolean;
begin
  Result := True;
  if ListViewDelOrd.SelCount = 0 then begin
    MessageDlg('没有选中一条已入库订单的记录!', mtWarning, [mbOK], 0);
    Result := False;
  end;
end;

procedure TfrmDeliveriedList.cbxStkDropDown(Sender: TObject);
begin
//
end;

procedure TfrmDeliveriedList.cbxStkChange(Sender: TObject);
begin
  edtStkID.Text   := Get_PosBeforeStr(cbxStk.Text,'_');
  edtStkName.Text := Get_PosAfterStr(cbxStk.Text,'_');
  edtStkID.SetFocus;
end;

procedure TfrmDeliveriedList.edtStkIDChange(Sender: TObject);
begin
  edtStkName.Text := dm_Inventory.GetStockName(trim(edtStkID.Text));
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -