📄 invhisreport.~pas
字号:
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 + -