自定义Crystal Reports [英] Customize Crystal Reports

查看:69
本文介绍了自定义Crystal Reports的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我在VS 2003中创建Crystal Reports。我想提供所有数据库逻辑(数据集,显示字段,连接,查询等)。我在工具箱(Crystal Report选项卡)上的Reort上放置了一个Text对象,并尝试从我的代码(Form1.vb)访问它,但是我找不到从Form1.vb [dataset.Tables( 0).Rows(0)(1)]。同样,我想在Report上添加更多Text对象,并从我的代码文件(Form1.vb)中为每个Text对象提供数据。

I am creating Crystal Reports in VS 2003. I want to provide all the database logic (dataset,fields to dispaly,connection, query etc). I placed a Text object on Reort from the Toolbox(Crystal Report tab) and tried to acces it from my code(Form1.vb) but I found no method or property to set the value of Text1 from Form1.vb [dataset.Tables(0).Rows(0)(1)]. In the same way, I want to add more Text object on Report and supply data for each Text object from my code file(Form1.vb).

我该怎么办?

请帮我完成此任务。

提前致谢

推荐答案

我不确定这是否会有任何帮助,但也许您可以使用存储过程,这样您就不必实际设置任何文本报告中的对象。您可以发送参数,然后在需要时返回参数,例如开始日期,结束日期等(如果您使用的是SQL服务器)。

I'm not sure if this will help in any way, but maybe you could use a stored procedure so that you don't have to actually set any of the text objects in the report.  You can send parameters and then get back parameters if you need them, such as beginning dates, ending dates, etc   (If you are using SQL server).

对于EX:

CREATE PROCEDURE [usp_rptReceiptDisbLog]
@ProjectId int,
@BeginDate datetime,
@EndingDate datetime
AS

SET NOCOUNT ON

SELECT p.ProjectID,u。 UnitDescription,u.UnitDescriptionForSort,u.Buyer,u.Building,
u.ContractNumber,ft.TransactionTypeID,ft.TransactionDate,
ft.Description,ft.Payee,u.UnitID,ft.Amount,
ft.AdjustFlag,p.ProjectDescription,
p.FileNumber,u.UnitDescription +'/'+ u.Buyer AS Purchaser,x.OfficeID,
ltt.AccountTypeID,Convert(varchar,@ EndingDate,101)作为EndingDate,
转换(varchar,@ BeginDate,101)作为BeginDate,CASE WHEN ft.AllocatedFlag = 0 THEN'NO'ELSE'Yes'END as Flagged,
ft.InstrumentNumber,ft.FinancialAccountID,CASE WHEN ft.Transacti onTypeId = 1或
ft.TransactionTypeId = 3或
ft.TransactionTypeId = 4或
ft.TransactionTypeId = 16或
ft.TransactionTypeId = 18或
ft.TransactionTypeId = 23 OR < br> ft.TransactionTypeId = 24那么ft.Amount ELSE 0 END AS CashDeposits,

SELECT p.ProjectID,u.UnitDescription, u.UnitDescriptionForSort, u.Buyer,u.Building,
u.ContractNumber, ft.TransactionTypeID, ft.TransactionDate,
ft.Description, ft.Payee, u.UnitID, ft.Amount,
ft.AdjustFlag, p.ProjectDescription,
p.FileNumber, u.UnitDescription + '/' + u.Buyer AS Purchaser,x.OfficeID,
ltt.AccountTypeID,Convert(varchar,@EndingDate,101) as EndingDate,
Convert(varchar,@BeginDate,101) as BeginDate, CASE WHEN ft.AllocatedFlag = 0 THEN 'No' ELSE ' Yes' END AS Flagged,
ft.InstrumentNumber, ft.FinancialAccountID, CASE WHEN ft.TransactionTypeId = 1 OR
ft.TransactionTypeId = 3 OR
ft.TransactionTypeId = 4 OR
ft.TransactionTypeId = 16 OR
ft.TransactionTypeId = 18 OR
ft.TransactionTypeId = 23 OR
ft.TransactionTypeId =24 THEN ft.Amount ELSE 0 END AS CashDeposits,

CASE WHEN.TransactionTypeID = 2 THEN ft.amount ELSE 0 END AS CashDisburse,
CASE WHEN ft.TransactionTypeID = 20 THEN ft.amount ELSE 0 END AS CashDisburseConstFirst,
CASE WHEN.TransactionTypeID = 21 THEN ft.amount ELSE 0 END AS CashDisburseConstExcess
FROM dbo.FinancialTransaction ft INNER JOIN
dbo.Unit u ON ft.UnitID = u.UnitID INNER JOIN
dbo.Project p ON u.ProjectID = p.ProjectID INNER JOIN
dbo.ListCostCenter lcc ON p.CostCenterID = lcc.CostCenterID INNER JOIN
dbo。 ListTransactionType ltt ON ft.TransactionTypeID = ltt.TransactionTypeID INNER JOIN
dbo.XrefOfficeCostCenter x ON lcc.CostCenterID = x.CostCenterID
WHERE(p.ProjectID = @ ProjectID )AND(x.OfficeID = 1)AND(ltt.AccountTypeID = 1)
AND(@BeginDate和@EndingDate之间的ft.TransactionDate)

                  CASE WHEN ft.TransactionTypeID = 2 THEN ft.amount ELSE 0 END AS CashDisburse,
                 CASE WHEN ft.TransactionTypeID = 20 THEN ft.amount ELSE 0 END AS CashDisburseConstFirst,
CASE WHEN ft.TransactionTypeID = 21 THEN ft.amount ELSE 0 END AS CashDisburseConstExcess
FROM dbo.FinancialTransaction ft INNER JOIN
dbo.Unit u ON ft.UnitID = u.UnitID INNER JOIN
dbo.Project p ON u.ProjectID = p.ProjectID INNER JOIN
dbo.ListCostCenter lcc ON p.CostCenterID = lcc.CostCenterID INNER JOIN
dbo.ListTransactionType ltt ON ft.TransactionTypeID = ltt.TransactionTypeID INNER JOIN
dbo.XrefOfficeCostCenter x ON lcc.CostCenterID = x.CostCenterID
WHERE (p.ProjectID
=@ProjectID) AND (x.OfficeID = 1) AND (ltt.AccountTypeID = 1)
AND (ft.TransactionDate between @BeginDate and @EndingDate)


GO

 


这篇关于自定义Crystal Reports的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