程序概况:
   (1)用ADO连SQL Server 2000   (2)在DBGrid里面显示出表的信息   (3)     表1                               
      字段:ID  XXX XXX XXX
      记录: 1   A   B   C
 
           表2
      字段:ID  姓名
      记录: 1  BEYOND
问题:
   (1)用DBGrid显示 表1 时能不能实现不显示出" 表1 "中的" ID "字段,而代之以相对应的 "姓名".
      
      也就是在DBGrid中打开"表1"时能显示出:
      
      姓名   XXX XXX XXX
      BEYOND  A   B   C
   
   (2)用FastReport打印 表1 时能不能也像上面一样不打印出"表1"中的"ID"字段,而代之以相对应的
      "表2"中的姓名. 请大家多多帮忙了,小弟在这谢谢了~~~~~~`当然分肯定是要给的,而且是多多的~~~

解决方案 »

  1.   

    就是像上面说的,也可以像你这么说吧,就是把 表1 里的"ID"字段换成对应ID号的"姓名"字段
      

  2.   

    建议不要使用DataGrid控件.
    使用ListView的Report形式...
    使用时把你Select到的数据 用一个循环往列表中填就是了....
      

  3.   

    你将数据源的那个ID字段删除,或者隐藏,报表时就没有ID字段了
      

  4.   

    to subncho(快疯):     这样好象也可以,但是,程序代码都写了这么多了,这一改不就要全部重写啊~~~
    太恐怖了啊,如果要用DBGrid应该怎么改呢?     Thank you all the same!
      

  5.   

    DBGrid好像设置好了,但是报表时是连接数据源的,好像不行,你试试吧
      

  6.   

    在表1中添加一个lookup字段 name
    lookup字段key fields设为id,dataset设为表2
    lookup keys设为id,result fields设为name
    这样即可
      

  7.   

    上帝啊,如来佛祖啊,观世音菩萨啊,小弟在这里诚心的祈祷,希望在明天我再来上网的时候,我的问题能有一个圆满的解决方案,否则,小心我按Ctrl+Atl+Del关了你们!!
      

  8.   

    在加一个数据集(有ID和姓名字段),和DBGrid对应的数据集连接,新增一字段,在客户端向连,在DBGrid中显示就可以了
      

  9.   

    select a.姓名,b.XXX,b.XXX,b.XXX from 表2 a inner join 表1 b on 表2.id=表1.id第二个问题:
    在fastreport 报表里的master data 那个band 上放四个memo
    四个memo的内容分别为 [adoquery."姓名"],[adoquery."XXX"],[adoquery."XXX"],[adoquery."XXX"],[adoquery."XXX"]
      

  10.   

    adoquery1.sql.clear;
    adoquery1.sql.add('select id 姓名 from 表1');
    adoquery1.open;
      

  11.   

    1.
      用SQL 语句写   select id 姓名 , age  年龄  .....from 表1 
    2.在 中用一个文本框指定数据源   用label 自己写入中文解释
     
      

  12.   

    Select 表1.ID,表1.XXX,表2.姓名 from 表1 Inner Join 表2 On 表1.ID=表2.ID
      

  13.   

    写个多表关联的就可以了!
    select b.name as 姓名,a.xx1 as XX1,a.xx2 as XX2,a.xx3 as XX3 from table1 a,table2 b where a.id=b.id
      

  14.   

    现在如果用:adoquery1.SQL.Clear;ADOQuery1.SQL.Add('select Teacher_Info.姓名,Main_Teaching_Plan.课程名称,');ADOQuery1.SQL.Add('Specialized_Subject.专业名,Teacher_Teaching_Info.开课学年,');ADOQuery1.SQL.Add('Teacher_Teaching_Info.开课学期,Teacher_Teaching_Info.[班级(含年)] ');ADOQuery1.SQL.Add('from Teacher_Teaching_Info ');ADOQuery1.SQL.Add('Inner Join Teacher_Info On Teacher_Teaching_Info.职工号=Teacher_Info.职工号 ');ADOQuery1.SQL.Add('Inner Join Main_Teaching_Plan On Teacher_Teaching_Info.课程代号=Main_Teaching_Plan.课程代号 ');ADOQuery1.SQL.Add('Inner Join Specialized_Subject On Teacher_Teaching_Info.专业代号=Specialized_Subject.专业代号 ');ADOQuery1.Open;
    是可以实现的,但是又出现了新的问题--不能保存对数据的修改!!
    提示错误:
    Project Project1.exe raised exception class EOleException with message'缺少更新或刷新的键列
    信息' Process stopped Use Step or Run to continue.现在该怎么改写才能保存呢??
      

  15.   

    to:
    Mickeylqz(月圆之夜,紫禁之巅,一剑袭来,天外飞仙)谢谢你新的提示~~
      

  16.   

    现在该怎么改写才能保存呢??------------------------------
    把id字段加到select后面试试不会多表联结?太...了吧
      

  17.   

    有个很简单的属性可以用的……DisplayLabel……
    例如
    ADOQuery1.Fields[0].DisplayLabel:='姓名'
    就可以了……用不着那么麻烦……至于等于什么,随便用什么做都可以。从数组到数据库……
    打印是否可以不清楚,没实验过。