1.數據從DataSet導入到報表中不能直接oRpt.SetDataSource(ds);
應該oRpt.SetDataSource(ds.Tables[0]);
或者oRpt.SetDataSource(ds.Tables["表名"]);
2.ArrayList 二維數組的應用
例子:
原思路:將得到的每條二進制圖片數據byte[] bt = br.ReadBytes((int)fs.Length);放入新定義的
一個byteTemp數組中,顯然不行,因爲bt本身就是一個數組,而新定義的byteTemp數組的
每個元素都要求是bt型。
解決辦法:二維數組ArrayList
ArrayList btList = new ArrayList(6);
for (int i = 0; i < getPath.Length; i++)
{
FileStream fs = new FileStream(getPath[i], FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] bt = br.ReadBytes((int)fs.Length);
btList.Insert(i, bt);
fs.Close();
}
btList.Insert(i, bt);i表示位置,相當於第i個,bt表示當前值。
3.將圖片的二進制變量賦爲空
string strTemp = "";
byte[] temp;
temp = new ASCIIEncoding().GetBytes(strTemp);//將符號""裝換成二進制
btList[5] = temp;
4.怎麼去掉水晶報表空白圖片遺留的邊框
方法:1.在水晶報表上對需要去掉的圖片點擊右鍵,選擇Format Object.
2.選擇Common,對Suppress勾上
3.修改格式公式編輯器isnull({DataTable1.Pic6})
這樣圖片6就OK了
5.oCR.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape;
報表紙張明明設置的是A4,但打印出來的時候,一頁大概還有1/5頁空白在底下沒用,由上面代碼引起的
6.過段時間發現數據庫連接錯誤
主要是用戶名更改後引起的,應該把連接全部重新設置爲(local)
8.如果發現報表有很多數據
(1)查看報表數據庫專家裏面的鏈接,不要有分支
(2)如果要求一個模版打印多條數據,則要將字段放入詳細資料裏面
9.水晶報表映射問題
1.強連接---
又鍵點擊手動生成的DataSet中強連接的表中屬性,觀察SQL語句
如果在fill該表中,連接的數據爲空,則會報錯
2.弱連接
手動生成的DataSet中弱連接的表是手動添加的,不存在以上問題,也可以映射圖片
10.水晶報表的關閉按鈕事件處理--
11.報表數據爲空:
①大部分情況都是數據庫專家裏面的各個表連接的影響的,表現在數據不唯一
②報表數據源修改後,如果數據不顯示的一個原因就是字段得重新連接,原有的字段可能影響報表顯示
③如果是PULL模式下,可能某個表字段並沒有在報表上使用,導致數據爲空
12.關於阿泰寫的在水晶報表中實現任意選擇指定字段顯示-模板及C#升級版格式轉換問題
http://topic.csdn.net/u/20091224/16/c97a5f55-f5d9-436c-ac8a-e05baec10ce6.html
http://topic.csdn.net/u/20090310/22/77529b37-898e-45ba-a551-892e9056f289.html
13.以泰哥的在水晶報表中實現任意選擇指定字段顯示-模板及C#升級版爲指導思想,成功的實現了。
今天只更新了下數據庫表UriResultPrint,同時更新了下報表的數據庫專家的UriResultPrint,結果報錯了,
問題一:
錯誤如下:
給該函數的參數太多
文件C:/DOCUMEN~1/ADMINI~1/LOCALS~1/Temp/temp_6b252588-6042-4558-a09c-74df3fefe87a
{C9378C35-463A-4CF9-BBC4-15D445C92EE6}.rpt內出錯:
公式 <uriResultField1>
'totext({UriResultPrint.Rbc},'0')'
給該函數的參數太多。
附:1.字段格式沒有任何變化,而且數據庫只是添加了稍許字段,也沒有用到報表上
2.totext({UriResultPrint.Rbc},'0')還原成'totext({UriResultPrint.Rbc})後,就不報錯了。
3.導入之前數據庫沒有改動的項目,'totext({UriResultPrint.Rbc},'0')'並沒有錯誤。
問題二 :
公式格式也發生錯誤了:
例如:if {UriResultPrint.SingularRbc} = 0 Then 100.00
Else {UriResultPrint.WhackRbc}*100/({UriResultPrint.WhackRbc}+{UriResultPrint.SingularRbc})
這段公式之前的項目中沒有報錯,而且很運行得很正常
數據庫專家更新後則報錯:
1.“if {UriResultPrint.SingularRbc} = 0中0應爲字符型”
我改成“0”就可以了,怎麼之前沒有報錯呢
2.“{UriResultPrint.SingularRbc})”應該爲數字,日期。。
我將其轉換爲tonumber類型就OK了,怎麼之前沒有報錯呢
解決方法:導致公式'totext({UriResultPrint.Rbc},'0')報錯,
因爲式'totext({UriResultPrint.Rbc},'0')中UriResultPrint.Rbc必須是INT類型的,
而不是VARCHAR類型的,唉,真是粗心。。。。
相關帖子:http://topic.csdn.net/u/20100302/18/3d89e86d-6e6e-4679-887c-aa7623a98ed1.html?10774