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

📄 matbalain.~pas

📁 文件包含程序源原文件
💻 ~PAS
📖 第 1 页 / 共 4 页
字号:
procedure TfrmMatBalaIn.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] := dm_inventory.Get_GuageName(lcP^.MAT_RID,lcp^.GUAGE_ID);
  Item.SubItems[03] := dm_inventory.GetUnitTypeName(lcP^.MAT_RID);
  Item.SubItems[04] := FormatFloat('#,##0.00',abs(lcP^.UNT_PRICE));
  Item.SubItems[05] := FormatFloat('#,##0.00',abs(lcP^.QUANTITY));
  Item.SubItems[06] := FormatFloat('#,##0.00',abs(lcP^.TTL_PRICE));
  Item.SubItems[07] := dm_inventory.GetShigenName(lcp^.SUP_CD);
  Item.SubItems[08] := dm_inventory.GetShigenName(lcp^.MAK_CD);
  Item.SubItems[09] := dm_inventory.GetOrderNo(lcp^.ODR_RID);
  Item.SubItems[10] := dm_inventory.GetPartCode(lcp^.ODR_RID,lcp^.PAT_RID);
  Item.SubItems[11] := formatdatetime('yy/mm/dd',lcp^.date);
  Item.SubItems[12] := lcp^.PAPERNO;
  Item.SubItems[13] := lcp^.ISS_PAPERNO;
  Item.SubItems[14] := lcp^.NOTE;
end;


procedure TfrmMatBalaIn.rdoGroupByClick(Sender: TObject);
begin
  Read_IOChangedList;
end;

