首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

DBGridEh 导出数据的有关问题

2012-02-29 
DBGridEh 导出数据的问题我在网上找到了这个例子,但是我运行到if(ActiveControlisTDBGridEh)thenmyDBGridE

DBGridEh 导出数据的问题
我在网上找到了这个例子,但是我运行到
if       (ActiveControl       is       TDBGridEh)       then      
                    myDBGridEh:=(ActiveControl       as       TDBGridEh)      
            else      
            begin      
                    ShowMessage( '请指定需要导出数据的表格! ');      
                    Exit;      
            end;      

这里就  
ShowMessage( '请指定需要导出数据的表格! ')了

我想问一下,怎么才满足   ActiveControl       is       TDBGridEh   ??   谢谢!

*****************************************************
例子代码    
       
    uses           DBGridEhImpExp;      
       
    procedure       TFMSearch.ActExportExecute(Sender:       TObject);      
    var      
            SD:       TSaveDialog;      
            FileType:       TDBGridEhExportClass;      
            myDBGridEh:       TDBGridEh;      
    begin      
            if       (ActiveControl       is       TDBGridEh)       then      
                    myDBGridEh:=(ActiveControl       as       TDBGridEh)      
            else      
            begin      
                    ShowMessage( '请指定需要导出数据的表格! ');      
                    Exit;      
            end;      
            SD:=TSaveDialog.Create(Self);      
            try      
                    FileType:=nil;      
                    SD.InitialDir:=ExtractFileDir(Application.ExeName)+ '\..\ ';      
                    SD.Options:=SD.Options+[ofOverwritePrompt];      
                    SD.Filter:= 'Excel(*.Xls)|*.Xls|Html(*.Htm)|*.Htm| ';      
                    SD.Filter:=SD.Filter+ '文本文件(*.Txt)|*.Txt|富文本文件(*.RTF)|*.RTF ';      
                    SD.Title:= '表中的数据保存为文件 ';      


                    if       SD.Execute       then      
                    begin      
                            case       SD.FilterIndex       of      
                                    1:       FileType:=TDBGridEhExportAsXLS;      
                                    2:       FileType:=TDBGridEhExportAsHtml;      
                                    3:       FileType:=TDBGridEhExportAsText;      
                                    4:       FileType:=TDBGridEhExportAsRTF;      
                            else      
                            end;      
       
                            if       Pos( '. ',SD.FileName) <=0       then      
                                    case       SD.FilterIndex       of      
                                            1:       SD.FileName:=SD.FileName+ '.Xls ';      
                                            2:       SD.FileName:=SD.FileName+ '.Htm ';      
                                            3:       SD.FileName:=SD.FileName+ '.Txt ';      
                                            4:       SD.FileName:=SD.FileName+ '.RTF ';      
                                    else      
                                    end;      
                            SaveDBGridEhToExportFile(FileType,myDBGridEh,SD.FileName,true);      
                            if       FileExists(SD.FileName)       then      


                                    ShowMessage( '导出文件成功! ');      
                    end;//       else       ShowMessage( '用户取消文件导出! ');      
            finally      
                    SD.Free;      
                    myDBGridEh.SetFocus;      
            end;      
    end;      


[解决办法]
ActiveControl的类型是TDBGridEh 吧 或者是TDBGridEh 的子类ActiveControl is TDBGridEh 应该都成立
[解决办法]
ActiveControl是Form类的一个属性,表示当前获取焦点的控件。

你的问题在于你执行动作时,你的DBGridEh没有获得焦点。
[解决办法]
DBGridEh1.SetFocus

热点排行