unit U_JYOrderCDOne_Other; 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, MovePanel,strUtils; type TfrmJYOrderCDOne_other = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; Panel1: TPanel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; Label1: TLabel; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Label3: TLabel; OrderNo: TEdit; TBExport: TToolButton; Order_Main: TClientDataSet; MPRTMF: TEdit; Label7: TLabel; C_Color: TEdit; Label8: TLabel; Label9: TLabel; BCgangNO: TEdit; Label10: TLabel; MJID: TEdit; Label2: TLabel; CDQK: TEdit; Panel4: TPanel; Label11: TLabel; Panel10: TPanel; Image2: TImage; RichEdit1: TRichEdit; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column12: TcxGridDBColumn; Label4: TLabel; MJType: TComboBox; v1Column13: TcxGridDBColumn; Label5: TLabel; C_CodeName: TEdit; Label6: TLabel; MJStr2: TComboBox; v1Column17: TcxGridDBColumn; Label12: TLabel; Label13: TLabel; AOrddefstr6: TEdit; v1Column20: TcxGridDBColumn; v1Column21: TcxGridDBColumn; Filler: TComboBox; TBManage: TToolButton; v1Column22: TcxGridDBColumn; v1Column23: TcxGridDBColumn; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TBZF: TToolButton; ToolButton1: TToolButton; RM2: TRMGridReport; RMDB_Main: TRMDBDataSet; ADOQueryPrint: TADOQuery; TBAftChkHX: TToolButton; RadioGroup1: TRadioGroup; MovePanel2: TMovePanel; Tsave: TToolButton; CheckBox1: TCheckBox; v1Column3: TcxGridDBColumn; AOrddefstr4: TEdit; Label14: TLabel; v1Column5: TcxGridDBColumn; TRK: TToolButton; ADOQueryTmp: TADOQuery; Label15: TLabel; Label16: TLabel; Edit1: TEdit; Edit2: TEdit; Button1: TButton; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Image2Click(Sender: TObject); procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure TBManageClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBZFClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); procedure TBAftChkHXClick(Sender: TObject); procedure BCgangNOChange(Sender: TObject); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); procedure TsaveClick(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); procedure TRKClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Edit1Exit(Sender: TObject); private DQdate:TDateTime; FLeft,FTop:Integer; procedure InitGrid(); procedure InitGrid10(); procedure InitForm(); function Savedata():Boolean; function SaveRK():Boolean; { Private declarations } public FFInt:Integer; { Public declarations } end; var frmJYOrderCDOne_other: TfrmJYOrderCDOne_other; implementation uses U_DataLink,U_OrderInPut,U_Fun,U_MJEdit, U_MJEdit_other; {$R *.dfm} function TfrmJYOrderCDOne_other.SaveRK():Boolean; var maxno:String; CRID:Integer; MaxCkNo,MaxCkSubNo:String; MhcTime:TdateTime; begin Result:=false; ADOQueryCmd.Connection.BeginTrans; try Order_Main.First; Order_Main.DisableControls; while not Order_Main.Eof do begin IF Order_Main.FieldByName('ssel').AsBoolean then begin with ADOQueryTmp do begin Close; sql.Clear; SQL.add('Update CK_BanCP_CRID1 Set CRID=CRID+1'); sql.Add('select * from CK_BanCP_CRID1'); Open; end; CRID:=ADOQueryTmp.fieldbyname('CRID').AsInteger; if GetLSNo(ADOQueryTmp,MaxCkNo,'JT','CK_BanCP_CR1',4,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Order_Main.EnableControls; Application.MessageBox('取成品仓库最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_CR1 where 1<>1'); Open; end; mhcTime:=SGetServerDateTime(ADOQueryTmp); with ADOQueryCmd do begin Append; FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); FieldByName('C_Code').Value:=Trim(Order_Main.fieldbyname('C_Code').AsString); FieldByName('C_CodeName').Value:=Trim(Order_Main.fieldbyname('C_CodeName').AsString); FieldByName('C_SPec').Value:=Trim(Order_Main.fieldbyname('C_SPec').AsString); FieldByName('C_Color').Value:=Trim(Order_Main.fieldbyname('C_Color').AsString); FieldByName('APID').Value:=Trim(Order_Main.fieldbyname('APID').AsString); FieldByName('MJID').Value:=Trim(Order_Main.fieldbyname('MJId').AsString); FieldByName('mjxh').Value:=Trim(Order_Main.fieldbyname('mjxh').AsString); FieldByName('BCGangNO').Value:=Trim(Order_Main.fieldbyname('BCGangNO').AsString); FieldByName('RCGangNO').Value:=Trim(Order_Main.fieldbyname('RCGangNO').AsString); FieldByName('BCID').Value:=Trim(MaxCkNo); FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',mhcTime); FieldByName('CRFlag').Value:='入库'; FieldByName('CRType').Value:='检验入库'; FieldByName('CRID').Value:=CRID; FieldByName('KGQty').Value:=0; FieldByName('Qty').Value:=Order_Main.fieldbyname('MJLen').Value; FieldByName('RollNum').Value:=1; FieldByName('QtyUnit').Value:=Order_Main.fieldbyname('MJTypeOther').Value; FieldByName('CPType').Value:=Order_Main.fieldbyname('MJType').Value; FieldByName('Note').Value:=Order_Main.fieldbyname('Note').Value; FieldByName('Filler').Value:=Trim(DName); FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTmp); // FieldByName('kcKw').Value:=Trim(kcKw.Text); // fieldbyname('kcKw').Value:=GetKw(ADOQueryTmp,ADOQueryMain.fieldbyname('C_CodeName').AsString,ADOQueryMain.fieldbyname('C_Color').AsString); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_KC1 where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value:=CRID; FieldByName('BCID').Value:=Trim(MaxCkNo); FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',mhcTime); FieldByName('CRType').Value:='检验入库'; FieldByName('CPType').Value:=Order_Main.fieldbyname('MJType').Value; FieldByName('C_Code').Value:=Trim(Order_Main.fieldbyname('C_Code').AsString); FieldByName('C_CodeName').Value:=Trim(Order_Main.fieldbyname('C_CodeName').AsString); FieldByName('C_SPec').Value:=Trim(Order_Main.fieldbyname('C_SPec').AsString); FieldByName('C_Color').Value:=Trim(Order_Main.fieldbyname('C_Color').AsString); FieldByName('BCGangNO').Value:=Trim(Order_Main.fieldbyname('BCGangNO').AsString); FieldByName('RCGangNO').Value:=Trim(Order_Main.fieldbyname('RCGangNO').AsString); FieldByName('MJID').Value:=Trim(Order_Main.fieldbyname('MJID').AsString); FieldByName('KCKGQty').Value:=0; FieldByName('KCQty').Value:=Order_Main.fieldbyname('MJlen').Value; FieldByName('KCRollNum').Value:=1; FieldByName('KCQtyUnit').Value:=Order_Main.fieldbyname('MJTypeOther').Value; FieldByName('mjxh').Value:=Trim(Order_Main.fieldbyname('mjxh').AsString); FieldByName('KCNote').Value:=Order_Main.fieldbyname('Note').Value; // FieldByName('kcKw').Value:=Trim(kcKw.Text); // fieldbyname('kcKw').Value:=GetKw(ADOQueryTmp,ADOQueryMain.fieldbyname('C_CodeName').AsString,ADOQueryMain.fieldbyname('C_Color').AsString); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY1 Set MJStr2=''已入库'' where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); ExecSQL; end; end; Order_Main.Next; end; Order_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('数据保存成功!','提示'); Result:=true; except Order_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('数据保存失败!','提示',0); end; end; procedure TfrmJYOrderCDOne_other.FormDestroy(Sender: TObject); begin frmJYOrderCDOne_other:=nil; end; procedure TfrmJYOrderCDOne_other.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmJYOrderCDOne_other.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; DQdate:=SGetServerDate(ADOQueryTemp); end; procedure TfrmJYOrderCDOne_other.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('检验报告X',Tv1,'检验管理'); end; procedure TfrmJYOrderCDOne_other.InitGrid(); var i:integer; j:Integer; begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.*,case when A.MJQty1<>0 then 1 else 0 end as hc_RollNum, RollNum=1,CDQK='''' from WFB_MJJY1 A '); sql.Add('where A.FillTime>='''+formatdateTime('yyyy-MM-dd',begdate.DateTime)+''' '); sql.Add('and A.FillTime<'''+formatdateTime('yyyy-MM-dd',enddate.DateTime+1)+''' '); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; TBFind.Click; end; end; procedure TfrmJYOrderCDOne_other.InitGrid10(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('exec P_JYOrder_HZFX :begdate,:enddate,:PState '); Parameters.ParamByName('begdate').Value:='2012-01-01'; Parameters.ParamByName('enddate').Value:='2011-01-01'; Parameters.ParamByName('PState').Value:=3; Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmJYOrderCDOne_other.InitForm(); var fsj:String; begin ReadCxGrid('检验报告X',Tv1,'检验管理'); fsj:='select distinct(Filler) name from WFB_MJJY1 '; SInitComBoxBySql(ADOQueryCmd,Filler,False,fsj); BegDate.DateTime:=SGetServerDate10(ADOQueryTemp); EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); InitGrid(); end; procedure TfrmJYOrderCDOne_other.TBFindClick(Sender: TObject); var fsj:String; begin if ADOQueryMain.Active=False then Exit; if RadioGroup1.ItemIndex=0 then begin fsj:=' HXFlag=0 '; end else if RadioGroup1.ItemIndex=1 then begin fsj:=' HXFlag=1 '; end else if RadioGroup1.ItemIndex=0 then begin fsj:=''; end; if Trim(SGetFilters(Panel1,1,2))='' then begin fsj:=fsj; end else begin fsj:=SGetFilters(Panel1,1,2)+' and '+fsj; end; SDofilter(ADOQueryMain,fsj); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TfrmJYOrderCDOne_other.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv1,ADOQueryMain,'检验报告'); end; procedure TfrmJYOrderCDOne_other.TBRafreshClick(Sender: TObject); begin OrderNo.SetFocus; MovePanel2.Visible:=True; MovePanel2.Refresh; InitGrid(); MovePanel2.Visible:=False; end; procedure TfrmJYOrderCDOne_other.OrderNoChange(Sender: TObject); var fsj:String; begin if ADOQueryMain.Active=False then Exit; if Length(OrderNo.Text)<4 then Exit; if RadioGroup1.ItemIndex=0 then begin fsj:=' HXFlag=0 '; end else if RadioGroup1.ItemIndex=1 then begin fsj:=' HXFlag=1 '; end else if RadioGroup1.ItemIndex=0 then begin fsj:=''; end; if Trim(SGetFilters(Panel1,1,2))='' then begin fsj:=fsj; end else begin fsj:=SGetFilters(Panel1,1,2)+' and '+fsj; end; SDofilter(ADOQueryMain,fsj); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TfrmJYOrderCDOne_other.FormShow(Sender: TObject); begin InitForm(); if Trim(DParameters2)='管理' then begin TBManage.Visible:=True; TBZF.Visible:=True; Tsave.Visible:=true; //TBAftChkHX.Visible:=True; end; end; procedure TfrmJYOrderCDOne_other.Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); end; procedure TfrmJYOrderCDOne_other.Image2Click(Sender: TObject); begin Panel4.Visible:=False; end; procedure TfrmJYOrderCDOne_other.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FLeft:=X; FTop:=Y; end; procedure TfrmJYOrderCDOne_other.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin Panel4.Left:=FLeft; Panel4.Top:=FTop+110; Panel4.Visible:=True; Panel4.Refresh; Panel10.Caption:=Trim(TV1.Controller.FocusedColumn.Caption); RichEdit1.Text:=Order_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString; end; procedure TfrmJYOrderCDOne_other.TBManageClick(Sender: TObject); begin IF Order_Main.IsEmpty then exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_CR1 where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin Order_Main.EnableControls; Application.MessageBox('已产生入库数据不能编辑!','提示',0); Exit; end; try frmMJEdit_other:=TfrmMJEdit_other.Create(Application); with frmMJEdit_other do begin MJID.Text:=Trim(Self.Order_Main.fieldbyname('MJID').AsString); with ADOTmp do begin Close; sql.Clear; SQL.Add('select A.*,AOrddefstr3=(select AOrddefstr3 from JYOrder_Sub_AnPai B where B.APID=A.APID), '); sql.Add('AOrddefstr2=(select AOrddefstr2 from JYOrder_Sub_AnPai B where B.APID=A.APID) from WFB_MJJY1 A'); sql.Add(' where A.MJID='''+Trim(MJID.Text)+''''); Open; end; if ADOTmp.IsEmpty then begin MJID.Text:=''; Label2.Caption:=''; Label2.Visible:=False; Application.MessageBox('条码错误!','提示',0); Exit; end; MJMaoZ.Text:=Trim(ADOTmp.fieldbyname('MJMaoZ').AsString); MJLen.Text:=Trim(ADOTmp.fieldbyname('MJLen').AsString); MJQty1.Text:=Trim(ADOTmp.fieldbyname('MJQty1').AsString); MJQty2.Text:=Trim(ADOTmp.fieldbyname('MJQty2').AsString); MJFK.Text:=Trim(ADOTmp.fieldbyname('MJFK').AsString); MJSJKZ.Text:=Trim(ADOTmp.fieldbyname('MJSJKZ').AsString); M.Caption:=Trim(Trim(ADOTmp.fieldbyname('MJTypeOther').AsString)); Ma.Caption:=Trim(Trim(ADOTmp.fieldbyname('MJStr1').AsString)); if Trim(m.Caption)='' then begin m.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString); end; if Trim(Ma.Caption)='' then begin Ma.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr2').AsString); end; if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString))='正品' then begin RadioGroup1.ItemIndex:=0 end else if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString))='次品' then begin RadioGroup1.ItemIndex:=1; end else if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString))='留样' then begin RadioGroup1.ItemIndex:=2; end; with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY_CD1 A where A.MJID='''+Trim(MJID.Text)+''''); Open; end; Label2.Caption:=Trim(MJID.Text); Label2.Visible:=True; MJID.Text:=''; SCreateCDS20(ADOTmp,Order_MJ); SInitCDSData20(ADOTmp,Order_MJ); if ShowModal=1 then begin end; end; finally frmMJEdit_other.Free; end; end; procedure TfrmJYOrderCDOne_other.N1Click(Sender: TObject); begin SelOKNo(Order_Main,True); end; procedure TfrmJYOrderCDOne_other.N2Click(Sender: TObject); begin SelOKNo(Order_Main,False); end; procedure TfrmJYOrderCDOne_other.TBZFClick(Sender: TObject); var strLog:string; begin if Order_Main.Locate('ssel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; if Application.MessageBox('确定要作废数据吗?作废后数据不能恢复。','提示',32+4)<>IDYES then Exit; Order_Main.DisableControls; with Order_Main do begin First; while not Eof do begin if Order_Main.FieldByName('SSel').AsBoolean=True then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_CR1 where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin Order_Main.EnableControls; Application.MessageBox('已产生入库数据不能删除!','提示',0); Exit; end else begin //begin strLog:='缸条码:'+Trim(Order_Main.fieldbyname('APID').AsString)+ ' 卷号:'+Trim(Order_Main.fieldbyname('MJID').AsString)+ ' 回仓数量:'+Trim(Order_Main.fieldbyname('hc_RollNum').AsString)+ ' 检验数量:'+Trim(Order_Main.fieldbyname('MJLen').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete WFB_MJJY1 where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); // sql.Add('update JYOrder_Sub_AnPai_MX SET AOrdQty3=0 where APTm='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); sql.Add('delete WFB_MJJY_CD1 where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); // sql.Add('delete JYOrder_Sub_AnPai_MX where AOrdQty1=0 and APTm='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); // sql.Add('update JYOrder_Sub_AnPai SET AOrdQty1=(select sum(AOrdQty1) from JYOrder_Sub_AnPai_MX X where X.apid=JYOrder_Sub_AnPai.apid )'); // sql.Add('where APID='+quotedstr(trim(Order_Main.fieldbyname('APID').AsString))); { sql.Add('update YF_Money_CR SET Qty=(select sum(AOrdQty1) from JYOrder_Sub_AnPai X where X.apid=YF_Money_CR.YFTypeId )'); sql.Add('where YFTypeId='+quotedstr(trim(Order_Main.fieldbyname('APID').AsString))); sql.Add('update YF_Money_CR SET Money=Price*Qty,BBMoney=Price*Qty '); sql.Add('where YFTypeId='+quotedstr(trim(Order_Main.fieldbyname('APID').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(strLog))); sql.Add(','+quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; // end; end; Order_Main.Delete; end else Next; end; end; Order_Main.EnableControls; end; procedure TfrmJYOrderCDOne_other.ToolButton1Click(Sender: TObject); var fPrintFile:string; Txt,fImagePath:string; Moudle: THandle; Makebar:TMakebar; Mixtext:TMixtext; begin if Order_Main.IsEmpty then Exit; if Order_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; Order_Main.DisableControls; with Order_Main do begin First; while not Eof do begin if Order_Main.FieldByName('SSel').AsBoolean=True then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY1 Set PrtAgnFlag=1,PrtAgnDate=getdate(),PrtAgnPerson='''+Trim(DName)+''''); sql.Add(' where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); ExecSQL; end; try Moudle:=LoadLibrary('MakeQRBarcode.dll'); @Makebar:=GetProcAddress(Moudle,'Make'); @Mixtext:=GetProcAddress(Moudle,'MixText'); Txt:=Trim(Order_Main.fieldbyname('MJID').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); Order_Main.EnableControls; exit; end; with ADOQueryPrint do //英文名称不要在样品表中读取,要在客户自定义表中读取。note字段。 begin Close; SQL.Clear; sql.Add('select A.* '); sql.Add(' from WFB_MJJY1 A') ; SQL.Add(' where A.MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); Open; end; fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\通用标签.rmf' ; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE']:=fImagePath; RM2.LoadFromFile(fPrintFile); // RM2.ShowReport; RM2.PrintReport; end else begin Order_Main.EnableControls; Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\卷标签.rmf'),'提示',0); Exit; end; end; Next; end; end; Order_Main.EnableControls; end; procedure TfrmJYOrderCDOne_other.RadioGroup1Click(Sender: TObject); begin TBFind.Click; end; procedure TfrmJYOrderCDOne_other.TBAftChkHXClick(Sender: TObject); var fsj,fsj10:String; begin if Order_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; Order_Main.DisableControls; with Order_Main do begin First; while not Eof do begin if Order_Main.FieldByName('SSel').AsBoolean=True then begin if Trim(fsj)='' then begin fsj:=Trim(Order_Main.fieldbyname('SubId').AsString); end else begin if Trim(fsj)<>Trim(Order_Main.fieldbyname('SubId').AsString) then begin Order_Main.EnableControls; Application.MessageBox('不同产品不能一起回修!','提示',0); Exit; end; end; end; Next; end; end; Order_Main.EnableControls; Order_Main.DisableControls; with Order_Main do begin First; while not Eof do begin if Order_Main.FieldByName('SSel').AsBoolean=True then begin if Trim(fsj10)='' then begin fsj10:=Trim(Order_Main.fieldbyname('AOrddefstr4').AsString); end else begin if Trim(fsj10)<>Trim(Order_Main.fieldbyname('AOrddefstr4').AsString) then begin Order_Main.EnableControls; Application.MessageBox('不同染厂不能一起回修!','提示',0); Exit; end; end; end; Next; end; end; Order_Main.EnableControls; end; function TfrmJYOrderCDOne_other.Savedata():Boolean; var maxno,LLID:string; HXPS:Integer; HXQty,HXMQty:Double; begin HXPS:=0; HXQty:=0; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Top 1 * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); sql.Add(' and FirstName='''+Trim(Order_Main.fieldbyname('AOrddefstr4').AsString)+''''); Open; end; LLID:=Trim(ADOQueryTemp.fieldbyname('LLID').AsString); if Trim(LLID)='' then begin Result:=False; Application.MessageBox('没有相对应的加工厂!','提示',0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryCmd,maxno,'HX','Contract_Cloth_BefChkHX',2,1)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取回修最大号失败!','提示',0); Exit; end; with Order_Main do begin First; while not Eof do begin if Order_Main.FieldByName('SSel').AsBoolean=True then begin HXPS:=HXPS+1; HXQty:=HXQty+Order_Main.FieldByName('MJLen').Value; end; Next; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(''); Open; end; except end; end; procedure TfrmJYOrderCDOne_other.BCgangNOChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmJYOrderCDOne_other.OrderNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if Length(OrderNo.Text)<4 then Exit; MovePanel2.Visible:=True; MovePanel2.Refresh; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('exec P_JYOrder_HZFX :begdate,:enddate,:PState,:FFSql '); Parameters.ParamByName('begdate').Value:='2010-01-01'; Parameters.ParamByName('enddate').Value:='2050-01-01'; Parameters.ParamByName('PState').Value:=3; Parameters.ParamByName('FFSql').Value:=' where CC.OrderNo like '''+'%'+Trim(OrderNo.Text)+'%'+''''; Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; MovePanel2.Visible:=False; end; end; procedure TfrmJYOrderCDOne_other.TsaveClick(Sender: TObject); begin IF Order_Main.IsEmpty then exit; BegDate.SetFocus; with Order_Main do begin DisableControls; First; while not Eof do begin IF fieldbyname('ssel').AsBoolean then begin iF trim(FieldByName('MJStr2').AsString)='已入库' then begin EnableControls; application.MessageBox('已入库,不能保存!','提示信息',0); exit; end; end; Next; end; First; EnableControls; end; ADOQueryCmd.Connection.BeginTrans; try with Order_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 WFB_MJJY1 SET mjQty1='+quotedstr(trim(Order_Main.fieldbyname('MJQty1').AsString))); sql.Add(', mjlen='+quotedstr(trim(Order_Main.fieldbyname('mjlen').AsString))); sql.Add('where MJID='+quotedstr(trim(Order_Main.fieldbyname('MJID').AsString))); { sql.Add('update JYOrder_Sub_AnPai_MX SET AOrdQty1='+quotedstr(trim(Order_Main.fieldbyname('MJQty1').AsString))); sql.Add(', AOrdQty3='+quotedstr(trim(Order_Main.fieldbyname('mjlen').AsString))); sql.Add('where APTM='+quotedstr(trim(Order_Main.fieldbyname('MJID').AsString))); sql.Add('update JYOrder_Sub_AnPai SET AOrdQty1=(select sum(AOrdQty1) from JYOrder_Sub_AnPai_MX X where X.apid=JYOrder_Sub_AnPai.apid )'); sql.Add('where APID='+quotedstr(trim(Order_Main.fieldbyname('APID').AsString))); sql.Add('update YF_Money_CR SET Qty=(select sum(AOrdQty1) from JYOrder_Sub_AnPai X where X.apid=YF_Money_CR.YFTypeId )'); sql.Add('where YFTypeId='+quotedstr(trim(Order_Main.fieldbyname('APID').AsString))); sql.Add('update YF_Money_CR SET Money=Price*Qty,BBMoney=Price*Qty '); sql.Add('where YFTypeId='+quotedstr(trim(Order_Main.fieldbyname('APID').AsString))); sql.Add('delete WFB_MJJY where mjlen=0 and MJID='+quotedstr(trim(Order_Main.fieldbyname('MJID').AsString))); } execsql; end; end; Next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('数据保存成功!','提示信息'); InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('数据保存失败!','提示信息',0); end; end; procedure TfrmJYOrderCDOne_other.CheckBox1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; with Order_Main do begin DisableControls; First; while not Eof do begin Edit; FieldByName('SSel').Value:=CheckBox1.Checked; Post; Next; end; First; EnableControls; end; end; procedure TfrmJYOrderCDOne_other.Tv1CustomDrawIndicatorCell( Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); var FValue: string; FBounds: TRect; begin FBounds := AViewInfo.Bounds; if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then begin ACanvas.FillRect(FBounds); ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1); FValue :=IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index+1); InflateRect(FBounds, -1, -1) ; ACanvas.Font.Color := clBlack; ACanvas.Brush.Style := bsClear; ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); ADone := True; end; end; procedure TfrmJYOrderCDOne_other.TRKClick(Sender: TObject); begin IF Order_Main.IsEmpty then exit; IF saveRk() then TBRafresh.Click; end; procedure TfrmJYOrderCDOne_other.Button1Click(Sender: TObject); begin IF Order_Main.IsEmpty then exit; BegDate.SetFocus; IF trim(Edit1.Text)='' then begin application.MessageBox('品名不能为空!','提示信息',0); exit; end; IF trim(Edit2.Text)='' then begin application.MessageBox('颜色不能为空!','提示信息',0); exit; end; with Order_Main do begin DisableControls; First; while not Eof do begin IF fieldbyname('ssel').AsBoolean then begin iF trim(FieldByName('MJStr2').AsString)='已入库' then begin EnableControls; application.MessageBox('已入库,不能保存!','提示信息',0); exit; end; end; Next; end; First; EnableControls; end; ADOQueryCmd.Connection.BeginTrans; try with Order_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 WFB_MJJY1 SET C_CodeName='+quotedstr(trim(edit1.text))); sql.Add(', C_Color='+quotedstr(trim(edit2.Text))); sql.Add('where MJID='+quotedstr(trim(Order_Main.fieldbyname('MJID').AsString))); { sql.Add('update JYOrder_Sub_AnPai_MX SET AOrdQty1='+quotedstr(trim(Order_Main.fieldbyname('MJQty1').AsString))); sql.Add(', AOrdQty3='+quotedstr(trim(Order_Main.fieldbyname('mjlen').AsString))); sql.Add('where APTM='+quotedstr(trim(Order_Main.fieldbyname('MJID').AsString))); sql.Add('update JYOrder_Sub_AnPai SET AOrdQty1=(select sum(AOrdQty1) from JYOrder_Sub_AnPai_MX X where X.apid=JYOrder_Sub_AnPai.apid )'); sql.Add('where APID='+quotedstr(trim(Order_Main.fieldbyname('APID').AsString))); sql.Add('update YF_Money_CR SET Qty=(select sum(AOrdQty1) from JYOrder_Sub_AnPai X where X.apid=YF_Money_CR.YFTypeId )'); sql.Add('where YFTypeId='+quotedstr(trim(Order_Main.fieldbyname('APID').AsString))); sql.Add('update YF_Money_CR SET Money=Price*Qty,BBMoney=Price*Qty '); sql.Add('where YFTypeId='+quotedstr(trim(Order_Main.fieldbyname('APID').AsString))); sql.Add('delete WFB_MJJY where mjlen=0 and MJID='+quotedstr(trim(Order_Main.fieldbyname('MJID').AsString))); } execsql; end; end; Next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('数据保存成功!','提示信息'); InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('数据保存失败!','提示信息',0); end; end; procedure TfrmJYOrderCDOne_other.Edit1Exit(Sender: TObject); var mvalue:string; begin mvalue:=TEdit(Sender).Text; IF trim(mvalue)='' then exit; IF rightBstr(trim(mvalue),1)<>'#'THEN BEGIn mvalue:=trim(mvalue)+'#'; END; TEdit(Sender).Text:= mvalue; end; end.