procedure TfrmMatBalaIn.tabsGroupChange(Sender: TObject);
begin
  inherited;
  dm_Inventory.Read_IOHistory(FMatIOList,trim(edtStkID.Text),4,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 TfrmMatBalaIn.cbxGuageDropDown(Sender: TObject);
begin
  inherited;
  dm_Inventory.Read_GuageInfoToCbx(edtMatCode,cbxGuage);
end;

procedure TfrmMatBalaIn.cbxStkChange(Sender: TObject);
begin
  inherited;
  edtStkID.Text   := Get_PosBeforeStr(cbxStk.Text,'_');
  edtStkName.Text := Get_PosAfterStr(cbxStk.Text,'_');
  edtStkID.SetFocus;
end;

Procedure TfrmMatBalaIn.Excel_StockInList(sList: TList);
var
  V: Variant;
  Sheet: Variant;
  Filename: string;
  ExePath:  string;
  j,k : integer;
  lcp: PINVENTORY;
  fixrow: Integer;
begin
  try
    V := CreateOleObject('Excel.Application');
  except
    Screen.Cursor:=crDefault;
    MessageDlg('Excel Application startup Error.', mtError, [mbOk],0);
    Exit;
  end;

  V.Visible := True;

  Screen.Cursor:=crDefault;

  Filename:= ExtractFilePath(application.ExeName) + 'inpaper.XLS';

  if FileExists(Filename)=False then begin
    MessageDlg(Filename + ExtractFilePath(FileName)+'this parth is not exist file!',
    mtError, [mbOk],0);
    Exit;
  end;

  V.Workbooks.Open(FileName,,true,,,,,,,,,,); // Readonly = True
  V.WorkSheets[1].Activate;

  V.Sheets.Add;
  V.WorkSheets[2].Select;
  V.WorkSheets[2].Activate;
  V.ActiveSheet.Cells.Select;
  V.Selection.Copy;
  V.WorkSheets[1].Activate;
  V.WorkSheets[1].Select;
  V.ActiveSheet.Cells.Select;
  V.ActiveSheet.Paste;
  V.ActiveSheet.Name := 1;
  k := 0;
  fixrow := StrToIntDef(frmMain.IniData.PAPERNO,20);
  for j := (k*fixrow) to sList.Count-1 do begin
    lcp := sList[j];

    if (j-(k*fixrow)+1) > fixrow then
    begin
      inc(K);
      V.Sheets.Add;
      V.WorkSheets[k+2].Select;
      V.WorkSheets[k+2].Activate;
      V.ActiveSheet.Cells.Select;
      V.Selection.Copy;
      V.WorkSheets[1].Activate;
      V.WorkSheets[1].Select;
      V.ActiveSheet.Cells.Select;
      V.ActiveSheet.Paste;
      V.ActiveSheet.Name := k+1;
    end;

    ///////////////////////////////////
    V.ActiveSheet.PageSetUp.Orientation    := xlPortrait;     //-- xlLandscape;       //--
    V.ActiveSheet.PageSetUp.PrintTitleRows := '$1:$3';        //--
    V.ActiveSheet.PageSetUp.CenterFooter   := '&9&P/&N Page'; //--
    V.ActiveSheet.PageSetUp.Order          := xlOverThenDown; //--
    //--
    V.ActiveSheet.PageSetUp.LeftMargin   := V.InchesToPoints(7/25.4); // 15mm
    V.ActiveSheet.PageSetUp.RightMargin  := V.InchesToPoints(7/25.4); // 15mm
    V.ActiveSheet.PageSetUp.TopMargin    := V.InchesToPoints(15/25.4); // 15mm
    V.ActiveSheet.PageSetUp.BottomMargin := V.InchesToPoints(15/25.4); // 15mm
    V.ActiveSheet.PageSetUp.HeaderMargin := V.InchesToPoints(10/25.4); // 10mm
    V.ActiveSheet.PageSetUp.FooterMargin := V.InchesToPoints(10/25.4); // 10mm
    ///////////////////////////////////////
    V.ActiveSheet.Cells[3, 3].NumberFormatLocal := '@';
    case rdoGroupBy.ItemIndex of
      0: V.ActiveSheet.Cells[ 3, 1].Value := GetMultiLingalMsg(90236,'Issue Paper');
      1: V.ActiveSheet.Cells[ 3, 1].Value := GetMultiLingalMsg(90053,'Paper NO');
      2: V.ActiveSheet.Cells[ 3, 1].Value := GetMultiLingalMsg(90052,'IN Date');
      3: V.ActiveSheet.Cells[ 3, 1].Value := GetMultiLingalMsg(90028,'Material Code');
      4: V.ActiveSheet.Cells[ 3, 1].Value := GetMultiLingalMsg(90060,'IN Man');
      5: V.ActiveSheet.Cells[ 3, 1].Value := GetMultiLingalMsg(90249,'Balance Stock In');
      6: V.ActiveSheet.Cells[ 3, 1].Value := GetMultiLingalMsg(90079,'ALL');
    end;
    V.ActiveSheet.Cells[3, 3].NumberFormatLocal := '@';
    Case rdoGroupBy.ItemIndex of
      0: V.ActiveSheet.Cells[ 3, 3].Value := strpas(lcp^.ISS_PAPERNO);
      1: V.ActiveSheet.Cells[ 3, 3].Value := strPas(lcp^.PAPERNO);
      2: V.ActiveSheet.Cells[ 3, 3].Value := FormatDatetime('yyyy/mm/dd',lcp^.DATE);
      3: V.ActiveSheet.Cells[ 3, 3].Value := dm_inventory.GetMaterialCode(lcp^.MAT_RID);
      4: V.ActiveSheet.Cells[ 3, 3].Value := dm_inventory.Get_EmpName(lcp^.INPUT_EMPID);
      5: V.ActiveSheet.Cells[ 3, 3].Value := GetMultiLingalMsg(90249,'Balance Stock In');
      6: V.ActiveSheet.Cells[ 3, 3].Value := 'ALL';
    end;
    V.ActiveSheet.Cells[ 3, 3].Font.Size := 9;

    V.ActiveSheet.Cells[2, 10].NumberFormatLocal := '@';
    V.ActiveSheet.Cells[2, 10].Value := strpas(lcp^.PAPERNO);
    V.ActiveSheet.Cells[2, 10].Font.Size := 9;
    V.ActiveSheet.Cells[3, 10].NumberFormatLocal := '@';
    V.ActiveSheet.Cells[3, 10].Value := FormatDatetime('yyyy/mm/dd hh:mm',Now);
    V.ActiveSheet.Cells[3, 10].Font.Size := 9;

    //--
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 2].NumberFormatLocal := '@';
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 2].Value := dm_inventory.GetOrderNo(lcp^.ODR_RID);
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 2 ].Font.Size := 9;

    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 3].NumberFormatLocal := '@';
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 3].Value := dm_inventory.GetPartCode(lcp^.ODR_RID,lcp^.PAT_RID);
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 3].Font.Size := 9;

    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 4].NumberFormatLocal := '@';
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 4].Value := dm_inventory.GetMaterialName(lcp^.MAT_RID);
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 4].Font.Size := 9;

    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 5].NumberFormatLocal := '@';
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 5].Value := dm_inventory.Get_GuageName(lcp^.MAT_RID,lcp^.GUAGE_ID);
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 5].Font.Size := 9;

    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 6].NumberFormatLocal := '@';
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 6].Value := dm_inventory.GetUnitTypeName(lcp^.MAT_RID);
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 6].Font.Size := 9;

    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 7].NumberFormatLocal:='#,##0.00';
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 7].Value := FormatFloat('#,##0.00', lcp^.UNT_PRICE);
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 7 ].Font.Size := 9;

    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 8].NumberFormatLocal:='#,##0.00';
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 8].Value := FormatFloat('#,##0.00', lcp^.QUANTITY);
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 8 ].Font.Size := 9;

    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 9].NumberFormatLocal:='#,##0.00';
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 9].Value := FormatFloat('#,##0.00', lcp^.TTL_PRICE);
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 9].Font.Size := 9;

    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 10].NumberFormatLocal:='@';
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 10].Value := FormatDatetime('yyyy/mm/dd', lcp^.DATE);
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 10].Font.Size := 9;

    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 11].NumberFormatLocal:='@';
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 11].Value := strpas(lcp^.NOTE);
    V.ActiveSheet.Cells[ j-(k*fixrow)+5, 11].Font.Size := 9;

    V.ActiveSheet.Cells[fixrow+7, 10].NumberFormatLocal:='@';
    V.ActiveSheet.Cells[fixrow+7, 10].Value := dm_inventory.Get_EmpName(lcp^.INPUT_EMPID);
    V.ActiveSheet.Cells[fixrow+7, 10].Font.Size := 9;
  end;
end;

procedure TfrmMatBalaIn.btnPaperClick(Sender: TObject);
begin
  inherited;
  Excel_StockInList(FQueryList);
end;

procedure TfrmMatBalaIn.btnMatQryClick(Sender: TObject);
var agp: PShizai;
    iGuage_ID: Integer;
    lcp: PInventory;
    View: TInventory;
begin
  inherited;
  lcp := Selected;
  frmMaterialQry := TfrmMaterialQry.Create(self);
  frmMaterialQry.chkMaterial.Checked := true;
  frmMaterialQry.chkMaterial.Visible := true;
  frmMaterialQry.chkOther.Visible    := false;
  frmMaterialQry.chkOther.Checked    := false;
  frmMaterialQry.ShowModal;
  if frmMaterialQry.ModalResult = mrOK then
  begin
    edtMatCode.SetFocus;
    edtMatCode.SelectAll;
    agp := frmMaterialQry.FSelectedShizai;
    edtMatCode.Text := frmMaterialQry.FSelectedShizai.SHIZAI_CD;
    lcp^.MAT_RID := dm_inventory.GetMaterialRID(trim(edtMatCode.Text));
    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);
    edtGuageID.Value := iGuage_ID;
    lcp^.GUAGE_ID    := iGuage_ID;
    SetUpdateList(lcP^.REC_ID, @lcP^.GUAGE_ID, LongInt(@View.GUAGE_ID)-LongInt(@View), 0, lcP);
  end;
  dm_inventory.Read_MatGuageInfo(FGuageList);
  ControlChange(edtMatCode);
  ControlChange(edtGuageID);
  edtMatName.SetFocus;
end;

procedure TfrmMatBalaIn.cbxGuageChange(Sender: TObject);
var lcp: PInventory;
    View: TInventory;
begin
  inherited;
  lcp := Selected;
  edtGuageID.Value   := StrToIntDef(Get_PosBeforeStr(cbxGuage.Text,'_'),0);
  edtGuageName.Text  := Get_PosAfterStr(cbxGuage.Text,'_');
  edtGuageID.SetFocus;
  lcp^.GUAGE_ID := StrToIntDef(edtGuageID.Text,0);
  SetUpdateList(lcP^.REC_ID, @lcP^.GUAGE_ID, LongInt(@View.GUAGE_ID)-LongInt(@View), 0, lcP);
end;

