unit U_CPCKQEListSC; 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, IniFiles, jpeg, U_SLT, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, cxLookAndFeels, cxLookAndFeelPainters, dxBarBuiltInMenu, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges; type TfrmCPCKQEListSC = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: 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; TBCXQR: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; Label3: TLabel; Label4: TLabel; Label5: TLabel; CPName: TEdit; DQFactoryName: TEdit; DHID: TEdit; cxTabControl1: TcxTabControl; PopupMenu2: TPopupMenu; N3: TMenuItem; N4: TMenuItem; cxGrid1: TcxGrid; TV1: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; v1CRType: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn9: TcxGridDBColumn; cxGridDBColumn10: TcxGridDBColumn; cxGridDBColumn11: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; V2Column1: TcxGridDBColumn; V2Column2: TcxGridDBColumn; V2Column3: TcxGridDBColumn; ToolButton1: TToolButton; V2Column4: TcxGridDBColumn; Label6: TLabel; OrderNo: TEdit; IdHTTP1: TIdHTTP; CDS_WXTS: TClientDataSet; cxGridPopupMenu2: TcxGridPopupMenu; ToolButton2: TToolButton; ToolButton3: TToolButton; 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 TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBCXQRClick(Sender: TObject); procedure DHIDChange(Sender: TObject); procedure DQFactoryNameChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); private canshu1, canshu2, canshu3: string; procedure InitGrid(); procedure SetStatus(); procedure ReadINIFile(); procedure SendMessageQR(Mfsid, KeyWord2: string); procedure SendMessageBH(GdName, Mfsid, KeyWord2: string); { Private declarations } public { Public declarations } end; var frmCPCKQEListSC: TfrmCPCKQEListSC; var Mach: array of TfrmSlt; implementation uses U_DataLink, U_RTFun; {$R *.dfm} procedure TfrmCPCKQEListSC.SendMessageQR(Mfsid, KeyWord2: string); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select distinct A.* from SY_User A inner join SY_Purview B on A.UserID=B.UserID where A.Valid=''Y'' '); SQL.Add('and isnull(A.wxid,'''')<>'''''); SQL.Add(' and exists(select 1 from SY_ModuleSub X where X.ModuleID=B.ModuleID and X.ModuleSubID=B.ModuleSubID and X.FormName=''业务员确认'') '); // showmessage(sql.text); Open; end; SCreateCDS(ADOQueryTemp, CDS_WXTS); SInitCDSData(ADOQueryTemp, CDS_WXTS); if CDS_WXTS.IsEmpty then begin Application.MessageBox('用户未绑定微信,提交失败!', '提示信息', 0); Exit; end; CDS_WXTS.First; while not CDS_WXTS.eof do begin with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('select * from WeixinMessage where 1<>1'); Open; Append; FieldByName('MessageType').Value := 'OrderProgress'; FieldByName('MessageName').Value := '订单进度提醒'; FieldByName('Title').Value := '您有新的坯布到货仓库已确认,请及时处理'; FieldByName('URL').Value := 'pages/grayfabric/ywConfirm?fhid=' + Trim(Mfsid); FieldByName('OpenId').Value := Trim(CDS_WXTS.FieldByName('wxid').AsString); FieldByName('Status').Value := '0'; FieldByName('CreateDate').Value := FormatDateTime('yyyymmdd', SGetServerDateTime(ADOQueryTemp)); FieldByName('CreateTime').Value := FormatDateTime('HH:mm:ss', SGetServerDateTime(ADOQueryTemp)); FieldByName('BusinessId').Value := Trim(Mfsid); FieldByName('KeyWord1').Value := Trim(Mfsid); FieldByName('KeyWord2').Value := Trim(KeyWord2); Post; end; CDS_WXTS.Next; end; end; procedure TfrmCPCKQEListSC.SendMessageBH(GdName, Mfsid, KeyWord2: string); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select A.* from SY_User A where A.Valid=''Y'' '); SQL.Add('and isnull(A.wxid,'''')<>'''''); SQL.Add(' and UserName= ' + quotedstr(Trim(GdName))); Open; end; if ADOQueryTemp.IsEmpty then begin Application.MessageBox('用户未绑定微信,提交失败!', '提示信息', 0); Exit; end; ADOQueryTemp.First; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('select * from WeixinMessage where 1<>1'); Open; Append; FieldByName('MessageType').Value := 'OrderProgress'; FieldByName('MessageName').Value := '订单进度提醒'; FieldByName('Title').Value := '您有新的坯布到货被驳回,请及时处理'; FieldByName('URL').Value := 'pages/grayfabric/gdConfirm?fhid=' + Trim(Mfsid); FieldByName('OpenId').Value := Trim(ADOQueryTemp.FieldByName('wxid').AsString); FieldByName('Status').Value := '0'; FieldByName('CreateDate').Value := FormatDateTime('yyyymmdd', SGetServerDateTime(ADOQueryTemp)); FieldByName('CreateTime').Value := FormatDateTime('HH:mm:ss', SGetServerDateTime(ADOQueryTemp)); FieldByName('BusinessId').Value := Trim(Mfsid); FieldByName('KeyWord1').Value := Trim(Mfsid); FieldByName('KeyWord2').Value := Trim(KeyWord2); Post; end; end; procedure TfrmCPCKQEListSC.SetStatus(); begin TBCXQR.Visible := False; case cxTabControl1.TabIndex of 0: begin end; 1: begin TBCXQR.Visible := True; end; 2: begin end; end; end; procedure TfrmCPCKQEListSC.FormClose(Sender: TObject; var Action: TCloseAction); var i, j: integer; begin j := length(Mach); if j > 0 then begin for i := 0 to j - 1 do begin Mach[i].free; end; end; SetLength(Mach, 0); Action := caFree; end; procedure TfrmCPCKQEListSC.ReadINIFile(); var programIni: Tinifile; //配置文件名 FileName: string; begin FileName := ExtractFilePath(Paramstr(0)) + 'SYSTEMSET.INI'; programIni := Tinifile.create(FileName); server := programIni.ReadString('SERVER', '服务器地址', '127.0.0.1'); programIni.Free; end; procedure TfrmCPCKQEListSC.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; EndDate.DateTime := SGetServerDate(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); canshu3 := Trim(DParameters3); end; procedure TfrmCPCKQEListSC.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select * from XH_Cloth_DH '); sql.Add(' where DHType=''成品出库'' '); sql.add(' and DHDate>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add(' and DHDate<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''''); case cxTabControl1.TabIndex of 0: begin sql.Add(' and ChkStatus =''已发货'' '); end; 1: begin sql.Add(' and ChkStatus =''仓库已确认'' '); end; 2: begin sql.Add(' and ChkStatus =''已驳回'' '); end; end; Open; end; SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCPCKQEListSC.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmCPCKQEListSC.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmCPCKQEListSC.TBCloseClick(Sender: TObject); begin WriteCxGrid(Trim(self.Caption), Tv1, '成品发货登记'); Close; end; procedure TfrmCPCKQEListSC.FormShow(Sender: TObject); begin ReadCxGrid(Trim(self.Caption), Tv1, '成品发货登记'); SetStatus(); end; procedure TfrmCPCKQEListSC.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); end; end; procedure TfrmCPCKQEListSC.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmCPCKQEListSC.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmCPCKQEListSC.TBCXQRClick(Sender: TObject); var strsql: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('ssel', True, []) = False then begin Application.MessageBox('请选择到货数据!', '提示', 0); Exit; end; while CDS_Main.Locate('ssel', True, []) do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' update XH_Cloth_DH '); sql.Add(' set ChkStatus=''已发货'', Chker=null'); sql.Add(' ,ChkTime=null'); sql.Add(' where DHID=' + quotedstr(Trim(CDS_Main.fieldbyname('DHID').AsString))); sql.Add(' and ChkStatus=''仓库已确认'''); ExecSQL; end; strsql := 'ID:' + Trim(CDS_Main.fieldbyname('DHId').AsString) + '确认人:' + Trim(CDS_Main.fieldbyname('Chker').AsString) + '确认时间:' + Trim(CDS_Main.fieldbyname('ChkTime').AsString); with ADOQueryCmd do begin Close; sql.Clear; 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(strsql))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; CDS_Main.Delete; end; Application.MessageBox('撤销审核成功!', '提示', 0); end; procedure TfrmCPCKQEListSC.DHIDChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCPCKQEListSC.DQFactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCPCKQEListSC.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmCPCKQEListSC.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(self.Caption, cxGrid1); end; procedure TfrmCPCKQEListSC.ToolButton3Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; ModalResult := 1; end; end.