unit U_WJGMDList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu; type TfrmWJGMDList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; RMDBHZ: TRMDBDataSet; CDS_HZ: TClientDataSet; CDS_PRT: TClientDataSet; TBDel: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TBAdd: TToolButton; TBEdit: TToolButton; Label3: TLabel; Label4: TLabel; spcode: TEdit; Label7: TLabel; QCOrderNo: TEdit; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1Column22: TcxGridDBColumn; ToolButton1: TToolButton; v1Column5: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column20: TcxGridDBColumn; v1Column23: TcxGridDBColumn; v1Column24: TcxGridDBColumn; FactoryName: TComboBox; v1Column17: TcxGridDBColumn; cxTabControl1: TcxTabControl; ToolButton2: TToolButton; ToolButton3: TToolButton; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure SPIDKeyPress(Sender: TObject; var Key: Char); procedure SPIDChange(Sender: TObject); procedure SPSpecChange(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure spcodeChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure v1Column19PropertiesEditValueChanged(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); private procedure InitGrid(); { Private declarations } public canshu1, canshu2: string; { Public declarations } end; var frmWJGMDList: TfrmWJGMDList; implementation uses U_DataLink, U_RTFun, U_WJGCKInPut, U_FjList_RZ; {$R *.dfm} procedure TfrmWJGMDList.FormDestroy(Sender: TObject); begin frmWJGMDList := nil; end; procedure TfrmWJGMDList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmWJGMDList.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; end; procedure TfrmWJGMDList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(',ISSC=cast((case when isnull((select count(WBID) from TP_File X where X.WBID=A.spid and X.TFType=''外加工入库''),0)>0 then 1 else 0 end) as bit)'); SQL.Add(',MONEY1=(isnull(PRICE,0)*QTY+isnull(XIAOGANGFEI,0)+isnull(SHANGJIFEI,0))'); sql.Add(' from CK_SXPB_CR A'); sql.add(' where A.CRTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add(' and A.CRTime<=''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''''); sql.Add(' and isnull(CKName,'''')=''外加工'''); SQL.Add(' and CRFlag=''入库'' '); if cxTabControl1.TabIndex = 0 then begin SQL.Add('AND ChkStatus is NULL '); end else if cxTabControl1.TabIndex = 1 then begin SQL.Add('AND ChkStatus =''1'' '); end; if CANSHU1 <> '录入' then begin SQL.Add('AND (FILLER =' + QuotedStr(Trim(dname))); sql.Add('or (select lidan from JYOrder_Main c where c.orderno=a.qcorderno)=' + QuotedStr(Trim(dname))); sql.Add('or (select ywy from JYOrder_Main c where c.orderno=a.qcorderno)=' + QuotedStr(Trim(dname))); sql.Add(')'); end; Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmWJGMDList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmWJGMDList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmWJGMDList.TBCloseClick(Sender: TObject); begin WriteCxGrid(Self.Caption, Tv1, '外加工仓库1111'); Close; end; procedure TfrmWJGMDList.FormShow(Sender: TObject); var FSJ: string; begin if Trim(CANSHU1) = '低权限' then begin v1Column19.Visible := False; v1Column19.Hidden := True; v1Column20.Visible := False; v1Column20.Hidden := True; v1Column23.Visible := False; v1Column23.Hidden := True; v1Column24.Visible := False; v1Column24.Hidden := True; end; if Trim(canshu2) = '查看' then begin TBAdd.Visible := False; TBDel.Visible := False; TBEdit.Visible := False; end else begin TBAdd.Visible := True; TBDel.Visible := True; TBEdit.Visible := True; end; if canshu1 = '录入' then begin ToolButton2.Visible := true; end; ReadCxGrid(Self.Caption, Tv1, '外加工仓库1111'); FSJ := 'select distinct(FactoryName) Name from CK_SXPB_CR order by FactoryName '; SInitComBoxBySql(ADOQueryCmd, FactoryName, False, FSJ); // FILLER.Text := Trim(DName); //InitGrid(); end; procedure TfrmWJGMDList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('外加工入库列表', cxGrid2); end; procedure TfrmWJGMDList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); end; end; procedure TfrmWJGMDList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmWJGMDList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmWJGMDList.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('SPID').AsString) <> '' then begin if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then begin Application.MessageBox('平移入库的数据为自动生成,不能删除!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where FZSPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); sql.Add(' and CRQtyFlag=-1'); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已有出库记录,不能删除!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete CK_SXPB_CR where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); sql.Add(' delete YF_Money_CR where YFID= (SELECT YFSID FROM YF_Money_CR_Sub WHERE YFPZNO=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''')'); sql.Add(' delete YF_Money_CR_Sub where YFPZNO=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); // ShowMessage(SQL.Text); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除异常!', '提示', 0); end; end else begin CDS_Main.Delete; end; end; procedure TfrmWJGMDList.TBAddClick(Sender: TObject); begin try frmWJGCKInPut := TfrmWJGCKInPut.Create(Application); with frmWJGCKInPut do begin FBCId := ''; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmWJGCKInPut.Free; end; end; procedure TfrmWJGMDList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then begin Application.MessageBox('平移入库的数据为自动生成,不能修改!', '提示', 0); Exit; end; try frmWJGCKInPut := TfrmWJGCKInPut.Create(Application); with frmWJGCKInPut do begin FBCId := Trim(CDS_Main.fieldbyname('SPID').AsString); TBDel.Visible := False; TBAdd.Visible := False; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmWJGCKInPut.Free; end; end; procedure TfrmWJGMDList.SPIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin {if Length(Trim(SPID.Text))<4 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(',ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId)'); //sql.Add(' ,ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId )'); sql.Add(' from CK_SXPB_CR A'); sql.add(' where SPID like :SXID'); Parameters.ParamByName('SXID').Value:='%'+Trim(SXID.Text)+'%'; Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; } end; end; procedure TfrmWJGMDList.SPIDChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmWJGMDList.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmWJGMDList.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmWJGMDList.spcodeChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmWJGMDList.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try frmFjList_RZ := TfrmFjList_RZ.Create(Application); with frmFjList_RZ do begin fkeyNO := Trim(Self.CDS_Main.fieldbyname('SPID').AsString); fType := '外加工入库'; if ShowModal = 1 then begin end; end; finally frmFjList_RZ.Free; end; end; procedure TfrmWJGMDList.v1Column19PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_Main do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_SXPB_CR set ' + FFieldName + '=' + (Trim(mvalue))); sql.Add('where spid=' + quotedstr(Trim(CDS_Main.fieldbyname('spid').AsString))); sql.Add('update CK_SXPB_CR set '); sql.Add('MONEY=ISNULL(SHANGJIFEI,0)+ISNULL(XIAOGANGFEI,0)+ISNULL(PRICE,0)*QTY'); sql.Add('where spid=' + quotedstr(Trim(CDS_Main.fieldbyname('spid').AsString))); ExecSQL; end; if CDS_Main.FieldByName('ISJs').AsString = '是' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.YFID from YF_Money_CR_Sub A INNER JOIN YF_Money_CR B ON A.YFID=B.YFID where yfpzno=' + QuotedStr(Trim(CDS_Main.fieldbyname('SPID').AsString))); sql.Add('and B.status=1'); Open; end; if ADOQueryTemp.IsEmpty = FALSE then begin Application.MessageBox('财务数据已审核,请先撤销!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('EXEC P_Do_CWSC ''应付'',' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); ExecSQL; end; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmWJGMDList.ToolButton2Click(Sender: TObject); begin if CDS_Main.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin DisableControls; First; while CDS_Main.Locate('SSel', True, []) do begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_SXPB_CR SET ChkStatus=''1'',chker=''' + trim(DName) + ''',Chktime=getdate() '); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; if CDS_Main.FieldByName('ISJs').AsString = '是' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.YFID from YF_Money_CR_Sub A INNER JOIN YF_Money_CR B ON A.YFID=B.YFID where yfpzno=' + QuotedStr(Trim(CDS_Main.fieldbyname('SPID').AsString))); sql.Add('and B.status=1'); Open; end; if ADOQueryTemp.IsEmpty = FALSE then begin Application.MessageBox('财务数据已审核,请先撤销!', '提示', 0); ADOQueryCmd.Connection.RollbackTrans; Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('EXEC P_Do_CWSC ''应付'',' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); ExecSQL; end; end; CDS_Main.Delete; end; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('操作成功!', '提示信息', 0); InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmWJGMDList.ToolButton3Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_SXPB_CR SET ChkStatus=NULL,chker=null,Chktime=null '); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; application.MessageBox('撤销审核成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('撤销审核失败!', '提示信息', 0); end; end; procedure TfrmWJGMDList.cxTabControl1Change(Sender: TObject); begin ToolButton2.Visible := False; ToolButton3.Visible := False; TBEdit.Visible := false; TBDel.Visible := false; if cxTabControl1.TabIndex = 0 then begin v1Column19.Options.Editing := True; v1Column20.Options.Editing := True; v1Column23.Options.Editing := True; if canshu1 = '录入' then begin ToolButton2.Visible := true; end; TBEdit.Visible := true; TBDel.Visible := true; end else begin v1Column19.Options.Editing := False; v1Column20.Options.Editing := False; v1Column23.Options.Editing := False; if canshu1 = '录入' then begin ToolButton3.Visible := true; end; end; TBRafresh.Click(); end; end.