사용자가 데이터베이스와 상호 작용하고 필요한 보고서를 작성하는 응용 프로그램이 있습니다. 품목 가격은 데이터베이스에 나열됩니다. 일단 항목을 선택하면 Excel 형식으로 보고서를 생성합니다. 보고서 생성 버튼을 클릭하면 보고서를 저장할 위치를 묻습니다. 이것들은 모두 좋다. 문제는 보고서를 저장하고 보고서 생성 버튼을 누를 때 같은 이름의 파일이 해당 위치에있을 때 동일한 위치에 같은 이름의 동일한 파일을 저장할 수 있다는 것입니다. 그것은 기본적으로 이전 것을 대체합니다. 파일이 있는지를 확인하는 코드를 작성했는데 작동하지만 문제는 파일을 저장할 때 순간에 나타나지 않는다는 것입니다. 전에 나타납니다. 내가 원하는 것은 파일을 어느 위치에 저장하려고 할 때입니다. 즉, "파일이 있고 그 파일로 바꾸시겠습니까?"라는 인스턴트 메시지가 나타납니다. 단어를 저장할 때 Windows 대화 상자와 비슷합니다. 같은 이름의 문서가있는 위치.이미 존재하는 파일의 대화 상자 표시 위치
누군가 설명이 필요하면 의견을 말하십시오, 나는 대부분 온라인 상태입니다.
여기에 당신은 너무 궁금 왼쪽하고 코드를 제공하지 않은 코드
private void btnRunReport_Click(object sender, EventArgs e)
{
if (cmbReportsList.SelectedIndex != -1)
{
_qry = new QueryMgt();
OpenProjectDb();
string _sProjectName = (dbManager.ExecuteScalar(CommandType.Text, _qry.GetProjectFileName())).ToString();
CloseProjectDb();
if (cmbReportsList.SelectedIndex == 0)
{
SaveFile.Filter = "excel 2007 (*.xlsx)|*.xlsx";
SaveFile.DefaultExt = "xlsx";
SaveFile.FileName = _sProjectName + " Report1";
strFilepath = System.IO.Path.GetFullPath(SaveFile.FileName);
if (SaveFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.Text = System.IO.Path.GetFileName(SaveFile.FileName);
strFilepath = System.IO.Path.GetFullPath(SaveFile.FileName);
if (strFilepath.Length > 218) { strFilepath = StringMgt.Left(strFilepath, 218); }
btnRunReport.Visible = false;
bg1804Rpt.RunWorkerAsync();
Application.DoEvents();
}
}
else if (cmbReportsList.SelectedIndex == 1)
{
SaveFile.FileName = _sProjectName + " Report2";
SaveFile.Filter = "excel 2007 (*.xlsx)|*.xlsx";
SaveFile.DefaultExt = "xlsx";
if (SaveFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//SaveFile.FileName = "Report2";
this.Text = System.IO.Path.GetFileName(SaveFile.FileName);
strFilepath = System.IO.Path.GetFullPath(SaveFile.FileName);
if (strFilepath.Length > 218) { strFilepath = StringMgt.Left(strFilepath, 218); }
btnRunReport.Visible = false;
bgMCRpt.RunWorkerAsync();
Application.DoEvents();
}
}
else if (cmbReportsList.SelectedIndex == 2)
{
_qry = new QueryMgt();
_formula = new FormulaMgt();
string sSQL;
string chrCountryName = "";
OpenProjectDb();
OpenTableDb();
DataSet dsProjectSpec;
DataSet dsCountry;
sSQL = _qry.GetProjectSpec().ToString();
dsProjectSpec = dbManager.ExecuteDataSet(CommandType.Text, sSQL);
sSQL = _qry.GetCountry().ToString();
dsCountry = dbManagerTable.ExecuteDataSet(CommandType.Text, sSQL);
foreach (DataRow row in dsCountry.Tables[0].Select("pk_lngCountryID ='" + dsProjectSpec.Tables[0].Rows[0]["lngCountryId"] + "'"))
{
chrCountryName = row["chrCountryName"].ToString();
break;
}
SaveFile.FileName = _sProjectName + " Report3";
SaveFile.Filter = "excel 2007 (*.xlsx)|*.xlsx";
SaveFile.DefaultExt = "xlsx";
// SaveFile.Filter = "Microsoft Office Excel Worksheet (*.xlsx)|*.xls|All files (*.*)|*.*";
if (SaveFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//SaveFile.FileName = "Report3";
this.Text = System.IO.Path.GetFileName(SaveFile.FileName);
strFilepath = System.IO.Path.GetFullPath(SaveFile.FileName);
if (strFilepath.Length > 218) { strFilepath = StringMgt.Left(strFilepath, 218); }
btnRunReport.Visible = false;
bgMDRpt.RunWorkerAsync();
Application.DoEvents();
}
}
}
else if (cmbReportsList.SelectedIndex == -1)
{
MessageBox.Show("Please select any report", "Info", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
파일이 존재하는지 여부를 확인하는 코드를 ** 실제로 ** 저장하기 전에 실제로 저장하고 확인 메시지를 표시합니다. – James
일부 코드를 표시하십시오 –