价值不变

时间:2013-06-10 10:44:17

标签: c# crystal-reports

在我的项目中我正在检查一些条件,如果确实是动作将发生,否则错误消息将在运行期间显示在标签中。

我的问题是,当条件失败时,光标会转到else块,代码也会出现Excecuted,但Label的文本没有改变。可能是什么问题?

条件部分是,

    if (ds.Tables[0].Rows.Count > 0 
                && DateTime.Parse(frmtxtdt.Text).ToString("dd/MM/yyyy") == DateTime.Today.ToShortDateString() 
                && DateTime.Parse(totxtdt.Text).ToString("dd/MM/yyyy")  == DateTime.Today.ToShortDateString())
            {
                ds.Tables[0].TableName = "Passkeys";

                ds.WriteXml(Server.MapPath("~/XMLReports/_Passkeys.xml"));
                string filename = Server.MapPath("~/Upload/Pkey_rpt.rpt");
                rpt.Load(filename);
                rpt.SetDataSource(ds);
                rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "Passkeys");

            }
            else if(frmtxtdt.Text.Trim() !=null && totxtdt.Text.Trim()!=null)
            {
                if (DateTime.Parse(frmtxtdt.Text).ToString("dd/MM/yyyy")   == DateTime.Today.ToShortDateString() 
                     && DateTime.Parse(totxtdt.Text).ToString("dd/MM/yyyy") == DateTime.Today.ToShortDateString() 
                     && ds.Tables[0].Rows.Count == 0)
                {

                    lblmsg.Text = "Pass Key Not Yet Delivered for the Selected Date...";
                    //The value(lblmsg.Text) not Changing when comes here.
                }
                else
                {

                    lblmsg.Text = "There is No Schedule for the Selected date....";
                    //The value(lblmsg.Text) not Changing when comes here.

                }

            }

        }
        catch
        {
            throw;
        }

朋友我的问题不在于[日期时间]或[日期时间选择器],标签的文本是在运行时更改但不是显示。

还有[rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat,Response,true,“Passkeys”); ]报告正在加载的PDF文件格式的Crystal Report Generator,XML文件中也有数据但是没有转换为PDF文件进行下载。

4 个答案:

答案 0 :(得分:1)

错误,Web或桌面的上下文是什么? 替代方案可能是:

  • 如果您使用任何组件进行AJAX调用,则此标签不在发送到服务器的内容中,并且不会更新。 (仅限网络)
  • 您可能遇到正在清除此标签值的某些事件(回发)(仅限网络)
  • 检查标签的可见属性,可能会在代码的某些部分进行更改
  • 确保标签的颜色与屏幕背景颜色不同,相信可能会发生。
  • 任何组件都与此标签重叠,或者该标签是表单
  • 之外的位置/位置

答案 1 :(得分:0)

此外,如果您不知道有非常方便的控件,称为“DateTimePicker”,它们是专门为选择日期而创建的。你应该试一试。

我想知道你是否在改变之前的某个地方得到了例外?

答案 2 :(得分:0)

发生这种情况是因为UI线程太多了

在设置文字后添加lblmsg.Refresh();

如果不起作用将方法移动到后台线程;但要注意交叉线程。对于简单的线程间操作,您可以使用BackgroundWorker类的ReportProgress方法

答案 3 :(得分:0)

我可以假设您有一些观察者与标签的文本字段值的更改相关联 - 所以当更改标签中的文本时,此处理程序中的代码块失败(或者工作正常,但不会假设更改实际值标签文本),更新文本失败。