ユーザーがデータベースと対話し、必要なもののレポートを作成するアプリケーションがあります。アイテムの価格はデータベースにリストされています。項目を選択したら、Excel 形式でレポートを生成します。[Generate a Report] ボタンをクリックすると、レポートを保存する場所を尋ねられます。これらはすべて良いです。問題は、レポートを保存して [レポートの生成] ボタンをクリックすると、同じ場所に同じ名前のファイルが存在する場合に、同じファイルを同じ名前で同じ場所に保存できることです。基本的に古いものを交換します。ファイルが存在するかどうかを確認するコードを書きましたが、問題は、ファイルを保存しているときに表示されないことです。前に表示されます。私が望むのは、ファイルを任意の場所に保存しようとすると、その瞬間に「
説明が必要な場合は、コメントしてください。私はほとんどの場合オンラインです。
ここにコードがあります
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);
}
}