unit U_CKSMEdit_other; interface uses Windows, Messages, strutils,SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, StdCtrls, cxContainer, cxTextEdit, cxCurrencyEdit, BtnEdit, ExtCtrls, ComCtrls, ToolWin, DBClient, ADODB, MovePanel; type TfrmCKSMEdit_other = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; Panel1: TPanel; PHYG: TBtnEditA; defstr2: TComboBox; Label16: TLabel; Label15: TLabel; packNo: TcxCurrencyEdit; Label14: TLabel; Label1: TLabel; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1MJID: TcxGridDBColumn; v1MJXH: TcxGridDBColumn; v1P_Code: TcxGridDBColumn; v1P_Color: TcxGridDBColumn; v1RollNum: TcxGridDBColumn; v1Qty: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; Panel2: TPanel; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ADOQueryMain: TADOQuery; ADOQueryCmd: TADOQuery; CDSOrder: TClientDataSet; CDSMJID: TClientDataSet; DataSource1: TDataSource; DataSource2: TDataSource; SmNO: TEdit; ADOQueryTmp: TADOQuery; MovePanel1: TMovePanel; Label2: TLabel; Edit2: TEdit; Button4: TButton; V2Column1: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyle2: TcxStyle; cxStyle_gridRow: TcxStyle; cxStyle_gridFoot: TcxStyle; cxStyle_gridHead: TcxStyle; cxStyle_gridGroupBox: TcxStyle; cxStyle_yellow: TcxStyle; cxStyle_Red: TcxStyle; cxStyle_fontBlack: TcxStyle; cxStyle_fontclFuchsia: TcxStyle; cxStyle_fontclPurple: TcxStyle; cxStyle_fontclGreen: TcxStyle; cxStyle_fontclBlue: TcxStyle; cxStyle_fontclTeal: TcxStyle; cxStyle_fontclOlive: TcxStyle; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure SmNOKeyPress(Sender: TObject; var Key: Char); procedure FormShow(Sender: TObject); procedure TV2CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure TBSaveClick(Sender: TObject); procedure PHYGBtnClick(Sender: TObject); procedure Button4Click(Sender: TObject); private procedure InitGrid(); procedure InitOrder(); procedure InitMJID(); function SavePH():Boolean; { Private declarations } public { Public declarations } end; var frmCKSMEdit_other: TfrmCKSMEdit_other; implementation uses U_DataLink,U_Fun, U_UserHelp, U_ZDYHelp; {$R *.dfm} function TfrmCKSMEdit_other.SavePH():Boolean; var phID:string; P_ID:integer; begin Result:=false; ADOQueryCmd.Connection.BeginTrans; P_ID:=1; try with CDSMJID do begin DisableControls; first; while not eof do begin if trim(CDSMJID.fieldbyname('SDefNote').AsString)='ɨ��ɹ�' then begin if GetLSNo(ADOQueryTmp,phID,'PT','CK_BanCP_PH1',4,1)=False then begin Application.MessageBox('ȡ�������ʧ�ܣ�','��ʾ',0); Exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from CK_BanCP_PH1 '); sql.Add('where 1=2 '); open; end; ADOQueryCmd.Append; ADOQueryCmd.FieldByName('phID').Value:=trim(phID); ADOQueryCmd.FieldByName('p_No').Value:=trim(fieldbyname('p_No').AsString); ADOQueryCmd.FieldByName('p_ID').Value:=P_ID; // ADOQueryCmd.FieldByName('conNo').Value:=trim(fieldbyname('conNo').AsString); ADOQueryCmd.FieldByName('MainID').Value:=trim(fieldbyname('MainID').AsString); ADOQueryCmd.FieldByName('SubID').Value:=trim(fieldbyname('SubID').AsString); ADOQueryCmd.FieldByName('PMainID').Value:=trim(fieldbyname('PMainID').AsString); ADOQueryCmd.FieldByName('PSubID').Value:=trim(fieldbyname('PSubID').AsString); ADOQueryCmd.FieldByName('mjID').Value:=trim(fieldbyname('mjID').AsString); ADOQueryCmd.FieldByName('CRID').Value:=trim(fieldbyname('CRID').AsString); ADOQueryCmd.FieldByName('qtyunit').Value:=trim(fieldbyname('qtyunit').AsString); ADOQueryCmd.FieldByName('defstr2').Value:=trim(defstr2.Text); ADOQueryCmd.FieldByName('packNo').Value:=trim(packNO.Text); ADOQueryCmd.FieldByName('qty').Value:=fieldbyname('qty').AsFloat; ADOQueryCmd.FieldByName('Rollnum').Value:=fieldbyname('Rollnum').AsFloat; ADOQueryCmd.FieldByName('Filler').Value:=trim(DName); ADOQueryCmd.FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTmp); ADOQueryCmd.FieldByName('BCGangNo').Value:=trim(fieldbyname('BCgangNO').AsString); ADOQueryCmd.FieldByName('PHYG').Value:=trim(PHYG.Text); ADOQueryCmd.Post; with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from CK_BanCP_KC1 '); sql.Add('where mjid='+quotedstr(trim(CDSMJID.fieldbyname('mjid').AsString))); sql.Add('and CRID='+quotedstr(trim(CDSMJID.fieldbyname('CRID').AsString))); open; edit; fieldbyname('kcstatus').Value:='1'; post; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from JYOrder_sub '); sql.Add('where mainID='+quotedstr(trim(CDSMJID.fieldbyname('mainID').AsString))); sql.Add('and subID='+quotedstr(trim(CDSMJID.fieldbyname('subID').AsString))); open; edit; fieldbyname('substatus').Value:='2'; post; end; P_ID:=P_ID+1; end; next; end; first; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; Result:=true; except ADOQueryCmd.Connection.RollbackTrans; end; end; procedure TfrmCKSMEdit_other.InitGrid(); begin with ADOQueryMain do begin Close; sql.Clear; SQL.Add('select A.*,B.CustomerNoName,PHRollNum=0.00,PHQty=0.00 from JYOrder_sub A'); SQL.Add('inner join JYOrder_main B on B.mainID=A.mainID'); SQL.Add('where 1=2 '); Open; end; SCreateCDS20(ADOQueryMain,CDSOrder); SInitCDSData20(ADOQueryMain,CDSOrder); with ADOQueryMain do begin Close; sql.Clear; SQL.Add('select A.*,B.PmainID,PSubID,P_NO from CK_BanCP_CR A '); SQL.Add('inner join CK_BanCP_PH B on B.PHID=A.PHID '); SQL.Add('where 1=2 '); Open; end; SCreateCDS20(ADOQueryMain,CDSMJID); SInitCDSData20(ADOQueryMain,CDSMJID); end; procedure TfrmCKSMEdit_other.InitOrder(); var fP_No:string; begin MovePanel1.Visible:=false; CDSMJID.EmptyDataSet; with ADOQueryMain do begin Close; sql.Clear; SQL.Add('select A.*,B.CustomerNoName,PHRollNum=0.00,PHQty=0.00,P_No=A.SOrdDefNote2 from JYOrder_sub A'); SQL.Add('inner join JYOrder_main B on B.mainID=A.mainID'); SQL.Add('where A.mainID='+quotedstr(trim(SmNO.text))); // SQL.Add('and syrName=''�������в�'''); Open; end; IF ADOQueryMain.IsEmpty then begin MovePanel1.Visible:=true; Edit2.text:=SmNO.Text; Label2.Caption:='�����Ų����ڣ�'; exit; end else begin SCreateCDS20(ADOQueryMain,CDSOrder); SInitCDSData20(ADOQueryMain,CDSOrder); with CDSOrder do begin DisableControls; first; while not eof do begin if GetLSNo(ADOQueryTmp,fP_No,'PNT','CK_BanCP_PH1',4,1) then begin edit; fieldbyname('P_No').Value:=trim(fP_No); post; end else begin MovePanel1.Visible:=true; Edit2.Enabled:=false; Label2.Caption:='���ɱ�Ŵ���'; EnableControls; exit; end; next; end; first; EnableControls; end; end; end; procedure TfrmCKSMEdit_other.InitMJID(); var fP_No:string; begin MovePanel1.Visible:=false; with ADOQueryMain do begin Close; sql.Clear; SQL.Add('select A.*,B.mainID,B.subID from CK_BanCP_KC1 A'); sql.add('left join CK_BanCP_CR1 B on B.BCID=A.BCID and B.CRFlag=''���'' '); SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text))); sql.Add('and isnull(A.KCStatus,''0'')=''0'' '); sql.Add('and KCQty>0 '); Open; if not IsEmpty then begin IF Fieldbyname('KCQty').AsFloat<=0 then begin CDSMJID.Append; CDSMJID.FieldByName('SDefNote').Value:='�������ѳ���'; CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); CDSMJID.Post; end else begin with ADOQueryTmp do begin Close; sql.Clear; SQL.Add('select B.mainID,B.subID from CK_BanCP_KC1 A'); sql.Add('inner join JYorder_Sub B on B.PRTCodeName=A.C_CodeName and B.PRtColor=A.C_Color'); SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text))); SQL.Add('and B.mainID='+quotedstr(trim(CDSOrder.Fieldbyname('mainID').AsString))); Open; IF ADOQueryTmp.IsEmpty then begin CDSMJID.Append; CDSMJID.FieldByName('SDefNote').Value:='Ʒ������ɫ����Ӧ'; CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); CDSMJID.Post; end else begin if CDSOrder.Locate('subID',trim(ADOQueryTmp.fieldbyname('subID').AsString),[]) then begin fP_No:=CDSOrder.fieldbyname('P_NO').AsString; end; CDSMJID.Append; CDSMJID.FieldByName('SDefNote').Value:='ɨ��ɹ�'; CDSMJID.FieldByName('MJID').Value:=trim(ADOQueryMain.Fieldbyname('MJID').AsString); CDSMJID.FieldByName('CRID').Value:=trim(ADOQueryMain.Fieldbyname('CRID').AsString); CDSMJID.FieldByName('C_CodeName').Value:=trim(ADOQueryMain.Fieldbyname('C_CodeName').AsString); CDSMJID.FieldByName('C_Color').Value:=trim(ADOQueryMain.Fieldbyname('C_Color').AsString); CDSMJID.FieldByName('CPType').Value:=trim(ADOQueryMain.Fieldbyname('CPType').AsString); CDSMJID.FieldByName('RollNum').Value:=ADOQueryMain.Fieldbyname('kcRollNum').AsFloat; CDSMJID.FieldByName('Qty').Value:=ADOQueryMain.Fieldbyname('kcQty').AsFloat; CDSMJID.FieldByName('QtyUnit').Value:=trim(ADOQueryMain.Fieldbyname('kcQtyUnit').AsString); CDSMJID.FieldByName('mainID').Value:=trim(ADOQueryTmp.Fieldbyname('mainID').AsString); CDSMJID.FieldByName('subID').Value:=trim(ADOQueryTmp.Fieldbyname('subID').AsString); CDSMJID.FieldByName('P_NO').Value:=trim(fP_No); CDSMJID.FieldByName('PmainID').Value:=trim(ADOQueryMain.Fieldbyname('mainID').AsString); CDSMJID.FieldByName('PsubID').Value:=trim(ADOQueryMain.Fieldbyname('subID').AsString); CDSMJID.FieldByName('BCgangNO').Value:=trim(ADOQueryMain.Fieldbyname('BCgangNO').AsString); // CDSMJID.FieldByName('conNo').Value:=trim(ADOQueryMain.Fieldbyname('conNo').AsString); CDSMJID.Post; end; end; end; end else begin CDSMJID.Append; CDSMJID.FieldByName('SDefNote').Value:='�����벻���ڻ��Ѿ�����'; CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); CDSMJID.Post; end; end; IF trim(CDSMJID.FieldByName('SDefNote').AsString)<>'ɨ��ɹ�' then begin MovePanel1.Visible:=true; Edit2.Text:=SmNO.Text; Label2.Caption:=trim(CDSMJID.FieldByName('SDefNote').AsString); end; end; procedure TfrmCKSMEdit_other.FormDestroy(Sender: TObject); begin wRITECxGrid(self.Caption+tV1.Name,Tv1,'��Ʒ�ֿ�'); wRITECxGrid(self.Caption+TV2.Name,Tv2,'��Ʒ�ֿ�'); frmCKSMEdit_other:=nil; end; procedure TfrmCKSMEdit_other.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=cahide; end; procedure TfrmCKSMEdit_other.TBCloseClick(Sender: TObject); begin close; end; procedure TfrmCKSMEdit_other.FormCreate(Sender: TObject); begin Panel2.Align:=alClient; end; procedure TfrmCKSMEdit_other.SmNOKeyPress(Sender: TObject; var Key: Char); begin IF key=#13 then begin MovePanel1.Visible:=false; if trim(smno.Text)='' then exit; IF uppercase(leftBstr(trim(smno.Text),2))='JM' then begin inItorder(); end else begin IF CDSOrder.IsEmpty then begin MovePanel1.Visible:=true; Edit2.Text:=SmNO.Text; Label2.Caption:='��������Ϊ�գ�'; smno.Text:=''; exit; end; if not CDSMJID.Locate('MJID',trim(smNo.Text),[]) then initMjid(); end; smno.Text:=''; smno.SetFocus; end; end; procedure TfrmCKSMEdit_other.FormShow(Sender: TObject); begin ReadCxGrid(self.Caption+tV1.Name,Tv1,'��Ʒ�ֿ�'); ReadCxGrid(self.Caption+TV2.Name,Tv2,'��Ʒ�ֿ�'); MovePanel1.Left:=(Width-MovePanel1.Width) div 2; MovePanel1.top:=(Height-MovePanel1.Height-200) div 2; InitGrid(); end; procedure TfrmCKSMEdit_other.TV2CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var i:integer; begin i:=tv2.GetColumnByFieldName('SDefNote').Index; if (AViewInfo.GridRecord.Values[i]<>'ɨ��ɹ�') then ACanvas.Brush.Color:=clred; end; procedure TfrmCKSMEdit_other.TBSaveClick(Sender: TObject); begin IF CDSOrder.IsEmpty then exit; if CDSMJID.IsEmpty then exit; IF (trim(CDSOrder.FieldByName('CustomerNoName').AsString)='�㶫���в�') or (trim(CDSOrder.FieldByName('CustomerNoName').AsString)='�������в�') then begin IF trim(packNo.Text)='' then begin application.MessageBox('���Ų���Ϊ�գ�','��ʾ��Ϣ',0); exit; end; IF trim(defstr2.Text)='' then begin application.MessageBox('�������Ͳ���Ϊ�գ�','��ʾ��Ϣ',0); exit; end; end; IF trim(CDSOrder.FieldByName('CustomerNoName').AsString)<>'�㶫���в�'then begin IF tv1.DataController.Summary.FooterSummaryValues[0]<>0 then begin IF tv1.DataController.Summary.FooterSummaryValues[0]<> tv2.DataController.Summary.FooterSummaryValues[0] then begin application.MessageBox('���ƥ������ͬ�����ܱ������ݣ�','��ʾ��Ϣ',MB_ICONERROR); exit; end; end; IF tv1.DataController.Summary.FooterSummaryValues[1]<>0 then begin IF tv1.DataController.Summary.FooterSummaryValues[1]<> tv2.DataController.Summary.FooterSummaryValues[1] then begin if Application.MessageBox('�����������ͬ���Ƿ棿','��ʾ',32+4)<>IDYES then Exit; // application.MessageBox('�����������ͬ�����ܱ������ݣ�','��ʾ��Ϣ',MB_ICONERROR); // exit; end; end; end; try // ADOQueryCmd.Connection.BeginTrans; IF not savePh() then begin application.MessageBox('�������ʧ�ܣ�','��ʾ��Ϣ',MB_ICONERROR); exit; end else begin application.MessageBox('�������ɹ���','��ʾ��Ϣ'); initGrid(); exit; end; // ADOQueryCmd.Connection.CommitTrans; except // ADOQueryCmd.Connection.RollbackTrans; end; end; procedure TfrmCKSMEdit_other.PHYGBtnClick(Sender: TObject); begin { frmUserHelp:=TfrmUserHelp.Create(self); with frmUserHelp do begin if showmodal=1 then begin PHYG.Text:=trim(ADOQueryHelp.fieldbyname('userName').AsString); end; free; end; } try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='PHYGFLAG'; flagname:='���Ա��'; if ShowModal=1 then begin PHYG.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCKSMEdit_other.Button4Click(Sender: TObject); begin MovePanel1.Visible:=false; end; end.