CrystalReportについて
- 題名: CrystalReportについて
- 著者: りこ
- 日時: 2006/09/27 21:55:27
- ID: 17709
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: CrystalReportについて
- 著者: りこ
- 日時: 2006/09/30 1:58:31
- ID: 17738
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: CrystalReportについて
- 著者: りこ
- 日時: 2006/09/30 2:01:59
- ID: 17739
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: CrystalReportについて
- 著者: 管理人
- URL: http://dobon.net/
- 日時: 2006/09/30 3:17:04
- ID: 17740
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: CrystalReportについて
- 著者: りこ
- 日時: 2006/09/30 13:43:23
- ID: 17746
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: CrystalReportについて
- 著者: りこ
- 日時: 2006/09/30 13:45:32
- ID: 17747
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: CrystalReportについて
- 著者: じゃんぬねっと
- 日時: 2006/09/30 20:11:49
- ID: 17748
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: CrystalReportについて
- 著者: りこ
- 日時: 2006/10/03 23:29:37
- ID: 17776
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: CrystalReportについて
- 著者: りこ
- 日時: 2006/10/21 3:14:29
- ID: 17976
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: CrystalReportについて
- 著者: りこ
- 日時: 2006/10/21 3:15:32
- ID: 17977
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
PG:VB.net2003
DB:SQL Server2000
いつもお世話になっております。
現在ストアドで取得した顧客情報をCrystalReportsを用いて
表示を試みているのですが、ストアドでデータを取得後
ReportsのSection3 TextObjectに表示の際に1件しか表示されないのです。
それもそのはずTextObjectはReport側には1個しか用意してないですから・・・
聞きたい事はTextObjectは1個でも取得したレコード数に応じて
TextObjectも動的に生成されるような方法をご存知の方がいらしたら教えていただきたいのです。
このままだとレコード数に応じてTextObject毎に座標を取得しSizeを決めて
出力といった感じになります。
楽で便利な方法があればご教授いただけませんでしょうか?
また以下のコードで"わたしならこうする!"といった指摘があれば合わせてお願い致します。
vb,net側
Sub CUSTOMER_MANAGE_VIEW()
Dim SQLcd As New SqlCommand
Dim SQLdr As SqlDataReader
Dim ParamBankName As SqlParameter
Dim ReportCus As New CustomerReport
Dim ReportSec As Section
Dim CodeText As TextObject
Try
SQLcd.CommandText = "SE_CUSTOMER"
SQLcd.Connection = ClassAccessSQL.SQLcn
SQLcd.CommandType = CommandType.StoredProcedure
ParamBankName = SQLcd.Parameters.Add("@CUSTOMER_NAME", SqlDbType.VarChar, 100)
ParamBankName.Value = Me.txtCustomerName.Text
'接続の為のクラス
ClassAccessSQL.OpenCnSSPI(ServerName, DataBase, False)
SQLdr = SQLcd.ExecuteReader
ReportView.ReportSource = ReportCus
ReportSec = ReportCus.ReportDefinition.Sections("section3")
CodeText = ReportSec.ReportObjects("txtCode")
'データが存在する間データを取得します。
Do While SQLdr.Read()
CodeText.Text = SQLdr!customer_code
Loop
'接続を閉じる
ClassAccessSQL.CloseSQL(False)
Catch ex As SqlException
MsgBox(ex.ToString, 4112, "ERR")
Catch ex As Exception
MsgBox(ex.ToString, 4112, "ERR")
Finally
If ClassAccessSQL.SQLcn.State = 1 Then
SQLdr.Close()
ClassAccessSQL.CloseSQL(False)
Me.txtCustomerName.Focus()
End If
End Try
End Sub
SQL Server側
--ストアドの作成
CREATE PROCEDURE SE_CUSTOMER
(
@CUSTOMER_NAME VARCHAR(100) = NULL
)
AS
--ユーザー名がNULL値なら全行を返します。
IF @CUSTOMER_NAME IS NULL
BEGIN
SELECT
CUSTOMER_CODE,
CUSTOMER_NAME,
ZIP_CODE,
ADDRESS1,
ADDRESS2,
CLOSE_DATE,
PAY_MODE,
PAY_MONTH,
PAY_DAY,
BANK_CODE,
BANK_NAME,
SUB_CODE,
SUB_NAME,
ACCOUNT_TYPE,
ACCOUNT_NO,
CARRYING_FORWARD
FROM CUSTOMER_MANAGE
ORDER BY
CUSTOMER_CODE
END
--NULL値以外ならあいまい検索を実行!
ELSE
BEGIN
SELECT
CUSTOMER_CODE,
CUSTOMER_NAME,
ZIP_CODE,
ADDRESS1,
ADDRESS2,
CLOSE_DATE,
PAY_MODE,
PAY_MONTH,
PAY_DAY,
BANK_CODE,
BANK_NAME,
SUB_CODE,
SUB_NAME,
ACCOUNT_TYPE,
ACCOUNT_NO,
CARRYING_FORWARD
FROM CUSTOMER_MANAGE
WHERE
CUSTOMER_NAME LIKE '%' + @CUSTOMER_NAME + '%'
ORDER BY
CUSTOMER_CODE
END