unit U_ClothSCDCGAnPaiMX; 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, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxCheckBox, BtnEdit, RM_BarCode, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxCore, ActiveX, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter; type TfrmClothSCDCGAnPaiMX = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; Panel1: TPanel; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; Label3: TLabel; OrderNo: TEdit; CDS_PRT: TClientDataSet; RM2: TRMGridReport; RMDBPRT: TRMDBDataSet; ADOQueryPrint: TADOQuery; DSAnPai: TDataSource; CDS_AnPai: TClientDataSet; cxGridPopupMenu2: TcxGridPopupMenu; ZhuanQty: TEdit; Label9: TLabel; Panel2: TPanel; edtKaNo: TEdit; Label1: TLabel; cxGrid3: TcxGrid; Tv3: TcxGridDBTableView; cxGridLevel2: TcxGridLevel; Label2: TLabel; P_Code: TEdit; Label6: TLabel; PS: TEdit; Label7: TLabel; JXPerson: TBtnEditA; Button2: TButton; Button1: TButton; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; v2Column2: TcxGridDBColumn; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column4: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; DataSource3: TDataSource; ClientDataSet3: TClientDataSet; v3Column3: TcxGridDBColumn; Label5: TLabel; Label8: TLabel; APPS: TEdit; PSSX: TEdit; Label10: TLabel; v2Column3: TcxGridDBColumn; v3Column7: TcxGridDBColumn; Button3: TButton; v3Column8: TcxGridDBColumn; v3Column10: TcxGridDBColumn; Label14: TLabel; APBatchNo: TEdit; v2Column5: TcxGridDBColumn; v3Column6: TcxGridDBColumn; v3Column11: TcxGridDBColumn; v3Column13: TcxGridDBColumn; v3Column15: TcxGridDBColumn; v3Column16: TcxGridDBColumn; v3Column17: TcxGridDBColumn; Button4: TButton; v3Column18: TcxGridDBColumn; BegDate: TDateTimePicker; EndDate: TDateTimePicker; IsJYTime: TCheckBox; Tv3Column2: TcxGridDBColumn; Label11: TLabel; PCID: TEdit; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyleRepository2: TcxStyleRepository; cxStyle2: TcxStyle; cxStyle3: TcxStyle; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure JXPersonBtnClick(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Button3Click(Sender: TObject); procedure v3Column8PropertiesEditValueChanged(Sender: TObject); procedure PSKeyPress(Sender: TObject; var Key: Char); procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Button4Click(Sender: TObject); procedure v2Column2PropertiesChange(Sender: TObject); private FInt, PFInt, FFAPPS: Integer; FFMainID: string; procedure InitGrid(); procedure InitForm(); function SaveDataAP(): Boolean; { Private declarations } public canshu1: string; { Public declarations } end; var frmClothSCDCGAnPaiMX: TfrmClothSCDCGAnPaiMX; implementation uses U_DataLink, U_Fun, U_ZDYHelp; {$R *.dfm} procedure TfrmClothSCDCGAnPaiMX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmClothSCDCGAnPaiMX.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('布票打印TV2', Tv2, '坯布生产'); WriteCxGrid('布票打印TV3', Tv3, '坯布生产'); end; procedure TfrmClothSCDCGAnPaiMX.InitGrid(); begin OrderNo.SetFocus; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add('select A.*,C.*,D.* '); SQL.Add(',ZAPPS=(SELECT COUNT(*) FROM PD_Plan_AnPai F WHERE F.MAINID=C.MAINID )'); SQL.Add(',ZJYPS=(SELECT COUNT(*) FROM JY_CLOTH g where g.pcid=a.pcid)'); SQL.Add('from PD_Plan_Card A '); sql.Add('inner join PD_Plan_Card_MS B on A.PCID=B.PCID '); sql.Add('left join PD_Plan_Main C on C.mainid=B.mainid '); sql.Add('LEFT join PD_Plan_Sub D on D.Subid=B.SubId '); // sql.Add(' where A.Filltime>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime))); // sql.Add(' and A.Filltime<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1))); SQL.Add('where 1=1'); if PCID.Text <> '' then begin sql.Add('and a.pcid=' + QuotedStr(PCID.Text)); end; SQL.Add(' order by A.Filltime desc'); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryMain, ClientDataSet3); SInitCDSData20(ADOQueryMain, ClientDataSet3); finally ADOQueryMain.EnableControls; end; with ClientDataSet3 do begin Edit; ClientDataSet3.FieldByName('ssel').value := True; Post; end; Label10.Caption := Trim(ClientDataSet3.fieldbyname('ConNo').AsString); APPS.Text := Trim(ClientDataSet3.fieldbyname('APPS').AsString); PSSX.Text := Trim(ClientDataSet3.fieldbyname('C_PIE').AsString); APBatchNo.Text := Trim(ClientDataSet3.fieldbyname('edZDFNo').AsString); with ADOQueryTemp do begin Close; sql.Clear; SQL.Add(' select A.*,carno=((select top 1 carno from CK_YgCl y where y.mjid=a.pcid and (y.ClType =''上轴'' or y.ClType =''接头'') and isnull(carno,'''')<>'''' order by filltime desc))'); sql.Add(' from PD_Plan_AnPai A'); sql.Add(' where A.PCId=''' + Trim(ClientDataSet3.fieldbyname('PCId').AsString) + ''''); // ShowMessage(sql.Text); // sql.Add(' and isnull(A.machno,'''')=''' + Trim(ClientDataSet3.fieldbyname('machno').AsString) + ''''); Open; end; CDS_AnPai.enableControls; SCreateCDS20(ADOQueryTemp, CDS_AnPai); SInitCDSData20(ADOQueryTemp, CDS_AnPai); v2Column3.SortOrder := soDescending; CDS_AnPai.Last; if CDS_AnPai.IsEmpty then APBatchNo.Text := Trim(ClientDataSet3.fieldbyname('edZDFNo').AsString) else APBatchNo.Text := Trim(CDS_AnPai.fieldbyname('APBatchNo').AsString); end; procedure TfrmClothSCDCGAnPaiMX.InitForm(); var fsj: string; begin ReadCxGrid('布票打印TV2', Tv2, '坯布生产'); ReadCxGrid('布票打印TV3', Tv3, '坯布生产'); // fsj := 'select distinct Code=Null,Name=MCCJ from Machine Group by MCCJ '; // SInitComBoxBySql(ADOQueryTemp, CheJian, False, fsj); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 10; InitGrid(); end; procedure TfrmClothSCDCGAnPaiMX.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmClothSCDCGAnPaiMX.OrderNoChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, ClientDataSet3); SInitCDSData20(ADOQueryMain, ClientDataSet3); end; procedure TfrmClothSCDCGAnPaiMX.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmClothSCDCGAnPaiMX.JXPersonBtnClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'JXPerson'; flagname := '机修'; if ShowModal = 1 then begin JXPerson.Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothSCDCGAnPaiMX.Button2Click(Sender: TObject); var FFDS: Integer; FGYCarNo: string; FStrs: TStringList; i, j, MPCNo: Integer; maxno, WSql: string; Txt, fImagePath, fPrintFile: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; ZAPPS: Integer; begin if ClientDataSet3.IsEmpty then Exit; Button2.Enabled := False; if ClientDataSet3.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Button2.Enabled := True; Exit; end; if Trim(PS.Text) = '' then begin Application.MessageBox('匹数不能为空!', '提示', 0); Button2.Enabled := True; Exit; end; if TryStrToInt(Trim(PS.Text), FFDS) = False then begin Application.MessageBox('匹数非法', '提示', 0); Button2.Enabled := True; Exit; end; FFDS := 0; FGYCarNo := Trim(ClientDataSet3.fieldbyname('MachNo').AsString); FStrs := TStringList.Create(); ClientDataSet3.DisableControls; with ClientDataSet3 do begin if ClientDataSet3.Locate('SSel', True, []) = True then begin ZAPPS := StrToIntDef(ClientDataSet3.fieldbyname('APPS').AsString, 0); FFDS := FFDS + 1; FStrs.Add(ClientDataSet3.fieldbyname('PCID').AsString); end; end; ClientDataSet3.EnableControls; if FFDS * strtoint(PS.Text) + ZAPPS > StrToInt(PSSX.Text) then begin Application.MessageBox('安排匹数过多,不允许保存!', '提示', 0); Button2.Enabled := True; Exit; end; with ClientDataSet3 do begin if ClientDataSet3.Locate('SSel', True, []) = True then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select apxh=isnull(Max(apxh),0) '); sql.Add('from PD_Plan_AnPai A '); sql.Add('where A.PCId=' + Quotedstr(Trim(ClientDataSet3.fieldbyname('pcid').AsString))); Open; end; if ADOQueryTemp.IsEmpty then MPCNo := 1 else MPCNo := ADOQueryTemp.FieldByName('apxh').AsInteger + 1; ////////////////// 插入布票 ////////////////////// try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' insert into PD_Plan_AnPai(MainId,SubId,pcid,APId,JXPerson,APBatchNo,MachNo,APXH,apdate,Filler,FillCode,FillTime,PRTCount,PRTFlag) values'); for j := 0 to StrToIntdef(ps.Text, 0) - 1 do begin if GetLSNo(ADOQueryTemp, maxno, '', 'PD_Plan_AnPai', 4, 1) = False then begin raise Exception.Create('取布票流水号失败!'); end; if j > 0 then sql.Add(','); sql.Add(' (' + Quotedstr(Trim(ClientDataSet3.fieldbyname('MAINID').AsString))); sql.Add(',' + Quotedstr(Trim(ClientDataSet3.fieldbyname('SUBID').AsString))); sql.Add(',' + Quotedstr(Trim(Trim(ClientDataSet3.fieldbyname('pcid').AsString)))); sql.Add(',' + Quotedstr(maxno)); sql.Add(',' + Quotedstr(JXPerson.Text)); sql.Add(',' + Quotedstr(APBatchNo.Text)); sql.Add(',' + Quotedstr(ClientDataSet3.fieldbyname('MachNo').AsString)); sql.Add(',' + Quotedstr(IntToStr(MPCNo))); sql.Add(',getdate() '); sql.Add(',' + Quotedstr(Trim(DName))); sql.Add(',' + Quotedstr(Trim(DCode))); sql.Add(',getdate(),1,0 '); sql.Add(' )'); MPCNo := MPCNo + 1; if WSql <> '' then begin WSql := WSql + ',' + QuotedStr(Trim(maxno)); end else begin WSql := QuotedStr(Trim(maxno)); end; end; ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' update PD_Plan_Card set APPS=(select Count(APID) from PD_Plan_AnPai AA where AA.PCID=PD_Plan_Card.PCId) '); sql.add(' where pcid =''' + Trim(ClientDataSet3.fieldbyname('PCId').AsString) + ''''); //ShowMessage(SQL.Text); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('打印异常!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; SQL.Add(' select A.*'); sql.Add(' from PD_Plan_AnPai A'); sql.Add(' where A.PCId=''' + Trim(ClientDataSet3.fieldbyname('PCId').AsString) + ''''); // sql.Add(' and isnull(A.machno,'''')=''' + Trim(ClientDataSet3.fieldbyname('machno').AsString) + ''''); Open; end; SCreateCDS20(ADOQueryTemp, CDS_AnPai); SInitCDSData20(ADOQueryTemp, CDS_AnPai); with ADOQueryTemp do begin Close; sql.Clear; sql.add(' select *,edtkano=(select edtkano from pd_plan_Card e where e.pcid=a.pcid) from PD_Plan_AnPai A'); sql.add(' INNER JOIN PD_Plan_Main B on A.MainID =B.MainID '); sql.add(' INNER JOIN PD_Plan_SUB C on B.MainID =C.MainID '); sql.add(' where APID in (' + WSql + ')'); sql.add(' Order by APXH'); Open; end; SCreateCDS20(ADOQueryTemp, CDS_PRT); SInitCDSData20(ADOQueryTemp, CDS_PRT); with CDS_PRT do begin First; while not Eof do begin fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if FileExists(fImagePath) then DeleteFile(fImagePath); try if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(CDS_PRT.fieldbyname('APID').AsString); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except cxGrid3.Enabled := True; application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; Sleep(300); ExportFtErpFile(trim('梭织布票') + '.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\梭织布票.rmf'; if FileExists(fPrintFile) then begin RM2.LoadFromFile(fPrintFile); RMVariables['QRBARCODE'] := fImagePath; RMVariables['APXH'] := CDS_PRT.fieldbyname('APXH').AsString; RM2.PrintReport; end else begin cxGrid3.Enabled := True; Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\坯布标签AP.rmf'), '提示', 0); Exit; end; Next; end; end; ClientDataSet3.Delete; end; end; InitGrid(); Button2.Enabled := True; FFMainID := ''; cxGrid3.Enabled := True; // try // if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then // CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); // if FileExists(fImagePath) then // DeleteFile(fImagePath); // Sleep(300); // Moudle := LoadLibrary('MakeQRBarcode.dll'); // @Makebar := GetProcAddress(Moudle, 'Make'); // @Mixtext := GetProcAddress(Moudle, 'MixText'); // Txt := Trim(maxno); // Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); // except // cxGrid3.Enabled := True; // application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); // Button2.Enabled := True; // exit; // end; // ExportFtErpFile(trim(GYLabName) + '.rmf', ADOQueryTemp); // fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(GYLabName) + '.rmf'; end; // if SaveDataAP() then // begin // InitGrid(); // Label10.Caption := Trim(ClientDataSet3.fieldbyname('ConNo').AsString); // APPS.Text := Trim(ClientDataSet3.fieldbyname('APPS').AsString); // PSSX.Text := Trim(ClientDataSet3.fieldbyname('PiQty').AsString); // APBatchNo.Text := Trim(ClientDataSet3.fieldbyname('edZDFNo').AsString); // end; // CDS_AnPai.Last; // Button2.Enabled := True; function TfrmClothSCDCGAnPaiMX.SaveDataAP(): Boolean; var maxno, fPrintFile: string; i, FAPPS, FFDS: Integer; FDate: string; Txt, fImagePath, FGYCarNo: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; GYMainId, GYSubId, GYPCID, GYCarNo, GYC_Code, GYC_CodeName, GYConNo, GYXHInt, GYLabName, GYCheJian, GYBatchNOHZ, GYChouZhen, GYCarType, GYC_Spec, GYC_CPName, GYC_ZhenCun, GYC_Custom, GYC_gongyi: string; begin cxGrid3.Enabled := False; FDate := FormatDateTime('yyyy-MM-dd', SGetServerDate(ADOQueryTemp)); with ClientDataSet3 do begin if ClientDataSet3.Locate('SSel', True, []) = True then begin GYMainId := Trim(ClientDataSet3.fieldbyname('Mainid').AsString); GYSubId := Trim(ClientDataSet3.fieldbyname('SubId').AsString); GYPCID := Trim(ClientDataSet3.fieldbyname('PCId').AsString); GYCarNo := Trim(ClientDataSet3.fieldbyname('MachNo').AsString); GYC_Code := Trim(ClientDataSet3.fieldbyname('P_Code').AsString); GYC_CodeName := Trim(ClientDataSet3.fieldbyname('P_CodeName').AsString); GYConNo := Trim(ClientDataSet3.fieldbyname('ConNo').AsString); GYLabName := '梭织布票'; GYBatchNOHZ := Trim(ClientDataSet3.fieldbyname('edZDFNo').AsString); GYCarType := Trim(ClientDataSet3.fieldbyname('CarType').AsString); GYC_Spec := Trim(ClientDataSet3.fieldbyname('P_Spec').AsString); GYC_Custom := Trim(ClientDataSet3.fieldbyname('KHName').AsString); for i := 1 to StrToInt(PS.Text) do begin try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryCmd, maxno, '', 'PD_Plan_AnPai', 4, 1) = False then begin cxGrid3.Enabled := True; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('生成坯布流水号异常!', '提示', 0); Button2.Enabled := True; exit; Break; end; with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('select * from PD_Plan_AnPai where 1=2'); Open; end; with ADOQueryCmd do begin Append; FieldByName('MainId').Value := Trim(GYMainId); FieldByName('SubId').Value := Trim(GYSubId); FieldByName('PCId').Value := Trim(GYPCID); FieldByName('APId').Value := Trim(maxno); FieldByName('JXPerson').Value := Trim(JXPerson.Text); FieldByName('APBatchNo').Value := Trim(APBatchNo.Text); FieldByName('MachNo').Value := Trim(GYCarNo); FieldByName('PRTCount').Value := 1; FieldByName('PRTFlag').Value := 0; FieldByName('APDate').Value := FDate; FieldByName('Filler').Value := Trim(DName); FieldByName('FillTime').Value := FDate; FieldByName('FillCode').Value := Trim(DCode); Post; end; with ClientDataSet3 do begin if ClientDataSet3.Locate('SSel', True, []) = True then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Max(APXH) APXH from PD_Plan_AnPai A where A.PCId=''' + Trim(ClientDataSet3.fieldbyname('PCId').AsString) + ''''); Open; end; if ADOQueryTemp.FieldByName('APXH').Value = null then begin FFAPPS := 0; end else begin FFAPPS := StrToIntDef(Trim(ADOQueryTemp.fieldbyname('APXH').Value), 0); end; end; FFAPPS := FFAPPS + 1; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' Update PD_Plan_AnPai set '); SQL.Add('APXH=' + QuotedStr(IntToStr(FFAPPS))); //SQL.Add(' APXH=isnull((select Max(APXH) from PD_Plan_AnPai A where A.MainId=PD_Plan_AnPai.MainId and A.MachNo=PD_Plan_AnPai.MachNo ),0)+1'); sql.Add(' where APId=''' + Trim(maxno) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' exec P_UP_CardByAnPai ' + quotedstr(Trim(GYPCID))); //ShowMessage(SQL.Text); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select APXH from PD_Plan_AnPai A where A.APId=''' + Trim(maxno) + ''''); Open; end; GYXHInt := Trim(ADOQueryTemp.fieldbyname('APXH').AsString); with CDS_AnPai do begin Append; FieldByName('MainId').Value := Trim(GYMainId); FieldByName('SubId').Value := Trim(GYSubId); FieldByName('PCId').Value := Trim(GYPCID); FieldByName('APId').Value := Trim(maxno); FieldByName('JXPerson').Value := Trim(JXPerson.Text); FieldByName('APBatchNo').Value := Trim(APBatchNo.Text); FieldByName('MachNo').Value := Trim(GYCarNo); FieldByName('APXH').Value := ADOQueryTemp.fieldbyname('APXH').Value; FieldByName('APDate').Value := FDate; FieldByName('PRTCount').Value := 1; Post; end; with ADOQueryTemp do begin Close; sql.Clear; SQL.Add('select * from PD_Plan_AnPai where APID=''' + Trim(maxno) + ''''); sql.Add(' and MachNo=''' + Trim(GYCarNo) + ''''); sql.Add(' and JXPerson=''' + Trim(JXPerson.Text) + ''''); sql.Add(' and MainId=''' + Trim(GYMainId) + ''''); sql.Add(' and SubId=''' + Trim(GYSubId) + ''''); SQL.Add('and PCID=''' + Trim(GYPCID) + ''' '); Open; end; if ADOQueryTemp.IsEmpty then begin cxGrid3.Enabled := True; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('打印异常,请重新选择打印,已打印出的标签有效!', '提示', 0); Button2.Enabled := True; Exit; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('打印异常!', '提示', 0); Button2.Enabled := True; Exit; end; fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; // if FileExists(fImagePath) then // DeleteFile(fImagePath); // Sleep(300); try if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Sleep(300); Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(maxno); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except cxGrid3.Enabled := True; application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); Button2.Enabled := True; exit; end; ExportFtErpFile(trim(GYLabName) + '.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(GYLabName) + '.rmf'; if FileExists(fPrintFile) then begin RM2.LoadFromFile(fPrintFile); RMVariables['QRBARCODE'] := fImagePath; RMVariables['PRTCS'] := ''; RMVariables['ConNo'] := Trim(GYConNo); RMVariables['APID'] := Trim(maxno); RMVariables['PCID'] := Trim(GYPCID); RMVariables['P_Code'] := Trim(GYC_Code); RMVariables['P_CodeName'] := Trim(GYC_CodeName); RMVariables['JXPerson'] := Trim(JXPerson.Text); RMVariables['APBatchNo'] := Trim(APBatchNo.Text); RMVariables['MachNo'] := Trim(GYCarNo); RMVariables['APXH'] := Trim(GYXHInt); RMVariables['BatchNo'] := Trim(GYBatchNOHZ); RMVariables['CarType'] := Trim(GYCarType); RMVariables['P_Spec'] := Trim(GYC_Spec); RMVariables['KHName'] := Trim(GYC_Custom); RMVariables['CPName'] := Trim(GYC_CPName); RM2.PrintReport; end else begin cxGrid3.Enabled := True; Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); Button2.Enabled := True; Exit; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' exec P_UP_CardByAnPai ' + quotedstr(Trim(GYPCID))); //ShowMessage(SQL.Text); ExecSQL; end; //ClientDataSet3.Delete; end; end; FFMainID := ''; cxGrid3.Enabled := True; Result := True; end; procedure TfrmClothSCDCGAnPaiMX.Button1Click(Sender: TObject); var GYPCID: string; begin if CDS_AnPai.IsEmpty then Exit; if CDS_AnPai.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if CDS_AnPai.Locate('SSel;JYFlag', VarArrayOf([True, True]), []) then begin Application.MessageBox('已检验不能作废!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; SQL.Add('select * from CK_Cloth_CR A where A.CRFlag=''出库'' '); sql.Add(' and A.APID=' + quotedstr(Trim(CDS_AnPai.fieldbyname('APID').AsString))); // ShowMessage(sql.Text); Open; end; if not ADOQueryTemp.IsEmpty then begin Application.MessageBox('已出库不能删除!', '提示', 0); Exit; end; if Application.MessageBox('确定要作废数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; CDS_AnPai.DisableControls; with CDS_AnPai do begin while CDS_AnPai.FieldByName('SSel').AsBoolean = True do begin GYPCID := Trim(CDS_AnPai.fieldbyname('pcid').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete PD_Plan_AnPai where APId=' + quotedstr(Trim(CDS_AnPai.fieldbyname('APID').AsString))); sql.Add('delete CK_Cloth_CR where APId=' + quotedstr(Trim(CDS_AnPai.fieldbyname('APID').AsString))); ExecSQL; end; CDS_AnPai.Delete; end; end; CDS_AnPai.EnableControls; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' exec P_UP_CardByAnPai ' + quotedstr(Trim(GYPCID))); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; TBRafresh.Click; APPS.Text := Trim(ClientDataSet3.fieldbyname('APPS').AsString) except ADOQueryCmd.Connection.RollbackTrans; CDS_AnPai.EnableControls; Application.MessageBox('作废失败!', '提示', 0); Exit; end; end; procedure TfrmClothSCDCGAnPaiMX.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmClothSCDCGAnPaiMX.Button3Click(Sender: TObject); var fPrintFile: string; i: Integer; FDate: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; GYMainId, GYedtkano, GYSubId, GYPCID, GYCarNo, GYC_Code, GYC_CodeName, GYConNo, GYXHInt, GYLabName, GYCheJian, GYBatchNOHZ, GYChouZhen, GYCarType, GYC_Spec, GYC_CPName, GYC_ZhenCun, GYC_Custom, GYC_gongyi: string; begin if ClientDataSet3.IsEmpty then Exit; if CDS_AnPai.IsEmpty then Exit; if CDS_AnPai.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if CDS_AnPai.Locate('SSel;JYFlag', VarArrayOf([True, True]), []) then begin Application.MessageBox('已检验不能重打!', '提示', 0); Exit; end; with CDS_AnPai do begin while CDS_AnPai.Locate('SSel', true, []) do begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from PD_Plan_Main where Mainid=''' + Trim(CDS_AnPai.fieldbyname('MainId').AsString) + ''''); Open; end; // GYLabName := Trim(ADOQueryTemp.fieldbyname('LabName').AsString); GYLabName := '梭织布票'; CDS_AnPai.Edit; CDS_AnPai.FieldByName('PRTFlag').Value := 1; CDS_AnPai.FieldByName('PRTCount').Value := 2; CDS_AnPai.Post; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate PD_Plan_AnPai Set PRTFlag=1,PRTCount=2 '); sql.Add(' where APId=''' + Trim(CDS_AnPai.fieldbyname('APID').AsString) + ''''); ExecSQL; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(CDS_AnPai.fieldbyname('APId').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; ExportFtErpFile(trim(GYLabName) + '.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\梭织布票.rmf'; if FileExists(fPrintFile) then begin with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select AA.*,A.*,C.*,D.* from PD_Plan_AnPai AA'); sql.add('inner join PD_Plan_Card A on AA.pcid=A.pcid'); sql.Add('inner join PD_Plan_Card_MS B on A.PCID=B.PCID '); sql.Add('left join PD_Plan_Main C on C.mainid=B.mainid '); sql.Add('LEFT join PD_Plan_Sub D on D.Subid=B.SubId'); sql.Add(' where AA.APId=''' + Trim(CDS_AnPai.fieldbyname('APID').AsString) + ''''); //ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryPrint, CDS_PRT); SInitCDSData20(ADOQueryPrint, CDS_PRT); GYMainId := Trim(CDS_PRT.fieldbyname('Mainid').AsString); GYSubId := Trim(CDS_PRT.fieldbyname('SubId').AsString); GYPCID := Trim(CDS_PRT.fieldbyname('PCId').AsString); GYCarNo := Trim(CDS_PRT.fieldbyname('MachNo').AsString); GYC_Code := Trim(CDS_PRT.fieldbyname('P_Code').AsString); GYC_CodeName := Trim(CDS_PRT.fieldbyname('P_CodeName').AsString); GYConNo := Trim(CDS_PRT.fieldbyname('ConNo').AsString); GYXHInt := Trim(CDS_PRT.fieldbyname('APXH').AsString); // GYLabName := Trim(ADOQueryPrint.fieldbyname('LabName').AsString); GYLabName := '梭织布票'; GYBatchNOHZ := Trim(CDS_PRT.fieldbyname('edZDFNo').AsString); GYCarType := Trim(CDS_PRT.fieldbyname('CarType').AsString); GYC_Spec := Trim(CDS_PRT.fieldbyname('P_Spec').AsString); GYC_Custom := Trim(CDS_PRT.fieldbyname('KHName').AsString); GYedtkano := Trim(CDS_PRT.fieldbyname('edtkano').AsString); RM2.LoadFromFile(fPrintFile); RMVariables['QRBARCODE'] := fImagePath; RMVariables['PRTCS'] := ''; RMVariables['APID'] := Trim(CDS_AnPai.fieldbyname('APID').AsString); RMVariables['PCID'] := Trim(GYPCID); RMVariables['ConNo'] := Trim(GYConNo); RMVariables['P_Code'] := Trim(GYC_Code); RMVariables['P_CodeName'] := Trim(GYC_CodeName); RMVariables['JXPerson'] := Trim(JXPerson.Text); RMVariables['APBatchNo'] := Trim(APBatchNo.Text); RMVariables['edtkano'] := Trim(GYedtkano); RMVariables['MachNo'] := Trim(GYCarNo); RMVariables['APXH'] := Trim(GYXHInt); RMVariables['BatchNo'] := Trim(GYBatchNOHZ); RMVariables['CarType'] := Trim(GYCarType); RMVariables['P_Spec'] := Trim(GYC_Spec); RMVariables['KHName'] := Trim(GYC_Custom); RMVariables['CPName'] := Trim(GYC_CPName); RM2.PrintReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\梭织布票.rmf'), '提示', 0); Exit; end; CDS_AnPai.Edit; CDS_AnPai.FieldByName('SSel').Value := false; end; end; end; procedure TfrmClothSCDCGAnPaiMX.v3Column8PropertiesEditValueChanged(Sender: TObject); var mvale: Boolean; fsj: string; FANPaiPS: Integer; begin mvale := TcxCheckBox(Sender).EditingValue; if mvale = True then begin if Trim(FFMainID) = '' then begin FFMainID := Trim(ClientDataSet3.fieldbyname('Mainid').AsString) end else begin if Trim(FFMainID) <> Trim(ClientDataSet3.fieldbyname('Mainid').AsString) then begin with ClientDataSet3 do begin Edit; FieldByName('SSel').Value := False; end; Application.MessageBox('不能选择不同的订单号!', '提示', 0); Exit; end; end; Label10.Caption := Trim(ClientDataSet3.fieldbyname('ConNo').AsString); PSSX.Text := Trim(ClientDataSet3.fieldbyname('C_PIE').AsString); with ADOQueryTemp do begin Close; sql.Clear; SQL.Add(' select A.*'); sql.Add(' from PD_Plan_AnPai A'); sql.Add(' where A.SubId=''' + Trim(ClientDataSet3.fieldbyname('SubId').AsString) + ''''); sql.Add(' and A.MainId=''' + Trim(ClientDataSet3.fieldbyname('MainId').AsString) + ''''); sql.Add(' and A.PCID=''' + Trim(ClientDataSet3.fieldbyname('PCID').AsString) + ''''); Open; end; SCreateCDS20(ADOQueryTemp, CDS_AnPai); SInitCDSData20(ADOQueryTemp, CDS_AnPai); end; APPS.Text := IntToStr(CDS_AnPai.RecordCount); fsj := Trim(ClientDataSet3.fieldbyname('PCID').AsString); with ClientDataSet3 do begin Edit; FieldByName('SSel').Value := mvale; end; if mvale = True then begin end else begin ClientDataSet3.Locate('SSel', True, []); end; if ClientDataSet3.Locate('SSel', True, []) = False then begin JXPerson.Text := ''; FFMainID := ''; end; ClientDataSet3.Locate('PCID', fsj, []); end; procedure TfrmClothSCDCGAnPaiMX.PSKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Button2.Click; end; end; procedure TfrmClothSCDCGAnPaiMX.Tv3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin with ClientDataSet3 do begin if ClientDataSet3.Locate('SSel', True, []) = True then begin Edit; ClientDataSet3.FieldByName('SSel').Value := False; end; FFMainID := ''; end; Label10.Caption := Trim(ClientDataSet3.fieldbyname('ConNo').AsString); APPS.Text := Trim(ClientDataSet3.fieldbyname('APPS').AsString); PSSX.Text := Trim(ClientDataSet3.fieldbyname('C_PIE').AsString); APBatchNo.Text := Trim(ClientDataSet3.fieldbyname('edZDFNo').AsString); with ADOQueryTemp do begin Close; sql.Clear; SQL.Add(' select A.*,carno=((select top 1 carno from CK_YgCl y where y.mjid=a.pcid and (y.ClType =''上轴'' or y.ClType =''接头'') and isnull(carno,'''')<>'''' order by filltime desc))'); sql.Add(' from PD_Plan_AnPai A'); sql.Add(' where A.PCId=''' + Trim(ClientDataSet3.fieldbyname('PCId').AsString) + ''''); // ShowMessage(sql.Text); // sql.Add(' and isnull(A.machno,'''')=''' + Trim(ClientDataSet3.fieldbyname('machno').AsString) + ''''); Open; end; CDS_AnPai.enableControls; SCreateCDS20(ADOQueryTemp, CDS_AnPai); SInitCDSData20(ADOQueryTemp, CDS_AnPai); v2Column3.SortOrder := soDescending; CDS_AnPai.Last; if CDS_AnPai.IsEmpty then APBatchNo.Text := Trim(ClientDataSet3.fieldbyname('edZDFNo').AsString) else APBatchNo.Text := Trim(CDS_AnPai.fieldbyname('APBatchNo').AsString); end; procedure TfrmClothSCDCGAnPaiMX.Button4Click(Sender: TObject); var fPrintFile: string; i: Integer; FDate: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; GYMainId, GYSubId, GYPCID, GYCarNo, GYC_Code, GYC_CodeName, GYConNo, GYXHInt, GYLabName, GYCheJian, GYBatchNOHZ, GYChouZhen, GYCarType, GYC_Spec, GYC_CPName, GYC_ZhenCun, GYC_Custom, GYC_gongyi: string; begin if ClientDataSet3.IsEmpty then Exit; if CDS_AnPai.IsEmpty then Exit; if CDS_AnPai.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if CDS_AnPai.Locate('SSel;JYFlag', VarArrayOf([True, True]), []) then begin Application.MessageBox('已检验不能重打!', '提示', 0); Exit; end; with CDS_AnPai do begin while CDS_AnPai.Locate('SSel', true, []) do begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from PD_Plan_Main where Mainid=''' + Trim(CDS_AnPai.fieldbyname('MainId').AsString) + ''''); Open; end; //GYLabName := '梭织布票'; CDS_AnPai.Edit; CDS_AnPai.FieldByName('PRTFlag').Value := 1; CDS_AnPai.FieldByName('PRTCount').Value := 2; CDS_AnPai.Post; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate PD_Plan_AnPai Set PRTFlag=1,PRTCount=2 '); sql.Add(',APBatchNo =' + quotedstr(Trim(APBatchNo.Text))); sql.Add(' where APId=''' + Trim(CDS_AnPai.fieldbyname('APID').AsString) + ''''); ExecSQL; end; // try // Moudle := LoadLibrary('MakeQRBarcode.dll'); // @Makebar := GetProcAddress(Moudle, 'Make'); // @Mixtext := GetProcAddress(Moudle, 'MixText'); // Txt := Trim(CDS_AnPai.fieldbyname('APId').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; // // fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\梭织布票.rmf'; // // if FileExists(fPrintFile) then // begin // with ADOQueryPrint do // begin // Close; // sql.Clear; // sql.Add('select AA.*,A.*,C.*,D.* from PD_Plan_AnPai AA'); // sql.add('inner join PD_Plan_Card A on AA.pcid=A.pcid'); // sql.Add('inner join PD_Plan_Card_MS B on A.PCID=B.PCID '); // sql.Add('left join PD_Plan_Main C on C.mainid=B.mainid '); // sql.Add('LEFT join PD_Plan_Sub D on D.Subid=B.SubId'); // sql.Add(' where AA.APId=''' + Trim(CDS_AnPai.fieldbyname('APID').AsString) + ''''); // //ShowMessage(SQL.Text); // Open; // end; // // GYMainId := Trim(ADOQueryPrint.fieldbyname('Mainid').AsString); // GYSubId := Trim(ADOQueryPrint.fieldbyname('SubId').AsString); // GYPCID := Trim(ADOQueryPrint.fieldbyname('PCId').AsString); // GYCarNo := Trim(ADOQueryPrint.fieldbyname('MachNo').AsString); // GYC_Code := Trim(ADOQueryPrint.fieldbyname('P_Code').AsString); // GYC_CodeName := Trim(ADOQueryPrint.fieldbyname('P_CodeName').AsString); // GYConNo := Trim(ADOQueryPrint.fieldbyname('ConNo').AsString); // GYXHInt := Trim(ADOQueryPrint.fieldbyname('APXH').AsString); //// GYLabName := Trim(ADOQueryPrint.fieldbyname('LabName').AsString); // GYLabName := '梭织布票'; // GYBatchNOHZ := Trim(ADOQueryPrint.fieldbyname('BatchNO').AsString); // GYCarType := Trim(ADOQueryPrint.fieldbyname('CarType').AsString); // GYC_Spec := Trim(ADOQueryPrint.fieldbyname('P_Spec').AsString); // GYC_Custom := Trim(ADOQueryPrint.fieldbyname('KHName').AsString); // // RM2.LoadFromFile(fPrintFile); // RMVariables['QRBARCODE'] := fImagePath; // RMVariables['PRTCS'] := ''; // RMVariables['APID'] := Trim(CDS_AnPai.fieldbyname('APID').AsString); // RMVariables['ConNo'] := Trim(GYConNo); // RMVariables['P_Code'] := Trim(GYC_Code); // RMVariables['P_CodeName'] := Trim(GYC_CodeName); // RMVariables['JXPerson'] := Trim(JXPerson.Text); // RMVariables['APBatchNo'] := Trim(APBatchNo.Text); // RMVariables['MachNo'] := Trim(GYCarNo); // RMVariables['APXH'] := Trim(GYXHInt); // RMVariables['BatchNo'] := Trim(GYBatchNOHZ); // RMVariables['CarType'] := Trim(GYCarType); // RMVariables['P_Spec'] := Trim(GYC_Spec); // RMVariables['KHName'] := Trim(GYC_Custom); // RMVariables['CPName'] := Trim(GYC_CPName); // RM2.PrintReport; // end // else // begin // Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\梭织布票.rmf'), '提示', 0); // Exit; // end; CDS_AnPai.Edit; CDS_AnPai.FieldByName('SSel').Value := false; CDS_AnPai.FieldByName('APBatchNo').Value := Trim(APBatchNo.Text); end; end; end; procedure TfrmClothSCDCGAnPaiMX.v2Column2PropertiesChange(Sender: TObject); begin if CDS_AnPai.Locate('SSel', True, []) = True then begin APBatchNo.Text := Trim(CDS_AnPai.fieldbyname('APBatchNo').AsString); end else APBatchNo.Text := ''; end; end.