zoukankan
html css js c++ java
server.transfer
function
transValue()
{
document.getElementById(
"
hidInvTitle
"
).value
=
document.getElementById(
"
txtTitle
"
).value;
//
开票抬头隐藏域,赋值
//
document.getElementById("hidInvDate").value=document.getElementById("PickDate_Qg").value;//开票日期隐藏域,赋值,在CS代码的“确定”事件的结尾
document.getElementById(
"
hidBankName
"
).value
=
document.form1.ddlBankName[document.form1.ddlBankName.selectedIndex].text;
//
开户行隐藏域,赋值
document.getElementById(
"
hidAccountNo
"
).value
=
document.form1.ddlBankName[document.form1.ddlBankName.selectedIndex].value;
//
开户账号隐藏域,右边用document.form1.txtAccountNo.text更好些
document.getElementById(
"
hidFeeItem
"
).value
=
document.form1.txtFeeItem.value;
//
收费内容
//
alert(document.getElementById("hidFeeItem").value);
document.getElementById(
"
hidAmount
"
).value
=
document.form1.txtAmount.value;
//
收费内容金额
document.getElementById(
"
hidRemark
"
).value
=
document.form1.txtRemark.value;
//
备注
//
alert(document.getElementById("hidRemark").value);
document.getElementById(
"
hidCurrency
"
).value
=
document.form1.txtCurrency.value;
//
货币种类
document.getElementById(
"
hidUpper
"
).value
=
document.form1.txtAmountUpper.value;
//
大写金额
document.getElementById(
"
hidLower
"
).value
=
document.form1.txtAmountTotal.value;
//
小写金额
document.getElementById(
"
hidDrawer
"
).value
=
document.form1.txtDrawer.value;
//
开票人
}
</
script
>
<
asp:Button
ID
="btnConfirm"
runat
="server"
CssClass
="btn"
Text
="确定"
OnClientClick
="transValue()"
OnClick
="btnConfirm_Click"
/>
protected
void
btnConfirm_Click(
object
sender, EventArgs e)
{
string
szdw_id
=
""
;
System.Guid guidSZDW
=
new
Guid();
//
如果ViewState中一直没有涉帐单位的ID,inv_main表中就可能插入新的不相关的ID,依据这个不相关ID在PD_COMPANY中找不到相关的COMPANY
if
(ViewState[
"
SZDW_ID
"
]
!=
null
)
{
szdw_id
=
ViewState[
"
SZDW_ID
"
].ToString();
guidSZDW
=
new
Guid(szdw_id);
}
//
隐含如果ViewState["SZDW_ID"] == null 则放System.Guid guidSZDE = new Guid();生成的GUID进INV_MAIN该GUID组成部分全为0-〉32个0
从ViewState中取值
#region
从ViewState中取值
string
strOP_CODE
=
""
;
//
可能要记录以后来作废这张发票的人的CODE,???????????????????????????????????????????
if
(ViewState[
"
OP_CODE
"
]
!=
null
)
{
strOP_CODE
=
ViewState[
"
OP_CODE
"
].ToString().Trim();
}
string
strCR_CODE
=
""
;
//
Session中保存的UserCode
if
(Session[
"
UserCode
"
]
!=
null
)
{
strCR_CODE
=
Session[
"
UserCode
"
].ToString().Trim();
}
DateTime dateETD
=
DateTime.Now;
if
(ViewState[
"
ETD
"
]
!=
null
)
//
JOB_SE中的字段ETD,通过ViewState从Page_Load中传过来,在本inv_main表中做"DATE_JOB"业务日期 ,如果JOB_SE中ETD为空,这里该取什么值
{
dateETD
=
Convert.ToDateTime(ViewState[
"
ETD
"
]);
}
#endregion
从ViewState中取值 END
string
strSqlInsert
=
@"
insert into inv_main
(ID ,INV_NO,INV_TITLE,COMPANY_ID,INV_DATE,INV_REN,CURRENCY,AMOUNT,DETAIL_FEE,DETAIL_AMOUNT,DETAIL_REMARK,BANK_NAME,ACCOUNT_NO,JOBNO,LPORT,DPORT,DEST,WTBH,DATE_JOB,AMOUNT_CHN,AMOUNT_HX,AMOUNT_WHX,CR_CODE,CR_TIME,OP_CODE,OP_TIME)
values
(@ID,@INV_NO,@INV_TITLE,@COMPANY_ID,@INV_DATE,@INV_REN,@CURRENCY,@AMOUNT,@DETAIL_FEE,@DETAIL_AMOUNT,@DETAIL_REMARK,@BANK_NAME,@ACCOUNT_NO,@JOBNO,@LPORT,@DPORT,@DEST,@WTBH,@DATE_JOB,@AMOUNT_CHN,@AMOUNT_HX,@AMOUNT_WHX,@CR_CODE,@CR_TIME,@OP_CODE,@OP_TIME)
"
;
try
{
insert inot inv_main new record
#region
insert inot inv_main new record
conn.Open();
SqlCommand comm
=
new
SqlCommand(strSqlInsert, conn);
SqlParameter spara
=
null
;
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@ID
"
, SqlDbType.UniqueIdentifier,
32
));
comm.Parameters[
"
@ID
"
].Value
=
System.Guid.NewGuid();
//
invoice_ID
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@INV_NO
"
, SqlDbType.NVarChar,
50
));
comm.Parameters[
"
@INV_NO
"
].Value
=
txtInvoiceNumber.Text.Trim();
//
发票号码,手工输入
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@INV_TITLE
"
, SqlDbType.NVarChar,
255
));
comm.Parameters[
"
@INV_TITLE
"
].Value
=
txtTitle.Text.Trim();
//
开票抬头,文本框
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@COMPANY_ID
"
, SqlDbType.UniqueIdentifier,
32
));
comm.Parameters[
"
@COMPANY_ID
"
].Value
=
guidSZDW;
//
有可能先输入了费用,又把该公司的信息从Company表中删除,导致此处为空,涉帐单位
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@INV_DATE
"
, SqlDbType.DateTime,
10
));
if
(PickDate_Qg.SelectedDates.Count
>
0
)
//
要先判断该日历控件有没有值
{
comm.Parameters[
"
@INV_DATE
"
].Value
=
PickDate_Qg.SelectedDate;
//
开票日期
}
else
{
comm.Parameters[
"
@INV_DATE
"
].Value
=
DBNull.Value;
//
取出来时也要先判断是否为空
}
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@INV_REN
"
, SqlDbType.VarChar,
50
));
comm.Parameters[
"
@INV_REN
"
].Value
=
txtDrawer.Text.Trim();
//
开票人
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@CURRENCY
"
, SqlDbType.VarChar,
50
));
comm.Parameters[
"
@CURRENCY
"
].Value
=
txtCurrency.Text.Trim();
//
币种
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@AMOUNT
"
, SqlDbType.Decimal,
52
));
//
---->数据库中的类型为decimal(18,2)
comm.Parameters[
"
@AMOUNT
"
].Value
=
txtAmountTotal.Text.Trim();
//
总金额,阿拉伯数字
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@DETAIL_FEE
"
, SqlDbType.VarChar,
500
));
comm.Parameters[
"
@DETAIL_FEE
"
].Value
=
txtFeeItem.Text.Trim();
//
收费内容\r\n这种换行怎么办,直接存进DB?
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@DETAIL_AMOUNT
"
, SqlDbType.VarChar,
500
));
comm.Parameters[
"
@DETAIL_AMOUNT
"
].Value
=
txtAmount.Text.Trim();
//
金额明细 \r\n这种换行怎么办,直接存进DB?
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@DETAIL_REMARK
"
, SqlDbType.VarChar,
500
));
comm.Parameters[
"
@DETAIL_REMARK
"
].Value
=
txtRemark.Text.Trim();
//
备注
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@BANK_NAME
"
, SqlDbType.VarChar,
100
));
//
开户行
comm.Parameters[
"
@BANK_NAME
"
].Value
=
ddlBankName.Items[ddlBankName.SelectedIndex].Text;
//
多个账户对应多个银行名
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@ACCOUNT_NO
"
, SqlDbType.VarChar,
50
));
//
开户帐号
comm.Parameters[
"
@ACCOUNT_NO
"
].Value
=
ddlBankName.Items[ddlBankName.SelectedIndex].Value;
//
多个账户对应多个银行名
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@JOBNO
"
, SqlDbType.VarChar,
500
));
comm.Parameters[
"
@JOBNO
"
].Value
=
txtJobNo.Text.Trim();
//
工作编号
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@LPORT
"
, SqlDbType.VarChar,
50
));
comm.Parameters[
"
@LPORT
"
].Value
=
txtLoadPort.Text.Trim();
//
装货港
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@DPORT
"
, SqlDbType.VarChar,
50
));
comm.Parameters[
"
@DPORT
"
].Value
=
txtDischargePort.Text.Trim();
//
卸货港
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@DEST
"
, SqlDbType.VarChar,
50
));
comm.Parameters[
"
@DEST
"
].Value
=
txtDestPort.Text.Trim();
//
目的地
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@WTBH
"
, SqlDbType.VarChar,
500
));
comm.Parameters[
"
@WTBH
"
].Value
=
txtCommissionNo.Text.Trim();
//
委托编号
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@DATE_JOB
"
, SqlDbType.DateTime,
10
));
comm.Parameters[
"
@DATE_JOB
"
].Value
=
dateETD;
//
业务日期 例如:海运出口为ETD
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@AMOUNT_CHN
"
, SqlDbType.VarChar,
100
));
comm.Parameters[
"
@AMOUNT_CHN
"
].Value
=
txtAmountUpper.Text.Trim();
//
总金额,中文大写
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@AMOUNT_HX
"
, SqlDbType.Decimal,
20
));
comm.Parameters[
"
@AMOUNT_HX
"
].Value
=
0.00m
;
//
核销金额,发票刚开出来,核销金额为0,还没开始核销
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@AMOUNT_WHX
"
, SqlDbType.Decimal,
20
));
comm.Parameters[
"
@AMOUNT_WHX
"
].Value
=
txtAmountTotal.Text.Trim();
//
未核销金额,发票刚开出来,全部金额,还没开始核销
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@CR_CODE
"
, SqlDbType.VarChar,
50
));
comm.Parameters[
"
@CR_CODE
"
].Value
=
strCR_CODE;
//
Session中保存的UserCode
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@CR_TIME
"
, SqlDbType.DateTime,
10
));
comm.Parameters[
"
@CR_TIME
"
].Value
=
DateTime.Now;
//
是本发票保存进数据库的时间 不是 JOB_SE表中的字段CR_TIME????dateCR_TIME,
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@OP_CODE
"
, SqlDbType.VarChar,
50
));
comm.Parameters[
"
@OP_CODE
"
].Value
=
strOP_CODE;
//
JOB_SE表中的字段OP_CODE
spara
=
comm.Parameters.Add(
new
SqlParameter(
"
@OP_TIME
"
, SqlDbType.DateTime,
10
));
comm.Parameters[
"
@OP_TIME
"
].Value
=
DateTime.Now;
//
不是JOB_SE表中的字段OP_TIME????dateOP_TIME
#endregion
comm.ExecuteNonQuery();
comm.Dispose();
/*从Page_Load中传strID过来,再次split成数组,ViweState好像不能存数组,更新fee_in或fee_out中的“已开票标志” flag_kp和 “发票号码” Invoice_No */
#region
/*从Page_Load中传strID过来,再次split成数组,ViweState好像不能存数组,更新fee_in或fee_out中的“已开票标志” flag_kp和 “发票号码” Invoice_No */
string
strID
=
null
;
if
(ViewState[
"
strID
"
]
!=
null
)
{
strID
=
ViewState[
"
strID
"
].ToString();
}
string
[] arrID
=
strID.Split(
'
,
'
);
string
strSqlUpdate
=
""
;
for
(
int
i
=
0
; i
<
arrID.Length
-
1
; i
++
)
//
arrID.Length - 1是因为string[] arrID = strID.Split(',')最后一个元素为空
{
strSqlUpdate
=
@"
set nocount on;update fee_in set flag_kp=1 where id= '
"
+
arrID[i]
+
"
'; update fee_out set flag_kp=1 where id='
"
+
arrID[i]
+
"
';
"
;
strSqlUpdate
+=
@"
update fee_in set INVOICE_NO='
"
+
txtInvoiceNumber.Text.Trim()
+
"
'where id='
"
+
arrID[i]
+
"
';update fee_out set INVOICE_NO='
"
+
txtInvoiceNumber.Text.Trim()
+
"
'where id='
"
+
arrID[i]
+
"
';
"
;
}
SqlCommand commUpdate
=
new
SqlCommand(strSqlUpdate, conn);
commUpdate.ExecuteNonQuery();
//
update delete
commUpdate.Dispose();
#endregion
string
invDateTemp
=
PickDate_Qg.SelectedDate.ToString(
"
d
"
);
//
不能通过隐藏域传递,现在通过QueryString传递
//
if (!this.IsClientScriptBlockRegistered("clientScript"))
//
{
//
String scriptString = @"<script language=JavaScript>window.showModalDialog('invoice_print.aspx?ID=" + strid.ToString() + "',window,'status:Modeless;edge:raised;unadorned:no;scroll=yes;resizable:yes;center=yes;help:no;dialog800px;dialogheight:600px');</script>";
//
this.RegisterClientScriptBlock("clientScript", scriptString);
//
注册客户端脚本块
//
}
//
Server.Transfer("invoice_print.aspx?ID=" + strID.ToString() + "");
Server.Transfer(
"
invoice_print.aspx?invDate=
"
+
invDateTemp
+
""
);
//
Response.Redirect("invoice_print.aspx?ID=" + strID.ToString() + "");
//
Response.Write("<script>"+"window.showModalDialog('invoice_print.aspx',window,'status:Modeless;edge:raised;unadorned:no;scroll=yes;resizable:yes;center=yes;help:no;dialog890px;dialogheight:620px');"+"</script>");
}
finally
{
//
Response.Write("<script>window.alert('Success invoiced!');</script>");
conn.Close();
//
Response.Write("<script>window.close()</script>");
}
}
查看全文
相关阅读:
系统学习DOM事件机制
混合编程:域、桥与型变
分层语言的混合编程
投资第一定律
元编程(运行时)模型
泛型的第一性:同构、集合、抽象
元编程沉思录
思想是什么?经过严密的逻辑论证的观点的体系。
编程语言概念的层次性与解释系统
元编程沉思录(草稿)
原文地址:https://www.cnblogs.com/simhare/p/848240.html
最新文章
pushpin 将web services 转换为realtime api 的反向代理工具
What is Zeebe?
zeebe docker-compose 运行(包含monitor)
浅谈 DML、DDL、DCL的区别
oracle中游标详细用法
Oracle基础 游标
Oracle 游标使用全解
Oracle高级查询之over(partition by...)
Oracle数据库——SQL高级查询
Oracle学习中,重点是sql语句的学习,而所有的sql语句都要在scott用户下完成。
热门文章
Oracle约束的启用和停用
禁用所有外键约束
Oracle 快速插入1000万条数据的实现方式
Why React Is Favored by Front-End Specialists
学习、遗忘、孤立系统、生态、全面思考(杂记)
前端技术发展路径
spring 核心容器
事件机制的要素
UI事件定位--HitTest
DOM事件机制解惑(摘)--事件的传播机制
Copyright © 2011-2022 走看看