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

📄 qryorderdelivery.pas

📁 文件包含程序源原文件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  Column.Width   := ListViewDelOrd.Font.Size * 12;
  Column.Caption := '加工费/PCS';
  Inc(FColumnCnt);
  //--
  Column         := ListViewDelOrd.Columns.Add;
  Column.Width   := ListViewDelOrd.Font.Size * 12;
  Column.Caption := GetMultiLingalMsg(90129,'Ordered Amount');
  Inc(FColumnCnt);

  Column         := ListViewDelOrd.Columns.Add;
  Column.Width   := ListViewDelOrd.Font.Size * 12;
  Column.Caption := GetMultiLingalMsg(90130,'Delivery Quantity');
  Inc(FColumnCnt);
  Column         := ListViewDelOrd.Columns.Add;
  Column.Width   := ListViewDelOrd.Font.Size * 12;
  Column.Caption := GetMultiLingalMsg(90131,'Delivery Amount');
  Inc(FColumnCnt);

  Column         := ListViewDelOrd.Columns.Add;
  Column.Width   := ListViewDelOrd.Font.Size * 12;
  Column.Caption := GetMultiLingalMsg(90132,'Start Delivery Date');
  Inc(FColumnCnt);
  Column         := ListViewDelOrd.Columns.Add;
  Column.Width   := ListViewDelOrd.Font.Size * 12;
  Column.Caption := GetMultiLingalMsg(90133,'End Delivery Date');
  Inc(FColumnCnt);

  Column         := ListViewDelOrd.Columns.Add;
  Column.Width   := ListViewDelOrd.Font.Size * 12;
  Column.Caption := GetMultiLingalMsg(90284,'Un-Delivery Weight');
  Inc(FColumnCnt);

  Column         := ListViewDelOrd.Columns.Add;
  Column.Width   := ListViewDelOrd.Font.Size * 12;
  Column.Caption := GetMultiLingalMsg(90134,'Un-Delivery Quantity');
  Inc(FColumnCnt);

end;


procedure TfrmDeliveryOrder.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;
  FOrd_UnDeliveryList.Sort(TListSortCompare(@ListSortCompare));
  ListViewDelOrd.Selected := nil;
  SetListView;
  ListViewDelOrd.Selected.MakeVisible(False);
  ListViewDelOrd.Scroll(WSB_Pos, 0)
end;

procedure TfrmDeliveryOrder.btnQueryClick(Sender: TObject);
var
  i,j: integer;
  lcP: PUnDeliveryOnTime;
  Item: TListItem;
  tmpf,tmpe: string;
begin
  /////////////////////////////////////
  Screen.Cursor  := crHourGlass;
  with ListViewDelOrd.Items do begin
    BeginUpdate;
    Clear;
    EndUpdate;
  end;

  tmpf := formatdatetime('yyyy/mm/dd',edtFDate.Date)+' 00:00:00';
  tmpe := formatdatetime('yyyy/mm/dd',edtEDate.Date)+' 23:59:59';
  dm_inventory.Read_UnDeliveryOnTimeInfo(FOrd_UnDeliveryList,tmpf,tmpe);
  //--
  ListViewDelOrd.Items.BeginUpdate;
  FOnMakeItemCaption := True;
  try
    FOrd_UnDeliveryList.Sort(TListSortCompare(@ListSortCompare));
    for i := 0 to FOrd_UnDeliveryList.Count-1 do begin
      lcP  := FOrd_UnDeliveryList.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, iShowMode);
    end;
  finally
    FOnMakeItemCaption := False;
    ListViewDelOrd.Items.EndUpdate;
    if ListViewDelOrd.Items.Count>0 then
    begin
      ListViewDelOrd.TopItem.Selected  := true;
      ListViewDelOrd.Selected.Selected := true;
    end;
    stsBarCnt.Panels[0].Text := '符合条件的记录有:'+ IntToStr(ListViewDelOrd.Items.Count)+' 条';
    Screen.Cursor := crDefault;
  end;
end;

function TfrmDeliveryOrder.Set_QryCondition(lcP: PUnDeliveryOnTime): Boolean;
var
  iMatAttr: Integer;
  WMtlCode: array[0..1] of string;
  WDate: array[0..1] of TDateTime;
begin
  Result := True;
  //////////////////////
  if iShowMode=0 then begin
    if chkWeight0.Checked then begin
      if RoundTo(lcp^.un_deliveried_weight,-2)<0.00 then begin
        result := false;
        exit;
      end;
    end;
  end
  else begin
    if chkQty0.Checked then begin
      if RoundTo(lcp^.un_deliveried_suryo,-2)<0.00 then begin
        result := false;
        exit;
      end;
    end;
  end;
  
  //////////////////////  
  WDate[0] := strToDatetime(formatdatetime('yyyy/mm/dd',edtFDate.Date)+' 00:00:00');
  WDate[1] := strToDatetime(formatdatetime('yyyy/mm/dd',edtEDate.Date)+' 23:59:59');
  if ((WDate[0] > 2)and(formatdatetime('yyyy/mm/dd',WDate[0]) > formatdatetime('yyyy/mm/dd',lcP^.knr_shitei)))or
     ((WDate[1] > 2)and(formatdatetime('yyyy/mm/dd',WDate[1]) < formatdatetime('yyyy/mm/dd',lcP^.knr_shitei)))then begin
    Result := False;
    Exit;
  end;


  if default_orderno<>0 then
    if ((lcp^.hatchu_id)=default_orderno) 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^.shizai_rec_id) = iShiZaiKubun) then begin
      result := false;
      exit;
    end;

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

  if (trim(edtOrder.Text)<>'') then
    if not (dm_inventory.GetOrderNo(lcp^.seihin_rec_id) = trim(edtOrder.Text)) then begin
    result := false;
    exit;
  end;

  iMatAttr := dm_inventory.Get_KubunIssMode_FromShiZai(lcp^.shizai_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)or (iMatAttr=5)) then begin
      result := false;
      exit;
    end;
  end;

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

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

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

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

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

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

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

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

procedure TfrmDeliveryOrder.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 TfrmDeliveryOrder.SetMultilingual;
begin
  self.Caption                 := GetMultiLingalMsg(90200, 'Ordered Delivery Query');
  edtSupply.EditLabel.Caption  := GetMultiLingalMsg(90057, 'Suplier')+' ';
  edtMatClass.EditLabel.Caption:= GetMultiLingalMsg(90123, 'Material Class')+' ';
  lblFDate.Caption             := GetMultiLingalMsg(90113, 'Start Date')+' ';
  lblEDate.Caption             := GetMultiLingalMsg(90114, 'End Date')+' ';
  edtOrder.EditLabel.Caption   := GetMultiLingalMsg(90063, 'Mold Code')+' ';
  edtHatCode.EditLabel.Caption := GetMultiLingalMsg(32093, 'Order Code')+' ';
  btnQuery.Caption             := GetMultiLingalMsg(90115, 'Filter Query');
  chkMaterial.Caption          := GetMultiLingalMsg(90286, 'Only Show Material')+' ';
  chkOther.Caption             := GetMultiLingalMsg(90287, 'Only Show Other Material')+' ';
end;

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

////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
procedure TfrmDeliveryOrder.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 TfrmDeliveryOrder.Init_TabStopAndTabOrder;
begin
  edtSupply.TabStop  := true;
  edtSupply.TabOrder := 8;

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

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

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

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

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

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

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

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

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

procedure TfrmDeliveryOrder.edtFMatCodeChange(Sender: TObject);
begin
//  btnQuery.Click;
end;

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

end.

⌨️ 快捷键说明

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