?? qryorderdelivery.~pas
字號:
Column.Width := ListViewDelOrd.Font.Size * 12;
Column.Caption := '加工費(fèi)/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);
if (iMode=0) then begin
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 12;
Column.Caption := GetMultiLingalMsg(90284,'Un-Delivery Weight');
Inc(FColumnCnt);
end
else begin
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 12;
Column.Caption := GetMultiLingalMsg(90134,'Un-Delivery Quantity');
Inc(FColumnCnt);
end;
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.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -