?? matguageinfo.pas
字號:
FOnMakeItemCaption := True;
try
for i := 0 to FQueryList.Count-1 do begin
lcP := FQueryList.Items[i];
Item := LstViewGuage.Items.Add;
for j := 0 to FColCnt-1 do Item.Subitems.Add('');
lcP^.ITEM := Item;
Item.Data := lcP;
MakeItemCaption(Item);
end;
finally
FOnMakeItemCaption := False;
LstViewGuage.Items.EndUpdate;
if LstViewGuage.Items.Count > 0 then LstViewGuage.TopItem.Selected := True;
stsBarCnt.Panels[0].Text := '符合條件的記錄有:'+ IntToStr(LstViewGuage.Items.Count)+' 條';
Screen.Cursor := crDefault;
end;
end;
function TfrmMatGuageInfo.SetListColumn(sListView: TGradLineListView): Integer;
var
Column: TListColumn;
begin
sListView.Columns.Clear;
FColCnt := 0;
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 14;
Column.Caption := GetMultiLingalMsg(90028, 'Material Code');
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 16;
Column.Caption := GetMultiLingalMsg(90029, 'Material Name');
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 8;
Column.Caption := GetMultiLingalMsg(90030, 'Guage ID');
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 14;
Column.Caption := GetMultiLingalMsg(90031, 'Guage Name');
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 9;
Column.Caption := GetMultiLingalMsg(90201, 'Safety');
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 9;
Column.Caption := GetMultiLingalMsg(90273, 'Weight/PCS');
Inc(FColCnt);
end;
procedure TfrmMatGuageInfo.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: PGuageInfo;
begin
if Item = nil then Exit;
if Item.Data = nil then Exit;
lcP := Item.Data;
Item.Caption := dm_inventory.GetMaterialCode(lcp^.mat_rec_id);
Item.SubItems[00] := dm_inventory.GetMaterialName(lcp^.mat_rec_id);
Item.SubItems[01] := intToStr(lcp^.guage_id);
Item.SubItems[02] := lcP^.guage_name;
Item.SubItems[03] := InttoStr(lcP^.safety);
Item.SubItems[04] := FormatFloat('#,##0.00',lcP^.weight_pcs);
end;
Procedure TfrmMatGuageInfo.SetNull;
begin
FSelectedItem := nil;
edtMatID.Text := '';
edtMatName.Text := '';
edtGuageID.Value := 1;
edtGuageName.Text := '';
edtSafety.Value := 0;
edtMax.Value := 0;
edtFixed.Value := 0;
edtBuyDays.Value := 0;
edtWeightpcs.Value := 0;
end;
procedure TfrmMatGuageInfo.Set_currItem(Item: TListItem);
var
lcp: PGuageInfo;
begin
if (Item = nil) or ((item = nil) and (Item.Data <> nil)) then
begin
SetNull;
exit;
end
else begin
FSelectedItem := nil;
FSelectedItem := Item;
lcp := Item.Data;
edtMatID.Text := dm_inventory.GetMaterialCode(lcp^.mat_rec_id);
edtMatName.Text := dm_inventory.GetMaterialName(lcp^.mat_rec_id);
edtGuageID.Value := lcp^.guage_id;
edtGuageName.Text := lcp^.guage_name;
edtSafety.Value := lcp^.safety;
edtMax.Value := lcp^.max_stkqty;
edtFixed.Value := lcp^.fixed_buyqty;
edtBuyDays.Value := lcp^.buy_days;
edtWeightpcs.Value:= lcp.weight_pcs;
end;
end;
procedure TfrmMatGuageInfo.tabsGroupChange(Sender: TObject);
begin
dm_Inventory.Read_MatGuageInfo(FMatGuageList);
Set_QueryedList(FQueryList);
Set_QryList_FromTabs(TabsGroup.TabIndex, FQueryList);
SetListView;
if LstViewGuage.Items.Count>0 then begin
LstViewGuage.ToPItem.Selected := False;
LstViewGuage.ToPItem.Selected := True;
end;
end;
procedure TfrmMatGuageInfo.LstViewGuageChange(Sender: TObject;
Item: TListItem; Change: TItemChange);
begin
if FOnCloseForm then exit;
if Item.Data = nil then
begin
setNull;
exit;
end
else Set_currItem(LstViewGuage.Selected);
end;
procedure TfrmMatGuageInfo.btnNewClick(Sender: TObject);
var lcp,lcpNew: PGuageInfo;
Item: TListItem;
i: integer;
begin
if ((FSelectedItem=nil) or (FSelectedItem.Data=nil)) then exit;
lcp := FSelectedItem.Data;
if lcp = nil then exit;
if not(dm_inventory.isExists_GuageInfo(lcp^.mat_rec_id,trim(edtGuageName.Text))) then
begin
New(lcpNew);
ZeroMemory(lcpNew, Sizeof(TGuageInfo));
CopyMemory(lcpNew, lcp, Sizeof(TGuageInfo));
strPCopy(lcpNew^.guage_name, trim(edtGuageName.Text));
lcpNew^.guage_id := dm_Inventory.Get_MatMaxGuageID(lcp^.mat_rec_id)+1;
Item := LstViewGuage.Items.Add;
Item.Data := lcpNew;
for i:= 0 to FColCnt-1 do Item.SubItems.Add('');
Item.Caption := dm_inventory.GetMaterialCode(lcpNew^.mat_rec_id);
Item.SubItems[00] := dm_inventory.GetMaterialName(lcpNew^.mat_rec_id);
Item.SubItems[01] := intToStr(lcpNew^.guage_id);
Item.SubItems[02] := lcpNew^.guage_name;
Item.SubItems[03] := InttoStr(lcpNew^.safety);
Item.SubItems[04] := FloattoStr(lcpNew^.weight_pcs);
Item.Selected := true;
Item.Focused := true;
MakeItemCaption(Item);
Set_currItem(Item);
dm_inventory.Insert_MatGuageInfo(lcpNew^.mat_rec_id,trim(edtGuageName.Text));
showMessage(GetMultiLingalMsg(90226, 'New Guage is Finished!'));
end;
end;
procedure TfrmMatGuageInfo.btnDeleteClick(Sender: TObject);
var lcp: PGuageInfo;
Item: TListItem;
begin
if ((FSelectedItem=nil) or (FSelectedItem.Data=nil)) then exit;
lcp := FSelectedItem.Data;
Item := FSelectedItem;
if lcp = nil then exit;
if not(dm_Inventory.isExists_UseGuageID(lcp.mat_rec_id,lcp.guage_id)) then
begin
dm_inventory.Delete_MatGuageInfo(lcp^.mat_rec_id, lcp^.guage_id);
Item.Delete;
if LstViewGuage.Items.Count>0 then LstViewGuage.TopItem.Selected := true
else FSelectedItem := nil;
showMessage(GetMultiLingalMsg(90227, 'Delete Guage is Finished!'));
end
else begin
case MessageDlg(GetMultiLingalMsg(90228, 'this guage id is used/do you want to delete!'),mtConfirmation,[mbYES,mbNo],0) of
mrYES: begin
dm_inventory.Delete_MatGuageInfo(lcp^.mat_rec_id, lcp^.guage_id);
showMessage(GetMultiLingalMsg(90227, 'Delete Guage is Finished!'));
end;
mrNO: Exit;
end;
end;
end;
procedure TfrmMatGuageInfo.btnUpdateClick(Sender: TObject);
var lcp,lcpNew: PGuageInfo;
Item: TListItem;
iBool: Boolean;
i: integer;
begin
if ((FSelectedItem=nil) or (FSelectedItem.Data=nil)) then exit;
lcp := FSelectedItem.Data;
if lcp = nil then exit;
iBool := dm_Inventory.isExists_invGuageID(lcp.mat_rec_id,trunc(edtGuageID.Value));
if iBool then
begin
Case MessageDlg('你確定要更新規格名稱嗎!',mtConfirmation,[mbYES,mbNO],0) of
mrYes: begin
dm_inventory.Update_MatGuageInfo(lcp^.mat_rec_id,lcp^.guage_id,trim(edtGuageName.Text));
showMessage(GetMultiLingalMsg(90229, 'Update Guage is Finished!'));
exit;
end;
mrNo: exit;
end;
end
else begin
New(lcpNew);
ZeroMemory(lcpNew, Sizeof(TGuageInfo));
CopyMemory(lcpNew, lcp, Sizeof(TGuageInfo));
strPCopy(lcpNew^.guage_name, trim(edtGuageName.Text));
lcpNew^.guage_id := trunc(edtGuageID.Value);
Item := LstViewGuage.Items.Add;
Item.Data := lcpNew;
for i:= 0 to FColCnt-1 do Item.SubItems.Add('');
Item.Caption := dm_inventory.GetMaterialCode(lcpNew^.mat_rec_id);
Item.SubItems[00] := dm_inventory.GetMaterialName(lcpNew^.mat_rec_id);
Item.SubItems[01] := intToStr(lcpNew^.guage_id);
Item.SubItems[02] := lcpNew^.guage_name;
Item.SubItems[03] := InttoStr(lcpNew^.safety);
Item.SubItems[04] := FloattoStr(lcpNew^.weight_pcs);
Item.Selected := true;
Item.Focused := true;
MakeItemCaption(Item);
Set_currItem(Item);
dm_inventory.Insert_NewGuage_ID(lcpNew^.mat_rec_id,lcpNew^.guage_id,trim(edtGuageName.Text));
showMessage(GetMultiLingalMsg(90226, 'New Guage is Finished!'));
Exit;
end;
end;
procedure TfrmMatGuageInfo.btnSafetyClick(Sender: TObject);
var lcp: PGuageInfo;
Item: TListItem;
begin
if ((FSelectedItem=nil) or (FSelectedItem.Data=nil)) then exit;
lcp := FSelectedItem.Data;
if lcp = nil then exit;
lcp^.safety := floor(edtSafety.Value);
lcp^.max_stkqty := floor(edtMax.Value);
lcp^.fixed_buyqty := floor(edtFixed.Value);
lcp^.buy_days := floor(edtBuyDays.Value);
lcp^.weight_pcs := (edtWeightpcs.Value);
dm_inventory.Update_MatSafety(lcp^.mat_rec_id,lcp^.guage_id,lcp^.safety,lcp^.max_stkqty,lcp^.fixed_buyqty,lcp^.buy_days,lcp^.weight_pcs);
lcp^.safety := floor(edtSafety.Value);
lcp^.max_stkqty := floor(edtMax.Value);
lcp^.fixed_buyqty := floor(edtFixed.Value);
lcp^.buy_days := floor(edtBuyDays.Value);
lcp^.weight_pcs := (edtWeightpcs.Value);
LstViewGuage.Selected.Data := lcp;
Item := LstViewGuage.Selected;
MakeItemCaption(Item);
Set_currItem(Item);
Item.Selected := true;
showMessage(GetMultiLingalMsg(90231, 'Update Safety Quantity is Finished!'));
dm_inventory.Read_MatGuageInfo(FGuageList);
end;
procedure TfrmMatGuageInfo.btnQueryClick(Sender: TObject);
begin
dm_Inventory.Read_MatGuageInfo(FMatGuageList);
Set_QueryedList(FQueryList);
CreateTabs_ByGroup(rdogrpTitle.ItemIndex, FQueryList);
tabsGroupChange(Self);
end;
procedure TfrmMatGuageInfo.btnExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmMatGuageInfo.btnQuitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmMatGuageInfo.cbxMatClassDropDown(Sender: TObject);
begin
dm_inventory.Read_shizai_kubunTocbx(cbxMatClass);
end;
procedure TfrmMatGuageInfo.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 TfrmMatGuageInfo.SetMultilingual;
begin
self.Caption := GetMultiLingalMsg(90172, 'Material Guage Manager');
edtFMatCode.EditLabel.Caption := GetMultiLingalMsg(90121, 'Start Material Code');
edtEMatCode.EditLabel.Caption := GetMultiLingalMsg(90122, 'End Material Code');
edtMatClass.EditLabel.Caption := GetMultiLingalMsg(90123, 'Material Class');
chkMaterial.Caption := GetMultiLingalMsg(90286, 'Only Show Material');
edtMatID.EditLabel.Caption := GetMultiLingalMsg(90028, 'Material Code');
lblGuageID.Caption := GetMultiLingalMsg(90030, 'Guage ID');
edtGuageName.EditLabel.Caption:= GetMultiLingalMsg(90031, 'Guage Name');
lblSafety.Caption := GetMultiLingalMsg(90201, 'Safety Quantity');
lblMax.Caption := GetMultiLingalMsg(90202, 'Max Quantity');
lblFixed.Caption := GetMultiLingalMsg(90203, 'Fixed Quantity');
lblBuyDays.Caption := GetMultiLingalMsg(90204, 'Buy Days');
lblWghPcs.Caption := GetMultiLingalMsg(90273, 'Weight/PCS');
btnQuery.Caption := GetMultiLingalMsg(90115, 'Filter Query');
btnNew.Caption := GetMultiLingalMsg(90276, 'New guage');
btnDelete.Caption := GetMultiLingalMsg(90277, 'Delete guage');
btnUpdate.Caption := GetMultiLingalMsg(90278, 'Update guage');
btnSafety.Caption := GetMultiLingalMsg(90279, 'Safety Define');
btnQuit.Caption := GetMultiLingalMsg(90025, 'Exit');
end;
/////////////////////////////////////////////////////////////////////
procedure TfrmMatGuageInfo.edtMatClassChange(Sender: TObject);
var iMatAttr: integer;
begin
edtMatClassName.Text := dm_inventory.Get_Shizai_KubunName2(trim(edtMatClass.Text));
iMatAttr := dm_inventory.Get_Shizai_KubunAttr(trim(edtMatClass.Text));
if iMatAttr=1 then chkMaterial.checked := true
else chkMaterial.checked := false;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -