?? matbalain.pas
字號:
Inc(FColCnt);
end;
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 + -