各位大哥,怎样才能打印StringGrid1内的内容,有很多类似的东西,我就是看不懂呀,急死了!!(100分)

  • 主题发起人 主题发起人 kenbe
  • 开始时间 开始时间
K

kenbe

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:
我在窗体内建一个StringGrid1,把数据输出到上面,想把它作为一个表格输出,但是,
窗体输出的大小不知怎么控制,与屏幕输出的不一样,而StringGrid1还不能输出,
看别人的代码看不懂,各位高手,我是一个新手,麻烦你讲详细一点,谢谢。
 
就是一个一个格子的画出来,请参考qreport或者王寒松大虾的EReport,另外,网上还有现成的控件:-)
 
:xiaoduan
我现在就是在一个窗体上放一个StringGrid1,把数据输出到StringGrid1上面,
再把这个格输出就完成了,但就是怎样做呀,
我是一个新手他们讲的我又不太懂,
谢谢你了,教一下怎么做呀?
 
用FASTREPORT
我现在也在研究,
他有自带的DEMO
打打STRINGGIRD
还是比较简单的了
 
楼上的,快点噢,
搞好了100分马上奉上
谢谢!
 
有现成的,用不用?
http;//reportmachine.delphibbs.com
 
使用advstringgrid.
 
搞定了嗎?
要範例嗎?
 
还不知道怎么样用呀,带一下我这个新手吧。我是StringGrid1的内容和边框也要打的来的噢。
 
:whf
你的那个控件在DELPHI 6下好象有错误的哦。
 
就是advstringgrid,我看了例子的,可以.的
 
EasyGrid
http://delphi.mychangshu.com/有下载。
才用没几天。感觉很爽。你试试看
 
楼上的:
你那个控件我不知道安装到哪里去了,是不是把原来的那个替换了?
 
用dbgrideh吧。
 
用报表RP取出来再打印呀
我都是这样做的虽然不方便,便好控制呀
 
给你一段代码参考

procedure TF_Date_TJ.B_PrintClick(Sender: TObject);
var
I,J:Integer;
TmpFileName:String;
SelField,SelRec:Integer;
PrintAll:Boolean;
XlsApp,XlsSheet:Variant;
begin

Fmain.SBar.Panels[0].Text := '';
PrintAll := false;
if SG_User.Row = 0 then

begin

if MessageDlg('当前没有选定打印的记录,是否全部打印?',mtconfirmation,[Mbyes,Mbno],0) = mrno then

begin

Application.MessageBox(pchar('没有选定的数据记录,打印终止!'),pchar('注意'),mb_ok);
Abort;
end
else

PrintAll := true;
end;


try
Fmain.SBar.Panels[0].Text := '正在启动Excel...';
//if VarIsEmpty(XlsApp) then

XlsApp := CreateOleObject('Excel.Application');
// XlsApp.ActiveSheet.Name := 'DataTransTmp';
XLsApp.Workbooks.Add;
XlsSheet := XLsApp.Worksheets['Sheet1'];
// XlsSheet.Activesheets.Name := 'DataTransTmp';
except
Application.MessageBox(pchar('Ms Excel 无法启动,数据转入终止!'),pchar('注意'),mb_ok);
//BinExcel.Enabled := false;
Fmain.SBar.Panels[0].Text := 'Excel无法启动';
Abort;
end;


Fmain.SBar.Panels[0].Text := '数据正在转移至Excel';

SelField := 0;
for J := 0 to SG_User.RowCount-1 do

begin

//if (SG_User.Co<> false) and (SG_User.col.Color<> clgray) then

//begin

SelField := SelField + 1;
XlsSheet.Cells[3, SelField] := SG_User.Cells[J,0];
//end;

end;


SelRec := 0;
with Fmain.Q1 do

begin

close;
sql.Clear;
sql.Add('select * from cw_book_xzsrl');
open;
first;
for I := 0 to RecordCount-1 do

begin

if not PrintAll then

begin

if SG_user.Cells[1,1]<>'' then

begin

Next;
Continue
end;

end;


SelRec := SelRec + 1;
SelField := 0;
for J := 0 to SG_user.RowCount-1 do

begin

//if (Sg_user.Col.Visible<> false) and (SG_User.col.color<> clAqua) then

//begin

SelField := SelField + 1;
if StrToIntDef(Fields[J].AsString, -1)<>-1 then

XlsSheet.Cells[selRec + 3, SelField] := '''' + Fields[J].Asstring
else

XlsSheet.Cells(selRec + 3, SelField) := Fields[J].Asstring
//end;

end;

Next;
end;

end;

XlsApp.Visible := true;
Fmain.SBar.Panels[0].Text := '数据转移成功,请使用Excel打印所选定的数据';
{ Application.MessageBox(pchar('数据已转入至Excel文件中,请于下列路径中查看:' + #13#10
+ ' ' + TmpFileName),pchar('注意'),mb_ok);}
end;

 
  很久以前做的一个控件,可以打印放在FORM上的象DBGrid、StringGrid等
小东东的控件,用起来很简单。看我的帖子“一分钱,一分货”,上面有原程
序,为何不试一试?
http://www.delphibbs.com/delphibbs/dispq.asp?lid=941617
 
发分了。。。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部