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

📄 tuneinvqty.pas

📁 文件包含程序源原文件
💻 PAS
📖 第 1 页 / 共 4 页
字号:

    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 + -