?? qryorderdelivery.pas
字號:
unit QryOrderDelivery;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Dialogs,
Buttons, ExtCtrls, ComCtrls, Math, EnhLV, GLLV, InvDef, dpConst;
type
TfrmDeliveryOrder = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
ListViewDelOrd: TGradLineListView;
edtOrder: TLabeledEdit;
cbxSup: TComboBox;
edtSupply: TLabeledEdit;
edtSupName: TEdit;
edtHatCode: TLabeledEdit;
lblFDate: TLabel;
edtFDate: TDateTimePicker;
edtMatClass: TLabeledEdit;
edtMatClassName: TEdit;
cbxMatClass: TComboBox;
edtEDate: TDateTimePicker;
lblEDate: TLabel;
btnOK: TBitBtn;
btnCancel: TBitBtn;
btnQuery: TBitBtn;
chkMaterial: TCheckBox;
chkOther: TCheckBox;
stsBarCnt: TStatusBar;
chkWeight0: TCheckBox;
chkQty0: TCheckBox;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure ListViewDelOrdColumnClick(Sender: TObject; Column: TListColumn);
procedure btnQueryClick(Sender: TObject);
procedure cbxSupDropDown(Sender: TObject);
procedure cbxSupChange(Sender: TObject);
procedure edtSupplyChange(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure ListViewDelOrdDblClick(Sender: TObject);
procedure cbxMatClassDropDown(Sender: TObject);
procedure cbxMatClassChange(Sender: TObject);
procedure edtMatClassChange(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure edtFMatCodeChange(Sender: TObject);
private
{ Private declarations }
Procedure SetListViewColumn(iMode: Integer);
Procedure SetListView;
procedure MakeItemCaption(Item: TListItem; iMode: Integer);
Procedure SetMultilingual;
procedure Close_TabStop;
Procedure Init_TabStopAndTabOrder;
Procedure GetNextTabOrder(Key: Word; ShiftState: TShiftState);
public
{ Public declarations }
default_suplier: string;
default_orderno: integer;
curr_select_DeliOrd: PUnDeliveryOnTime;
iShowMode: Integer;
function Set_QryCondition(lcP: PUnDeliveryOnTime): Boolean;
function ListSelCheck: Boolean;
end;
var
frmDeliveryOrder: TfrmDeliveryOrder;
ListSortKey: integer;
FOrd_UnDeliveryList: TList;
FColumnCnt: integer;
FOnMakeItemCaption: Boolean;
iShiZaiKubun: Integer;
implementation
uses InvDM;
{$R *.dfm}
// TListSortCompare
function ListSortCompare(Item1, Item2: Pointer): Longint;
var DataType: Integer;
Str1, Str2: string;
Int1, Int2: Integer;
Dbl1, Dbl2: Double;
begin
Result := 0;
Str1 := ''; Str2 := '';
Int1 := 0; Int2 := 0;
Dbl1 := 0; Dbl2 := 0;
case Abs(ListSortKey) of
1: begin //--
Int1 := TUnDeliveyOnTime(Item1^).hatchu_id;
Int2 := TUnDeliveyOnTime(Item2^).hatchu_id;
DataType := 1;
end;
2: begin //--
Str1 := dm_inventory.GetOrderNo(TUnDeliveyOnTime(Item1^).seihin_rec_id);
Str2 := dm_inventory.GetOrderNo(TUnDeliveyOnTime(Item2^).seihin_rec_id);
DataType := 0;
end;
4: begin //--
Str1 := dm_inventory.GetMaterialCode(TUnDeliveyOnTime(Item1^).shizai_rec_id);
Str2 := dm_inventory.GetMaterialCode(TUnDeliveyOnTime(Item2^).shizai_rec_id);
DataType := 0;
end;
9: begin //--
Int1 := TUnDeliveyOnTime(Item1^).maker;
Int2 := TUnDeliveyOnTime(Item2^).maker;
DataType := 1;
end;
else Exit;
end;
case DataType of
0: if Str1 < Str2 then Result := -1
else if Str1 > Str2 then Result := 1
else Result := 0;
1: if Int1 < Int2 then Result := -1
else if Int1 > Int2 then Result := 1
else Result := 0;
2: if Dbl1 < Dbl2 then Result := -1
else if Dbl1 > Dbl2 then Result := 1
else Result := 0;
else Result := 0;
end;
if ListSortKey < 0 then Result := Result * -1;
end;
procedure TfrmDeliveryOrder.FormCreate(Sender: TObject);
begin
FOrd_UnDeliveryList := TList.Create;
FOrd_UnDeliveryList.Clear;
SetMultilingual;
end;
procedure TfrmDeliveryOrder.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//action := cafree;
end;
procedure TfrmDeliveryOrder.FormShow(Sender: TObject);
var tmpf,tmpe: string;
begin
Close_TabStop;
Init_TabStopAndTabOrder;
if (iShowMode=-1) then iShowMode := 0;
edtSupply.Text := default_suplier;
edtSupName.Text := dm_inventory.GetShigenName(StrToIntDef(trim(edtSupply.Text),0));
cbxSup.Text := '';
edtMatClass.Text:= '';
edtMatClassName.Text := '';
cbxMatClass.Text:= '';
edtFDate.Date := Now-14;
edtEDate.Date := Now+10;
edtOrder.Text := '';
edtHatCode.Text := '';
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);
SetListViewColumn(iShowMode);
SetListView;
edtSupply.SetFocus;
end;
procedure TfrmDeliveryOrder.MakeItemCaption(Item: TListItem; iMode: Integer);
//-- 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: PUnDeliveryOnTime;
begin
if Item = nil then Exit;
if Item.Data = nil then Exit;
lcP := Item.Data;
Item.Caption := IntTostr(lcp^.hatchu_id);
Item.SubItems[00] := lcp^.hatchu_code;
Item.SubItems[01] := lcp^.sequal_no;
Item.SubItems[02] := dm_inventory.GetOrderNo(lcp^.seihin_rec_id);
Item.SubItems[03] := dm_inventory.GetPartCode(lcp^.seihin_rec_id, lcp^.buhin_rec_id);
Item.SubItems[04] := dm_inventory.GetMaterialCode(lcp^.shizai_rec_id);
Item.SubItems[05] := lcp^.shizai_meisho;
Item.SubItems[06] := lcp^.kikaku;
Item.SubItems[07] := IntToStr(lcp^.hatchu_sha);
Item.SubItems[08] := IntToStr(lcp^.irai_sha);
Item.SubItems[09] := IntToStr(lcp^.hatchu_saki);
Item.SubItems[10] := IntToStr(lcp^.maker);
Item.SubItems[11] := formatDatetime('yy/mm/dd',lcp^.tks_shitei);
Item.SubItems[12] := formatDatetime('yy/mm/dd',lcp^.knr_shitei);
Item.SubItems[13] := formatFloat('#,##0.00',RoundTo(lcp^.tanka,-2));
Item.SubItems[14] := formatFloat('#,##0.00',RoundTo(lcp^.suryo,-2));
Item.SubItems[15] := formatFloat('#,##0.00',RoundTo(lcp^.weight,-2));
Item.SubItems[16] := formatFloat('#,##0.00',RoundTo(lcp^.mak_price,-2));
Item.SubItems[17] := formatFloat('#,##0.00',RoundTo(lcp^.kingaku,-2));
Item.SubItems[18] := formatFloat('#,##0.00',RoundTo(lcp^.deliveried_suryo,-2));
Item.SubItems[19] := formatFloat('#,##0.00',RoundTo(lcp^.deliveried_kingaku,-2));
Item.SubItems[20] := formatDatetime('yy/mm/dd',lcp^.chakushu_bi);
Item.SubItems[21] := formatDatetime('yy/mm/dd',lcp^.kanryo_bi);
Item.SubItems[22] := formatFloat('#,##0.00',RoundTo(lcp^.un_deliveried_weight,-2));
Item.SubItems[23] := formatFloat('#,##0.00',RoundTo(lcp^.un_deliveried_suryo,-2));
end;
procedure TfrmDeliveryOrder.SetListView;
var i,j: Integer;
lcP: PUnDeliveryOnTime;
Item: TListItem;
begin
Screen.Cursor := crHourGlass;
with ListViewDelOrd.Items do begin
BeginUpdate;
Clear;
EndUpdate;
end;
//--
ListViewDelOrd.Items.BeginUpdate;
FOnMakeItemCaption := True;
try
//ListSortKey := 1;
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-1 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;
curr_select_DeliOrd := ListViewDelOrd.TopItem.Data;
end;
stsBarCnt.Panels[0].Text := '符合條件的記錄有:'+ IntToStr(ListViewDelOrd.Items.Count)+' 條';
Screen.Cursor := crDefault;
end;
end;
procedure TfrmDeliveryOrder.SetListViewColumn(iMode: Integer);
var
Column: TListColumn;
begin
ListViewDelOrd.Columns.Clear;
FColumnCnt := 0;
//--
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 8;
Column.Caption := GetMultiLingalMsg(90124,'SerialNum');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 12;
Column.Caption := GetMultiLingalMsg(32093,'Order Code');
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 * 12;
Column.Caption := GetMultiLingalMsg(90063,'Mold Code');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 12;
Column.Caption := GetMultiLingalMsg(90064,'Part Code');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 14;
Column.Caption := GetMultiLingalMsg(90028,'Material Code');
Inc(FColumnCnt);
//--
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 20;
Column.Caption := GetMultiLingalMsg(90029,'Material Name');
Inc(FColumnCnt);
//--
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 10;
Column.Caption := GetMultiLingalMsg(90031,'Guage Name');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 10;
Column.Caption := GetMultiLingalMsg(90125,'Ordered Man');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 10;
Column.Caption := GetMultiLingalMsg(90126,'Relation Man');
Inc(FColumnCnt);
//--
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 8;
Column.Caption := GetMultiLingalMsg(90057,'Suplier');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 8;
Column.Caption := GetMultiLingalMsg(90058,'Maker');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 12;
Column.Caption := GetMultiLingalMsg(90127,'Ordered Date');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 12;
Column.Caption := GetMultiLingalMsg(90120,'Scheduled Delivery');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 12;
Column.Caption := GetMultiLingalMsg(90033,'Unit Price');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 12;
Column.Caption := GetMultiLingalMsg(90128,'Ordered Quantity');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
Column.Width := ListViewDelOrd.Font.Size * 12;
Column.Caption := GetMultiLingalMsg(90273, 'Weight/PCS');
Inc(FColumnCnt);
Column := ListViewDelOrd.Columns.Add;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -