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

📄 invhisreport.~pas

📁 文件包含程序源原文件
💻 ~PAS
📖 第 1 页 / 共 4 页
字号:
  Column.Caption := GetMultiLingalMsg(90064,'Part Code');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 8;
  Column.Caption := GetMultiLingalMsg(90236,'Issure Paper');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 16;
  Column.Caption := GetMultiLingalMsg(90065,'Remarks');
  Inc(FColumnCnt);
    end;
  end;
end;

procedure TfrmHisReport.SetListViewColumn_InOutStk(sIndex: integer);
var
  Column: TListColumn;
begin
  LstViewQry.Columns.Clear;
  FColumnCnt := 0;
  case sIndex of
  0: begin
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 10;
  Column.Caption := GetMultiLingalMsg(90028,'Material Code');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 12;
  Column.Caption := GetMultiLingalMsg(90029,'Material Name');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 10;
  Column.Caption := GetMultiLingalMsg(90031,'Guage Name');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 6;
  Column.Alignment := taLeftJustify;
  Column.Caption := GetMultiLingalMsg(90032,'Unit Name');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90151, 'Init Stock Qty');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90152, 'Period IN Quantity');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption := GetMultiLingalMsg(90153, 'Period OUT Quantity');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90154, 'Period Return Quantity');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90155, 'Period Tune Quantity');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption := GetMultiLingalMsg(90156, 'Final Stock Qty');
  Inc(FColumnCnt);
  end;
  else begin
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 10;
  Column.Caption := GetMultiLingalMsg(90028,'Material Code');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 12;
  Column.Caption := GetMultiLingalMsg(90029,'Material Name');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 10;
  Column.Caption := GetMultiLingalMsg(90031,'Guage Name');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 6;
  Column.Alignment := taLeftJustify;
  Column.Caption := GetMultiLingalMsg(90032,'Unit Name');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90151, 'Init Stock Qty');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90157, 'Init Stock Amount');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90152, 'Period IN Quantity');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90158, 'Period IN Amount');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption := GetMultiLingalMsg(90153, 'Period OUT Quantity');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90159, 'Period OUT Amount');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90154, 'Period Return Quantity');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90160, 'Period Return Amount');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90155, 'Period Tune Quantity');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90161, 'Period Tune Amount');
  Inc(FColumnCnt);
  //--
  Column         := LstViewQry.Columns.Add;
  Column.Width   := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption := GetMultiLingalMsg(90156, 'Final Stock Quantity');
  Inc(FColumnCnt);
  //--
  Column           := LstViewQry.Columns.Add;
  Column.Width     := LstViewQry.Font.Size * 10;
  Column.Alignment := taRightJustify;
  Column.Caption   := GetMultiLingalMsg(90162, 'Final Stock Amount');
  Inc(FColumnCnt);
  end;
  end;   //end case
end;

Procedure TfrmHisReport.SetListView_InOutStk(sIndex: integer);
var i,j: Integer;
    lcP: PInOutStkList;
    lcpc: PInOutStkListOfCost;
    Item: TListItem;
begin
  Screen.Cursor  := crHourGlass;
  with LstViewQry.Items do begin
    BeginUpdate;
    Clear;
    EndUpdate;
  end;
  SetListViewColumn_InOutStk(sIndex);
  //--
  LstViewQry.Items.BeginUpdate;

  FOnMakeItemCaption := True;
  try
    case sIndex of
      0: begin
           for i := 0 to FInOutStkList.Count-1 do begin
             lcP  := FInOutStkList.Items[i];
             Item := LstViewQry.Items.Add;
             for j := 0 to FColumnCnt-1 do Item.Subitems.Add('');
             lcP^.ITEM := Item;
             Item.Data := lcP;
             MakeItemCaption_InOutStk(Item, sIndex);
           end;
         end;
         else begin
           for i := 0 to FInOutStkCostList.Count-1 do begin
             lcPc  := FInOutStkCostList.Items[i];
             Item := LstViewQry.Items.Add;
             for j := 0 to FColumnCnt-1 do Item.Subitems.Add('');
             lcPc^.ITEM := Item;
             Item.Data := lcPc;
             MakeItemCaption_InOutStk(Item, sIndex);
           end;
         end;
     end;

  finally
    FOnMakeItemCaption := False;
    LstViewQry.Items.EndUpdate;
    if LstViewQry.Items.Count > 0 then LstViewQry.TopItem.Selected := True;
    Screen.Cursor := crDefault;
  end;
end;

procedure TfrmHisReport.MakeItemCaption_InOutStk(Item: TListItem; sIndex: integer);
var lcP: PInOutStkList;
    lcpC: PInOutStkListOfCost;
begin
  if Item = nil then Exit;
  case sIndex of
    0: begin
         if Item.Data = nil then Exit;
         lcP := Item.Data;
         Item.Caption      := dm_inventory.GetMaterialcode(lcP^.mtl_rec_id);
         Item.SubItems[00] := dm_inventory.GetMaterialName(lcP^.mtl_rec_id);
         Item.SubItems[01] := dm_inventory.GetMaterialStandardName(lcP^.mtl_rec_id);
         Item.SubItems[02] := dm_inventory.GetUnitTypeName(lcP^.mtl_rec_id);
         Item.SubItems[03] := FormatFloat('#,##0.00',lcP^.initqty);
         Item.SubItems[04] := FormatFloat('#,##0.00',abs(lcP^.inqty));
         Item.SubItems[05] := FormatFloat('#,##0.00',abs(lcP^.outqty));
         Item.SubItems[06] := FormatFloat('#,##0.00',abs(lcP^.returnqty));
         Item.SubItems[07] := FormatFloat('#,##0.00',abs(lcP^.tuneqty));
         Item.SubItems[08] := FormatFloat('#,##0.00',abs(lcP^.stkqty));
       end;
       else begin
         if Item.Data = nil then Exit;
         lcPc := Item.Data;
         Item.Caption      := dm_inventory.GetMaterialcode(lcpC^.mtl_rec_id);
         Item.SubItems[00] := dm_inventory.GetMaterialName(lcpC^.mtl_rec_id);
         Item.SubItems[01] := dm_inventory.GetMaterialStandardName(lcpC^.mtl_rec_id);
         Item.SubItems[02] := dm_inventory.GetUnitTypeName(lcpC^.mtl_rec_id);
         Item.SubItems[03] := FormatFloat('#,##0.00',lcpC^.initqty);
         Item.SubItems[04] := FormatFloat('#,##0.00',lcpC^.initAmount);
         Item.SubItems[05] := FormatFloat('#,##0.00',abs(lcpC^.inqty));
         Item.SubItems[06] := FormatFloat('#,##0.00',abs(lcpC^.inAmount));
         Item.SubItems[07] := FormatFloat('#,##0.00',abs(lcpC^.outqty));
         Item.SubItems[08] := FormatFloat('#,##0.00',abs(lcpC^.outAmount));
         Item.SubItems[09] := FormatFloat('#,##0.00',abs(lcpC^.returnqty));
         Item.SubItems[10] := FormatFloat('#,##0.00',abs(lcpC^.returnAmount));
         Item.SubItems[11] := FormatFloat('#,##0.00',abs(lcpC^.tuneqty));
         Item.SubItems[12] := FormatFloat('#,##0.00',abs(lcpC^.tuneAmout));
         Item.SubItems[13] := FormatFloat('#,##0.00',abs(lcpC^.stkqty));
         Item.SubItems[14] := FormatFloat('#,##0.00',abs(lcpC^.stkAmout));
       end;
  end;
end;


procedure TfrmHisReport.btnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmHisReport.rdoManagerClick(Sender: TObject);
begin
  rdoReport.ItemIndex := -1;
  rdoTitle.Enabled    := false;
  rdoSortID.Enabled   := false;
  rdoSortID.ItemIndex := 2;
  btnQuery.Click;
end;

procedure TfrmHisReport.rdoSortIDClick(Sender: TObject);
begin
  case rdoSortID.ItemIndex of
    0: ListSortKey := 1;
    1: ListSortKey := 2;
    2: ListSortKey := 3;
    3: ListSortKey := 4;
    else ListSortKey := 3;
  end;
  btnQuery.Click;
end;

//////////////////////////////////////////////////////////////////////////////////////
procedure TfrmHisReport.PrintProc(iReport: Integer);
var V: OleVariant;
    RecCnt, ColCnt: Integer;
    i: Integer;
    S: string;
begin
  try
    V := CreateOleObject('Excel.Application');
  except
    MessageDlg('Excel Application is Created Error!', mtError, [mbOk], 0);
    Exit;
  end;
  V.Visible := True;
  V.WorkBooks.Add;
  V.WorkBooks[1].Activate;
  V.WorkSheets[1].Activate;

  RecCnt := 0; ColCnt := 0;
  ClipBoard.asText := CopyToClipBoard(RecCnt, ColCnt);

  V.ActiveSheet.PageSetUp.Orientation := xlLandscape;       //--
  V.ActiveSheet.PageSetUp.PrintTitleRows := '$1:$3';        //--
  V.ActiveSheet.PageSetUp.RightHeader :=                    //--
                '&9 '+FormatDateTime('yyyy/mm/dd hh:nn', Now) + ' ' + 'Print Date';
  V.ActiveSheet.PageSetUp.CenterFooter := '&9&P/&N Page';  //--
  V.ActiveSheet.PageSetUp.Order := xlOverThenDown;          //--
  //--
  V.ActiveSheet.PageSetUp.LeftMargin   := V.InchesToPoints(15/25.4); // 15mm
  V.ActiveSheet.PageSetUp.RightMargin  := V.InchesToPoints(15/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.Font.Size := 9;
  V.ActiveSheet.Cells[1, 1].HorizontalAlignment := xlLeft;
  V.ActiveSheet.Cells[1, 1].Font.Size := 20;
  V.ActiveSheet.Cells[1, 1].Font.Bold := True;
  V.ActiveSheet.Cells[1, 1].Font.Italic := True;
  V.ActiveSheet.Rows[3].HorizontalAlignment := xlCenter;
  V.ActiveSheet.Rows[3].Font.Size := 11;
  V.ActiveSheet.Rows[3].Font.Bold := True;
  //--
  V.ActiveSheet.Columns[2].NumberFormatLocal := '@';  //--
  V.ActiveSheet.Columns[7].NumberFormatLocal := '@';    //--
  V.ActiveSheet.Columns[8].NumberFormatLocal := '@';    //--
  V.ActiveSheet.Columns[9].NumberFormatLocal := '@';

  //--
  S := 'A3:'+Chr(Ord('A')+(ColCnt-1))+IntToStr(RecCnt+3);
  V.ActiveSheet.Range[S].Borders[xlDiagonalDown].LineStyle := xlNone;
  V.ActiveSheet.Range[S].Borders[xlDiagonalUp].LineStyle   := xlNone;
  V.ActiveSheet.Range[S].Borders[xlEdgeLeft].LineStyle  := xlContinuous;
  V.ActiveSheet.Range[S].Borders[xlEdgeLeft].Weight     := xlThin;
  V.ActiveSheet.Range[S].Borders[xlEdgeLeft].ColorIndex := xlAutomatic;
  V.ActiveSheet.Range[S].Borders[xlEdgeTop].LineStyle  := xlContinuous;
  V.ActiveSheet.Range[S].Borders[xlEdgeTop].Weight     := xlThin;
  V.ActiveSheet.Range[S].Borders[xlEdgeTop].ColorIndex := xlAutomatic;
  V.ActiveSheet.Range[S].Borders[xlEdgeBottom].LineStyle  := xlContinuous;
  V.ActiveSheet.Range[S].Borders[xlEdgeBottom].Weight     := xlThin;
  V.ActiveSheet.Range[S].Borders[xlEdgeBottom].ColorIndex := xlAutomatic;
  V.ActiveSheet.Range[S].Borders[xlEdgeRight].LineStyle  := xlContinuous;
  V.ActiveSheet.Range[S].Borders[xlEdgeRight].Weight     := xlThin;
  V.ActiveSheet.Range[S].Borders[xlEdgeRight].ColorIndex := xlAutomatic;
  V.ActiveSheet.Range[S].Borders[xlInsideVertical].LineStyle  := xlDot;
  V.ActiveSheet.Range[S].Borders[xlInsideVertical].Weight     := xlThin;
  V.ActiveSheet.Range[S].Borders[xlInsideVertical].ColorIndex := xlAutomatic;
  V.ActiveSheet.Range[S].Borders[xlInsideHorizontal].LineStyle  := xlDot;
  V.ActiveSheet.Range[S].Borders[xlInsideHorizontal].Weight     := xlThin;
  V.ActiveSheet.Range[S].Borders[xlInsideHorizontal].ColorIndex := xlAutomatic;

  S := 'A3:'+Chr(Ord('A')+(ColCnt-1))+'3';
  V.ActiveSheet.Range[S].Borders[xlDiagonalDown].LineStyle := xlNone;
  V.ActiveSheet.Range[S].Borders[xlDiagonalUp].LineStyle   := xlNone;
  V.ActiveSheet.Range[S].Borders[xlEdgeLeft].LineStyle  := xlContinuous;
  V.ActiveSheet.Range[S].Borders[xlEdgeLeft].Weight     := xlThin;
  V.ActiveSheet.Range[S].Borders[xlEdgeLeft].ColorIndex := xlAutomatic;
  V.ActiveSheet.Range[S].Borders[xlEdgeTop].LineStyle  := xlContinuous;
  V.ActiveSheet.Range[S].Borders[xlEdgeTop].Weight     := xlThin;
  V.ActiveSheet.Range[S].Borders[xlEdgeTop].ColorIndex := xlAutomatic;
  V.ActiveSheet.Range[S].Borders[xlEdgeBottom].LineStyle  := xlContinuous;
  V.ActiveSheet.Range[S].Borders[xlEdgeBottom].Weight     := xlThin;
  V.ActiveSheet.Range[S].Borders[xlEdgeBottom].ColorIndex := xlAutomatic;
  V.ActiveSheet.Range[S].Borders[xlEdgeRight].LineStyle  := xlContinuous;
  V.ActiveSheet.Range[S].Borders[xlEdgeRight].Weight     := xlThin;
  V.ActiveSheet.Range[S].Borders[xlEdgeRight].ColorIndex := xlAutomatic;
  //--
  V.ActiveSheet.Cells[3, 1].PasteSpecial;
  V.ActiveSheet.Cells[3, 1].Select;
  //--
  V.ActiveSheet.Columns['A:'+Chr(Ord('A')+(ColCnt-1))].EntireColumn.AutoFit;
  for i:=1 to ColCnt do
    V.ActiveSheet.Columns[i].ColumnWidth :=
      V.ActiveSheet.Columns[i].ColumnWidth + 2;
  //--
  V.ActiveSheet.Cells[1, 1].Value := '  ' + 'report List';

  if frmMain.IniData.isExcelPrint then V.Print;
end;


Procedure TfrmHisReport.Excel_inpaperList(sList: TList);
var
  V: Variant;
  Sheet: Variant;
  Filename: string;
  ExePath:  string;
  j,k : integer;
  lcp: PINVENTORY;
  fixrow: Integer;
begin
  try

⌨️ 快捷键说明

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