ERP打印入库单(四十)

网友投稿 260 2022-09-16

ERP打印入库单(四十)

需求描述:此购进单的基本信息,购进单位,入库单位,入库时间……此购进单批号,产品名称,生产企业,等基本信息。实现能够循环加载打印。本单金额小计,整单金额合计计算。技术需求:界面设计,循环加载数据实现函数:根据产品编号查询产品生产企业实现函数:根据产品查询产品规格实现函数:根据产品查询产品单位实现金额数字转换大写

金额大小写转换的类:

namespace CommTool{ ///

/// 字符串处理相关 /// public class StringHandler { /// /// author:sunliyuan /// sunliyuan:2011年12月4日 /// 转换人民币大小金额 /// /// 金额 /// 返回大写形式 public static string CmycurD(decimal num) { string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字 string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字 string str3 = ""; //从原num值中取出的值 string str4 = ""; //数字的字符串形式 string str5 = ""; //人民币大写金额形式 int i; //循环变量 int j; //num的值乘以100的字符串长度 string ch1 = ""; //数字的汉语读法 string ch2 = ""; //数字位的汉字读法 int nzero = 0; //用来计算连续的零值是几个 int temp; //从原num值中取出的值 num = Math.Round(Math.Abs(num), 2); //将num取绝对值并四舍五入取2位小数 str4 = ((long)(num * 100)).ToString(); //将num乘100并转换成字符串形式 j = str4.Length; //找出最高位 if (j > 15) { return "溢出"; } str2 = str2.Substring(15 - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分 //循环取出每一位需要转换的值 for (i = 0; i < j; i++) { str3 = str4.Substring(i, 1); //取出需转换的某一位的值 temp = Convert.ToInt32(str3); //转换为数字 if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15)) { //当所取位数不为元、万、亿、万亿上的数字时 if (str3 == "0") { ch1 = ""; ch2 = ""; nzero = nzero + 1; } else { if (str3 != "0" && nzero != 0) { ch1 = "零" + str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { ch1 = str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } } } else { //该位是万亿,亿,万,元位等关键位 if (str3 != "0" && nzero != 0) { ch1 = "零" + str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { if (str3 != "0" && nzero == 0) { ch1 = str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { if (str3 == "0" && nzero >= 3) { ch1 = ""; ch2 = ""; nzero = nzero + 1; } else { if (j >= 11) { ch1 = ""; nzero = nzero + 1; } else { ch1 = ""; ch2 = str2.Substring(i, 1); nzero = nzero + 1; } } } } } if (i == (j - 11) || i == (j - 3)) { //如果该位是亿位或元位,则必须写上 ch2 = str2.Substring(i, 1); } str5 = str5 + ch1 + ch2; if (i == j - 1 && str3 == "0") { //最后一位(分)为0时,加上“整” str5 = str5 + '整'; } } if (num == 0) { str5 = "零元整"; } return str5; } /// /// author:sunliyuan /// 2011年12月4日 /// 转换人民币大小金额 (一个重载,将字符串先转换成数字在调用CmycurD) /// /// 用户输入的金额,字符串形式未转成decimal /// public static string CmycurD(string numstr) { try { decimal num = Convert.ToDecimal(numstr); return CmycurD(num); } catch { return "非数字形式!"; } } }}

根据产品编号查询产品的生产企业

-- Description: 根据产品编号查询产品的生产企业-- =============================================CREATE FUNCTION [dbo].[FN_getMadeEnterpriseByProID]( @ProID INT)RETURNS NVARCHAR(100)ASBEGIN DECLARE @MadeEnterprise NVARCHAR(100) SELECT @MadeEnterprise=MadeEnterprise FROM dbo.BiotbProduct WHERE ProID=@ProID RETURN @MadeEnterpriseEND

根据产品编号查询产品规格:

-- Description: 根据产品编号查询产品规格-- =============================================CREATE FUNCTION [dbo].[FN_getProSpecbyProID]( @ProID INT)RETURNS NVARCHAR(100)ASBEGIN -- Declare the return variable here DECLARE @Spec NVARCHAR(100) -- Add the T-SQL statements to compute the return value here SELECT @Spec=spec FROM BiotbProduct WHERE ProID=@ProID -- Return the result of the function RETURN @SpecEND

根据产品编号查询产品单位:

-- Description: 根据产品编号查询产品单位-- =============================================CREATE FUNCTION [dbo].[FN_getProUnitbyProID]( @proID INT)RETURNS NVARCHAR(50)ASBEGIN -- Declare the return variable here DECLARE @Unit NVARCHAR(50) -- Add the T-SQL statements to compute the return value here SELECT @Unit=Unit FROM dbo.BiotbProduct WHERE ProID=@proID -- Return the result of the function RETURN @UnitEND

构建查询打印的视图数据:

CREATE VIEW [dbo].[View_PurchaseInfoPrint]ASSELECT SendComName=dbo.getCompanyNameByCompanyID(SendComID),AppUserName=dbo.getUserNameByUserID(AppUserID),AuditingUser=dbo.getUserNameByUserID(AcceptUserid),stockUserName=dbo.getUserNameByUserID(Stockuserid),StockName=dbo.FN_getStockNameByStockID(StockID),StockDate=dbo.Fn_getSotckTimeByPurchaseID(PurchaseID),* FROM dbo.BioPurchaseAppInfoCREATE VIEW [dbo].[View_PurchaseBatchInfoPrint]ASSELECT ProName, Spec=dbo.FN_getProSpecbyProID(ProID), MadeEnterprise=dbo.FN_getMadeEnterpriseByProID(ProID), Unit=dbo.FN_getProUnitbyProID(ProID), ProCount, ProPrice, ProBatchPriceTotal=(ProPrice*realityProCount), InvoicePrice, PurchaseProID, PurchaseID, ProID, makeDate, batchNum, expirationDate, ProBatchID, stockDate, boxNum, BatchProCount, realityProCount FROM View_PurchaseProBatchInfo

根据仓库编号查询仓库名称:

-- Description: 根据仓库编号查询仓库名称-- =============================================CREATE FUNCTION [dbo].[FN_getStockNameByStockID]( -- Add the parameters for the function here @stockID INT)RETURNS NVARCHAR(100)ASBEGIN DECLARE @StockName NVARCHAR(100) SELECT @StockName=StockName FROM dbo.BioErpStockTable WHERE ID=@stockID RETURN @StockNameEND

打印的前端代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RuKuPrint.aspx.cs" Inherits="BioErpWeb.Print.RuKuPrint" %> 入库(验收、通知)单打印

<% //产品购进单基本信息(1条) System.Data.DataSet ds = GetDataSet(); //产品批号信息(多条) System.Data.DataSet ds1 = this.GetProBatchsDataSet(); int mypage = 0; if ((ds1.Tables[0].Rows.Count) % 5 == 0) { mypage = (int)((ds1.Tables[0].Rows.Count) / 5); } else { mypage = ((int)((ds1.Tables[0].Rows.Count) / 5)) + 1; } decimal mon = 0; for (int n = 0; n < ds1.Tables[0].Rows.Count; n++) { mon += Convert.ToDecimal(ds1.Tables[0].Rows[n]["ProBatchPriceTotal"].ToString().Trim()); } //Convert.ToDecimal(mon); int x = ds1.Tables[0].Rows.Count; //绑定固定的联系人或者制单人名 for (int i = 0; i < x;) { %>
<%=ds.Tables[0].Rows[0]["OrderCom"]%>入库(验收、通知)单
发货单位: <%=ds.Tables[0].Rows[0]["SendComName"]%> 入库方式: <%=ds.Tables[0].Rows[0]["sendType"]%> 系统单号: <%=DateTime.Now.ToString("yyyyMMddhhmmss")+ds.Tables[0].Rows[0]["PurchaseID"]%>
仓 库: <%=ds.Tables[0].Rows[0]["StockName"]%> 入库时间: <%=Convert.ToDateTime(ds.Tables[0].Rows[0]["StockDate"]).ToString("yyyy-MM-dd")%> 自定义单号:
<% decimal currentmoney = 0; for (int j = 0; j < 5 && i < x; j++, i++) { currentmoney += Convert.ToDecimal(ds1.Tables[0].Rows[i]["ProBatchPriceTotal"]); %> <% } %>
商品名称 规 格 生产企业 单位 数量 单价 金额 生产日期 批号 有效期
<%=i+1 %>
<%=ds1.Tables[0].Rows[i]["ProName"]%> <%=ds1.Tables[0].Rows[i]["Spec"]%> <%=ds1.Tables[0].Rows[i]["MadeEnterprise"]%> <%=ds1.Tables[0].Rows[i]["Unit"]%> <%=ds1.Tables[0].Rows[i]["realityProCount"]%> <%=Convert.ToDecimal(ds1.Tables[0].Rows[i]["ProPrice"]).ToString("0.00")%> <%=Convert.ToDecimal(ds1.Tables[0].Rows[i]["ProBatchPriceTotal"]).ToString("0.00")%> <%=Convert.ToDateTime(ds1.Tables[0].Rows[i]["makeDate"]).ToString("yyyy-MM-dd")%> <%=ds1.Tables[0].Rows[i]["batchNum"]%> <%=Convert.ToDateTime(ds1.Tables[0].Rows[i]["expirationDate"]).ToString("yyyy-MM-dd")%>
本单入库金额小计:<%=CommTool.StringHandler.CmycurD(currentmoney)+"(¥"+currentmoney.ToString("0.00")+")" %> 整单入库金额合计:<%=CommTool.StringHandler.CmycurD(mon)+"(¥"+mon.ToString("0.00")+")"%>
验收结论:合格 验收人: 送货人: 保管员: 制单人:
白 联:存根联 红 联:财务联 黄 联:库房 P.<%=((int)(i-1)/5)+1 %>/<%=mypage%>
<% } %>

后端代码:

protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["purchaseid"] != null) { } else { Response.Redirect("ProPurchaseShow.aspx"); return; } } ///

/// 获取采购表单基本信息 /// /// public DataSet GetDataSet() { string id = Request.QueryString["purchaseid"].ToString(); DataSet ds= SqlComm.GetDataByCondition("dbo.View_PurchaseInfoPrint", "*", "PurchaseID=" + id); return ds; } /// /// 采购单相应批号信息 /// /// DataSet public DataSet GetProBatchsDataSet() { string id = Request.QueryString["purchaseid"].ToString(); DataSet ds = SqlComm.GetDataByCondition("dbo.View_PurchaseBatchInfoPrint", "*", "PurchaseID=" + id); return ds; }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:EF中逆变和协变
下一篇:奥运为何选择霹雳舞?因为它是竞技性最强的舞种!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~