unit U_TJCKOutOK; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxButtonEdit, cxCalendar, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, StdCtrls, ExtCtrls, ComCtrls, ToolWin, DBClient, ADODB, cxCheckBox, cxPC, BtnEdit, cxGridDBTableView, cxGridCustomPopupMenu, cxGridPopupMenu, cxTextEdit; type TfrmTJCKOutOK = class(TForm) Panel1: TPanel; Label3: TLabel; OrderNo: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBBandedTableView; cxGridDBBandedColumn1: TcxGridDBBandedColumn; cxGridDBBandedColumn2: TcxGridDBBandedColumn; Tv2Column1: TcxGridDBBandedColumn; v6DutyPerson: TcxGridDBBandedColumn; v6DutyFactoryName: TcxGridDBBandedColumn; v6DutyReason: TcxGridDBBandedColumn; v6Column4: TcxGridDBBandedColumn; v6Column5: TcxGridDBBandedColumn; v6Column6: TcxGridDBBandedColumn; v6ToFactoryName: TcxGridDBBandedColumn; v6Column7: TcxGridDBBandedColumn; cxGridLevel3: TcxGridLevel; v6Column15: TcxGridDBBandedColumn; v6Column16: TcxGridDBBandedColumn; v6Column17: TcxGridDBBandedColumn; v6Column18: TcxGridDBBandedColumn; ClientDataSet1: TClientDataSet; DataSource1: TDataSource; ADOQuery1: TADOQuery; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Label1: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; v6Column20: TcxGridDBBandedColumn; v6Column21: TcxGridDBBandedColumn; cxTabControl1: TcxTabControl; ScrollBox3: TScrollBox; Button8: TButton; Button9: TButton; Button10: TButton; v6Column1: TcxGridDBBandedColumn; v6Column2: TcxGridDBBandedColumn; cxGrid3: TcxGrid; Tv3: TcxGridDBTableView; cxGridDBColumn9: TcxGridDBColumn; v5Column2: TcxGridDBColumn; v5Column7: TcxGridDBColumn; cxGridDBColumn8: TcxGridDBColumn; v5Column3: TcxGridDBColumn; v5Column4: TcxGridDBColumn; v5Column5: TcxGridDBColumn; v5Column1: TcxGridDBColumn; v5Column9: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Panel3: TPanel; Label16: TLabel; v5Column6: TcxGridDBColumn; Label18: TLabel; C_Code: TEdit; Label19: TLabel; C_CodeName: TEdit; v5Column8: TcxGridDBColumn; v6Column3: TcxGridDBBandedColumn; DataSource2: TDataSource; ClientDataSet2: TClientDataSet; DataSource3: TDataSource; ClientDataSet3: TClientDataSet; v6Column14: TcxGridDBBandedColumn; v6Column19: TcxGridDBBandedColumn; ADOQueryMain: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; cxGridPopupMenu3: TcxGridPopupMenu; cxGridPopupMenu2: TcxGridPopupMenu; Panel5: TPanel; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn10: TcxGridDBColumn; cxGridDBColumn11: TcxGridDBColumn; cxGridLevel5: TcxGridLevel; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; Label5: TLabel; FromPrice: TEdit; Label4: TLabel; FromConTypeOther: TBtnEditA; Label6: TLabel; ToFactoryName: TBtnEditA; Label7: TLabel; Label8: TLabel; ToPrice: TEdit; Label9: TLabel; ToConTypeOther: TBtnEditA; Label10: TLabel; Button1: TButton; v1Column4: TcxGridDBColumn; FromFactoryName: TBtnEditA; Label2: TLabel; Label11: TLabel; FromPSName: TComboBox; Label12: TLabel; ToPSName: TComboBox; MDType: TComboBox; Label13: TLabel; v3Column1: TcxGridDBColumn; Button2: TButton; Button3: TButton; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBRafreshClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); procedure Button10Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure Button9Click(Sender: TObject); procedure FromFactoryNameBtnClick(Sender: TObject); procedure ToFactoryNameBtnClick(Sender: TObject); procedure FromConTypeOtherBtnClick(Sender: TObject); procedure ToConTypeOtherBtnClick(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure Tv2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure OrderNoChange(Sender: TObject); private { Private declarations } procedure InitGrid(); function SaveData():Boolean; function SaveConData(FONID:string):Boolean; function SaveMDData(FONID,FOrdMainId,FOrdSubId,FPSID,FPFID,FConMainid,FConSubId:string):Boolean; public { Public declarations } end; var frmTJCKOutOK: TfrmTJCKOutOK; implementation uses U_DataLink,U_RTFun, U_GYSList,U_ZDYHelp, U_ModuleNote; {$R *.dfm} procedure TfrmTJCKOutOK.FormDestroy(Sender: TObject); begin frmTJCKOutOK:=nil; end; procedure TfrmTJCKOutOK.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmTJCKOutOK.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmTJCKOutOK.InitGrid(); begin with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select B.OrderNo,B.MPRTCode,B.MPRTCodeName,C.PRTHX,C.PRTColorNo,D.PSName,A.* '); sql.Add(' from JYOrder_PCS_Sub A'); sql.Add(' inner join JYOrder_Main B on A.Mainid=B.MainId'); sql.Add(' left join JYOrder_Sub C on A.SubId=C.SubId'); SQL.Add(' inner join JYOrder_Process D on A.PSID=D.PSID'); sql.Add(' where isnull(A.CKName,'''')=''���ڲֿ�'' '); if cxTabControl1.TabIndex=0 then begin sql.Add(' and A.TJOutFlag=0'); end else if cxTabControl1.TabIndex=1 then begin sql.Add(' and A.TJOutFlag=1'); end; Open; end; SCreateCDS20(ADOQueryMain,ClientDataSet1); SInitCDSData20(ADOQueryMain,ClientDataSet1); end; procedure TfrmTJCKOutOK.FormShow(Sender: TObject); begin {ReadCxBandedGrid('Tv6',Tv6,'���ڲֿ�'); ReadCxBandedGrid('Tv2',Tv2,'���ڲֿ�'); ReadCxBandedGrid('Tv3',Tv3,'���ڲֿ�'); ReadCxGrid('Tv5',Tv5,'���ڲֿ�'); } EndDate.Date:=SGetServerDate(ADOQuery1); BegDate.Date:=EndDate.Date-30; cxTabControl1.TabIndex:=0; end; procedure TfrmTJCKOutOK.TBCloseClick(Sender: TObject); begin close; end; procedure TfrmTJCKOutOK.ToolButton1Click(Sender: TObject); begin {if ClientDataSet6.IsEmpty then Exit; if cxTabControl1.TabIndex=2 then Exit; if Application.MessageBox('ȷ��Ҫִ����������','��ʾ',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main_MD where MDID='''+Trim(ClientDataSet6.fieldbyname('MDID').AsString)+''''); Open; end; with ADOQueryCmd do begin Edit; RTSetSaveDataCDSBand(ADOQueryCmd,tv6,ClientDataSet6,'JYOrder_Main_MD',3); if ClientDataSet6.FieldByName('CostFlag').AsBoolean=True then begin FieldByName('CostFlag').Value:=1 end else begin FieldByName('CostFlag').Value:=0; end; FieldByName('CRDate').Value:=SGetServerDateTime(ADOQueryTemp); FieldByName('CRFlag').Value:='���'; FieldByName('CRType').Value:='�������'; FieldByName('CRPerson').Value:=Trim(DName); FieldByName('QtyFlag').Value:=1; FieldByName('RKMDID').Value:=ClientDataSet6.fieldbyname('MDID').Value; FieldByName('DutyFactoryNo').Value:=ClientDataSet6.fieldbyname('DutyFactoryNo').Value; FieldByName('ToFactoryNo').Value:=ClientDataSet6.fieldbyname('ToFactoryNo').Value; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_Main_MD Set KCPS=(select Sum(PS*QtyFlag) from JYOrder_Main_MD A where A.RKMDID=JYOrder_Main_MD.MDID)'); sql.Add(',KCQty=(select Sum(Qty*QtyFlag) from JYOrder_Main_MD A where A.RKMDID=JYOrder_Main_MD.MDID)'); sql.Add(' where MDID='''+Trim(ClientDataSet6.fieldbyname('MDID').AsString)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; if cxTabControl1.TabIndex=0 then ClientDataSet6.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('����쳣!','��ʾ',0); end; } end; procedure TfrmTJCKOutOK.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmTJCKOutOK.OrderNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin end; end; procedure TfrmTJCKOutOK.Button10Click(Sender: TObject); begin {WriteCxBandedGrid('Tv6',Tv6,'���ڲֿ�'); WriteCxBandedGrid('Tv2',Tv2,'���ڲֿ�'); WriteCxBandedGrid('Tv3',Tv3,'���ڲֿ�'); WriteCxGrid('Tv5',Tv5,'���ڲֿ�'); } close; end; procedure TfrmTJCKOutOK.Button8Click(Sender: TObject); begin InitGrid(); end; procedure TfrmTJCKOutOK.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,ClientDataSet1); SInitCDSData20(ADOQueryMain,ClientDataSet1); end; procedure TfrmTJCKOutOK.Button9Click(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,ClientDataSet1); SInitCDSData20(ADOQueryMain,ClientDataSet1); end; procedure TfrmTJCKOutOK.FromFactoryNameBtnClick(Sender: TObject); begin try frmGYSList:=TfrmGYSList.Create(Application); with frmGYSList do begin if ShowModal=1 then begin FromFactoryName.TxtCode:=Trim(frmGYSList.Order_Main.fieldbyname('ZKID').AsString); FromFactoryName.Text:=Trim(frmGYSList.Order_Main.fieldbyname('KHNameJC').AsString); end; end; finally frmGYSList.Free; end; end; procedure TfrmTJCKOutOK.ToFactoryNameBtnClick(Sender: TObject); begin try frmGYSList:=TfrmGYSList.Create(Application); with frmGYSList do begin if ShowModal=1 then begin ToFactoryName.TxtCode:=Trim(frmGYSList.Order_Main.fieldbyname('ZKID').AsString); ToFactoryName.Text:=Trim(frmGYSList.Order_Main.fieldbyname('KHNameJC').AsString); end; end; finally frmGYSList.Free; end; end; procedure TfrmTJCKOutOK.FromConTypeOtherBtnClick(Sender: TObject); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='ConTypeOther'; flagname:='�ɹ��ӹ���ͬ����'; if ShowModal=1 then begin FromConTypeOther.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmTJCKOutOK.ToConTypeOtherBtnClick(Sender: TObject); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='ConTypeOther'; flagname:='�ɹ��ӹ���ͬ����'; if ShowModal=1 then begin ToConTypeOther.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmTJCKOutOK.Tv1FocusedRecordChanged( Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin with ADOQuery1 do begin Close; sql.Clear; sql.Add('select AM.CKID,AM.CKPS,AM.CKQty,AM.SJCKPS,AM.SJCKQty,JM.OrderNo, A.*,B.PSName OrdPSName, '); sql.Add(' JS.PRTHX,JS.PRTColor,JS.PRTColorNo,D.C_Code,D.C_CodeName,ClotheType10=A.ClotheType,'); sql.Add(' JSKCPS=A.RKPS-A.CKPS,'); sql.Add(' JSKCQty=A.RKQty-A.CKQty'); sql.Add(' from JYOrder_Main_MD_Out AM'); sql.Add(' inner join JYOrder_Main_MD A on AM.MDID=A.MDID'); sql.Add(' inner join JYOrder_Main JM on A.OrdMainId=JM.MainId'); sql.Add(' left join JYOrder_Sub JS on A.OrdSubId=JS.SubId'); sql.Add(' inner join JYOrder_Process B on A.PSID=B.PSID'); sql.Add(' inner join Contract_Main C on A.ConMainid=C.MainID'); sql.Add(' inner join Contract_Sub D on A.ConSubid=D.SubID'); if ClientDataSet1.IsEmpty=False then SQL.Add(' where AM.PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+'''') else sql.Add(' where 1<>1'); Open; end; SCreateCDS20(ADOQuery1,ClientDataSet2); SInitCDSData20(ADOQuery1,ClientDataSet2); if cxTabControl1.TabIndex=0 then begin FromFactoryName.Text:=Trim(ClientDataSet1.fieldbyname('FactoryName').AsString); FromFactoryName.TxtCode:=Trim(ClientDataSet1.fieldbyname('FactoryNo').AsString); end else begin with ADOQuery1 do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main_MD_OutNote where PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''''); Open; end; SCSHDataNew(ADOQuery1,Panel5,99); end; with ADOQuery1 do begin Close; sql.Clear; sql.Add('select * from Contract_Main A inner join Contract_Sub B on A.MainId=B.MainId '); if ClientDataSet2.IsEmpty=False then sql.Add(' where A.ConNo like '''+'%'+Trim(ClientDataSet2.fieldbyname('OrderNo').AsString)+'%'+'''') else sql.Add(' where 1<>1'); Open; end; SCreateCDS20(ADOQuery1,ClientDataSet3); SInitCDSData20(ADOQuery1,ClientDataSet3); end; procedure TfrmTJCKOutOK.Tv2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin with ADOQuery1 do begin Close; sql.Clear; sql.Add('select * from Contract_Main A inner join Contract_Sub B on A.MainId=B.MainId '); if ClientDataSet2.IsEmpty=False then sql.Add(' where A.ConNo like '''+'%'+Trim(ClientDataSet2.fieldbyname('OrderNo').AsString)+'%'+'''') else sql.Add(' where 1<>1'); Open; end; SCreateCDS20(ADOQuery1,ClientDataSet3); SInitCDSData20(ADOQuery1,ClientDataSet3); end; procedure TfrmTJCKOutOK.Button1Click(Sender: TObject); Var FReal:Double; FInt:Integer; begin if Trim(FromFactoryName.Text)='' then begin Application.MessageBox('������Ӧ�̲���Ϊ��!','��ʾ',0); Exit; end; {if Trim(ToFactoryName.Text)='' then begin Application.MessageBox('�µ���Ӧ�̲���Ϊ��!','��ʾ',0); Exit; end; } if Trim(FromPrice.Text)='' then begin Application.MessageBox('�����۸���Ϊ��!','��ʾ',0); Exit; end; if Trim(MDType.Text)='' then begin Application.MessageBox('�뵥���Ͳ���Ϊ��!','��ʾ',0); Exit; end; if TryStrToFloat(FromPrice.Text,FReal)=False then begin Application.MessageBox('�����۸�Ƿ�����!','��ʾ',0); Exit; end; if Trim(FromConTypeOther.Text)='' then begin Application.MessageBox('������ͬ���Ͳ���Ϊ��!','��ʾ',0); Exit; end; if (Trim(ToFactoryName.Text)+Trim(ToConTypeOther.Text))<>'' then begin if Trim(ToFactoryName.Text)='' then begin Application.MessageBox('�µ���Ӧ�̲���Ϊ��!','��ʾ',0); Exit; end; if Trim(ToConTypeOther.Text)='' then begin Application.MessageBox('�µ���ͬ���Ͳ���Ϊ��!','��ʾ',0); Exit; end; end; if Trim(ToPrice.Text)<>'' then begin if TryStrToFloat(ToPrice.Text,FReal)=False then begin Application.MessageBox('�µ��۸�Ƿ�����!','��ʾ',0); Exit; end; end; if Tv2.DataController.Summary.FooterSummaryValues[0]>Tv2.DataController.Summary.FooterSummaryValues[2] then begin Application.MessageBox('�����������ڿ������!','��ʾ',0); Exit; end; if Tv2.DataController.Summary.FooterSummaryValues[0]<>Tv2.DataController.Summary.FooterSummaryValues[1] then begin if Application.MessageBox('���������������������ȣ�ȷ��Ҫִ�д˲�����','��ʾ',32+4)<>IDYES then Exit; FInt:=99; end; if FInt<>99 then if Application.MessageBox('ȷ��Ҫ����������','��ʾ',32+4)<>IDYES then Exit; if SaveData() then begin Application.MessageBox('����ɹ�!','��ʾ',0); Exit; end; end; function TfrmTJCKOutOK.SaveData():Boolean; var maxno,ONID:string; begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main_MD_OutNote where PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin ONID:=Trim(ADOQueryTemp.fieldbyname('ONID').AsString); end else begin ONID:=''; end; try ADOQueryCmd.Connection.BeginTrans; if Trim(ONID)='' then begin if GetLSNo(ADOQueryCmd,maxno,'ON','JYOrder_Main_MD_OutNote',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('ȡ���ڲֿ������ˮ��ʧ��!!','��ʾ',0); Exit; end; end else begin maxno:=Trim(ONID); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main_MD_OutNote where ONID='''+Trim(ONID)+''''); Open; end; with ADOQueryCmd do begin if Trim(ONID)='' then begin Append; FieldByName('Filler').Value:=Trim(DName); end else begin Edit; FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTIme').Value:=SGetServerDateTime(ADOQuery1); end; FieldByName('PFID').Value:=Trim(ClientDataSet1.fieldbyname('PFID').AsString); FieldByName('ONID').Value:=Trim(maxno); FieldByName('FromFactoryName').Value:=Trim(FromFactoryName.Text); FieldByName('FromFactoryNo').Value:=Trim(FromFactoryName.TxtCode); FieldByName('ToFactoryName').Value:=Trim(ToFactoryName.Text); FieldByName('ToFactoryNo').Value:=Trim(FromFactoryName.TxtCode); FieldByName('FromConTypeOther').Value:=Trim(FromConTypeOther.Text); FieldByName('ToConTypeOther').Value:=Trim(ToConTypeOther.Text); if Trim(FromPrice.Text)<>'' then begin FieldByName('FromPrice').Value:=Trim(FromPrice.Text); end else begin FieldByName('FromPrice').Value:='0'; end; if Trim(ToPrice.Text)<>'' then begin FieldByName('ToPrice').Value:=Trim(ToPrice.Text); end else begin FieldByName('ToPrice').Value:='0'; end; FieldByName('MDTYpe').Value:=Trim(MDType.Text); Post; end; SaveConData(maxno); with ClientDataSet2 do begin First; while not Eof do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_Main_MD_Out Set '); if Trim(ClientDataSet2.fieldbyname('SJCKPS').AsString)<>'' then begin sql.Add(' SJCKPS='+ClientDataSet2.fieldbyname('SJCKPS').AsString); end else begin sql.Add(' SJCKPS=0'); end; if Trim(ClientDataSet2.fieldbyname('SJCKQty').AsString)<>'' then begin sql.Add(' ,SJCKQty='+ClientDataSet2.fieldbyname('SJCKQty').AsString); end else begin sql.Add(' ,SJCKQty=0'); end; SQL.Add(' where CKID='''+Trim(ClientDataSet2.fieldbyname('CKID').AsString)+''''); ExecSQL; end; Next; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_Main_MD Set CKPS='); sql.Add('(select isnull(sum(SJCKPS),0) from JYOrder_Main_MD_Out A where A.MDID=JYOrder_Main_MD.MDID) '); sql.Add(',CKQty=(select isnull(sum(SJCKQty),0) from JYOrder_Main_MD_Out A where A.MDID=JYOrder_Main_MD.MDID) '); sql.Add(' where MDID='''+Trim(ClientDataSet2.fieldbyname('MDID').AsString)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_PCS_Sub Set TJOutFlag=1'); sql.Add(' where PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''''); ExecSQL; end; if Trim(ClientDataSet1.fieldbyname('PFTPUnit').AsString)<>'M' then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_PCS_Sub Set WCMQty='); sql.Add('(select isnull(sum(Qty),0) from JYOrder_Main_MD A where A.PFID=JYOrder_PCS_Sub.PFID and isnull(CKName,'''')='''')*'); sql.Add('(select KgZM from JYOrder_Process A where A.PSID=JYOrder_PCS_Sub.PSID)'); sql.Add(' where PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''''); ExecSQL; end; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_PCS_Sub Set WCMQty='); sql.Add('(select isnull(sum(Qty),0) from JYOrder_Main_MD A where A.PFID=JYOrder_PCS_Sub.PFID and isnull(CKName,'''')='''')'); sql.Add(' where PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''''); ExecSQL; end; end; if cxTabControl1.TabIndex=0 then ClientDataSet1.Delete; ADOQueryCmd.Connection.CommitTrans; //Application.MessageBox('����ɹ�!','��ʾ',0); Result:=True; Exit; except ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('�����쳣!','��ʾ',0); end; end; function TfrmTJCKOutOK.SaveConData(FONID:string):Boolean; var maxno,maxsubno,MainID,SubId,PSName:string; begin Result:=False; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from Contract_Main where ONID='''+Trim(FONID)+''''); sql.Add(' and ConType='''+Trim(ClientDataSet1.fieldbyname('PSName').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin MainID:=Trim(ADOQueryTemp.fieldbyname('MainID').AsString); end else begin MainID:=''; end; if Trim(MainID)='' then begin if GetLSNo(ADOQueryCmd,maxno,'NM','Contract_Main',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('ȡ�ӹ��ɹ���ͬ��ˮ��ʧ��!!','��ʾ',0); Exit; end; end else begin maxno:=Trim(MainID); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from Contract_Main where MainId='''+Trim(MainID)+''''); Open; end; with ADOQueryCmd do begin if Trim(MainID)='' then begin Append; FieldByName('Filler').Value:=Trim(DName); end else begin Edit; FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTIme').Value:=SGetServerDateTime(ADOQuery1); end; FieldByName('ONID').Value:=Trim(FONID); FieldByName('MainID').Value:=Trim(maxno); FieldByName('ConNo').Value:=Trim(ClientDataSet1.fieldbyname('OrderNo').AsString); FieldByName('FactoryNoName').Value:=Trim(FromFactoryName.Text); FieldByName('FactoryNo').Value:=Trim(FromFactoryName.TxtCode); FieldByName('ConTypeOther').Value:=Trim(FromConTypeOther.Text); FieldByName('ConType').Value:=Trim(ClientDataSet1.fieldbyname('PSName').AsString); Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from Contract_Sub where MainId='''+Trim(maxno)+''''); Open; end; if ADOQueryTemp.IsEmpty then begin SubId:=''; end else begin SubId:=Trim(ADOQueryTemp.fieldbyname('SubId').AsString); end; if Trim(SubId)='' then begin if GetLSNo(ADOQueryCmd,maxsubno,'NS','Contract_Sub',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('ȡ�ӹ��ɹ���ͬ����ˮ��ʧ��!!','��ʾ',0); Exit; end; end else begin maxsubno:=Trim(SubId); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from Contract_Sub where SubId='''+Trim(SubId)+''''); Open; end; with ADOQueryCmd do begin if Trim(SubId)='' then begin Append; end else begin Edit; end; FieldByName('MainId').Value:=Trim(maxno); FieldByName('SubId').Value:=Trim(maxsubno); FieldByName('C_Code').Value:=ClientDataSet1.fieldbyname('MPRTCode').Value; FieldByName('C_CodeName').Value:=ClientDataSet1.fieldbyname('MPRTCodeName').Value; FieldByName('C_Qty').Value:=Tv2.DataController.Summary.FooterSummaryValues[0]; FieldByName('C_Unit').Value:=ClientDataSet2.fieldbyname('RKQtyUnit').Value; if Trim(FromPrice.Text)='' then FieldByName('Price').Value:=0 else FieldByName('Price').Value:=Trim(FromPrice.Text); Post; end; SaveMDData(FONID,Trim(ClientDataSet1.fieldbyname('MainId').AsString), Trim(ClientDataSet1.fieldbyname('SubId').AsString), Trim(ClientDataSet1.fieldbyname('PSID').AsString), Trim(ClientDataSet1.fieldbyname('PFID').AsString), Trim(maxno),Trim(maxsubno)); if Trim(ToFactoryName.Text)<>'' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Process where '); sql.Add(' Mainid='''+Trim(ClientDataSet1.fieldbyname('MainId').AsString)+''''); sql.Add(' and PSXH=(select PSXH+1 from JYOrder_Process where PSID='''+Trim(ClientDataSet1.fieldbyname('PSID').AsString)+''')'); // sql.Add(' and PSName='''+Trim(ClientDataSet1.fieldbyname('PSName').AsString)+''')'); Open; end; PSName:=Trim(ADOQueryTemp.fieldbyname('PSName').AsString); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from Contract_Main where ONID='''+Trim(FONID)+''''); sql.Add(' and ConType='''+Trim(PSName)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin MainID:=Trim(ADOQueryTemp.fieldbyname('MainID').AsString); end else begin MainID:=''; end; if Trim(MainID)='' then begin if GetLSNo(ADOQueryCmd,maxno,'JM','Contract_Main',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('ȡ�ӹ��ɹ���ͬ��ˮ��ʧ��!!','��ʾ',0); Exit; end; end else begin maxno:=Trim(MainID); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from Contract_Main where MainId='''+Trim(MainID)+''''); Open; end; with ADOQueryCmd do begin if Trim(MainID)='' then begin Append; FieldByName('Filler').Value:=Trim(DName); end else begin Edit; FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTIme').Value:=SGetServerDateTime(ADOQuery1); end; FieldByName('ONID').Value:=Trim(FONID); FieldByName('ConNo').Value:=Trim(ClientDataSet1.fieldbyname('OrderNo').AsString); FieldByName('MainID').Value:=Trim(maxno); FieldByName('FactoryNoName').Value:=Trim(ToFactoryName.Text); FieldByName('FactoryNo').Value:=Trim(ToFactoryName.TxtCode); FieldByName('ConTypeOther').Value:=Trim(ToConTypeOther.Text); FieldByName('ConType').Value:=Trim(PSName); Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from Contract_Sub where MainId='''+Trim(maxno)+''''); Open; end; if ADOQueryTemp.IsEmpty then begin SubId:=''; end else begin SubId:=Trim(ADOQueryTemp.fieldbyname('SubId').AsString); end; if Trim(SubId)='' then begin if GetLSNo(ADOQueryCmd,maxsubno,'JS','Contract_Sub',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('ȡ�ӹ��ɹ���ͬ����ˮ��ʧ��!!','��ʾ',0); Exit; end; end else begin maxsubno:=Trim(SubId); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from Contract_Sub where SubId='''+Trim(SubId)+''''); Open; end; with ADOQueryCmd do begin if Trim(SubId)='' then begin Append; end else begin Edit; end; FieldByName('MainId').Value:=Trim(maxno); FieldByName('SubId').Value:=Trim(maxsubno); FieldByName('C_Code').Value:=ClientDataSet1.fieldbyname('MPRTCode').Value; FieldByName('C_CodeName').Value:=ClientDataSet1.fieldbyname('MPRTCodeName').Value; FieldByName('C_Qty').Value:=Tv2.DataController.Summary.FooterSummaryValues[0]; FieldByName('C_Unit').Value:=ClientDataSet2.fieldbyname('RKQtyUnit').Value; if Trim(ToPrice.Text)='' then FieldByName('Price').Value:=0 else FieldByName('Price').Value:=Trim(ToPrice.Text); Post; end; end; Result:=True; end; function TfrmTJCKOutOK.SaveMDData(FONID,FOrdMainId,FOrdSubId,FPSID,FPFID,FConMainid,FConSubId:string):Boolean; var maxno,MDID:string; begin Result:=False; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main_MD where ONID='''+Trim(FONID)+''''); sql.Add(' and FactoryName='''+Trim(ClientDataSet1.fieldbyname('FactoryName').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin MDID:=Trim(ADOQueryTemp.fieldbyname('MDID').AsString); end else begin MDID:=''; end; if Trim(MDID)='' then begin if GetLSNo(ADOQueryCmd,maxno,'NM','JYOrder_Main_MD',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('ȡ�뵥��ˮ��ʧ��!!','��ʾ',0); Exit; end; end else begin maxno:=Trim(MDID); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main_MD where MDID='''+Trim(MDID)+''''); Open; end; with ADOQueryCmd do begin if Trim(MDID)='' then begin Append; FieldByName('Filler').Value:=Trim(DName); end else begin Edit; FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTIme').Value:=SGetServerDateTime(ADOQuery1); end; FieldByName('ONID').Value:=Trim(FONID); FieldByName('MDID').Value:=Trim(maxno); FieldByName('OrdMainID').Value:=Trim(FOrdMainId); FieldByName('ConMainID').Value:=Trim(FConMainId); FieldByName('ConSubID').Value:=Trim(FConSubId); FieldByName('OrdSubId').Value:=Trim(FOrdSubId); FieldByName('PSID').Value:=Trim(FPSID); FieldByName('PFID').Value:=Trim(FPFID); FieldByName('MDType').Value:=Trim(MDType.Text); FieldByName('MDNO').Value:=Trim(maxno); FieldByName('FactoryName').Value:=Trim(FromFactoryName.Text); FieldByName('FactoryNo').Value:=Trim(FromFactoryName.TxtCode); FieldByName('PS').Value:=Tv2.DataController.Summary.FooterSummaryValues[3]; FieldByName('Qty').Value:=Tv2.DataController.Summary.FooterSummaryValues[0]; FieldByName('QtyUnit').Value:=ClientDataSet2.fieldbyname('RKQtyUnit').Value; FieldByName('PSName').Value:=ClientDataSet1.fieldbyname('PSName').Value; FieldByName('FromFactoryName').Value:=Trim(ToFactoryName.Text); FieldByName('FromFactoryNo').Value:=Trim(ToFactoryName.TxtCode); FieldByName('MDDate').Value:=SGetServerDate(ADOQueryTemp); Post; end; Result:=True; end; procedure TfrmTJCKOutOK.Button2Click(Sender: TObject); begin try frmModuleNote:=TfrmModuleNote.Create(Application); with frmModuleNote do begin flag:='���ڲֿ�������'; if ShowModal=1 then begin end; end; finally frmModuleNote.Free; end; end; procedure TfrmTJCKOutOK.Button3Click(Sender: TObject); begin if cxTabControl1.TabIndex<>1 then Exit; if ClientDataSet1.IsEmpty then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from WFB_MJJY A'); sql.Add(' inner join JYOrder_Main_MD B on A.APID=B.MDID'); sql.Add(' inner join JYOrder_Main_MD_OutNote C on B.ONID=C.ONID'); SQL.Add(' where C.PFID='''+Trim(ClientDataSet1.fieldbyName('PFID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin Application.MessageBox('�Ѳ���������ݣ����ܳ���!','��ʾ',0); Exit; end; if Application.MessageBox('ȷ��Ҫִ�г���������','��ʾ',32+4)<>IDYES then exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; //�����뵥ʵ�ʳ������� sql.Add('Update JYOrder_Main_MD_Out Set SJCKPS=0,SJCKQty=0 where PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''''); //���³������� sql.Add('Update JYOrder_Main_MD Set CKPS=(select Sum(SJCKPS) from JYOrder_Main_MD_Out A where A.MDID=JYOrder_Main_MD.MDID)'); sql.Add(',CKQty=(select Sum(SJCKQty) from JYOrder_Main_MD_Out A where A.MDID=JYOrder_Main_MD.MDID)'); sql.Add(' where MDID in(select MDID from JYOrder_Main_MD_Out B where B.PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''')'); //ɾ���Զ����ɵĺ�ͬ sql.Add('delete Contract_Main where ONID in('); sql.Add(' select ONID from JYOrder_Main_MD_OutNote where PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''')'); sql.Add(' and isnull(ONID,'''')<>'''' '); SQL.Add(' delete Contract_Sub where not exists(select * from Contract_Main A where A.Mainid=Contract_Sub.MainId)'); //ɾ���Զ����ɵ��뵥 sql.Add(' delete JYOrder_Main_MD where ONID in('); sql.Add(' select ONID from JYOrder_Main_MD_OutNote where PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''')'); sql.Add(' and isnull(ONID,'''')<>'''' '); //���°���������� sql.Add(' Update JYOrder_PCS_Sub Set WCMQty=0,TJOutFlag=0 where PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''''); //ɾ�����ڲֿ������ע sql.Add(' Delete JYOrder_Main_MD_OutNote where PFID='''+Trim(ClientDataSet1.fieldbyname('PFID').AsString)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; ClientDataSet1.Delete; Application.MessageBox('�����ɹ�!','��ʾ',0); Exit; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('�����쳣!','��ʾ',0); end; end; procedure TfrmTJCKOutOK.OrderNoChange(Sender: TObject); begin Button9.Click; end; end.