unit U_ContractList_CX; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxPC, cxButtonEdit, cxTextEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, 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, dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; type TfrmContractList_CX = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; v1OrdDate: TcxGridDBColumn; v1DeliveryDate: TcxGridDBColumn; v1OrdPerson1: TcxGridDBColumn; v1ConNo: TcxGridDBColumn; v1MPRTSpec: TcxGridDBColumn; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; v1CustomerNoName: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; PopupMenu1: TPopupMenu; N2: TMenuItem; ToolButton1: TToolButton; v1OrdDefStr1: TcxGridDBColumn; v1Column1: TcxGridDBColumn; ToolButton2: TToolButton; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; v1Column4: TcxGridDBColumn; PopupMenu2: TPopupMenu; N11: TMenuItem; N21: TMenuItem; N31: TMenuItem; Panel1: TPanel; Label1: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label9: TLabel; Label12: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CustomerNoName: TEdit; ConPerson1: TEdit; MPRTCodeName: TEdit; ConNo: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; v1Column2: TcxGridDBColumn; Label2: TLabel; v1Column3: TcxGridDBColumn; Tchk: TToolButton; Tnochk: TToolButton; cxSplitter1: TcxSplitter; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; v1OrderUnit: TcxGridDBColumn; v1PRTPrice: TcxGridDBColumn; v1PriceUnit: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ADOQuerySub: TADOQuery; DataSource2: TDataSource; KHConNO: TEdit; Label3: TLabel; ToolButton3: TToolButton; Label6: TLabel; v1ConMoney: TcxGridDBColumn; ThreeColorBase: TcxStyleRepository; SHuangSe: TcxStyle; SkyBlue: TcxStyle; Default: TcxStyle; QHuangSe: TcxStyle; Red: TcxStyle; FontBlue: TcxStyle; TextSHuangSe: TcxStyle; FonePurple: TcxStyle; FoneClMaroon: TcxStyle; FoneRed: TcxStyle; RowColor: TcxStyle; handBlack: TcxStyle; cxBlue: TcxStyle; cxStyle1: TcxStyle; TSsel: TToolButton; TV2Column1: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure CustomerNoNameChange(Sender: TObject); procedure ConNoKeyPress(Sender: TObject; var Key: Char); procedure TchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton3Click(Sender: TObject); procedure TSselClick(Sender: TObject); private DQdate: TDateTime; fuserName: string; procedure InitGrid(); procedure InitForm(); function DelData(): Boolean; procedure SetStatus(); procedure InitSub(); { Private declarations } public FFInt, FCloth: Integer; canshu1: string; { Public declarations } end; var frmContractList_CX: TfrmContractList_CX; implementation uses U_DataLink, U_ConInPut, U_Fun, U_ZDYHelp, U_FjList_RZ; {$R *.dfm} procedure TfrmContractList_CX.InitSub(); begin ADOQuerySub.Close; if Order_Main.IsEmpty then exit; with ADOQuerySub do begin close; sql.Clear; sql.Add('select * from JYOrderCon_sub '); sql.Add('where mainID =' + quotedstr((Order_Main.fieldbyname('mainID').AsString))); open; end; end; procedure TfrmContractList_CX.SetStatus(); begin end; procedure TfrmContractList_CX.FormDestroy(Sender: TObject); begin frmContractList_CX := nil; end; procedure TfrmContractList_CX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmContractList_CX.FormCreate(Sender: TObject); begin cxgrid1.Align := alClient; DQdate := SGetServerDate(ADOQueryTemp); canshu1 := trim(DParameters1); end; procedure TfrmContractList_CX.TBCloseClick(Sender: TObject); begin Close; if FCloth <> 1 then WriteCxGrid('订单合同列表', Tv1, '生产指示单管理') else WriteCxGrid('订单合同列表选择', Tv1, '生产指示单管理'); end; procedure TfrmContractList_CX.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add('select A.*,A.ConNo ConNoM '); SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId) '); SQL.Add(',ConMoney=(select Sum(PRTOrderQty*PRTPrice) from JYOrderCon_Sub B where B.MainId=A.MainId) '); SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId) '); SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId) '); SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId) '); sql.Add(' from JYOrderCon_Main A '); SQL.Add('where A.OrdDate>=''' + FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + ''''); SQL.Add('and A.OrdDate<''' + FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1) + ''''); if Trim(canshu1) <> '高权限' then begin sql.Add('and A.Filler=''' + Trim(DName) + ''''); end; // sql.Add(' and A.status=''1'' '); // ShowMessage(sql.text); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmContractList_CX.InitForm(); begin if FCloth <> 1 then ReadCxGrid('订单合同列表', Tv1, '生产指示单管理') else ReadCxGrid('订单合同列表选择', Tv1, '生产指示单管理'); BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 30; EndDate.DateTime := SGetServerDate10(ADOQueryTemp); v1Column4.Visible := False; InitGrid(); end; procedure TfrmContractList_CX.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TfrmContractList_CX.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; try frmConInPut := TfrmConInPut.Create(Application); with frmConInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); if ShowModal = 1 then begin end; end; finally frmConInPut.Free; end; end; procedure TfrmContractList_CX.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if DelData() then begin Order_Main.Delete; end; end; function TfrmContractList_CX.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete JYOrderCon_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); sql.Add('delete JYOrderCon_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').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(Order_Main.FieldByName('conNo').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmContractList_CX.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv1, ADOQueryMain, '生产指示单列表'); end; procedure TfrmContractList_CX.TBRafreshClick(Sender: TObject); begin InitGrid(); TBFind.Click; end; procedure TfrmContractList_CX.TBAddClick(Sender: TObject); var maxno: string; begin try frmConInPut := TfrmConInPut.Create(Application); with frmConInPut do begin PState := 0; FMainId := ''; if ShowModal = 1 then begin end; end; finally frmConInPut.Free; end; end; procedure TfrmContractList_CX.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmContractList_CX.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin TSsel.Click; end; procedure TfrmContractList_CX.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmContractList_CX.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmContractList_CX.N1Click(Sender: TObject); var fPrintFile: string; Porderno: string; begin if Order_Main.IsEmpty then Exit; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\生产指示单10.rmf'; SDofilter(ADOQueryMain, ' OrderNoM=''' + Trim(Order_Main.fieldbyname('OrderNoM').AsString) + ''''); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); Porderno := Trim(Order_Main.fieldbyname('OrderNoM').AsString); if FileExists(fPrintFile) then begin //RMVariables['begindate']:=begindate.DateTime; //RMVariables['enddate']:=enddate.DateTime; //RMVariables['printtime']:=Now; //RMVariables['printer']:=Trim(gUserName); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\生产指示单10.rmf'), '提示', 0); end; SDofilter(ADOQueryMain, ''); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); Order_Main.Locate('ordernoM', Porderno, []); end; procedure TfrmContractList_CX.N2Click(Sender: TObject); var fPrintFile: string; Porderno: string; begin if Order_Main.IsEmpty then Exit; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\生产指示单.rmf'; SDofilter(ADOQueryMain, ' OrderNoM=''' + Trim(Order_Main.fieldbyname('OrderNoM').AsString) + ''''); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); Porderno := Trim(Order_Main.fieldbyname('OrderNoM').AsString); if FileExists(fPrintFile) then begin //RMVariables['begindate']:=begindate.DateTime; //RMVariables['enddate']:=enddate.DateTime; //RMVariables['printtime']:=Now; //RMVariables['printer']:=Trim(gUserName); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\生产指示单.rmf'), '提示', 0); end; SDofilter(ADOQueryMain, ''); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); Order_Main.Locate('ordernoM', Porderno, []); end; procedure TfrmContractList_CX.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmConInPut := TfrmConInPut.Create(Application); with frmConInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); ToolBar2.Visible := False; TBSave.Visible := False; ScrollBox1.Enabled := False; Tv1.OptionsSelection.CellSelect := False; if ShowModal = 1 then begin end; end; finally frmConInPut.Free; end; end; procedure TfrmContractList_CX.ToolButton2Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmConInPut := TfrmConInPut.Create(Application); with frmConInPut do begin PState := 1; CopyInt := 99; FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); if ShowModal = 1 then begin end; end; finally frmConInPut.Free; end; end; procedure TfrmContractList_CX.CustomerNoNameChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TfrmContractList_CX.ConNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if Length(Tedit(Sender).Text) < 1 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add('select A.*,A.ConNo ConNoM '); SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId) '); SQL.Add(',ConMoney=(select Sum(PRTOrderQty*PRTPrice) from JYOrderCon_Sub B where B.MainId=A.MainId) '); SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId) '); SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId) '); SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId) '); SQL.Add('where OrdDate>=''' + '1899-01-01' + ''''); SQL.Add('and OrdDate<''' + '2050-01-01' + ''''); sql.Add(' and MPRTType=''外销'' '); if Trim(DParameters1) <> '高权限' then begin sql.Add('and A.Filler=''' + Trim(DName) + ''''); end; sql.Add(' and ' + Tedit(Sender).Name + ' like ' + quotedstr(trim('%' + trim(Tedit(Sender).Text) + '%'))); // sql.Add(' and ConNo like '''+'%'+Trim(ConNoM.Text)+'%'+''''); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmContractList_CX.TchkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update JYOrdercon_Main SET status=''1'' '); sql.Add('where mainID=' + quotedstr(trim(Order_Main.fieldbyname('mainID').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(Order_Main.FieldByName('conNo').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('审核成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('审核失败!', '提示信息', 0); end; end; procedure TfrmContractList_CX.TnochkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update JYOrdercon_Main SET status=''0'' '); sql.Add('where mainID=' + quotedstr(trim(Order_Main.fieldbyname('mainID').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(Order_Main.FieldByName('conNo').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('撤销审核成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('撤销审核失败!', '提示信息', 0); end; end; procedure TfrmContractList_CX.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitSub(); end; procedure TfrmContractList_CX.ToolButton3Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmFjList_RZ := TfrmFjList_RZ.Create(Application); with frmFjList_RZ do begin // PState:=1; if Trim(DParameters1) <> '高权限' then cxButton1.Visible := false; fkeyNO := Trim(Self.Order_Main.fieldbyname('MainId').AsString); fType := '合同'; if ShowModal = 1 then begin end; end; finally frmFjList_RZ.Free; end; end; procedure TfrmContractList_CX.TSselClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; Modalresult := 1; end; end.