unit U_FHSQList; 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, RM_E_llPDF, cxDropDownEdit, cxTextEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter; type TfrmFHSQList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; v1OrdDate: TcxGridDBColumn; Order_Main: TClientDataSet; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; v1CustomerNoName: TcxGridDBColumn; ToolButton1: TToolButton; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; v1Column4: TcxGridDBColumn; Panel1: TPanel; Label4: TLabel; Label8: TLabel; Label12: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CustomerNoName: TEdit; MPRTCodeName: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; cxTabControl1: TcxTabControl; tchk: TToolButton; Tnochk: TToolButton; cxSplitter1: TcxSplitter; ADOQuerySub: TADOQuery; DataSource2: TDataSource; v1Column8: TcxGridDBColumn; Label2: TLabel; ClientDataSet2: TClientDataSet; cxGridPopupMenu2: TcxGridPopupMenu; CDS_Note: TClientDataSet; RM1: TRMGridReport; v1Column13: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column26: TcxGridDBColumn; ToolButton2: TToolButton; Panel5: TPanel; Label28: TLabel; Button5: TButton; Button6: TButton; DateTimePicker1: TDateTimePicker; Label11: TLabel; lblFSID: TLabel; v1Column27: TcxGridDBColumn; v1Column2: TcxGridDBColumn; btn1: TToolButton; cv1Column12: TcxGridDBColumn; cv1Column14: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; btn2: TToolButton; btn3: TToolButton; Label3: TLabel; status: TComboBox; ToolButton3: TToolButton; Label5: TLabel; CRTYPE: TComboBox; Tv1Column2: TcxGridDBColumn; Label6: TLabel; HZCODE: TEdit; Label7: TLabel; SALESMAN: TEdit; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Label10: TLabel; SalesClass: TEdit; Label14: TLabel; FSID: TEdit; Label15: TLabel; HZcolor: TEdit; Label16: TLabel; HZganghao: TEdit; cxPageControl1: TcxPageControl; cxTabSheet1: TcxTabSheet; cxTabSheet2: TcxTabSheet; cxGrid4: TcxGrid; TV3: TcxGridDBTableView; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn8: TcxGridDBColumn; cxGridDBColumn9: TcxGridDBColumn; cxGridDBColumn10: TcxGridDBColumn; cxGridDBColumn11: TcxGridDBColumn; cxGridDBColumn12: TcxGridDBColumn; cxGridDBColumn13: TcxGridDBColumn; cxGridDBColumn14: TcxGridDBColumn; cxGridDBColumn15: TcxGridDBColumn; cxGridDBColumn16: TcxGridDBColumn; cxGridDBColumn17: TcxGridDBColumn; cxGridDBColumn18: TcxGridDBColumn; cxGridDBColumn19: TcxGridDBColumn; cxGridDBColumn20: TcxGridDBColumn; cxGridDBColumn21: TcxGridDBColumn; cxGridLevel3: TcxGridLevel; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cv2Column10: TcxGridDBColumn; cv2Column4: TcxGridDBColumn; cv2Column7: TcxGridDBColumn; cv2Column5: TcxGridDBColumn; cv2Column6: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column3: TcxGridDBColumn; Tv2Column5: TcxGridDBColumn; Tv2Column1: TcxGridDBColumn; Tv2Column2: TcxGridDBColumn; Tv2Column3: TcxGridDBColumn; Tv2Column4: TcxGridDBColumn; Tv2Column6: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ClientDataSet1: TClientDataSet; DataSource3: TDataSource; TV3Column1: TcxGridDBColumn; CheckBox1: TCheckBox; Tv2Column7: TcxGridDBColumn; Tv2Column8: TcxGridDBColumn; Tv2Column9: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; ToolButton4: TToolButton; ToolButton5: TToolButton; Tv1Column7: TcxGridDBColumn; ComboBox1: TComboBox; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Label1: TLabel; payment: TEdit; Tv1Column10: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; //RMllPDFExport1: TRMllPDFExport; 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 TBPrintClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure CustomerNoNameChange(Sender: TObject); procedure tchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ToolButton2Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); procedure btn3Click(Sender: TObject); procedure statusChange(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Tv2Column7PropertiesEditValueChanged(Sender: TObject); procedure TV3Column1PropertiesEditValueChanged(Sender: TObject); procedure TV3Column1PropertiesChange(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); private procedure InitGrid(); procedure InitSubGrid(); procedure InitForm(); procedure SetStatus(); function DelData(): Boolean; { Private declarations } public FFInt: Integer; canshu1, canshu2: string; { Public declarations } end; //var //frmContractListNX: TfrmContractListNX; implementation uses U_DataLink, U_FHSQInPut, U_SysLogHelp, U_Fun, U_ZDYHelp; {$R *.dfm} procedure TfrmFHSQList.SetStatus(); begin tchk.Visible := False; Tnochk.Visible := False; btn2.Visible := False; btn3.Visible := False; TBPrint.Visible := False; ToolButton4.Visible := False; case cxTabControl1.TabIndex of 0: begin btn2.Visible := true; TBPrint.Visible := True; end; 1: begin btn3.Visible := true; TBPrint.Visible := True; end; 2: begin ToolButton4.Visible := True; end; end; if canshu1 = '审核' then begin case cxTabControl1.TabIndex of 0: begin end; 1: begin tchk.Visible := true; end; 2: begin Tnochk.Visible := true; end; end; end else if canshu1 = '高权限' then begin case cxTabControl1.TabIndex of 0: begin end; 1: begin tchk.Visible := true; end; 2: begin Tnochk.Visible := true; end; end; end else begin end; end; procedure TfrmFHSQList.FormDestroy(Sender: TObject); begin //frmFHSQList:=nil; end; procedure TfrmFHSQList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmFHSQList.FormCreate(Sender: TObject); begin cxgrid1.Align := alClient; end; procedure TfrmFHSQList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('发货主表ZY', Tv1, '发货管理'); WriteCxGrid('发货子表ZY', Tv2, '发货管理1'); end; procedure TfrmFHSQList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; Sql.Add(' select A.*,isnull(status,''未完成'')status2,season=ZSEASON+ZSEASON2 '); SQL.Add(' ,isbd=(select isbd from Company E WHERE E.coname=A.CustomerNoName AND E.VALID=''Y'' AND CoType=''客户'')'); Sql.Add(' ,HZCODE=CAST((select distinct(SPrtCode) + '' '' from FHSQ_Sub X where A.FSID=X.FSID for xml path('''') ) AS VARCHAR(2000))'); Sql.Add(' ,HZcolor=CAST((select distinct(prtcolor) + '' '' from FHSQ_Sub X where A.FSID=X.FSID for xml path('''') ) AS VARCHAR(2000))'); Sql.Add(' ,HZganghao=CAST((select distinct(ganghao) + '' '' from FHSQ_Sub X where A.FSID=X.FSID for xml path('''') ) AS VARCHAR(2000))'); SQL.Add(',ZMONEY=(SELECT SUM(MONEY) FROM FHSQ_SUB B WHERE B.FSID=A.FSID)'); SQL.Add(',ISOVERTIME=(CASE WHEN DATEDIFF(DAY,SQDate,GETDATE())>7 AND isnull(FHPSHZ,0)=0 THEN ''超时'' else '''' end )'); sql.Add(' from FHSQ_Main A '); //LEFT JOIN COMPANY c on a.CustomerNoName=c.CONAME and c.valid=''Y'' AND COTYPE=''客户'' sql.Add(' where SQType=''订单'' '); if cxTabControl1.TabIndex <> 0 then begin if CheckBox1.Checked then begin if ComboBox1.Text = '申请日期' then begin sql.Add(' and SQDate>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + ''''); sql.Add(' and SQDate<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + ''''); end else begin sql.Add(' and ChkTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + ''''); sql.Add(' and ChkTime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + ''''); end; end; end; if cxTabControl1.TabIndex = 0 then begin SQL.Add(' and isnull(A.tjstatus,'''')='''' '); end else if cxTabControl1.TabIndex = 1 then begin SQL.Add(' and isnull(A.tjstatus,'''')<>'''' and isnull(A.Chker,'''')='''' '); end else if cxTabControl1.TabIndex = 2 then begin SQL.Add(' and isnull(A.Chker,'''')<>'''' '); end; if Trim(canshu1) <> '高权限' then begin sql.Add(' and (isnull(A.Filler,'''')=''' + Trim(DName) + ''''); sql.Add('or isnull(A.salesman,'''')=''' + Trim(DName) + ''''); sql.Add('or (select top 1 xszl from COMPANY c where a.CustomerNoName=c.CONAME and c.valid=''Y'' AND COTYPE=''客户'') like' + QuotedStr('%' + Trim(DName) + '%')); sql.Add(')'); end; if (canshu2 = '内销') or (canshu2 = '外销') then begin sql.Add(' and isnull(A.XSType,'''')=''' + Trim(canshu2) + ''''); end; if status.Text <> '' then begin if status.Text = '未完成' then begin SQL.Add(' and isnull(STATUS,''未完成'')=''未完成'' '); end else begin SQL.Add(' and isnull(STATUS,''未完成'')<>''未完成'' '); end; end; if CRTYPE.Text <> '' then begin sql.Add(' and isnull(A.CRTYPE,'''')=''' + Trim(CRTYPE.Text) + ''''); end; // ShowMessage(sql.Text); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmFHSQList.InitForm(); begin ReadCxGrid('发货主表ZY', Tv1, '发货管理'); ReadCxGrid('发货子表ZY', Tv2, '发货管理1'); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; InitGrid(); end; procedure TfrmFHSQList.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 TfrmFHSQList.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Trim(canshu1) = '高权限' then begin if (cxTabControl1.TabIndex <> 0) and (cxTabControl1.TabIndex <> 1) then Exit; end; if Trim(canshu1) <> '高权限' then begin if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; if (cxTabControl1.TabIndex <> 0) then Exit; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from FHSQ_Main'); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if Trim(ADOQueryTemp.fieldbyname('YSID').AsString) <> '' then begin Application.MessageBox('已生成应收账款不能修改数据!', '提示', 0); Exit; end; with ADOQueryTemp 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('发货申请'))); sql.Add(',' + quotedstr(trim('发货申请修改'))); sql.Add(',' + quotedstr(trim('发货单号:' + trim(Order_Main.FieldByName('FSID').AsString) + ';客户:' + trim(Order_Main.FieldByName('CustomerNoName').AsString + ';申请数量:' + trim(Order_Main.FieldByName('SQQtyHZ').AsString) + trim(Order_Main.FieldByName('HZUnit').AsString))))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; try frmFHSQInPut := TfrmFHSQInPut.Create(Application); with frmFHSQInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('FSID').AsString); if ShowModal = 1 then begin InitGrid(); end; end; finally frmFHSQInPut.Free; end; end; procedure TfrmFHSQList.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 0 then Exit; if canshu1 <> '高权限' then begin if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add(' select * from CK_BanCP_CR where CRFlag=''出库'''); sql.add(' and CKOrdNo=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已发货不能删除数据!', '提示', 0); exit; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from yf_money_cr_sub'); sql.Add('where yfpzno=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if ADOQueryTemp.IsEmpty = false then begin Application.MessageBox('已生成应收账款不能删除!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if DelData() then begin Order_Main.Delete; InitSubGrid(); end; end; function TfrmFHSQList.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete FHSQ_Sub where FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); sql.Add('delete FHSQ_Main where FSId=''' + Trim(Order_Main.fieldbyname('FSId').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('发货申请'))); sql.Add(',' + quotedstr(trim('发货申请删除'))); sql.Add(',' + quotedstr(trim('发货单号:' + trim(Order_Main.FieldByName('FSID').AsString) + ';客户:' + trim(Order_Main.FieldByName('CustomerNoName').AsString + ';申请数量:' + trim(Order_Main.FieldByName('SQQtyHZ').AsString) + trim(Order_Main.FieldByName('HZUnit').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 TfrmFHSQList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv1, ADOQueryMain, '发货申请列表'); end; procedure TfrmFHSQList.TBPrintClick(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if Order_Main.IsEmpty then Exit; // if cxTabControl1.TabIndex <> 1 then // Exit; ExportFtErpFile('报米单.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\报米单.rmf'; //坯布发货申请单 with ADOQueryPrint do begin Close; sql.Clear; SQL.Add('EXEC P_Print_XHSQD @FSID=' + quotedstr(Trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if FileExists(fPrintFile) then begin try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(Order_Main.fieldbyname('FSID').AsString); fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; RMVariables['QRBARCODE'] := fImagePath; RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmFHSQList.TBRafreshClick(Sender: TObject); begin InitGrid(); TBFind.Click; InitSubGrid(); end; procedure TfrmFHSQList.TBAddClick(Sender: TObject); var maxno: string; begin try frmFHSQInPut := TfrmFHSQInPut.Create(Application); with frmFHSQInPut do begin PState := 0; FMainId := ''; if ShowModal = 1 then begin InitGrid(); end; end; finally frmFHSQInPut.Free; end; end; procedure TfrmFHSQList.FormShow(Sender: TObject); begin InitForm(); SetStatus(); end; procedure TfrmFHSQList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmFHSQList.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmFHSQList.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmFHSQInPut := TfrmFHSQInPut.Create(Application); with frmFHSQInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('FSID').AsString); ToolBar2.Visible := False; TBSave.Visible := False; ScrollBox1.Enabled := False; Tv1.OptionsSelection.CellSelect := False; if ShowModal = 1 then begin end; end; finally frmFHSQInPut.Free; end; end; procedure TfrmFHSQList.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 TfrmFHSQList.tchkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 1 then exit; if ClientDataSet1.IsEmpty = False then begin with ADOQueryTemp do begin close; sql.Clear; sql.Add('SELECT * FROM FHSQ_yp'); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); SQL.Add('AND ISNULL(DDCL,0)=0'); Open; end; if ADOQueryTemp.IsEmpty = false then begin application.MessageBox('请先确认已处理样品!', '提示信息', 0); exit; end; end; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET Chker=''' + Trim(DName) + ''',ChkTime=getdate(),ChkStatus=''审核通过'' '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('审核成功!', '提示信息'); except application.MessageBox('审核失败!', '提示信息', 0); end; end; procedure TfrmFHSQList.InitSubGrid(); begin with ADOQueryTemp do begin Close; sql.Clear; if Order_Main.IsEmpty = False then sql.Add('select A.*,B.ORDERNO from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + '''') else sql.Add('select A.*,B.ORDERNO from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId where 1=2'); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryTemp, ClientDataSet2); SInitCDSData20(ADOQueryTemp, ClientDataSet2); end; procedure TfrmFHSQList.TnochkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 2 then exit; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from yf_money_cr_sub'); sql.Add('where yfpzno=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已生成应收账款不能撤销!', '提示', 0); Exit; end; if Order_Main.fieldbyname('STATUS').AsString = ' 已完成' then begin Application.MessageBox('已完成申请不能撤销!', '提示', 0); Exit; end; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET Chker=Null,ChkTime=Null,ChkStatus=Null '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('撤销成功!', '提示信息'); except application.MessageBox('撤销失败!', '提示信息', 0); end; end; procedure TfrmFHSQList.cxTabControl1Change(Sender: TObject); begin TBRafresh.Click; SetStatus(); end; procedure TfrmFHSQList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin with ADOQueryTemp do begin Close; sql.Clear; if Order_Main.IsEmpty = False then begin sql.Add('select A.*, B.ORDERNO from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId '); // sql.Add(' inner join CLoth_Sub B on A.SubId=B.SubId'); // sql.Add(' inner join CLoth_Main C on B.MainId=C.MainId'); sql.Add(' where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); end else begin sql.Add('select A.*, B.ORDERNO from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId '); sql.Add(' where 1=2'); end; Open; end; SCreateCDS20(ADOQueryTemp, ClientDataSet2); SInitCDSData20(ADOQueryTemp, ClientDataSet2); with ADOQueryTemp do begin Close; sql.Clear; if Order_Main.IsEmpty = False then begin sql.Add('select A.* from FHSQ_yp A '); sql.Add(' where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); end else begin sql.Add('select A.* from FHSQ_yp A '); sql.Add(' where 1=2'); end; Open; end; SCreateCDS20(ADOQueryTemp, ClientDataSet1); SInitCDSData20(ADOQueryTemp, ClientDataSet1); end; procedure TfrmFHSQList.ToolButton2Click(Sender: TObject); begin if Trim(canshu1) <> '高权限' then begin if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from FHSQ_Main'); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if Trim(ADOQueryTemp.fieldbyname('YSID').AsString) <> '' then begin Application.MessageBox('已生成应收账款不能修改数据!', '提示', 0); Exit; end; lblFSID.Caption := Order_Main.fieldbyname('FSID').AsString; DateTimePicker1.DateTime := SGetServerDate10(ADOQueryTemp); Panel5.Left := (self.Width - Panel5.Width) div 2; Panel5.Visible := true; end; procedure TfrmFHSQList.Button6Click(Sender: TObject); begin Panel5.Visible := false; end; procedure TfrmFHSQList.Button5Click(Sender: TObject); begin try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET fhDate=' + QuotedStr(Trim(FormatDateTime('yyyy-MM-dd', DateTimePicker1.Date)))); sql.Add('where FSID=' + quotedstr(trim(lblFSID.Caption))); execsql; end; InitGrid(); Order_Main.Locate('FSID', lblFSID.Caption, []); Panel5.Visible := false; application.MessageBox('修改成功!', '提示信息'); except application.MessageBox('修改失败!', '提示信息', 0); end; end; procedure TfrmFHSQList.btn1Click(Sender: TObject); begin if Order_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET status='' 已完成'' '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); // ShowMessage(SQL.Text); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('操作成功!', '提示信息'); except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmFHSQList.btn2Click(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 0 then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET tjstatus=''审核通过'' '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').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('FSID').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('提交成功!', '提示信息'); except application.MessageBox('提交失败!', '提示信息', 0); end; end; procedure TfrmFHSQList.btn3Click(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 1 then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET tjstatus=NULL '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').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('FSID').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('撤销成功!', '提示信息'); except application.MessageBox('撤销失败!', '提示信息', 0); end; end; procedure TfrmFHSQList.statusChange(Sender: TObject); begin InitGrid(); end; procedure TfrmFHSQList.ToolButton3Click(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if Order_Main.IsEmpty then Exit; // if cxTabControl1.TabIndex <> 1 then // Exit; ExportFtErpFile('报货单.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\报货单.rmf'; with ADOQueryPrint do begin Close; sql.Clear; SQL.Add('EXEC P_Print_CKMD5 @FSID=' + quotedstr(Trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if FileExists(fPrintFile) then begin try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(Order_Main.fieldbyname('FSID').AsString); fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; RMVariables['QRBARCODE'] := fImagePath; RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmFHSQList.Tv2Column7PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName); with ClientDataSet1 do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; if ClientDataSet1.fieldbyname('DDCL').AsBoolean = TRUE then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update FHSQ_YP set DDCL =1'); sql.Add('where SSID=' + quotedstr(Trim(ClientDataSet1.fieldbyname('SSID').AsString))); ExecSQL; end; end else begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update FHSQ_YP set DDCL=0'); sql.Add('where SSID=' + quotedstr(Trim(ClientDataSet1.fieldbyname('SSID').AsString))); ExecSQL; end; end; tv3.Controller.EditingController.ShowEdit(); // InitGrid(); end; procedure TfrmFHSQList.TV3Column1PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName); // with ClientDataSet1 do // begin // Edit; // FieldByName(FFieldName).Value := mvalue; // Post; // end; if ClientDataSet1.fieldbyname('DDCL').AsInteger = 0 then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update FHSQ_YP set DDCL =1'); sql.Add('where SSID=' + quotedstr(Trim(ClientDataSet1.fieldbyname('SSID').AsString))); ExecSQL; end; end else begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update FHSQ_YP set DDCL=0'); sql.Add('where SSID=' + quotedstr(Trim(ClientDataSet1.fieldbyname('SSID').AsString))); ExecSQL; end; end; tv3.Controller.EditingController.ShowEdit(); // InitGrid(); end; procedure TfrmFHSQList.TV3Column1PropertiesChange(Sender: TObject); begin if ClientDataSet1.fieldbyname('DDCL').AsBoolean = True then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update FHSQ_YP set DDCL =1'); sql.Add('where SSID=' + quotedstr(Trim(ClientDataSet1.fieldbyname('SSID').AsString))); ExecSQL; end; end else begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update FHSQ_YP set DDCL=0'); sql.Add('where SSID=' + quotedstr(Trim(ClientDataSet1.fieldbyname('SSID').AsString))); ExecSQL; end; end; end; procedure TfrmFHSQList.ToolButton4Click(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if Order_Main.IsEmpty then Exit; // if cxTabControl1.TabIndex <> 1 then // Exit; ExportFtErpFile('坯布发货申请单.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\坯布发货申请单.rmf'; //坯布发货申请单 with ADOQueryPrint do begin Close; sql.Clear; SQL.Add('EXEC P_Print_XHSQD2 @FSID=' + quotedstr(Trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if FileExists(fPrintFile) then begin try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(Order_Main.fieldbyname('FSID').AsString); fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; RMVariables['QRBARCODE'] := fImagePath; RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmFHSQList.ToolButton5Click(Sender: TObject); begin frmSysLogHelp := TfrmSysLogHelp.create(self); with frmSysLogHelp do begin fModel := '发货申请'; // facction:='生产指示单删除'; showmodal; free; end; end; procedure TfrmFHSQList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if '超时' = AViewInfo.GridRecord.Values[Tv1Column11.Index] then ACanvas.Brush.Color := $008080FF; end; end.