水晶报表的详细资料的格式是一条条记录向下扩展,例如:
第1条记录
第2条记录
第3条记录
   。
   。
   。
现在我想这样排版
第一条记录        第二条记录
第三条记录        第四条记录
    。                。
    。                。
    。                。     应该怎么做啊?

解决方案 »

  1.   

    哈哈!我做过把你的数据源的DataTable变换一下就好了原来是Table1 字段1,字段2现在变为Table2字段1字段2,字段3字段4,后面的用字段用后面de行数补上!顶多20行代码的变换函数
    这个函数送你了,第一个参数是变换倍数,你的应是2后面是输出Datatable
    private void ChangeDataTable(int Times,DataTable Table,ref DataTable dtb)
    {
    dtb = new DataTable();
    int N = Times;
    for(int j = 0;j<N;j++)
    {
    for(int i = 0;i<Table.Columns.Count;i++)
    {
    System.Data.DataColumn Cm = new DataColumn(Table.Columns[i].ColumnName+j.ToString(),Table.Columns[i].DataType,Table.Columns[i].Expression,Table.Columns[i].ColumnMapping);
    dtb.Columns.Add(Cm);
    }
    }
    for(int i = 0;i<Table.Rows.Count;i=i+N)
    {
    DataRow dtr = dtb.NewRow();
    Object[] objArr = new object[dtb.Columns.Count];
    for(int j = 0;j<Table.Columns.Count;j++)
    {
    for(int k =0;k<N;k++)
    {
    if(i+k<Table.Rows.Count)
    {
    objArr[k*Table.Columns.Count+j] = Table.Rows[i+k].ItemArray[j];
    }
    }
    }
    dtr.ItemArray = objArr;
    dtb.Rows.Add(dtr);
    }
    }
      

  2.   

    yitiaocheng_10(年华无眠)所講的沒錯
    試過是OK的
    我用crystalreport10:
    在design的最左邊按右鍵,選section expert
    點detail,勾選Format with Multiple Columns
             在layout標簽頁中Detail size試著改變數字例如為3
                             Printing Direction選擇Across then down
    在預覽時即可看到喔
      

  3.   

    to : daisylh(婁子), yitiaocheng_10(年华无眠)
    我用的是.Net自带的水晶报表,没搞出来。你们能不能做个例子给我看看啊,我的信箱是[email protected].
      

  4.   

    哈~
    我剛用VS.NET 2003自帶的又做了一個(不過用CRYSTALREPORT10可以預覽),
    如果MAIL給你,恐怕你也打不開,或者不能運行(我用的是MYSQL資料庫)
    還是先將步驟再給你作一下描述:
    1.打你的CRYSTALREPORT表單
    2.在表單上按右鍵,選擇[區段格式設定...]
    3.在出現的[區段專家]中選[細目],在[一般]標簽頁中勾選[設定多重資料行的格式]
      在[配置]標簽頁中將[細目大小]的[寬度]改為3或者4...
                      將[列印方向]選為[橫向]試試嘍,有疑問請留言
      

  5.   

    to :daisylh(婁子)
    能不能把你的报表文件mail给我,我看看报表文件。数据库没有关系,我用自己的数据库就可以了。
    邮箱地址在上上楼。谢谢拉。