#region 事件--導出
private void xButtonExport_Click(object sender, EventArgs e)
{
//導出前驗證
if (InventoryInquiresDataGrid.Rows.Count==0)
{
MessageBox.Show("沒有要導出的數據!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
GetSerachInfo(); //獲取查詢條件 searchObject對象
StateBar sb = new StateBar(); //調用導出運行狀態欄
sb.Show("系統正在處理,請稍等...");
try
{
ResultPage_StoreInventoryInquires rpo = null;
IStore_InventoryInquires Proxy = SPF.Create<IStore_InventoryInquires>("Store_InventoryInquires_SRV");
rpo = Proxy.SelectStore_InventoryExport(searchObject);
sb.Close();
DataTable eData = HidColumnExport(rpo.DataSetData.Tables["InventoryInquiresView"], InventoryInquiresDataGrid); //去掉不用導出的列
eData = UpdateExportTableColumnName(eData); // 修改導出擴展屬性的列名稱
//導出
bool export = false;
SaveFileDialog sfd = new SaveFileDialog();
sfd.OverwritePrompt = false;
sfd.Filter = "excel文件|*.xls";
sfd.FileName = "庫存導出-" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls";
if (sfd.ShowDialog() == DialogResult.OK)
{
export = new ImportExportToExcel().ExportToExcel(eData, sfd.FileName,"Export_InventoryInquires");
}
if (export)
{
sb.Close();
MessageBox.Show("導出成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
catch
{
sb.Close();
MessageBox.Show("查詢失敗!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
#endregion
#region 方法--隱藏不用導出的列
public DataTable HidColumnExport( DataTable exportTable,DataGridView dv)
{
#region
for (int i = 0; i < exportTable.Columns.Count; i++)
{
bool flag = false;
for (int j = 0; j < dv.ColumnCount; j++)
{
if (dv.Columns[j].Visible && (exportTable.Columns[i].ColumnName == dv.Columns[j].DataPropertyName))
{
//說明存在該列
flag = true;
break;
}
}
//列不存在就刪除
if(!flag)
{
exportTable.Columns.Remove(exportTable.Columns[i]);
i--;
}
}
#endregion
return exportTable;
}
#endregion
#region 修改導出擴展屬性的列名稱
public DataTable UpdateExportTableColumnName(DataTable exportTable)
{
List<Set_GoodsPropertyInfoObject> list = GetPropertyInfoByGoodsId(str_CompanyID);
if (list != null)
{
foreach (Set_GoodsPropertyInfoObject setGoodsPropertyInfoObject in list)
{
foreach (DataColumn goodsPropertyInfoObject in exportTable.Columns)
{
if("PropertyInfo"+setGoodsPropertyInfoObject.Num==goodsPropertyInfoObject.ColumnName)
{
goodsPropertyInfoObject.Caption=setGoodsPropertyInfoObject.PropertyName;
}
}
}
}
return exportTable;
}
#endregion
