CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

关于fastreport的简单问题

楼主zhangjensy()2005-11-04 09:41:44 在 Delphi / VCL组件开发及应用 提问

1.在fastreport中如何判断当某一数据为正数,则在报表中其前面加一个‘+’,当某一数据为负数,则在报表中其前面加一个‘-’,具体的操作如何?要怎么写语句?    
  2.我用DBImage1来直接连接一个image字段,为什么在保存很小的图片(几k)就可以,一旦保存大图片,根本无法保存。想知道这是为什么?大家在把图片保存在数据库中又是如何进行的啊!  
  谢谢! 问题点数:20、回复次数:10Top

1 楼yuanscar(塑料树)回复于 2005-11-06 10:26:33 得分 0

1。很容易,你的数据都是放在MEMO里面吧。在MEMO里面不是有BEGIN和END的输入框?在那里面写代码就可以了。参考一下FR的函数库Top

2 楼zhangjensy()回复于 2005-11-07 12:15:03 得分 0

第1個問題已解決,有誰能告訴我第2個問題的回答?謝謝!Top

3 楼surdon(ャ野马ャ)回复于 2005-11-07 12:20:18 得分 20

第二个问题   用流保存图片~~  
  设置Picture1的blobtype  
  设置Picture1的datafieldTop

4 楼surdon(ャ野马ャ)回复于 2005-11-07 12:23:21 得分 0

以下是我操作图片读存删   过程给你参考  
   
  function     img_post_gkxb(img_z_E_Z:TcxImage;strLei:string;intLeiMing:integer):Boolean;//保存图片  
  var  
  msmem:TmemoryStream;  
  jpg:TJpegImage;  
  D_C_esql:TClientDataSet;  
  s:string;  
    begin  
    with   D_C_esql   do  
    begin  
    D_C_esql:=TClientDataSet.Create(nil);  
    D_C_esql.RemoteServer:=CDM.SockC;  
    D_C_esql.ProviderName:='DSPEsqldu';  
   
                  s:='select   *   from   Dimg   where     类名   =   '+inttostr(intLeiMing)+'   and   ID   =   '''+(strLei)+'''';  
                  Close;  
                  CommandText:=s;  
                  Open;  
                  if   RecordCount>0   then  
                    Edit   else  
                    begin  
                        Append;  
                        FieldByName('ID').AsString:=strLei;  
                        FieldByName('类名').AsInteger:=intLeiMing;  
                        end;  
   
                          if   img_z_E_Z.Picture.Graphic   <>   nil   then  
                                  begin  
                          msmem:=TmemoryStream.Create;  
                          Jpg:=TjpegImage.Create;  
                          jpg.Assign(img_z_E_Z.Picture.Graphic);  
                          jpg.SaveToStream(msmem)   ;                         //   1  
  //     form2.Image1.Picture.Bitmap.SaveToStream(msmem);                 //   保存bmp图像的方法  
                          msmem.Position   :=0;  
                          TBlobField(FieldByName('图片文件')).LoadFromStream(msmem);  
                          Msmem.Free   ;  
                          jpg.Free;  
                          end  
                          else   FieldByName('图片文件').AsString:='';  
                          Post;  
                          FUPDATE(d_C_esql);  
          Free;  
    end;  
    end;  
  //======================================  
  function     img_gkxb(strLei:string;intLeiMing:integer):TJpegImage;     //读取图片  
  var   s:string;   D_C_esql:TClientDataSet;  
  ms:TStringStream;  
  begin  
  with   D_C_esql   do  
    begin  
    D_C_esql:=TClientDataSet.Create(nil);  
    D_C_esql.RemoteServer:=CDM.SockC;  
    D_C_esql.ProviderName:='DSPEsqldu';  
    s:='select   *   from   Dimg     where     类名   =   '+inttostr(intLeiMing)+'   and   ID   =   '''+strLei+'''';  
   
    d_C_esql.Close;  
    d_C_esql.CommandText:=s;  
    d_C_esql.Open;  
    if   d_C_esql.FieldByName('图片文件').AsString<>''   then  
    begin  
        ms:=TstringStream.Create('');  
        img_gkxb:=TJpegImage.Create;  
        TBlobField(d_C_esql.FieldByName('图片文件')).SaveToStream(ms);  
        img_gkxb.LoadFromStream(ms);  
        ms.Position   :=0;  
          img_gkxb.LoadFromStream(ms);  
  //     Form2.Image1.Picture.Bitmap.LoadFromStream(ms);         //调用bmp图像的方法  
          end   else     img_gkxb:=nil;  
          Free;  
      end;  
  end;  
  //=======================  
  procedure     PDelimg(strLei:string;intLeiMing:integer);//删除图片  
      var   D_C_esql:TClientDataSet;  
      begin  
    with   D_C_esql   do  
    begin  
    D_C_esql:=TClientDataSet.Create(nil);  
    D_C_esql.RemoteServer:=CDM.SockC;  
    D_C_esql.ProviderName:='DSPEsqldu';  
   
      Close;  
      CommandText:='   delete   from     Dimg   where     类名   =   '+inttostr(intLeiMing)+'   and   ID   =   '''+strLei+'''';  
      Execute;  
      Free;  
      end;  
    end;  
  Top

5 楼zhangjensy()回复于 2005-11-07 12:46:24 得分 0

surdon(ャ野马ャ)   :  
  能说具体一点吗?是在DELPHI中的DATASET中字段设置Picture1的blobtype为那一个值?怎么找不到设置Picture1的datafield属性!  
  Top

6 楼surdon(ャ野马ャ)回复于 2005-11-08 18:20:13 得分 0

你用的是什么版本啊  
  我用的是    
  Picture1->blobtype>   btJPG  
  FastReport.v2.52.FireRose中文版     在Picture1->blobtype   下面二个就是datafield属性  
  Top

7 楼surdon(ャ野马ャ)回复于 2005-11-08 18:21:18 得分 0

我说的是   FastReport   Picture1图片打印控件   里面的~~Top

8 楼zhangjensy()回复于 2005-11-09 12:59:31 得分 0

我問的是這個問題"我用DBImage1来直接连接一个image字段,为什么在保存很小的图片(几k)就可以,一旦保存大图片,根本无法保存。想知道这是为什么?大家在把图片保存在数据库中又是如何进行的啊!"難道不是DBImage1控件而是用   FastReport   Picture1图片打印控件?這樣能行?我主要是想把圖片通過感知控件DBImage1來從數據庫中讀取和存入!DBImage1是與相應的dataset的datasource相連啊!  
   
  Top

9 楼surdon(ャ野马ャ)回复于 2005-11-09 18:45:55 得分 0

就是用流保存   用Image1     不用DBImage1Top

10 楼zhangjensy()回复于 2005-11-10 09:58:46 得分 0

Image1無法直接連dataset!有更好的辦法?Top

相关问题

  • FastReport 简单问题?
  • fastreport的简单问题
  • 关于FASTREPORT的超简单问题
  • 关于fastreport的简单问题
  • 关于fastreport的简单问题?
  • FastReport的一个简单问题
  • fastreport
  • 一个简单的问题,-----(fastreport)————在线守侯
  • 关于fastreport题头显示的简单问题!
  • fastreport主从报表的简单问题,郁闷

关键词

  • 字段
  • 控件
  • 文件
  • esql
  • intleiming
  • strlei
  • gkxb
  • msmem
  • 保存
  • fastreport

得分解答快速导航

  • 帖主:zhangjensy
  • surdon

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo