📄 tuneinvqty.pas
字号:
if not iGroupFind then begin //-- 没找到当前资料的抬头则新增tabs
FGroupValue[tmpTabIndex] := tmpGroupTitle;
inc(tmpTabIndex);
tabsGroup.Tabs.Add(tmpGroupTitle);
end;
end;
//////////////////////////////////////////////
//-- tabsGroup.TabIndex value
if tmpTabIndex >0 then tabsGroup.TabIndex := 0
else tabsGroup.TabIndex := -1;
end;
procedure TfrmTuneInvQty.Set_QryList_FromTabs(iTab: integer; FGroupList: TList);
function SetQryCheck(lcP: PINVENTORY): Boolean;
var i: Integer;
WDate: array[0..1] of TDateTime;
begin
Result := True;
//--
WDate[0] := strtodatetime(formatdatetime('yyyy/mm/dd',Now)+' 00:00:00');
WDate[1] := strtodatetime(formatdatetime('yyyy/mm/dd',Now)+' 23:59:59');
if ((WDate[0] > 2)and(WDate[0] > lcP^.DATE))or
((WDate[1] > 2)and(WDate[1] < lcP^.DATE))then begin
Result := False;
Exit;
end;
if (lcp^.KIND <> 3) then begin
result := false;
exit;
end;
end;
var i,j: integer;
lcP,lcPA: PINVENTORY;
iView: Boolean;
iBool: Boolean;
begin
if FMatIOList = nil then exit;
if FMatIOList.Count = 0 then exit;
FQueryList.Clear;
for i := 0 to FMatIOList.Count-1 do begin
lcP := FMatIOList.Items[i];
if not SetQryCheck(lcp) then continue;
iView := CheckViewData(lcP, rdoGroupBy.ItemIndex, TabsGroup.TabIndex);
if not iView then Continue;
FQueryList.Add(lcP);
end;
end;
Function TfrmTuneInvQty.CheckViewData(lcPA: Pointer; rdoTitleIndex,TabIndex: integer): boolean;
var
TmpV: Variant;
lcp: PINVENTORY;
begin
Result := False;
if lcPA=Nil then Exit;
lcp := LcpA;
if (rdoTitleIndex<0) or (TabIndex<0) then Exit;
if rdoTitleIndex = 7 then
begin
Result:=True;
Exit;
end;
case rdoTitleIndex of
0: TmPV := strPas(lcp^.STK_ID);
1: TmPV := strPas(lcp^.paperno);
2: TmPV := formatDatetime('yy/mm/dd',lcp^.DATE);
3: TmPV := dm_inventory.GetMaterialCode(lcp^.MAT_RID);
4: TmPV := dm_inventory.Get_EmpName(lcp^.INPUT_EMPID);
5: TmPV := dm_inventory.Get_IOIDName(lcp^.INOUT_ID,4);
6: TmPV := dm_Inventory.GetShigenName(lcp^.SUP_CD);
7: TmPV := 'ALL';
end;
try
if TmPV = FGroupValue[TabIndex] then Result:=True;
except
Result:=False;
end;
end;
procedure TfrmTuneInvQty.SetListView;
var i,j: Integer;
lcP: PINVENTORY;
Item: TListItem;
begin
Screen.Cursor := crHourGlass;
with ListViewMatIN.Items do begin
BeginUpdate;
Clear;
EndUpdate;
end;
SetListColumn(ListViewMatIN);
//--
ListViewMatIN.Items.BeginUpdate;
//FQueryList.Sort(TListSortCompare(@ListSortCompare));
FOnMakeItemCaption := True;
try
for i := 0 to FQueryList.Count-1 do begin
lcP := FQueryList.Items[i];
Item := ListViewMatIN.Items.Add;
for j := 0 to FColCnt-1 do Item.Subitems.Add('');
lcP^.ITEM := Item;
Item.Data := lcP;
MakeItemCaption(Item);
end;
finally
FOnMakeItemCaption := False;
ListViewMatIN.Items.EndUpdate;
if ListViewMatIN.Items.Count > 0 then ListViewMatIN.TopItem.Selected := True;
Screen.Cursor := crDefault;
end;
end;
function TfrmTuneInvQty.SetListColumn(sListView: TGradLineListView): Integer;
var
Column: TListColumn;
begin
sListView.Columns.Clear;
FColCnt := 0;
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 6;
Column.Caption := '仓库';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 12;
Column.Caption := '物料编码';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 12;
Column.Caption := '物料名称';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 6;
Column.Caption := '规格码';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 10;
Column.Caption := '调整规格';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 6;
Column.Caption := '单位';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 7;
Column.Caption := '单价';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 7;
Column.Caption := '调整量';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 9;
Column.Caption := '调整金额';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 8;
Column.Caption := '供应商';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 8;
Column.Caption := '调整日期';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 8;
Column.Caption := '调整单号';
Inc(FColCnt);
//--
Column := sListView.Columns.Add;
Column.Width := sListView.Font.Size * 10;
Column.Caption := '调整原因';
Inc(FColCnt);
end;
procedure TfrmTuneInvQty.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: PINVENTORY;
begin
if Item = nil then Exit;
if Item.Data = nil then Exit;
lcP := Item.Data;
Item.ImageIndex := lcP^.KIND;
Item.Caption := lcp^.STK_ID;
Item.SubItems[00] := dm_inventory.GetMaterialCode(lcP^.MAT_RID);
Item.SubItems[01] := lcP^.MAT_NM;
Item.SubItems[02] := IntToStr(lcp^.GUAGE_ID);
Item.SubItems[03] := dm_inventory.Get_GuageName(lcP^.MAT_RID,lcp^.GUAGE_ID);
Item.SubItems[04] := dm_inventory.GetUnitTypeName(lcP^.MAT_RID);
Item.SubItems[05] := FormatFloat('#,##0.00',abs(lcP^.UNT_PRICE));
Item.SubItems[06] := FormatFloat('#,##0.00',abs(lcP^.QUANTITY));
Item.SubItems[07] := FormatFloat('#,##0.00',abs(UserDecimalDefine(lcP^.TTL_PRICE,2)));
Item.SubItems[08] := dm_inventory.GetShigenName(lcp^.SUP_CD);
Item.SubItems[09] := formatDatetime('yy/mm/dd',lcp^.DATE);
Item.SubItems[10] := strpas(lcp^.PAPERNO);
Item.SubItems[11] := lcp^.NOTE;
end;
procedure TfrmTuneInvQty.rdoGroupByClick(Sender: TObject);
begin
Read_IOChangedList;
end;
procedure TfrmTuneInvQty.tabsGroupChange(Sender: TObject);
begin
inherited;
dm_Inventory.Read_IOHistory(FMatIOList,trim(edtStkID.Text),3,sFDate,sEDate);
Set_QueryedList(FQueryList);
Set_QryList_FromTabs(TabsGroup.TabIndex, FQueryList);
SetListView;
if ListViewMatIN.Items.Count>0 then begin
ListViewMatIN.ToPItem.Selected := False;
ListViewMatIN.ToPItem.Selected := True;
end;
end;
procedure TfrmTuneInvQty.cbxStkChange(Sender: TObject);
begin
inherited;
edtStkID.Text := Get_PosBeforeStr(cbxStk.Text,'_');
edtStkName.Text := Get_PosAfterStr(cbxStk.Text,'_');
edtStkID.SetFocus;
end;
procedure TfrmTuneInvQty.cbxOutGuageDropDown(Sender: TObject);
begin
inherited;
dm_Inventory.Read_GuageInfoToCbx(edtMatCode,cbxOutGuage);
end;
procedure TfrmTuneInvQty.cbxOutGuageChange(Sender: TObject);
var lcp: PInventory;
View: TInventory;
begin
inherited;
lcp := Selected;
edtIssGuageID.Value := StrToInt(Get_PosBeforeStr(cbxOutGuage.Text,'_'));
edtIssGuageName.Text := Get_PosAfterStr(cbxOutGuage.Text,'_');
edtIssGuageID.SetFocus;
lcp^.GUAGE_ID := StrToIntDef(edtIssGuageID.Text,0);
SetUpdateList(lcP^.REC_ID, @lcP^.GUAGE_ID, LongInt(@View.GUAGE_ID)-LongInt(@View), 0, lcP);
end;
procedure TfrmTuneInvQty.cbxMatOutDropDown(Sender: TObject);
begin
inherited;
dm_inventory.Read_IOIDInfo_ToCbx(cbxMatOut,4);
end;
procedure TfrmTuneInvQty.cbxMatOutChange(Sender: TObject);
var lcp: PInventory;
View: TInventory;
begin
inherited;
lcp := Selected;
edtMatOutID.Text := Get_PosBeforeStr(cbxMatOut.Text,'_');
edtOutIDName.Text := Get_PosAfterStr(cbxMatOut.Text,'_');
edtMatOutID.SetFocus;
strPCopy(lcp^.INOUT_ID,trim(edtMatOutID.Text));
SetUpdateList(lcP^.REC_ID, @lcP^.INOUT_ID, LongInt(@View.INOUT_ID)-LongInt(@View), 0, lcP);
end;
procedure TfrmTuneInvQty.cbxInputDropDown(Sender: TObject);
begin
inherited;
dm_inventory.Read_EmpInfoToCbx(cbxInput);
end;
procedure TfrmTuneInvQty.cbxInputChange(Sender: TObject);
var lcp: PInventory;
View: TInventory;
begin
inherited;
lcp := Selected;
edtInputEmpID.Text := Get_PosBeforeStr(cbxInput.Text,'_');
edtInputEmpName.Text := Get_PosAfterStr(cbxInput.Text,'_');
edtInputEmpID.SetFocus;
strPCopy(lcp^.INPUT_EMPID,trim(edtInputEmpID.Text));
SetUpdateList(lcP^.REC_ID, @lcP^.INPUT_EMPID, LongInt(@View.INPUT_EMPID)-LongInt(@View), 0, lcP);
end;
procedure TfrmTuneInvQty.btnMatQryClick(Sender: TObject);
var agp: PShizai;
iGuage_ID: Integer;
lcp: PInventory;
View: TInventory;
begin
inherited;
lcp := Selected;
frmMaterialQry := TfrmMaterialQry.Create(self);
frmMaterialQry.chkMaterial.Checked := false;
frmMaterialQry.chkMaterial.Visible := true;
frmMaterialQry.chkOther.Visible := true;
frmMaterialQry.chkOther.Checked := false;
frmMaterialQry.ShowModal;
if frmMaterialQry.ModalResult = mrOK then
begin
edtMatCode.SetFocus;
edtMatCode.SelectAll;
agp := frmMaterialQry.FSelectedShizai;
if agp=nil then exit;
edtMatCode.Text := frmMaterialQry.FSelectedShizai.SHIZAI_CD;
lcp^.MAT_RID := frmMaterialQry.FSelectedShizai.REC_ID;
SetUpdateList(lcP^.REC_ID, @lcP^.MAT_RID, LongInt(@View.MAT_RID)-LongInt(@View), 0, lcP);
//-- process guage_id use guage_name
if not(dm_inventory.isExists_GuageInfo(agp^.REC_ID, agp^.STANDARD)) then begin
dm_inventory.Insert_MatGuageInfo(agp^.REC_ID, agp^.STANDARD);
dm_inventory.Read_MatGuageInfo(FGuageList);
end;
iGuage_ID := dm_Inventory.Get_GuageID(agp^.REC_ID, agp^.STANDARD);
edtIssGuageID.Value := iGuage_ID;
lcp^.GUAGE_ID := iGuage_ID;
SetUpdateList(lcP^.REC_ID, @lcP^.GUAGE_ID, LongInt(@View.GUAGE_ID)-LongInt(@View), 0, lcP);
end;
ControlChange(edtMatCode);
edtMatName.SetFocus;
end;
procedure TfrmTuneInvQty.btnPaperClick(Sender: TObject);
begin
inherited;
//
end;
procedure TfrmTuneInvQty.cbxSuplierDropDown(Sender: TObject);
begin
inherited;
dm_inventory.Read_SupplyMake_ToCbx(cbxSuplier);
end;
procedure TfrmTuneInvQty.cbxSuplierChange(Sender: TObject);
var lcp: PInventory;
View: TInventory;
begin
inherited;
lcp := Selected;
edtSuplierCode.Value := StrToIntDef(Get_PosBeforeStr(cbxSuplier.Text,'_'),0);
lblSupplierNM.Text := Get_PosAfterStr(cbxSuplier.Text,'_');
edtSuplierCode.SetFocus;
lcp^.SUP_CD := Trunc(edtSuplierCode.Value);
SetUpdateList(lcP^.REC_ID, @lcP^.SUP_CD, LongInt(@View.SUP_CD)-LongInt(@View), 0, lcP);
end;
procedure TfrmTuneInvQty.cbxMakerDropDown(Sender: TObject);
begin
inherited;
dm_inventory.Read_SupplyMake_ToCbx(cbxMaker);
end;
procedure TfrmTuneInvQty.cbxMakerChange(Sender: TObject);
var lcp: PInventory;
View: TInventory;
begin
inherited;
lcp := Selected;
edtMakerCode.Value := StrToIntDef(Get_PosBeforeStr(cbxMaker.Text,'_'),0);
lblMakerNM.Text := Get_PosAfterStr(cbxMaker.Text,'_');
edtMakerCode.SetFocus;
lcp^.MAK_CD := Trunc(edtMakerCode.Value);
SetUpdateList(lcP^.REC_ID, @lcP^.MAK_CD, LongInt(@View.MAK_CD)-LongInt(@View), 0, lcP);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -