使用C#ASP.net中的代码更改Crystal报表的颜色

使用C#ASP.net中的代码更改Crystal报表的颜色,c#,asp.net,sql,crystal-reports,C#,Asp.net,Sql,Crystal Reports,我已经在Crystal report中创建了一个报告。它有这个代码,工作得很好,但我有一个问题。例如,如果备注字段为“A”,则备注颜色应为“红色”,如果结果为“B”,则备注颜色应为“蓝色”。你能帮助我吗。这是我的密码 SqlConnection cnn; string connectionString = null; string sql = null; connectionString = "data source=Server; initial catalog=Database1;user

我已经在Crystal report中创建了一个报告。它有这个代码,工作得很好,但我有一个问题。例如,如果备注字段为“A”,则备注颜色应为“红色”,如果结果为“B”,则备注颜色应为“蓝色”。你能帮助我吗。这是我的密码

SqlConnection cnn;
string connectionString = null;
string sql = null;
connectionString = "data source=Server; initial catalog=Database1;user id=sa; password= passw0rd";
cnn = new SqlConnection(connectionString);
cnn.Open();
sql = "select Date as DataColumn1, Name as DataColumn2, Year as DataColumn3 Remarks as DataColumn4 from TableStudents";
SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
cnn.Close();

DataSet1 ds = new DataSet1();
dscmd.Fill(ds, "DataTable1");

CrystalReport1 objRpt = new CrystalReport1();
objRpt.SetDataSource(ds.Tables[0]);

objRpt.ExportToDisk(ExportFormatType.PortableDocFormat, Server.MapPath("Reports.pdf"));
ScriptManager.RegisterStartupScript(base.Page, base.Page.GetType(), "check0", "window.open('" + "Reports.pdf" + "','win2','status=no,toolbar=no,scrollbars=no,titlebar=no,menubar=no,resizable=yes,directories=no,location=no');", true);
此代码将在新窗口上完美地打开报告。只是换颜色的问题。我不知道。请告诉我该怎么办。这是一个简单的概念,但我不知道下一步该怎么做。谢谢

if(result=="A")
{
result.color = "red";
}
else
{
result.color = "blue";
}

您是否考虑过以下链接:


我无法了解您对结果的想法,但我假设您有一个field对象,并且希望根据更改该field对象来更改颜色 有关守则的详情如下:

            foreach (Section sec in report1.Sections)
            {
                for (int i = 1; i < sec.ReportObjects.Count + 1; i++)
                {
                    objMain = report1.Sections[sec.Name].ReportObjects[i];
                    try
                        {
                            FieldObject to1 = (FieldObject)objMain;
                            if(to1.Value == "A")
                            {                                
                                to1.TextColor = ColorToUInt(Color.Red);
                            }
                            else
                            {
                                to1.TextColor = ColorToUInt(Color.Blue);
                            }
                        }
                        catch (Exception){}
                }                
            }
foreach(报告1.章节中的章节)
{
对于(int i=1;i
最后,您还必须添加此方法:

    public uint ColorToUInt(Color color)
    {
        return (uint)((color.A << 24) | (color.R << 16) |
        (color.G << 8) | (color.B << 0));
    }
public uint colortoint(彩色)
{

return(uint)((color.A我在ASP.net crystal报表中没有使用过,但我相信它们将是相同的,在报表预览中,您能否右键单击该字段并检查其属性,您是否看到背景色属性前面的公式图标?正在等待