-9

他の誰かから引き継いだ Web サイトで - Crystal レポートをレポート ビューアーにロードする前に、この行が表示されます。

System.Environment.SetEnvironmentVariable("TMP", @"C:\Temp");

再び言及されることはありません-「TMP」がC:\Tempに等しいと単に報告しているように見えるページのさらに下のエラーメッセージを除いて

その行は実際に何をしますか?

完全なコードは次のとおりです。

ReportDocument ViewReport = new ReportDocument();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Page_Init(object sender, EventArgs e)
{
    try
    {
        string ReportPath = Server.UrlDecode(Request["Path"]);
        System.Environment.SetEnvironmentVariable("TMP", @"C:\Temp");
        ViewReport.Load(@ReportPath);
        ViewReport.SetDatabaseLogon(ConfigurationManager.AppSettings["ReportsUser"], ConfigurationManager.AppSettings["ReportsPassword"]);
        CrystalReportViewer1.Height = 640;
        CrystalReportViewer1.Width = 1100;
        CrystalReportViewer1.BestFitPage = false;
        CrystalReportViewer1.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX;
        CrystalReportViewer1.ReportSource = ViewReport;
        CrystalReportViewer1.RefreshReport();
    }
    catch (Exception err)
    {
        string Err = "Error :-" + err.Message;
        Err = Err + "Source :-" + err.Source;
        Err = Err + "Inner Error :-" + err.InnerException.Message.Replace("\r", "");
        Err = Err + "Path not found :-" + Server.UrlDecode(Request["Path"]);
        Err = Err + " TMP=" + System.Environment.GetEnvironmentVariable("TMP");
        string Message = "<script> alert(' " + Err + "');</script>";
        Response.Write(Message);
    }
}
4

3 に答える 3

1

環境変数は、コンピューター上ですべてのプロセスに対してグローバルな変数です。勝手な推測ですが、レポート ビューアーは一時ファイルを保存する必要があると思います。オペレーティングシステムにそれらを保存する場所を要求します。オペレーティング システムはその変数 (この場合は "TMP" という名前の変数) を検索し、その値をレポート ビューアーに返します。レポート ビューアーは、そこに一時ファイルを喜んで保存します。

この行は、値が C:\Temp の変数名 TMP があることをオペレーティング システムに伝えます。

レポート ビューアーは、続行するためにオペレーティング システムに TMP の値を要求する可能性があります。

于 2013-04-10T09:20:57.070 に答える
0

環境変数は、アプリケーションが特定のディレクトリへのパスなどを明示的に知らなくても決定する方法です。
たとえば、インストールルーチンを実行するために一時ファイルを解凍する必要があるプログラムがある場合、システムに環境変数を要求し、システムTMPからパスを取得できます。これにより、アプリケーションは実際のシステムから独立したものにTMPなりC:\TempますD:\Temp

ウィキペディアより

Environment variables are a set of dynamic named values that can affect the way 
running processes will behave on a computer
于 2013-04-10T09:01:06.240 に答える