procedure TfrmMatBalaIn.SetMultilingual;
begin
  self.Caption           := GetMultiLingalMsg(90249,'Material Balance In');

  lblStockID.Caption     := GetMultiLingalMsg(90027,'Stock ID');
  lblindate.Caption      := GetMultiLingalMsg(90292,'Balance Date');
  lblpaper.Caption       := GetMultiLingalMsg(90239,'Out Paper NO');
  lblIsspaper.Caption    := GetMultiLingalMsg(90236,'Issure Paper');
  lblCode.Caption        := GetMultiLingalMsg(90028,'Material Code');
  lblName.Caption        := GetMultiLingalMsg(90029,'Material Name');
  lblInGuage.Caption     := GetMultiLingalMsg(90089,'Bala Guage ID');
  lblunitPrice.Caption   := GetMultiLingalMsg(90033,'Unit Price');
  lblINQuantity.Caption  := GetMultiLingalMsg(90250,'Balance Quantity');
  lblINAmount.Caption    := GetMultiLingalMsg(90251,'Balance Amount');

  lblRemarks.Caption     := GetMultiLingalMsg(90065,'Remarks');

  btnNew.Caption         := GetMultiLingalMsg(90066,'New');
  btnSave.Caption        := GetMultiLingalMsg(90067,'Save');
  btnDelete.Caption      := GetMultiLingalMsg(90068,'Delete');
  ckbNew.Caption         := GetMultiLingalMsg(90069,'Continuation Input Mode');

  rdoGroupBy.Caption     := GetMultiLingalMsg(90070,'Group By');
  rdoGroupBy.Items[0]    := GetMultiLingalMsg(90236,'Issure Paper');
  rdoGroupBy.Items[1]    := GetMultiLingalMsg(90241,'by Out Paper NO');
  rdoGroupBy.Items[2]    := GetMultiLingalMsg(90292,'by Balancd In Date');
  rdoGroupBy.Items[3]    := GetMultiLingalMsg(90075,'by Material Code');
  rdoGroupBy.Items[4]    := GetMultiLingalMsg(90294,'by IN Man');
  rdoGroupBy.Items[5]    := GetMultiLingalMsg(90293,'by IN Type');
  rdoGroupBy.Items[6]    := GetMultiLingalMsg(90079,'ALL');
end;

procedure TfrmMatBalaIn.btnGuageDefClick(Sender: TObject);
var lcp: PInventory;
    WRID: LongInt;
    iBool: Boolean;
    View: TInventory;
begin
  if Selected = nil then Exit;
  lcP := Selected;
  iBool := true;
  WRID := dm_Inventory.GetMaterialRID(trim(edtMatCode.Text));
  if WRID > 0 then iBool := true else iBool := false;
  if not(iBool) then
  begin
    MessageDlg(GetMultiLingalMsg(90207, 'this Material Code is not Exists!'),mtWarning,[mbOK],0);
    Exit;
  end;

  if not(dm_inventory.isExists_GuageInfo(WRID,trim(edtGuageName.Text))) then
  begin
    if trim(edtGuageName.Text)<>'' then begin
    dm_inventory.Insert_MatGuageInfo(WRID,trim(edtGuageName.Text));
    dm_inventory.Read_MatGuageInfo(FGuageList);
    lcp^.GUAGE_ID := dm_inventory.Get_GuageID(WRID, trim(edtGuageName.Text));
    edtGuageID.Value := lcp^.GUAGE_ID;
    SetUpdateList(lcP^.REC_ID, @lcP^.GUAGE_ID, LongInt(@View.GUAGE_ID)-LongInt(@View), 0, lcP);
    showMessage(GetMultiLingalMsg(90263,'New Guage is Finished!'));
    end
    else begin
      MessageDlg(GetMultiLingalMsg(90262, 'Guage Name is Null!'),mtError,[mbOK],0);
      Exit;
    end;
  end;
end;

procedure TfrmMatBalaIn.edtGuageNameExit(Sender: TObject);
var iBool: Boolean;
    iGuage_ID: Integer;
begin
  MatRID := dm_inventory.GetMaterialRID(trim(edtMatCode.Text));
  iBool:=dm_inventory.isExists_GuageInfo(MatRID,trim(edtGuageName.Text));
  if iBool then
      edtGuageID.Value := dm_inventory.Get_GuageID(MatRID, trim(edtGuageName.Text))
  else begin
    dm_inventory.Insert_MatGuageInfo(MatRID, trim(edtGuageName.Text));
    dm_inventory.Read_MatGuageInfo(FGuageList);
    iGuage_ID := dm_Inventory.Get_GuageID(MatRID, trim(edtGuageName.Text));
    edtGuageID.value := iGuage_ID;
    edtGuageID.SetFocus;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -