unit U_CPManagePBsel; 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, jpeg, U_SLT, ComObj, Menus, cxButtonEdit, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters, cxTLdxBarBuiltInMenu, cxNavigator; type FdDy = record inc: integer; //客户端套接字句柄 FDdys: string[32]; //客户端套接字 FdDysName: string[32]; //客户端套接字 end; TfrmCPManagePBsel = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBDel: TToolButton; TBClose: TToolButton; DataSource1: TDataSource; ADOQueryTree20: TADOQuery; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxSplitter1: TcxSplitter; Panel1: TPanel; Label2: TLabel; CYID: TEdit; TBFilter: TToolButton; v1CYNo: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; DataSource2: TDataSource; ADOQueryMain: TADOQuery; CDS_Main: TClientDataSet; v1Column12: TcxGridDBColumn; TBExport: TToolButton; ToolButton4: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; ODPat: TOpenDialog; IdFTP1: TIdFTP; SaveDialog1: TSaveDialog; TBUP: TToolButton; Label3: TLabel; CYNO: TEdit; TBCopy: TToolButton; Panel2: TPanel; v1Column19: TcxGridDBColumn; ADOQueryTree: TClientDataSet; Panel5: TPanel; cxDBTreeList1: TcxDBTreeList; cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn; Label11: TLabel; Label12: TLabel; ComboBox1: TComboBox; Panel3: TPanel; GroupBox1: TGroupBox; ScrollBox1: TScrollBox; adoqueryPicture: TADOQuery; ToolButton8: TToolButton; v1Column39: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column9: TcxGridDBColumn; Label4: TLabel; CYName: TEdit; TBAdd: TToolButton; TBEdit: TToolButton; TBMLEdit: TToolButton; Edit1: TEdit; Label5: TLabel; CYSpec: TEdit; Label6: TLabel; CYCF: TEdit; Label7: TLabel; CYNote: TEdit; TBImport: TToolButton; OpenDialog1: TOpenDialog; Label9: TLabel; Label10: TLabel; CYKZ: TEdit; CarType: TEdit; Label8: TLabel; CYMF: TEdit; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; CDS_Sub: TClientDataSet; DS_Sub: TDataSource; ToolButton1: TToolButton; v1Column11: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; ToolButton2: TToolButton; Tv1Column1: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure cxDBTreeList1DblClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBFilterClick(Sender: TObject); procedure CYIDKeyPress(Sender: TObject; var Key: Char); procedure CYNoChange(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure TBUPClick(Sender: TObject); procedure TBImportClick(Sender: TObject); procedure TBCopyClick(Sender: TObject); procedure CYNOKeyPress(Sender: TObject; var Key: Char); procedure ToolButton8Click(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure TBMLEditClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ToolButton1Click(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ToolButton2Click(Sender: TObject); private { Private declarations } CPID: string; PState: Integer; FCPID, FTopID: string; FJurisdiction: string; procedure SetJurisdiction(); procedure InitTree(); procedure InitGrid(); procedure InitSubGrid(); procedure ReadINIFile(); procedure InitImage(); public dFdDy: array[0..20] of FdDy; //客户端连接数组 { Public declarations } CANSHU1: string; end; var frmCPManagePBsel: TfrmCPManagePBsel; Mach: array of TfrmSlt; implementation uses U_DataLink, U_Fun; //U_CPAdd, U_FileUp, U_YPCR, U_CPAddPNPB, U_YPTypeHelp, //U_YPGL_YGDJ; {$R *.dfm} procedure TfrmCPManagePBsel.SetJurisdiction(); begin if trim(self.Caption) = '坯布信息录入' then begin FJurisdiction := '登记'; end else if trim(self.Caption) = '坯布信息管理' then begin FJurisdiction := '管理'; end else begin FJurisdiction := '查询'; end; TBAdd.Visible := false; TBCopy.Visible := false; TBEdit.Visible := false; TBMLEdit.Visible := false; TBDel.Visible := false; // TBImport.Visible := false; TBUP.Visible := false; TBExport.Visible := false; if FJurisdiction = '管理' then begin TBAdd.Visible := true; TBCopy.Visible := true; TBEdit.Visible := true; // TBMLEdit.Visible := true; TBDel.Visible := true; // TBImport.Visible := true; TBUP.Visible := true; TBExport.Visible := true; end else if FJurisdiction = '登记' then begin TBAdd.Visible := true; TBCopy.Visible := true; TBEdit.Visible := true; // TBMLEdit.Visible := true; TBDel.Visible := true; // TBImport.Visible := true; TBUP.Visible := true; TBExport.Visible := true; end; end; procedure TfrmCPManagePBsel.InitTree(); var i: Integer; begin with ADOQueryTree20 do begin Close; SQL.Clear; SQL.Add('select * from CP_Type order by CPlevel,CPOrder,CPName'); Open; end; SCreateCDS20(ADOQueryTree20, ADOQueryTree); SInitCDSData20(ADOQueryTree20, ADOQueryTree); cxDBTreeList1.Items[0].Expand(false); //cxDBTreeList1.Items[1].Expand(False); end; procedure TfrmCPManagePBsel.InitSubGrid(); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' select * from CP_YDang_PBMX where CYID=''' + Trim(CDS_Main.fieldbyname('CYID').AsString) + ''''); Open; end; SCreateCDS20(ADOQueryTemp, CDS_Sub); SInitCDSData20(ADOQueryTemp, CDS_Sub); end; procedure TfrmCPManagePBsel.InitGrid(); begin Panel2.Visible := True; Panel2.Refresh; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; // SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType'); // Parameters.ParamByName('Code').Value := ''; // Parameters.ParamByName('PState').Value := 0; // Parameters.ParamByName('CYType').Value := Trim(ADOQueryTree.fieldbyname('CPID').AsString); // SQL.Add('select * from CP_YDang '); SQL.Add('select A.*,B.CPName from CP_YDang A inner join CP_Type B On A.CYType=B.CPID where 1=1'); if trim(canshu1) = '录入' then sql.Add('and filler=''' + trim(DNAME) + ''''); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; Panel2.Visible := False; end; procedure TfrmCPManagePBsel.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); // writeCxGrid(self.Caption+tv1.Name,tv1); // Application := mainApplication; Action := cafree; end; procedure TfrmCPManagePBsel.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv1, '样品管理'); if DirectoryExists(ExtractFileDir('D:\Right1209')) then winexec('cmd /c rd /s /q D:\Right1209', sw_hide); Close; end; procedure TfrmCPManagePBsel.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if FJurisdiction = '登记' then begin if Trim(CDS_Main.fieldbyname('CYID').AsString) <> '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete CP_YDang where CYID=''' + Trim(CDS_Main.fieldbyname('CYID').AsString) + ''''); ExecSQL; end; end; CDS_Main.Delete; end; if FJurisdiction = '管理' then begin while CDS_Main.Locate('SSel', true, []) do begin if Trim(CDS_Main.fieldbyname('CYID').AsString) <> '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete CP_YDang where CYID=''' + Trim(CDS_Main.fieldbyname('CYID').AsString) + ''''); ExecSQL; end; end; CDS_Main.Delete; end; end; end; procedure TfrmCPManagePBsel.FormShow(Sender: TObject); begin Panel3.Align := alclient; InitTree(); ReadCxGrid(self.Caption, Tv1, '样品管理'); SetJurisdiction(); // // with ADOQueryMain do // begin // Filtered := False; // Close; // SQL.Clear; // SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType'); // Parameters.ParamByName('Code').Value := ''; // Parameters.ParamByName('PState').Value := 0; // Parameters.ParamByName('CYType').Value := 'XXXXXXX'; // Open; // end; // SCreateCDS20(ADOQueryMain, CDS_Main); // SInitCDSData20(ADOQueryMain, CDS_Main); InitGrid(); end; procedure TfrmCPManagePBsel.cxDBTreeList1DblClick(Sender: TObject); begin InitGrid(); end; procedure TfrmCPManagePBsel.TBRafreshClick(Sender: TObject); begin // InitTree(); InitGrid(); end; procedure TfrmCPManagePBsel.TBFilterClick(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 TfrmCPManagePBsel.CYIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if Trim(CYID.Text) = '' then Exit; with ADOQueryMain do begin Close; Filtered := False; sql.Clear; sql.Add('exec P_Select_CP_YDang :Code,1,'''' '); Parameters.ParamByName('Code').Value := Trim(CYID.Text); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); CYID.Text := ''; ADOQueryTree.Locate('CPID', CPID, []); end; end; procedure TfrmCPManagePBsel.CYNoChange(Sender: TObject); begin //if Length(Trim(TEdit(Sender).Text))<4 then Exit; if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); end; end; procedure TfrmCPManagePBsel.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel('产品档案', cxGrid1); end; procedure TfrmCPManagePBsel.ToolButton4Click(Sender: TObject); var fPrintFile, FFCYID: string; DPS, i, j: Integer; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin CYNO.SetFocus; if CDS_Main.IsEmpty then Exit; if trim(ComboBox1.Text) = '' then begin Application.MessageBox('标签不能为空!', '提示', 0); exit; end; //if CDS_CYNO.IsEmpty then Exit; if Trim(Edit1.Text) <> '' then begin if TryStrToInt(Edit1.Text, i) = False then begin Application.MessageBox('份数录入错误!', '提示', 0); exit; end; end; ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(ComboBox1.Text) + '.rmf'; // CDS_Main.DisableControls; DPS := 0; FFCYID := ''; i := 1; if Trim(Edit1.Text) = '' then begin j := 1; end else begin j := StrToInt(Edit1.Text); end; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean = True then begin try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(CDS_Main.fieldbyname('CYID').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; for i := 1 to j do begin if FileExists(fPrintFile) then begin RM1.ShowPrintDialog := False; RM1.LoadFromFile(fPrintFile); RM1.PrintReport; // RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); Exit; end; end; if DPS = 0 then begin FFCYID := Trim(CDS_Main.fieldbyname('CYID').AsString); end; end; //CDS_Main.Locate('CYID',Trim(CDS_CYNO.fieldbyname('CYID').AsString),[]); Next; end; end; CDS_Main.EnableControls; CDS_Main.Locate('CYID', FFCYID, []); Edit1.Text := '1'; end; procedure TfrmCPManagePBsel.TBUPClick(Sender: TObject); begin // try // frmFileUp := TfrmFileUp.Create(Application); // with frmFileUp do // begin // Code.Text := Trim(Self.CDS_Main.fieldbyname('CYNO').AsString); // CYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString); // // if ShowModal = 1 then // begin //// Self.InitGrid(); //// Self.CDS_Main.Locate('CYID', CYID, []); // end; // end; // finally // frmFileUp.Free; // end; // InitImage(); end; procedure TfrmCPManagePBsel.TBImportClick(Sender: TObject); var excelApp, WorkBook: Variant; i, j, k, LX, ExcelRowCount: integer; maxId, FCPID, FCPName, t1, t2, t3: string; begin FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); FCPName := Trim(Self.ADOQueryTree.fieldbyname('CPName').AsString); if GetLSNo(ADOQueryCmd, maxId, 'Y', 'CP_YDang', 2, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; if trim(FCPID) = '' then exit; try excelApp := CreateOleObject('Excel.Application'); openDialog1.Filter := '*.CSV;*.xls'; if opendialog1.Execute then begin WorkBook := excelApp.WorkBooks.Open(OpenDialog1.FileName); end else exit; excelApp.Visible := false; ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count; except application.MessageBox('加载EXCEL错误!', '错误信息', MB_ICONERROR); exit; end; try k := 0; for i := 1 to 30 do begin if trim(excelApp.Cells[1, i].value) = '' then break; //遍历界面绑定界面中显示的字段和名称 for j := 0 to Tv1.ColumnCount - 1 do begin if trim(excelApp.Cells[1, i].value) = trim(Tv1.Columns[j].Caption) then begin dFdDy[k].inc := i; dFdDy[k].FDdys := trim(Tv1.Columns[j].DataBinding.FieldName); dFdDy[k].FdDysName := trim(Tv1.Columns[j].Caption); end; end; k := k + 1; end; except application.MessageBox('加载数组错误!', '错误信息', MB_ICONERROR); exit; end; ADOQueryCmd.Connection.BeginTrans; try for i := 2 to ExcelRowCount do begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from CP_YDang where 1=2'); open; end; if trim(excelApp.Cells[i, LX].value) <> trim(FCPName) then continue; ADOQueryCmd.Append; for j := 0 to k - 1 do begin if trim(dFdDy[j].FDdys) = '' then continue; t1 := dFdDy[j].FDdys; t2 := inttostr(dFdDy[j].inc); t3 := excelApp.Cells[i, dFdDy[j].inc].Value; if trim(dFdDy[j].FDdys) <> 'CPName' then ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value := excelApp.Cells[i, dFdDy[j].inc].Value; end; ADOQueryCmd.FieldByName('CYValid').Value := 'Y'; ADOQueryCmd.FieldByName('CYType').Value := Trim(FCPID); ADOQueryCmd.FieldByName('CYID').Value := maxId + inttostr(i); ADOQueryCmd.Post; end; WorkBook.Close; excelApp.Quit; excelApp := Unassigned; WorkBook := Unassigned; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except WorkBook.Close; excelApp.Quit; excelApp := Unassigned; WorkBook := Unassigned; ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('保存数据错误!', '错误信息', MB_ICONERROR); exit; end; end; procedure TfrmCPManagePBsel.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 TfrmCPManagePBsel.InitImage(); var i, j: integer; jpg: TJpegImage; myStream: TADOBlobStream; 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); if CDS_sub.IsEmpty then exit; try with adoqueryPicture do begin close; sql.Clear; sql.Add(' select A.TFID,A.WBID,A.FilesOther,B.FileName from TP_File A,XD_File B '); sql.add('where A.TFID =B.XFID and A.WBID=' + quotedstr(trim(CDS_Main.fieldbyname('CYID').AsString))); open; end; j := adoqueryPicture.RecordCount; if j < 1 then exit; adoqueryPicture.DisableControls; adoqueryPicture.First; SetLength(Mach, j); jpg := TJpegImage.Create(); for i := 0 to j - 1 do begin if triM(adoqueryPicture.fieldbyname('FilesOther').AsString) <> '' then begin myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')), bmread); jpg.LoadFromStream(myStream); Mach[i] := TfrmSlt.Create(Self); Mach[i].Name := trim(adoqueryPicture.fieldbyname('TFID').AsString); Mach[i].Parent := ScrollBox1; Mach[i].Left := 0 + i * 165; Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('FileName').AsString, jpg); end; adoqueryPicture.Next; end; adoqueryPicture.EnableControls; finally jpg.free; application.ProcessMessages; end; end; procedure TfrmCPManagePBsel.TBCopyClick(Sender: TObject); begin // try // frmCPAddPNPB := TfrmCPAddPNPB.Create(Application); // with frmCPAddPNPB do // begin // CopyInt := 1; // FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString); // FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); // FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString); // if ShowModal = 1 then // begin // Self.InitGrid(); // end; // end; // finally // frmCPAddPNPB.Free; // end; end; procedure TfrmCPManagePBsel.CYNOKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if Trim(CYNO.Text) = '' then Exit; if Length(Trim(CYNO.Text)) < 4 then Exit; with ADOQueryMain do begin Close; Filtered := False; sql.Clear; sql.Add('exec P_Select_CP_YDang :Code,2,'''' '); Parameters.ParamByName('Code').Value := '%' + Trim(CYNO.Text) + '%'; Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); CYID.Text := ''; ADOQueryTree.Locate('CPID', CPID, []); end; end; procedure TfrmCPManagePBsel.ToolButton8Click(Sender: TObject); var fPrintFile, FFCYID: string; DPS, i, j: Integer; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin CYNO.SetFocus; if CDS_Main.IsEmpty then Exit; if trim(ComboBox1.Text) = '' then begin Application.MessageBox('样品标签不能为空!', '提示', 0); exit; end; //if CDS_CYNO.IsEmpty then Exit; if Trim(Edit1.Text) <> '' then begin if TryStrToInt(Edit1.Text, i) = False then begin Application.MessageBox('份数录入错误!', '提示', 0); exit; end; end; ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(ComboBox1.Text) + '.rmf'; CDS_Main.DisableControls; DPS := 0; FFCYID := ''; i := 1; if Trim(Edit1.Text) = '' then begin j := 1; end else begin j := StrToInt(Edit1.Text); end; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean = True then begin try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(CDS_Main.fieldbyname('CYID').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; for i := 1 to j do begin if FileExists(fPrintFile) then begin RM1.ShowPrintDialog := True; RM1.LoadFromFile(fPrintFile); // RM1.PrintReport; RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\样品标签.rmf'), '提示', 0); Exit; end; end; if DPS = 0 then begin FFCYID := Trim(CDS_Main.fieldbyname('CYID').AsString); end; end; //CDS_Main.Locate('CYID',Trim(CDS_CYNO.fieldbyname('CYID').AsString),[]); Next; end; end; CDS_Main.EnableControls; CDS_Main.Locate('CYID', FFCYID, []); Edit1.Text := '1'; end; procedure TfrmCPManagePBsel.TBAddClick(Sender: TObject); var i: Integer; FieldName: string; begin // try // frmCPAddPNPB := TfrmCPAddPNPB.Create(Application); // with frmCPAddPNPB do // begin // CopyInt := 0; // FCYID := ''; // FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); // FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString); // FCPName := Trim(Self.ADOQueryTree.fieldbyname('CPName').AsString); // if ShowModal = 1 then // begin // Self.InitGrid(); // end; // end; // finally // frmCPAddPNPB.Free; // end; end; procedure TfrmCPManagePBsel.TBEditClick(Sender: TObject); begin // if CDS_Main.IsEmpty then // Exit; // try // frmCPAddPNPB := TfrmCPAddPNPB.Create(Application); // with frmCPAddPNPB do // begin // CopyInt := 0; // FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString); // FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); // FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString); // if ShowModal = 1 then // begin // Self.InitGrid(); // end; // end; // finally // frmCPAddPNPB.Free; // end; end; procedure TfrmCPManagePBsel.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin ToolButton2.Click; // try // frmCPAddPNPB := TfrmCPAddPNPB.Create(Application); // with frmCPAddPNPB do // begin // CopyInt := 0; // FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString); // FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); // FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString); // FCPName := Trim(Self.ADOQueryTree.fieldbyname('CPName').AsString); // if FJurisdiction = '查询' then // begin // ToolButton1.Visible := False; // end; // // if ShowModal = 1 then // begin // Self.CDS_Main.Edit; // CDS_Main.FieldByName('CPName').Value := FCPName; // CDS_Main.FieldByName('CYID').Value := FCYID; // CDS_Main.FieldByName('CYType').Value := FCPID; // CDS_Main.FieldByName('CYNo').Value := CYNo.Text; // CDS_Main.FieldByName('CYName').Value := CYName.Text; // // Self.CDS_Main.Post; // end; // end; // finally // frmCPAddPNPB.Free; // end; end; procedure TfrmCPManagePBsel.TBMLEditClick(Sender: TObject); var fYPType: string; begin // if CDS_Main.IsEmpty then // exit; // if CDS_Main.Locate('ssel', true, []) = false then // begin // Application.MessageBox('没有选择数据!', '提示', 0); // Exit; // end; // fYPType := ''; // // frmYPTypeHelp := TfrmYPTypeHelp.create(self); // with frmYPTypeHelp do // begin // if showmodal = 1 then // begin // fYPType := trim(ADOQueryHelp.fieldbyname('CPID').asstring); // end; // free; // end; // // if trim(fYPType) = '' then // exit; // // try // with CDS_Main do // begin // DisableControls; // First; // while not eof do // begin // if fieldbyname('ssel').AsBoolean then // begin // with ADOQueryCmd do // begin // close; // sql.Clear; // sql.Add('update CP_YDang SET CYType=''' + trim(fYPType) + ''' '); // sql.Add('where CYID=' + quotedstr(trim(CDS_Main.fieldbyname('CYID').AsString))); // execsql; // end; // end; // next; // end; // First; // EnableControls; // end; // application.MessageBox('操作成功!', '提示信息'); // initgrid(); // except // CDS_Main.EnableControls; // application.MessageBox('操作失败!', '提示信息', 0); // end; end; procedure TfrmCPManagePBsel.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmCPManagePBsel.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmCPManagePBsel.TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if CDS_Main.IsEmpty then Exit; InitImage(); end; procedure TfrmCPManagePBsel.ToolButton1Click(Sender: TObject); var excelApp, WorkBook: Variant; i, j, k, LX, ExcelRowCount: integer; maxId, FCYID, FCPName, t1, t2, t3: string; begin FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString); if GetLSNo(ADOQueryCmd, maxId, 'P', 'CP_YDang_MX', 2, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; if trim(FCPID) = '' then exit; try excelApp := CreateOleObject('Excel.Application'); openDialog1.Filter := '*.CSV;*.xls'; if opendialog1.Execute then begin WorkBook := excelApp.WorkBooks.Open(OpenDialog1.FileName); end else exit; excelApp.Visible := false; ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count; except application.MessageBox('加载EXCEL错误!', '错误信息', MB_ICONERROR); exit; end; try k := 0; for i := 1 to 30 do begin if trim(excelApp.Cells[1, i].value) = '' then break; //遍历界面绑定界面中显示的字段和名称 for j := 0 to Tv1.ColumnCount - 1 do begin if trim(excelApp.Cells[1, i].value) = trim(Tv1.Columns[j].Caption) then begin dFdDy[k].inc := i; dFdDy[k].FDdys := trim(Tv1.Columns[j].DataBinding.FieldName); dFdDy[k].FdDysName := trim(Tv1.Columns[j].Caption); end; end; k := k + 1; end; except application.MessageBox('加载数组错误!', '错误信息', MB_ICONERROR); exit; end; ADOQueryCmd.Connection.BeginTrans; try for i := 2 to ExcelRowCount do begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from CP_YDang_MX where 1=2'); open; end; if trim(excelApp.Cells[i, LX].value) <> trim(FCPName) then continue; ADOQueryCmd.Append; for j := 0 to k - 1 do begin if trim(dFdDy[j].FDdys) = '' then continue; t1 := dFdDy[j].FDdys; t2 := inttostr(dFdDy[j].inc); t3 := excelApp.Cells[i, dFdDy[j].inc].Value; ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value := excelApp.Cells[i, dFdDy[j].inc].Value; end; ADOQueryCmd.FieldByName('CYID').Value := Trim(FCYID); ADOQueryCmd.FieldByName('MXID').Value := maxId + inttostr(i); ADOQueryCmd.Post; end; WorkBook.Close; excelApp.Quit; excelApp := Unassigned; WorkBook := Unassigned; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except WorkBook.Close; excelApp.Quit; excelApp := Unassigned; WorkBook := Unassigned; ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('保存数据错误!', '错误信息', MB_ICONERROR); exit; end; end; procedure TfrmCPManagePBsel.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // InitImage(); end; procedure TfrmCPManagePBsel.ToolButton2Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; ModalResult := 1; end; end.