unit U_MLMangeYHSel; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxTextEdit, cxButtonEdit, Menus, cxLookAndFeelPainters, cxButtons, cxImage, BtnEdit, jpeg, cxLookAndFeels, 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 TfrmMLMangeYHSel = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; DataSource1: TDataSource; ADOQueryTree: TADOQuery; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; Panel11: TPanel; DataSource2: TDataSource; ADOQueryMain: TADOQuery; CDS_Main: TClientDataSet; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; ODPat: TOpenDialog; IdFTP1: TIdFTP; SaveDialog1: TSaveDialog; DataSource3: TDataSource; cxGridPopupMenu2: TcxGridPopupMenu; Order_GX: TClientDataSet; DataSource4: TDataSource; cxGridPopupMenu3: TcxGridPopupMenu; ML_Col: TClientDataSet; DataSource5: TDataSource; cxGridPopupMenu4: TcxGridPopupMenu; CDS_Sub: TClientDataSet; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxGridPopupMenu5: TcxGridPopupMenu; DataSource6: TDataSource; Ord_HX: TClientDataSet; ADOQuery1: TADOQuery; Panel1: TPanel; Label2: TLabel; MLXXNO: TEdit; Label1: TLabel; Label4: TLabel; MLName: TEdit; MLCF: TEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1MLName: TcxGridDBColumn; v1MLMF: TcxGridDBColumn; v1MLKZ: TcxGridDBColumn; v1Column1: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1MLXXNO: TcxGridDBColumn; Label6: TLabel; MLKZ: TEdit; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; Panel2: TPanel; cxButton1: TcxButton; cxButton2: TcxButton; cxButton3: TcxButton; Label8: TLabel; RM2: TRMGridReport; Image1: TImage; N5: TMenuItem; DY: TMenuItem; cxButton4: TcxButton; ToolButton3: TToolButton; Label3: TLabel; MLMF: TEdit; Tv1Column1: TcxGridDBColumn; LX: TComboBox; Label5: TLabel; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Label7: TLabel; GYLXName: TEdit; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure cxDBTreeList1DblClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ToolButton10Click(Sender: TObject); procedure TV4CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure Tv1DblClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure N2Click(Sender: TObject); procedure cxButton1Click(Sender: TObject); procedure Image1Click(Sender: TObject); procedure DYClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure LXChange(Sender: TObject); procedure MLXXNOChange(Sender: TObject); private { Private declarations } PState: Integer; FCPID, FTopID: string; procedure InitTree(); procedure InitGrid(); procedure ReadINIFile(); public canshu1: string; { Public declarations } end; var frmMLMangeYHSel: TfrmMLMangeYHSel; implementation uses U_DataLink, U_Fun; {$R *.dfm} procedure TfrmMLMangeYHSel.InitTree(); begin end; procedure TfrmMLMangeYHSel.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; SQL.Add('select MLID,YPPrice,MLXXNO=TJML,MLName,MLMF,MLKZ,MLCF,LX=''印花面料'',GYLXName=MLXXGYName '); sql.Add(' from ML_Manage A '); sql.Add(' where isnull(A.MLType,'''')=''印花面料'' '); SQL.Add(' UNION all'); SQL.Add(' select MLID,YPPrice,MLXXNO=MLNo,MLName,MLMF,MLKZ,MLCF,LX=''染色面料'',GYLXName '); sql.Add(' from ML_Manage A '); sql.Add(' where isnull(A.MLType,'''')=''染色面料'' '); SQL.Add(' UNION all'); SQL.Add(' select MLID,YPPrice,MLXXNO=TJML,MLName,MLMF,MLKZ,MLCF,LX=''烫金面料'',GYLXName=MLXXGYName '); sql.Add(' from ML_Manage A '); sql.Add(' where isnull(A.MLType,'''')=''烫金面料'' '); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmMLMangeYHSel.FormDestroy(Sender: TObject); begin frmMLMangeYHSel := nil; end; procedure TfrmMLMangeYHSel.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmMLMangeYHSel.TBCloseClick(Sender: TObject); begin WriteCxGrid('印花面料2', Tv1, '样品管理'); Close; end; procedure TfrmMLMangeYHSel.FormShow(Sender: TObject); begin {if canshu1='高权限' then begin toolbutton11.Visible:=True; ToolButton3.Visible:=true; TBDel.Visible:=true; end else begin if canshu1='查询' then begin toolbutton11.Visible:=false; ToolButton3.Visible:=false; TBDel.Visible:=false; end else begin toolbutton11.Visible:=false; ToolButton3.Visible:=false; TBDel.Visible:=false; end; end;} InitGrid(); ReadCxGrid('印花面料2', Tv1, '样品管理'); end; procedure TfrmMLMangeYHSel.cxDBTreeList1DblClick(Sender: TObject); begin InitGrid(); end; procedure TfrmMLMangeYHSel.TBRafreshClick(Sender: TObject); begin InitGrid(); if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); end; end; procedure TfrmMLMangeYHSel.ToolButton2Click(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 TfrmMLMangeYHSel.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel('客户拿样', cxGrid1); end; procedure TfrmMLMangeYHSel.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 TfrmMLMangeYHSel.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add(' select A.*,isnull(B.BPCode,C.MLNo) BPCode,isnull(B.BPName,C.MLName) BPName'); sql.Add(' ,isnull(B.BPMF,C.MLMF) BPMF,isnull(B.BPKZ,C.MLKZ) BPKZ'); sql.Add(',B.BPJS,B.BPWS,B.BPMiDu,B.BPUnit,C.MLDLNo,C.DLHXK'); SQL.Add(' from ML_Manage_PB A left join BP_ZDY B on B.BPID=A.BPID '); sql.Add(' left join ML_Manage C on C.MLID=A.BPID'); sql.Add(' where A.MLID=''' + Trim(CDS_Main.fieldbyname('MLID').AsString) + ''''); //ShowMessage(sql.Text); Open; end; SCreateCDS20(ADOQueryCmd, CDS_Sub); SInitCDSData20(ADOQueryCmd, CDS_Sub); with ADOQueryCmd do begin Close; SQL.Clear; sql.Add(' select A.*,B.*,C.* from ML_Manage_GX A inner join BP_ZDY B on B.BPID=A.BPID '); sql.Add('inner join BP_ZDY_Sub C on C.BPSubID=A.BPSubID'); sql.Add(' where A.MLID=''' + Trim(CDS_Main.fieldbyname('MLID').AsString) + ''''); Open; end; SCreateCDS20(ADOQueryCmd, Order_GX); SInitCDSData20(ADOQueryCmd, Order_GX); //if CDS_Main.FieldByName('MLType').AsString<>'复合' then begin //if CDS_Main.FieldByName('MLType').AsString<>'组合' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from BP_ZDY_Sub '); sql.Add('where BPCode=''' + Trim(CDS_Main.fieldbyname('MLDLNo').AsString) + ''' and BPflag=''SHK'''); Open; end; SCreateCDS20(ADOQueryCmd, ML_Col); SInitCDSData20(ADOQueryCmd, ML_Col); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select A.*,B.* from BP_ZDY_Sub A '); Sql.Add('inner join KH_Zdy_Attachment B on A.HXATID=B.ATID and B.Type=''CPHX'''); sql.Add(' where A.BPCode=''' + trim(CDS_Main.fieldbyname('DLHXK').AsString) + ''''); open; end; SCreateCDS20(ADOQueryCmd, Ord_HX); SInitCDSData20(ADOQueryCmd, Ord_HX); end; end; procedure TfrmMLMangeYHSel.ToolButton10Click(Sender: TObject); begin {if RadioGroup1.ItemIndex=-1 then begin application.MessageBox('请选择工序','提示'); exit; end;} end; procedure TfrmMLMangeYHSel.TV4CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin //if CDS_Main.FieldByName('MLType').AsString='复合' then begin with ADOQuery1 do begin Close; SQL.Clear; sql.Add('select * from BP_ZDY_Sub '); sql.Add('where BPCode=''' + Trim(CDS_Sub.Fieldbyname('MLDLNo').AsString) + ''' and BPflag=''SHK'''); Open; end; SCreateCDS20(ADOQuery1, ML_Col); SInitCDSData20(ADOQuery1, ML_Col); with ADOQuery1 do begin Close; SQL.Clear; sql.Add('select A.*,B.* from BP_ZDY_Sub A '); Sql.Add('inner join KH_Zdy_Attachment B on A.HXATID=B.ATID and B.Type=''CPHX'''); sql.Add(' where A.BPCode=''' + trim(CDS_Sub.Fieldbyname('DLHXK').AsString) + ''''); open; end; SCreateCDS20(ADOQuery1, Ord_HX); SInitCDSData20(ADOQuery1, Ord_HX); end; end; procedure TfrmMLMangeYHSel.Tv1DblClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; self.ModalResult := 1; end; procedure TfrmMLMangeYHSel.FormCreate(Sender: TObject); begin canshu1 := Trim(DParameters1); end; procedure TfrmMLMangeYHSel.N2Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; with ADOQueryCmd do begin close; sql.Clear; SQL.Add('select * from ML_Manage A '); sql.Add(' where isnull(A.MLType,'''')=''印花面料'''); sql.Add(' and TJML=''' + trim(CDS_Main.fieldbyname('TJML').AsString) + ''''); Open; end; if ADOQueryCmd.RecordCount = 1 then begin Application.MessageBox('印花编号只有一条,不能删除', '提示'); exit; end; with ADOQueryCmd do begin close; sql.Clear; SQL.Add('select * from BP_DY '); sql.Add('where MLID=''' + trim(CDS_Main.fieldbyname('MLID').AsString) + ''''); Open; end; if ADOQueryCmd.IsEmpty = false then begin if Application.MessageBox('数据已打印确定要删除吗?', '提示', 32 + 4) <> IDYES then Exit; //exit; end else begin if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete ML_Manage where MLID=''' + Trim(CDS_Main.fieldbyname('MLID').AsString) + ''''); sql.Add('delete ML_Manage_PB where MLID=''' + Trim(CDS_Main.fieldbyname('MLID').AsString) + ''''); sql.Add('delete ML_Manage_GX where MLID=''' + Trim(CDS_Main.fieldbyname('MLID').AsString) + ''''); sql.Add('delete Image_Info where TJML=''' + Trim(CDS_Main.fieldbyname('TJML').AsString) + ''''); sql.Add(' and TJGYName=''' + Trim(CDS_Main.fieldbyname('TJGYName').AsString) + ''''); ExecSQL; end; CDS_Main.Delete; end; procedure TfrmMLMangeYHSel.cxButton1Click(Sender: TObject); var fPrintFile, Txt, fImagePath, maxno: string; i, j: Integer; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_Main.IsEmpty then Exit; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\印花面料标签.rmf'; if FileExists(fPrintFile) = False then begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\印花面料标签.rmf'), '提示', 0); exit; end; CDS_Main.DisableControls; with CDS_Main do begin //First; //while Locate('SSel',True,[]) do begin try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryCmd, maxno, 'TGML', 'BP_DY', 4, 1, ) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取样品打印最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('select * from BP_DY where DYId=''' + Trim(maxno) + ''''); Open; end; with ADOQueryCmd do begin Append; FieldByName('MLID').Value := Trim(CDS_Main.fieldbyname('MLID').AsString); FieldByName('TFID').Value := Trim(CDS_Main.fieldbyname('PTID').AsString); FieldByName('DYId').Value := Trim(maxno); FieldByName('Filler').Value := Trim(DName); FieldByName('FillerCode').Value := Trim(DCode); FieldByName('Valid').Value := 'Y'; Post; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存打印流水号异常!', '提示', 0); Exit; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(maxno); 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; RMVariables['DYID'] := maxno; RM1.LoadFromFile(fPrintFile); //RM1.ShowReport; RM1.PrintReport; end; end; CDS_Main.EnableControls; panel2.Visible := false; end; procedure TfrmMLMangeYHSel.Image1Click(Sender: TObject); begin panel2.Visible := False; end; procedure TfrmMLMangeYHSel.DYClick(Sender: TObject); begin Panel2.Visible := true; end; procedure TfrmMLMangeYHSel.ToolButton3Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; self.ModalResult := 1; end; procedure TfrmMLMangeYHSel.LXChange(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 TfrmMLMangeYHSel.MLXXNOChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); end; end; end.