当前位置:主页>销售管理软件> 列表

求助打印问题 找家庭财务管理软件

进销存软件版1楼: 我使用DELPHI 6.0+ADO,数据库为ACESS,做一程序,打印报表时,需将一文本型字段(如ADOQuery1.工作方式)的内容分成几段打印,如三个字为一段,请问如何实现?

2楼: 用Fast Report就可以实现 如销售软件的技巧

3楼: 如果使用DELPHI自带的打印功能,如何实现?

4楼: 急,请各位指点

5楼: 各位,在DELPHI 6.0的基础上如何做,请给些建议,如分数不够,可以再加分。

6楼: 不一定在报表里实现啊
用SQL语句提前处理好也可以的

进销存软件版7楼: 如何实现,请举例说明一下

8楼: 你是意思是不是一行上要打印三条记录??

9楼: 不是,如一个文本型字段的内容为“大富翁论坛”,我需要打印的效果为
大富翁
论坛
即把文本型字段的内容分成多行打印。

10楼: select substring(dfwlt,1,3) as f1,substring(dfwlt,4,2) as f2 from yourtable
access中不知道用什么函数,你查查吧

11楼: 用mid等函数把字段分三段再显示

12楼: 请各位高手赐些代码 如家庭财务管理软件

13楼: 如果换成备注型字段,是否可以,但我为什么无法进行预览

进销存软件版14楼: 在 SQL语句语句中如何实现,请各位多指教

15楼: 设置为允许换行,宽度3个字,


每三个字之间加一个空格。

16楼: 同意Johnsun2002的思路,在報表中體現,如果用quick report的話,用qrrichtext,把你要的這個字段的值給qrrichtext,qrrichtext的寬度調整為三個字的寬度,很好用,在before print中調用onneeddata事件,在onneeddata事件中把值給 qrrichtext

17楼: 谢谢,我试一下,能否给些代码

18楼: 除了设置wrap属性为true外,再用我下面给的函数处理一下即可,
如Value := strWrap(string, 6);

function strWrap(const ostr:string; const mint:integer):string;
var
loopin,nextin,linein,stepin :integer;
tempst :string;
begin{字符串折行}
tempst := '''';
nextin := length(ostr);
loopin := 1;
linein := 0;
if(mint > 0) then
while (loopin <= nextin) do
begin
stepin := 1+integer(ByteType(ostr, loopin) <> mbSingleByte);
linein := linein +stepin;
if(ostr[loopin] = #13) then
begin
linein := 0;
end else
if(linein > mint) then
begin
tempst := tempst +#13;
linein := 0;
end;
tempst := tempst +copy(ostr, loopin, stepin);


loopin := loopin +stepin;
end;
case (tempst='''') of
true: result := oStr;
else result := tempst;
end;
end;

19楼: 结,非常感谢

20楼: 最好能支持ACCESS 2003

进销存软件版21楼: 多人接受答案了。