unit U_CPCKlist; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset, cxTextEdit, cxPC, cxCheckBox, Menus, Clipbrd, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter, cxNavigator, dxBarBuiltInMenu, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue; type TfrmCPCKlist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1P_CodeName: TcxGridDBColumn; v1P_SPEC: TcxGridDBColumn; v1P_MF: TcxGridDBColumn; v1P_KZ: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1Note: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1CRType: TcxGridDBColumn; v1CRTime: TcxGridDBColumn; v1CRNO: TcxGridDBColumn; v1Filler: TcxGridDBColumn; v1FillTime: TcxGridDBColumn; Label2: TLabel; OrderNo: TEdit; CRType: TComboBox; Label5: TLabel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; v1MJID: TcxGridDBColumn; v1P_Color: TcxGridDBColumn; ADOPrint: TADOQuery; RMXLSExport1: TRMXLSExport; v1P_Code: TcxGridDBColumn; v1inoutNO: TcxGridDBColumn; inoutNo: TEdit; Label7: TLabel; v1custName: TcxGridDBColumn; v1TocustName: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; RMDB_Main: TRMDBDataSet; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyle2: TcxStyle; cxStyle_gridRow: TcxStyle; cxStyle_gridFoot: TcxStyle; cxStyle_gridHead: TcxStyle; cxStyle_gridGroupBox: TcxStyle; cxStyle_yellow: TcxStyle; cxStyle_Red: TcxStyle; cxStyle_fontBlack: TcxStyle; cxStyle_fontclFuchsia: TcxStyle; cxStyle_fontclPurple: TcxStyle; cxStyle_fontclGreen: TcxStyle; cxStyle_fontclBlue: TcxStyle; cxStyle_fontclTeal: TcxStyle; cxStyle_fontclOlive: TcxStyle; Label8: TLabel; ToFactoryName: TEdit; ADOQueryMain: TADOQuery; v1Column18: TcxGridDBColumn; RM1: TRMGridReport; v1Column5: TcxGridDBColumn; P_CodeName: TEdit; P_Color: TEdit; Label10: TLabel; Label11: TLabel; P_Code: TEdit; Label14: TLabel; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; Panel2: TPanel; cxGrid2: TcxGrid; TvMX: TcxGridDBTableView; cxGridDBColumn8: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; CDS_MX: TClientDataSet; DS_MX: TDataSource; ToolButton3: TToolButton; ComboBox1: TComboBox; vMXColumn1: TcxGridDBColumn; v1Column3: TcxGridDBColumn; ToolButton4: TToolButton; v1Column4: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; Label4: TLabel; RKNO: TEdit; Label6: TLabel; ganghao: TEdit; ToolButton5: TToolButton; N3: TMenuItem; cxTabControl1: TcxTabControl; ToolButton1: TToolButton; chk1: TCheckBox; Label3: TLabel; fromFactoryName: TEdit; Tv1Column1: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure v1Column6CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure cxGridDBColumn8PropertiesEditValueChanged(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure vMXColumn1PropertiesEditValueChanged(Sender: TObject); procedure TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); procedure ToolButton4Click(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure ToolButton5Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); procedure chk1Click(Sender: TObject); // procedure Panel1Click(Sender: TObject); // procedure OrderNoKeyPress(Sender: TObject; var Key: Char); private procedure InitGrid(); procedure InitMXGrid(MCRNO: string); function YSData(ADO: TADOQuery): Boolean; function YSData_Other(ADO: TADOQuery; fYFName: string; fmoney: double): Boolean; procedure SetStatus(); { Private declarations } public canshu1, canshu2: string; { Public declarations } end; var frmCPCKlist: TfrmCPCKlist; implementation uses U_DataLink, U_Fun10, U_ZDYHelp, U_CPCk, U_CPTQCk, U_CPCKMXLR, U_SysLogHelp; {$R *.dfm} procedure TfrmCPCKlist.InitMXGrid(MCRNO: string); begin with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from CK_ML_CRMX where CRNO=' + quotedstr(Trim(MCRNO))); sql.Add(' order by MXID'); Open; end; SCreateCDS20(ADOQueryTmp, CDS_MX); SInitCDSData20(ADOQueryTmp, CDS_MX); end; procedure TfrmCPCKlist.SetStatus(); begin TBEdit.Visible := False; TBDel.Visible := False; if Trim(canshu1) = '高权限' then begin TBEdit.Visible := true; TBDel.Visible := true; end else begin end; end; function TfrmCPCKlist.YSData(ADO: TADOQuery): Boolean; var CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou, cust: string; begin Result := False; with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(ADO.fieldbyname('custName').asstring) + ''' and YFDefFlag1=0 '); Open; end; if not ADOQueryTmp.IsEmpty then begin CRID := ADOQueryTmp.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('ZdyStr1').Value := '应收收'; Post; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''产品销售'' '); execsql; end; with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''产品销售'' '); Open; end; if ADOQueryTmp.IsEmpty then begin if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then begin Application.MessageBox('取应收最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value := Trim(YFID); FieldByName('YFTypeId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('CRID').Value := StrToInt(CRID); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '应收款登记'; FieldByName('CRFlag').Value := '应收收'; FieldByName('QtyFlag').Value := 1; FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', ADO.fieldbyname('CRTime').AsDateTime)); FieldByName('YFType').Value := '自动生成'; FieldByName('ps').Value := ADO.fieldbyname('RollNum').AsFloat; FieldByName('Qty').Value := ADO.fieldbyname('Qty').AsFloat; FieldByName('Price').Value := ADO.fieldbyname('Price').AsFloat; FieldByName('Money').Value := ADO.fieldbyname('Money').AsFloat; FieldByName('BBMoney').Value := ADO.fieldbyname('Money').AsFloat; FieldByName('HuiLv').Value := 1; FieldByName('BZType').Value := '人民币'; FieldByName('QtyUnit').Value := Trim(ADO.fieldbyname('QtyUnit').AsString); FieldByName('ComTaiTou').Value := Trim(cust); FieldByName('YFName').Value := '产品销售'; FieldByName('MainId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('subID').Value := Trim(ADO.fieldbyname('CRID').AsString); FieldByName('status').Value := '0'; Post; end; end else begin YFID := Trim(ADOQueryTmp.fieldbyname('YFID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID=' + CRID); ExecSQL; end; Result := True; end; function TfrmCPCKlist.YSData_Other(ADO: TADOQuery; fYFName: string; fmoney: double): Boolean; var CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou, cust: string; begin Result := False; with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(ADO.fieldbyname('custName').asstring) + ''' and YFDefFlag1=0 '); Open; end; if not ADOQueryTmp.IsEmpty then begin CRID := ADOQueryTmp.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('ZdyStr1').Value := '应收收'; Post; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''' + trim(fYFName) + ''' '); execsql; end; with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''' + trim(fYFName) + ''' '); Open; end; if ADOQueryTmp.IsEmpty then begin if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then begin Application.MessageBox('取应收最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value := Trim(YFID); FieldByName('YFTypeId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('CRID').Value := StrToInt(CRID); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '应收款登记'; FieldByName('CRFlag').Value := '应收收'; FieldByName('QtyFlag').Value := 1; FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', ADO.fieldbyname('CRTIme').AsDateTime)); FieldByName('YFType').Value := '自动生成'; FieldByName('Qty').Value := 1; FieldByName('Price').Value := fmoney; FieldByName('Money').Value := fmoney; FieldByName('BBMoney').Value := fmoney; FieldByName('HuiLv').Value := 1; FieldByName('BZType').Value := '人民币'; FieldByName('QtyUnit').Value := '个'; FieldByName('ComTaiTou').Value := Trim(cust); FieldByName('YFName').Value := fYFName; FieldByName('MainId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('subID').Value := Trim(ADO.fieldbyname('CRID').AsString); FieldByName('status').Value := '0'; Post; end; end else begin YFID := Trim(ADOQueryTmp.fieldbyname('YFID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID=' + CRID); ExecSQL; end; Result := True; end; procedure TfrmCPCKlist.InitGrid(); var STRwhere, Pwhere: string; begin STRwhere := ''; Pwhere := SGetFilters(Panel1, 1, 2); begin if trim(Pwhere) <> '' then STRwhere := STRwhere + ' and ' + trim(Pwhere); end; try with ADOQueryMain do begin close; sql.Clear; sql.Add(' select A.* '); sql.Add(' ,RKNO=(select X.INoutNo from CK_ML_CR X where X.MJID=A.MJID and CRFlag=''入库'') '); sql.Add(' ,RKQty=(select Qty from CK_ML_CR X where X.MJID=A.MJID and X.CRFLAG=''入库'') '); SQL.Add(' from CK_ML_CR A where 1=1'); if orderno.Text = '' then begin sql.Add(' and CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add(' and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); end; sql.Add(' and CKName=''成品'' and CRFlag=''出库'' and A.valid=''Y'' '); sql.Add(STRwhere); if cxTabControl1.TabIndex <> 2 then begin if cxTabControl1.TabIndex = 0 then SQL.Add(' and not exists(select YFPZNO from YF_Money_CR_Sub X where X.YFPZNO=A.CRNO ) ') else SQL.Add(' and exists(select YFPZNO from YF_Money_CR_Sub X where X.YFPZNO=A.CRNO )'); end; open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally end; end; procedure TfrmCPCKlist.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := cafree; end; procedure TfrmCPCKlist.FormDestroy(Sender: TObject); begin frmCPCKlist := nil; end; procedure TfrmCPCKlist.TBAddClick(Sender: TObject); begin frmCPCk := TfrmCPCk.create(self); with frmCPCk do begin fkeyNo := ''; fType := 0; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo', trim(fkeyNo), []); end; free; end; end; procedure TfrmCPCKlist.OrderNoChange(Sender: TObject); begin if ADOQuerymain.Active = False then Exit; SDofilter(ADOQuerymain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQuerymain, CDS_Main); SInitCDSData20(ADOQuerymain, CDS_Main); end; procedure TfrmCPCKlist.FormShow(Sender: TObject); begin readCxGrid(self.Caption, Tv1, '面料仓库'); SetStatus(); InitGrid(); end; procedure TfrmCPCKlist.FormCreate(Sender: TObject); begin EndDate.Date := SGetServerDate10(ADOQueryTmp); BegDate.Date := EndDate.Date - 30; cxGrid1.Align := alclient; canshu1 := trim(DParameters1); end; procedure TfrmCPCKlist.TBCloseClick(Sender: TObject); begin writeCxGrid(self.Caption, Tv1, '面料仓库'); close; end; procedure TfrmCPCKlist.TBEditClick(Sender: TObject); begin if cds_main.IsEmpty then exit; if cds_main.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if (cds_main.fieldbyname('Filler').AsString <> trim(DName)) and (trim(canshu2) <> '高权限') then begin application.MessageBox('操作员不正确,不能修改!', '提示信息', MB_ICONERROR); exit; end; with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('select * from yf_money_cr_sub E WHERE e.yfpzno=' + QuotedStr(Trim(CDS_Main.FieldByName('CRNO').AsString))); open; end; if ADOQueryTmp.IsEmpty = False then begin Application.MessageBox('财务数据已生成,禁止操作!', '提示', 0); Exit; end; if Trim(cds_main.fieldbyname('ISRCCK').AsString) = '染厂发货' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_ML_CR set ISXG=1 where CRNO=' + quotedstr('R' + Trim(CDS_Main.FieldByName('MJID').AsString))); ExecSQL; end; frmCPTQCk := TfrmCPTQCk.create(self); with frmCPTQCk do begin fkeyNo := self.cds_main.fieldbyname('CRNO').AsString; fType := 1; InoutNo.Enabled := false; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('CRNO', trim(fkeyNo), []); end; free; end; end else begin frmCPCk := TfrmCPCk.create(self); with frmCPCk do begin fkeyNo := self.cds_main.fieldbyname('CRNO').AsString; fType := 1; InoutNo.Enabled := false; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('CRNO', trim(fkeyNo), []); end; free; end; end; end; procedure TfrmCPCKlist.TBDelClick(Sender: TObject); var YFID, CRID, note: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Trim(CDS_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try if Trim(CDS_Main.FieldByName('CRNO').AsString) <> '' then begin ADOQueryCmd.Connection.BeginTrans; with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('select * from yf_money_cr_sub E WHERE e.yfpzno=' + QuotedStr(Trim(CDS_Main.FieldByName('CRNO').AsString))); open; end; if ADOQueryTmp.IsEmpty = False then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('财务数据已生成,禁止操作!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; SQL.Clear; if Trim(CDS_Main.FieldByName('ISRCCK').AsString) = '染厂发货' then begin sql.Add('update CK_ML_CR set Valid=''N'' where MJID=' + quotedstr(Trim(CDS_Main.FieldByName('MJID').AsString))); end else begin sql.Add('update CK_ML_CR set Valid=''N'' where CRNO=' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString))); end; sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('码单删除'))); sql.Add(',' + quotedstr(trim('单号:' + trim(CDS_Main.FieldByName('inoutNO').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('exec P_Up_MLKc ' + quotedstr(Trim(CDS_Main.FieldByName('MJID').AsString))); Open; end; if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '操作失败' then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库数量超出库存数量!', '提示', 0); Exit; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; end; except Application.MessageBox('数据删除失败!', '提示信息', 0); end; end; procedure TfrmCPCKlist.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmCPCKlist.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmCPCKlist.v1Column6CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); var colIdx0, colIdx1: integer; begin colIdx0 := tv1.GetColumnByFieldName('CRNO').Index; if (ARow1.Values[colIdx0] = ARow2.Values[colIdx0]) then AAreEqual := True else AAreEqual := False; end; procedure TfrmCPCKlist.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmCPCKlist.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmCPCKlist.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitMXGrid(Trim(CDS_Main.fieldbyname('CRNO').AsString)); end; procedure TfrmCPCKlist.cxGridDBColumn8PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(TvMX.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_MX do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_ML_CRMX set ' + FFieldName + ' = ' + mvalue); sql.Add(' where MXID=' + quotedstr(Trim(CDS_MX.FieldByName('MXID').AsString))); ExecSQL; end; TvMX.Controller.EditingController.ShowEdit(); end; procedure TfrmCPCKlist.ToolButton3Click(Sender: TObject); var fPrintFile: string; begin if CDS_Main.IsEmpty then EXIT; if CDS_Main.fieldbyname('ssel').value <> true then begin Application.MessageBox('没有选择数据或勾选数据不准确!', '提示', 0); Exit; end; if ((trim(ComboBox1.Text) = '普通码单') or (trim(ComboBox1.Text) = '单价码单')) then begin with ADOPrint do begin Close; sql.Clear; sql.add('exec P_Print_CPCKMD1 ' + quotedstr(Trim(CDS_Main.fieldbyname('inoutNO').AsString))); Open; end; end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ComboBox1.Text) + '.rmf'; if FileExists(fPrintFile) then begin // RMVariables['KHName']:=Trim(CDS_Main.fieldbyname('CustomerNoName').AsString); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_ML_CR set DYCS=DYCS+1 where CRNO=' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('码单打印'))); sql.Add(',' + quotedstr(trim('单号:' + trim(CDS_Main.FieldByName('inoutNO').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; with CDS_Main do begin Edit; FieldByName('DYCS').Value := CDS_Main.fieldbyname('DYCS').AsInteger + 1; Post; end; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmCPCKlist.vMXColumn1PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(TvMX.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_MX do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_ML_CRMX set ' + FFieldName + ' = ' + QuotedStr(Trim(mvalue))); sql.Add(' where MXID=' + quotedstr(Trim(CDS_MX.FieldByName('MXID').AsString))); ExecSQL; end; TvMX.Controller.EditingController.ShowEdit(); end; procedure TfrmCPCKlist.TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); var FValue: string; FBounds: TRect; begin FBounds := AViewInfo.Bounds; if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then begin ACanvas.FillRect(FBounds); ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1); FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1); InflateRect(FBounds, -1, -1); //Platform specific. May not work on Linux. ACanvas.Font.Color := clBlack; ACanvas.Brush.Style := bsClear; ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); ADone := True; end; end; procedure TfrmCPCKlist.ToolButton4Click(Sender: TObject); begin frmCPTQCk := TfrmCPTQCk.create(self); with frmCPTQCk do begin fkeyNo := ''; fType := 0; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo', trim(fkeyNo), []); end; free; end; end; procedure TfrmCPCKlist.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('ISRCCK').index] = '染厂发货' then begin if AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('RKQty').index] <= 0 then begin ACanvas.Brush.Color := $00FFFF; end else begin ACanvas.Font.Color := $0000FF; end; end; end; procedure TfrmCPCKlist.ToolButton5Click(Sender: TObject); begin if CDS_Main.fieldbyname('ssel').value <> true then begin Application.MessageBox('没有选择数据或勾选数据不准确!', '提示', 0); Exit; end; frmCPCKMXLR := TfrmCPCKMXLR.create(self); with frmCPCKMXLR do begin fkeyNo := self.cds_main.fieldbyname('CRNO').AsString; FMXGangHao := self.cds_main.fieldbyname('GangHao').AsString; fType := 0; if showmodal = 1 then begin self.InitGrid(); self.CDS_Main.Locate('CRNO', fkeyNo, []) end; free; end; end; procedure TfrmCPCKlist.N3Click(Sender: TObject); begin Clipboard.SetTextBuf(PChar(Trim(CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString))); end; procedure TfrmCPCKlist.cxTabControl1Change(Sender: TObject); begin initGrid(); end; procedure TfrmCPCKlist.ToolButton1Click(Sender: TObject); begin frmSysLogHelp := TfrmSysLogHelp.create(self); with frmSysLogHelp do begin fModel := self.caption; // facction:='生产指示单删除'; showmodal; free; end; end; procedure TfrmCPCKlist.OrderNoKeyPress(Sender: TObject; var Key: Char); var filterstr: string; begin if Key = #13 then begin initgrid(); end; end; procedure TfrmCPCKlist.chk1Click(Sender: TObject); begin if chk1.Checked = true then begin OrderNo.Tag := 1; end else if chk1.Checked = False then begin OrderNo.tag := 2; end; InitGrid(); end; end.