2011年12月1日 星期四

Asp.net 匯出假Excel


protected void Button1_Click(object sender, EventArgs e)
{
Response.Clear();

System.Text.StringBuilder sb = new System.Text.StringBuilder(); //內容自行新增

string fileName = DropDownList1.SelectedValue.ToString() + DropDownList1.SelectedValue.ToString()+ ".xls";

if (Request.Browser.Browser == "IE")
{
fileName = Server.UrlPathEncode(fileName);
}
string style = " ";

Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName );

//Response.Write("");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.Default;//.Unicode;//.UTF8;//

System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

//文字格式處理 
Response.Write(style);
Response.Write(sb.ToString());//內容
Response.Write(stringWrite.ToString());
Response.End();
}
以下這段一定要加

public override void VerifyRenderingInServerForm(Control control)
{
//處理'GridView' 的控制項 'GridView' 必須置於有 runat=server 的表單標記之中
}
ps如放在button放在updatepanel裡

T-SQL 更新主檔總金額(多次付款)

功用

在客戶分多次款可能不會一次付清時,在新增刪除修改時都會去更新到尚欠的金額

StatementList 主檔
StatementItem 明細檔

CX_Total : 原本的總金額
CX_Less_Money : 尚欠尾款
CX_Amount : 明細已付金額



update StatementList set CX_Less_Money = (CX_Total - ( select SUM( CONVERT(Decimal, CX_Amount ) ) from StatementItem where ID_Statement=@ID_Statement)) where ID_Statement =@ID_Statement