unit U_RTZDYHelp; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList, StdCtrls, ExtCtrls, cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu; type TfrmRTZDYHelp = class(TForm) TV1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; V1Code: TcxGridDBColumn; V1Name: TcxGridDBColumn; ToolBar1: TToolBar; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; DataSource1: TDataSource; ClientDataSet1: TClientDataSet; TBAdd: TToolButton; TBSave: TToolButton; TBDel: TToolButton; TBClose: TToolButton; ToolButton1: TToolButton; TBEdit: TToolButton; V1Note: TcxGridDBColumn; V1OrderNo: TcxGridDBColumn; ADOConnection1: TADOConnection; Panel1: TPanel; Label1: TLabel; ZDYName: TEdit; Label2: TLabel; cxGridPopupMenu1: TcxGridPopupMenu; V1ZdyFlag: TcxGridDBColumn; V1HelpType: TcxGridDBColumn; ThreeImgList: TImageList; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBAddClick(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TV1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ZDYNameChange(Sender: TObject); procedure V1NamePropertiesEditValueChanged(Sender: TObject); procedure V1OrderNoPropertiesEditValueChanged(Sender: TObject); procedure V1NotePropertiesEditValueChanged(Sender: TObject); procedure V1Column1PropertiesEditValueChanged(Sender: TObject); procedure V1HelpTypePropertiesEditValueChanged(Sender: TObject); private procedure InitGrid(); { Private declarations } public flag,flagname,snote,MainType:string; fnote,forderno,fZdyFlag,ViewFlag:Boolean; PPSTE:integer; { Public declarations } end; var frmRTZDYHelp: TfrmRTZDYHelp; implementation uses U_DataLink,U_RTFun; {$R *.dfm} procedure TfrmRTZDYHelp.FormCreate(Sender: TObject); begin try cxGrid1.Align:=alClient; with ADOConnection1 do begin Connected:=false; ConnectionString:=DConString; //ConnectionString:=''; Connected:=true; end; except {if Application.MessageBox('��������ʧ��,�Ƿ�Ҫ�ٴ�����?','��ʾ',32+4)=IDYES then begin try with ADOConnection1 do begin Connected:=false; ConnectionString:=DConString; //ConnectionString:='23242'; Connected:=true; end; except end; end; } frmRTZDYHelp.Free; end; end; procedure TfrmRTZDYHelp.FormClose(Sender: TObject; var Action: TCloseAction); begin ZDYName.SetFocus; Action:=caFree; end; procedure TfrmRTZDYHelp.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add('select A.*,ZJM=dbo.getPinYin(A.ZdyName) from KH_ZDY A where A.Type='''+flag+''''); if Trim(MainType)<>'' then begin sql.Add(' and A.MainType='''+Trim(MainType)+''''); end; Open; end; SCreateCDS20(ADOQueryMain,ClientDataSet1); SInitCDSData20(ADOQueryMain,ClientDataSet1); finally ADOQueryMain.EnableControls; end; end; procedure TfrmRTZDYHelp.TBAddClick(Sender: TObject); var i:Integer; begin ZDYName.SetFocus; TV1.OptionsData.Editing:=True; TV1.OptionsSelection.CellSelect:=True; for i:=0 to 5 do begin with ClientDataSet1 do begin Append; Post; end; end; end; procedure TfrmRTZDYHelp.TBSaveClick(Sender: TObject); var maxno:string; begin if ClientDataSet1.IsEmpty then Exit; ZDYName.SetFocus; if ClientDataSet1.Locate('ZDYName',null,[]) then begin Application.MessageBox('���Ʋ���Ϊ�գ�','��ʾ',0); Exit; end; if ClientDataSet1.Locate('ZDYName','',[]) then begin Application.MessageBox('���Ʋ���Ϊ�գ�','��ʾ',0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryTemp do begin Close; SQL.Clear; SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+''''); open; end; if ADOQueryTemp.IsEmpty then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType '); Parameters.ParamByName('ZDYNo').Value:=Trim(flag); Parameters.ParamByName('ZDYName').Value:=Trim(flagname); Parameters.ParamByName('Type').Value:='Main'; Parameters.ParamByName('MainType').Value:=Trim(MainType); ExecSQL; end; end; with ADOQueryCmd do begin ClientDataSet1.DisableControls; with ClientDataSet1 do begin First; while not eof do begin if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then begin if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; ClientDataSet1.EnableControls; Application.MessageBox('ȡ�����ʧ�ܣ�','��ʾ',0); Exit; end; end else begin maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; with ADOQueryTemp do begin Close; sql.Clear; sql.add('select * from KH_Zdy where Type='''+Trim(flag)+''''); if Trim(MainType)<>'' then SQL.Add(' and MainType='''+Trim(MainType)+''''); sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin if ADOQueryTemp.RecordCount>1 then begin ADOQueryCmd.Connection.RollbackTrans; ClientDataSet1.EnableControls; Application.MessageBox('�����ظ���','��ʾ',0); Exit; end; if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then begin ADOQueryCmd.Connection.RollbackTrans; ClientDataSet1.EnableControls; Application.MessageBox('�����ظ���','��ʾ',0); Exit; end else begin if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then begin ADOQueryCmd.Connection.RollbackTrans; ClientDataSet1.EnableControls; Application.MessageBox('�����ظ���','��ʾ',0); Exit; end; end; end; with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from KH_ZDY where 1<>1'); Open; end; ADOQueryCmd.Append; ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno); ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').Value; ADOQueryCmd.FieldByName('note').Value:=Trim(snote); //ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString; ADOQueryCmd.FieldByName('Type').Value:=flag; ADOQueryCmd.FieldByName('valid').Value:='Y'; if Trim(MainType)<>'' then ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType); //ADOQueryCmd.FieldByName('sel').Value:=0; ADOQueryCmd.Post; ClientDataSet1.Edit; ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno); ClientDataSet1.Post; Next; end; end; ClientDataSet1.EnableControls; end; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('����ɹ���','��ʾ',0); TV1.OptionsData.Editing:=False; TV1.OptionsSelection.CellSelect:=False; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('����ʧ�ܣ�','��ʾ',0); end; end; procedure TfrmRTZDYHelp.TBDelClick(Sender: TObject); begin if ClientDataSet1.IsEmpty then Exit; if (Trim(ClientDataSet1.FieldByName('ZDYNo').AsString)<>'') or (Trim(ClientDataSet1.FieldByName('ZDYname').AsString)<>'') then begin if application.MessageBox('ȷ��Ҫɾ����?','��ʾ��Ϣ',1)=2 then exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete KH_ZDY where ZDYNo='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+''''); SQL.Add(' and Type='''+Trim(flag)+''''); ExecSQL; end; end; ClientDataSet1.Delete; end; procedure TfrmRTZDYHelp.TBCloseClick(Sender: TObject); begin ModalResult:=2; ZDYName.SetFocus; WriteCxGrid('�Զ���'+Trim(flag),TV1,'�Զ�������'); Close; end; procedure TfrmRTZDYHelp.FormShow(Sender: TObject); var fsj,fsj1:string; begin {if PPSTE=1 then begin Application.Terminate; Exit; end; } InitGrid(); fsj:=Trim(flag)+'01'; fsj1:=Trim(flagname)+'01'; {if ClientDataSet1.IsEmpty then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('insert into KH_ZDY(ZDYNo,ZDYname,Type,note)'); sql.Add('select '''+Trim(fsj)+''''); sql.Add(','''+Trim(fsj1)+''''); SQL.Add(','''+Trim(flag)+''''); sql.Add(','''+Trim(snote)+''''); ExecSQL; end; InitGrid(); end;} //frmZDYHelp.Caption:=Trim(flagname)+'<'+Trim(flag)+'>'; //ReadCxGrid('�Զ���',TV1,'�Զ�������'); ReadCxGrid('�Զ���'+Trim(flag),TV1,'�Զ�������'); frmRTZDYHelp.Caption:=Trim(flagname); V1Note.Visible:=fnote; V1ZdyFlag.Visible:=fZdyFlag; V1OrderNo.Visible:=forderno; if ViewFlag=True then begin TBAdd.Visible:=False; TBSave.Visible:=False; TBDel.Visible:=False; TBEdit.Visible:=False; Label2.Visible:=False; end; end; procedure TfrmRTZDYHelp.ToolButton1Click(Sender: TObject); begin ZDYName.SetFocus; WriteCxGrid('�Զ���'+Trim(flag),TV1,'�Զ�������'); ModalResult:=1; end; procedure TfrmRTZDYHelp.TBEditClick(Sender: TObject); begin TV1.OptionsData.Editing:=True; TV1.OptionsSelection.CellSelect:=True; end; procedure TfrmRTZDYHelp.TV1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if TV1.OptionsData.Editing=False then begin ModalResult:=1; end; end; procedure TfrmRTZDYHelp.ZDYNameChange(Sender: TObject); var fsj:String; begin if Trim(ZDYName.Text)<>'' then begin fsj:=' zdyname like '''+'%'+Trim(ZDYName.Text)+'%'+'''' +' or Note like '''+'%'+Trim(ZDYName.Text)+'%'+'''' +' or ZJM like '''+'%'+Trim(ZDYName.Text)+'%'+''''; end; if ADOQueryMain.Active then begin // SDofilter(ADOQueryMain,fsj); try ADOQueryMain.DisableControls; with ADOQueryMain do begin if Trim(fsj)='' then begin Filtered:=False; end else begin Filtered:=False; Filter:=fsj; Filtered:=True; end; end; finally ADOQueryMain.EnableControls; end; SCreateCDS20(ADOQueryMain,ClientDataSet1); SInitCDSData20(ADOQueryMain,ClientDataSet1); end; end; procedure TfrmRTZDYHelp.V1NamePropertiesEditValueChanged(Sender: TObject); var maxno,mvalue:string; begin mvalue:=TcxTextEdit(Sender).EditingText; if Trim(mvalue)='' then begin //Application.MessageBox('���Ʋ���Ϊ�գ�','��ʾ',0); Exit; end; with ClientDataSet1 do begin Edit; FieldByName('ZdyName').Value:=Trim(mvalue); //Post; end; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryTemp do begin Close; SQL.Clear; SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+''''); open; end; if ADOQueryTemp.IsEmpty then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType '); Parameters.ParamByName('ZDYNo').Value:=Trim(flag); Parameters.ParamByName('ZDYName').Value:=Trim(flagname); Parameters.ParamByName('Type').Value:='Main'; Parameters.ParamByName('MainType').Value:=Trim(MainType); ExecSQL; end; end; with ADOQueryCmd do begin //ClientDataSet1.DisableControls; //with ClientDataSet1 do //begin //First; //while not eof do //begin if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then begin if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; //ClientDataSet1.EnableControls; Application.MessageBox('ȡ�����ʧ�ܣ�','��ʾ',0); Exit; end; end else begin maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; with ADOQueryTemp do begin Close; sql.Clear; sql.add('select * from KH_Zdy where Type='''+Trim(flag)+''''); if Trim(MainType)<>'' then SQL.Add(' and MainType='''+Trim(MainType)+''''); sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin if ADOQueryTemp.RecordCount>1 then begin ADOQueryCmd.Connection.RollbackTrans; //ClientDataSet1.EnableControls; Application.MessageBox('�����ظ���','��ʾ',0); Exit; end; if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then begin ADOQueryCmd.Connection.RollbackTrans; //ClientDataSet1.EnableControls; Application.MessageBox('�����ظ���','��ʾ',0); Exit; end else begin if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then begin ADOQueryCmd.Connection.RollbackTrans; //ClientDataSet1.EnableControls; Application.MessageBox('�����ظ���','��ʾ',0); Exit; end; end; end; with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from KH_ZDY where 1<>1'); Open; end; ADOQueryCmd.Append; ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno); ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString; ADOQueryCmd.FieldByName('note').Value:=Trim(snote); //ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString; ADOQueryCmd.FieldByName('Type').Value:=flag; ADOQueryCmd.FieldByName('valid').Value:='Y'; if Trim(MainType)<>'' then ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType); //ADOQueryCmd.FieldByName('sel').Value:=0; ADOQueryCmd.Post; ClientDataSet1.Edit; ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno); //ClientDataSet1.Post; // Next; //end; //end; // ClientDataSet1.EnableControls; end; ADOQueryCmd.Connection.CommitTrans; //Application.MessageBox('����ɹ���','��ʾ',0); //TV1.OptionsData.Editing:=False; //TV1.OptionsSelection.CellSelect:=False; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('����ʧ�ܣ�','��ʾ',0); end; end; procedure TfrmRTZDYHelp.V1OrderNoPropertiesEditValueChanged(Sender: TObject); var mvalue:string; begin if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then begin Application.MessageBox('���Ʋ���Ϊ��!','��ʾ',0); Exit; end; mvalue:=TcxTextEdit(Sender).EditingText; if Trim(mvalue)='' then begin mvalue:='0'; end; with ClientDataSet1 do begin Edit; FieldByName('OrderNo').Value:=mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update KH_Zdy Set OrderNo='+mvalue); sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); ExecSQL; end; end; procedure TfrmRTZDYHelp.V1NotePropertiesEditValueChanged(Sender: TObject); var mvalue:string; begin if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then begin Application.MessageBox('���Ʋ���Ϊ��!','��ʾ',0); Exit; end; mvalue:=TcxTextEdit(Sender).EditingText; if Trim(mvalue)='' then begin mvalue:='0'; end; with ClientDataSet1 do begin Edit; FieldByName('Note').Value:=mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update KH_Zdy Set Note='''+Trim(mvalue)+''''); sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); ExecSQL; end; end; procedure TfrmRTZDYHelp.V1Column1PropertiesEditValueChanged(Sender: TObject); var mvalue:String; begin if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then begin Application.MessageBox('���Ʋ���Ϊ��!','��ʾ',0); Exit; end; mvalue:=TcxTextEdit(Sender).EditingText; if Trim(mvalue)='' then begin mvalue:='0'; end; with ClientDataSet1 do begin Edit; FieldByName('ZdyFlag').Value:=StrToInt(mvalue); Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update KH_Zdy Set ZdyFlag='+Trim(mvalue)); sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); ExecSQL; end; end; procedure TfrmRTZDYHelp.V1HelpTypePropertiesEditValueChanged( Sender: TObject); var mvalue:string; begin if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then begin Application.MessageBox('���Ʋ���Ϊ��!','��ʾ',0); Exit; end; mvalue:=TcxTextEdit(Sender).EditingText; if Trim(mvalue)='' then begin mvalue:='0'; end; with ClientDataSet1 do begin Edit; FieldByName('HelpType').Value:=mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update KH_Zdy Set HelpType='''+Trim(mvalue)+''''); sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); ExecSQL; end; end; end.