unit U_JYOrderCDOne; 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; type TfrmJYOrderCDOne = 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; v1Column14: TcxGridDBColumn; 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; ToolButton2: TToolButton; CheckBox1: TCheckBox; v1AOrddefstr4: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column3: TcxGridDBColumn; AOrddefstr4: TEdit; Label14: TLabel; v1Column5: TcxGridDBColumn; v1Column7: TcxGridDBColumn; 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 ToolButton2Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); private DQdate:TDateTime; FLeft,FTop:Integer; procedure InitGrid(); procedure InitGrid10(); procedure InitForm(); function Savedata():Boolean; { Private declarations } public FFInt:Integer; { Public declarations } end; TMakebar = procedure(ucData:pchar;nDataLen:integer;nErrLevel:integer;nMask:integer;nBarEdition:integer;szBmpFileName:pchar;nScale:integer);stdcall; TMixtext = procedure( szSrcBmpFileName:PChar;szDstBmpFileName:PChar;sztext:PChar;fontsize,txtheight,hmargin,vmargin,txtcntoneline:integer);stdcall; var frmJYOrderCDOne: TfrmJYOrderCDOne; implementation uses U_DataLink,U_OrderInPut,U_Fun,U_MJEdit; {$R *.dfm} procedure TfrmJYOrderCDOne.FormDestroy(Sender: TObject); begin frmJYOrderCDOne:=nil; end; procedure TfrmJYOrderCDOne.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmJYOrderCDOne.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; DQdate:=SGetServerDate(ADOQueryTemp); end; procedure TfrmJYOrderCDOne.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('检验报告J',Tv1,'检验管理'); end; procedure TfrmJYOrderCDOne.InitGrid(); var i:integer; j:Integer; begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select B.AOrddefstr4,A.*,case when A.MJQty1<>0 then 1 else 0 end as hc_RollNum, RollNum=1,CDQK='''' from WFB_MJJY A '); sql.Add('inner join JYOrder_Sub_AnPai B on B.apid=A.apid '); 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.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.InitForm(); var fsj:String; begin ReadCxGrid('检验报告J',Tv1,'检验管理'); fsj:='select distinct(Filler) name from WFB_MJJY '; SInitComBoxBySql(ADOQueryCmd,Filler,False,fsj); BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-1; EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); //InitGrid(); end; procedure TfrmJYOrderCDOne.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.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv1,ADOQueryMain,'检验报告'); end; procedure TfrmJYOrderCDOne.TBRafreshClick(Sender: TObject); begin OrderNo.SetFocus; MovePanel2.Visible:=True; MovePanel2.Refresh; InitGrid(); MovePanel2.Visible:=False; end; procedure TfrmJYOrderCDOne.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.FormShow(Sender: TObject); begin InitForm(); if Trim(DParameters2)='管理' then begin TBManage.Visible:=True; TBZF.Visible:=True; //TBAftChkHX.Visible:=True; end; end; procedure TfrmJYOrderCDOne.Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); end; procedure TfrmJYOrderCDOne.Image2Click(Sender: TObject); begin Panel4.Visible:=False; end; procedure TfrmJYOrderCDOne.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FLeft:=X; FTop:=Y; end; procedure TfrmJYOrderCDOne.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.TBManageClick(Sender: TObject); begin try frmMJEdit:=TfrmMJEdit.Create(Application); with frmMJEdit 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_MJJY 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_CD 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.Free; end; end; procedure TfrmJYOrderCDOne.N1Click(Sender: TObject); begin SelOKNo(Order_Main,True); end; procedure TfrmJYOrderCDOne.N2Click(Sender: TObject); begin SelOKNo(Order_Main,False); end; procedure TfrmJYOrderCDOne.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_CR 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_MJJY 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_CD 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.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_MJJY 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.*,C_CodeNameZW=(select Top 1 defnote3 from KH_Zdy_Attachment X where X.ZdyName=A.C_CodeName and Type=''CP'') '); sql.Add(',C_colorName=(select Top 1 DEFstr6 from KH_Zdy_Attachment X where X.ZdyName=A.C_CodeName and X.DEFstr3=A.C_Color and Type=''CP'') '); sql.Add(' from WFB_MJJY 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.RadioGroup1Click(Sender: TObject); begin TBFind.Click; end; procedure TfrmJYOrderCDOne.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.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.BCgangNOChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmJYOrderCDOne.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.ToolButton2Click(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_MJJY 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('数据保存成功!','提示信息'); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('数据保存失败!','提示信息',0); end; end; procedure TfrmJYOrderCDOne.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.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; end.