ASP控制输出内容、自适应列内容及宽度

应用于:行列式,单据列式+明细内容。
如下:
行列式
单据列式+单据明细内容
效果:
1、 网页中要显示哪些标题;
2、 各标题(是否必填项提示、列宽、字体排列方式:居左、中、右;是否为可以输入)
3、 是否需要汇总当前页数据
4、 打印、导出的列内容自己定义,可以设定每个单位体都有不同的打印内容、导出内容。

作用:
1、 缩减每个文件编写代码的行数;
2、 方便维护代码:减少对源文件的修改;
3、 增加开发速度;建立一个文件模版,其它文件开始编写时先导入。重点修改差异部分。

方法:
1、 字段控制表:管理各文件中的列标题字段的设置。如:
标题字段设置
2、 读取标题相关设置:在各个文件中先读取标题的设置然后应用。

===============================以下为单据列式+明细内容(可作明细内容,也可作非单据列式时的行列式,也即每页显示的内容就可以由以下的代码控制输出了。)

	''------------------------------------------------------单据列表标题行
	if cdbl(ifdifferent)=11 then
		ChangeAllname="newidsh"
		response.write "<table style='margin: 0 auto;width: "&TotalWidth&"px;border: 0;padding: 0;border-spacing: 0;table-layout: fixed;word-bread: break-all;' id='ces_main'>"
		response.write "<tr>"
		for t=lbound(SplitCol) to cdbl(ubound(SplitCol))-1
			if SplitColIndex(t)<=50 then
				ResultWidth=cdbl(round(cdbl(Splitwidth(t))*cdbl(WidthScreen),0))-1				''各字段规定的宽度*总宽显示的比
				if SplitMustIs(t)="True" then		''必填字段
					response.write "<th style='width: "&ResultWidth&"px;text-align: "&SplitAlign(t)&";' class='alert_color'>"&SplitChCol(t)&"</th>"
				else
					response.write "<th style='width: "&ResultWidth&"px;text-align: "&SplitAlign(t)&";'>"&SplitChCol(t)&"</th>"
				end if
			end if
		next
		response.write "</tr>"
		''--------------------------------------------------单据列表内容
	''*******************************************************显示明细内容:行内容
		for n=1 to cdbl(pagenum)
			''******************************************************************行内容异化区间
			if cdbl(ifpnum)=1 then
				if rs.bof or rs.eof then exit for
				Pnum=rs(FdName)
			else
				Pnum=n									''变量名称的后缀,默认取值
			end if
			''------------------------------------------行显样式中的状态变量值
			if ifstates<>"" then
				TrStates=rs(ifstates)
			else
				TrStates=0
			end if
			''-------------------------------------------行显示样式
			TrStyle=""									''行因状态值不同而显示不同的样式
			TrClick=" ondblclick='javascript:window.location.href="""&files&"?chname="&chname&"&delid="&Pnum&"&pageid="&pageid&"""' title='双击显示明细'"	
			if cdbl(delid)=cdbl(Pnum) then
				TrStyle=" class='OkShowLineColor'"
			else
				if cdbl(TrStates)=-1 then
					TrStyle=" class='stop_color'"
				elseif cdbl(TrStates)=1 then
					TrStyle=" class='yesaudit_color'"
				elseif cdbl(TrStates)=2 then
					TrStyle=" class='close_color'"
				end if
			end if
			''******************************************************************行内容显示开始
			response.write "<tr"&TrStyle&TrClick&">"
			for r=lbound(SplitCol) to cdbl(ubound(SplitCol))-1
				if cdbl(SplitColIndex(r))<=50 then
					''**************************************************************行单元格变量
					TextInput=""		''td内的内容
					ifinput=0			''是否可写的判断
					if cdbl(mid(SplitUseto(r),cdbl(Ov)+1,1))>0 and cdbl(SplitInput(r))<100 then
						ResultWidth=cdbl(round(cdbl(Splitwidth(r))*cdbl(WidthScreen),0))-3				''各字段规定的宽度*总宽显示的比例
					else
						ResultWidth=cdbl(round(cdbl(Splitwidth(r))*cdbl(WidthScreen),0))-1				''各字段规定的宽度*总宽显示的比例
					end if
					''**************************************************************行单元格内异化区间
					if cdbl(ifvarvalue)=1 then
						WhereVarvalue=rs(r)
					else
						WhereVarValue=""                ''取变量值即字段值
					end if
					WhereVarname=SplitWhereVar(r)&pnum					''变量名称
					''--------------------------------------------首列的取值问题
					if cdbl(SplitColIndex(r))=51 or cdbl(SplitColIndex(r))=1 then
                        if cdbl(Ov)=2 and cdbl(Trstates)<0 then
                            Pnum=(pageid-1)*pagenum+n
                        elseif cdbl(Ov)=3 then
                        	Pnum=(pageid-1)*pagenum+n
                        elseif cdbl(Ov)=4 and cdbl(TrStates)<0 then
                        	Pnum=(pageid-1)*pagenum+n
                        elseif cdbl(Ov)=5 and cdbl(TrStates)>0 then
                        	Pnum=(pageid-1)*pagenum+n
                        elseif cdbl(Ov)=6 and cdbl(TrStates)<>0 then
                        	Pnum=(pageid-1)*pagenum+n
                        end if
						WhereVarValue=pnum
						WhereVarname=SplitWhereVar(r)
					end if
					''***************************************************************行单元格内容固定输出区间
					''------------------------------------------------可写加工:操作、布局的、可写类型的计算条件
					if cdbl(mid(SplitUseto(r),cdbl(Ov)+1,1))>0 and cdbl(SplitInput(r))<100 then		''当布局中对应的本次新增的状态大于0表示可写;可写类型小于100表示各种对应的表单
						if cdbl(mid(SplitUseto(r),cdbl(Ov)+1,1))=1 then
							ifinput=1
						elseif cdbl(mid(SplitUseto(r),cdbl(Ov)+1,1))=2 then
							ifinput=1
						elseif cdbl(mid(SplitUseto(r),cdbl(Ov)+1,1))=3 then
							ifinput=1
						end if
						''------------------------------------------可写状态的内容
						if cdbl(ifinput)=1 then
							if cdbl(SplitInput(r))=1 then			''复选框
								TextInput="<input type='checkbox' name='"&WhereVarname&"' id='"&WhereVarname&"' style='width: "&ResultWidth&"px;text-align: "&SplitAlign(r)&";' value='"&WhereVarValue&"' />"
							elseif cdbl(SplitInput(r))=2 then		''输入框
								TextInput="<input type='text' name='"&WhereVarname&"' id='"&WhereVarname&"' style='width: "&ResultWidth&"px;text-align: "&SplitAlign(r)&";' value='"&WhereVarValue&"' />"
							elseif cdbl(SplitInput(r))=3 then		''选择框
							elseif cdbl(SplitInput(r))=4 then		''单选框
							end if
						end if
					else
						ifinput=0
					end if
					''------------------------------------------当选择了未生成单据的列表项时,只允许勾选,其它不可修改
					if cdbl(S_suid)>0 and cdbl(r)>0 then
						ifinput=0
					end if
					if cdbl(ifinput)=0 then
						TextInput="&nbsp;"&WhereVarValue
					elseif cdbl(ifinput)=2 then
						TextInput="*"
					end if
					response.write "<td style='width: "&ResultWidth&"px;text-align: "&SplitAlign(r)&";'>"&TextInput&"</td>"
				end if
			next
			response.write "</tr>"
			rs.movenext
			if rs.bof or rs.eof then exit for
		next
		response.write "</table>"
	end if
	if cdbl(delid)>0 then
		''---------------------------------------------------隔离行
		response.write "<table style='margin: 0 auto;width: "&TotalWidth&"px;border: 0;padding: 0;border-spacing: 0;table-layout: fixed;word-bread: break-all;' id='ces_main'>"
		response.write "<tr><td>&nbsp;</td></tr>"
		response.write "<tr><td style='text-align: center;' class='dark_gray_color'>以上为进料订单列表,以下为双击进料订单行后显示的明细。</td></tr>"
		response.write "</table>"
	end if
	if cdbl(ifdifferent)>0 then
	response.write "<table style='margin: 0 auto;width: "&TotalWidth&"px;border: 0;padding: 0;border-spacing: 0;table-layout:fixed;word-bread:break-all;' id='ces_main'>"
	''*******************************************************显示明细内容:行标题
		response.write "<tr>"
		for t=lbound(SplitCol) to cdbl(ubound(SplitCol))-1
			if SplitColIndex(t)>50 then
				ResultWidth=cdbl(round(cdbl(Splitwidth(t))*cdbl(WidthScreen),0))-1				''各字段规定的宽度*总宽显示的比
				if SplitMustIs(t)="True" then		''必填字段
					response.write "<th style='width: "&ResultWidth&"px;text-align: "&SplitAlign(t)&";' class='alert_color'>"&SplitChCol(t)&"</th>"
				else
					response.write "<th style='width: "&ResultWidth&"px;text-align: "&SplitAlign(t)&";'>"&SplitChCol(t)&"</th>"
				end if
			end if
		next
		response.write "</tr>"
		''---------------------------------------当非新增的,双击单据列表之后展开明细
		if cdbl(delid)>0 and cdbl(Ov)>1 then
			ChangeAllname="chkall"
			rs.close
			SelectField="agidid,agbd_code,agbd_name,agbd_spec,agbd_mtype,agbd_L,agbd_W,agbd_H,agbd_sizeunit,agbd_unit,agbd_nofini,agid_innum,agid_remark,agid_fromcode,agid_states"
			FieldSearch="agid_aginid="&delid&""
			sql="select "&SelectField&" from "&FromStr&" where "&FieldSearch&OrderBySql
			rs.open sql,conn,1,1
			pagenum=rs.recordcount
			ifprogess=0
			FdName="agidid"
			ifpnum=1
			ifstates="agid_states"
			ifvarvalue=1
			ifxiaowei=""
			ifdifferent=11
			ifotherline=0
		end if
	''*******************************************************显示明细内容:行内容
		for n=1 to cdbl(pagenum)
			''******************************************************************行内容异化区间
			if cdbl(ifpnum)=1 then
				if rs.bof or rs.eof then exit for
				Pnum=rs(FdName)
			else
				Pnum=n									''变量名称的后缀,默认取值
			end if
			''------------------------------------------行显样式中的状态变量值
			if ifstates<>"" then
				TrStates=rs(ifstates)
			else
				TrStates=0
			end if
			if chname=md5("_IXSDCSWCX") then
				Pnum=(cdbl(pageid)-1)*pagenum+n
			elseif chname=md5("_IXSDCSWXG") and cdbl(TrStates)<>0 then
				Pnum=(cdbl(pageid)-1)*pagenum+n
			elseif chname=md5("_IXSDCSWSH") and cdbl(TrStates)<>0 then
				Pnum=(cdbl(pageid)-1)*pagenum+n
			elseif chname=md5("_IXSDCSWZZ") and cdbl(TrStates)<0 then
				Pnum=(cdbl(pageid)-1)*pagenum+n
			elseif chname=md5("_IXSDCSWSC") and cdbl(TrStates)<>0 then
				Pnum=(cdbl(pageid)-1)*pagenum+n
			elseif chname=md5("_IXSDCSWBB") then
				Pnum=(cdbl(pageid)-1)*pagenum+n
			end if
			''-------------------------------------------小数位取值
			if ifxiaowei<>"" then
				xiaowei=rs(ifxiaowei)
			else
				xiaowei=2
			end if
			''-------------------------------------------行显示样式
			TrStyle=""									''行因状态值不同而显示不同的样式
			TrClick=""									''行是否需要双击及显示提示
			if cdbl(delid)=cdbl(Pnum) then
				TrStyle=" class='OkShowLineColor'"
			else
				if cdbl(TrStates)=-1 then
					TrStyle=" class='stop_color'"
				elseif cdbl(TrStates)=1 then
					TrStyle=" class='yesaudit_color'"
				elseif cdbl(TrStates)=2 then
					TrStyle=" class='close_color'"
				end if
			end if
			''******************************************************************行内容显示开始
			response.write "<tr"&TrStyle&">"
			for r=lbound(SplitCol) to cdbl(ubound(SplitCol))-1
				if cdbl(SplitColIndex(r))>50 then
					''**************************************************************行单元格变量
					TextInput=""		''td内的内容
					ifinput=0			''是否可写的判断
					if cdbl(mid(SplitUseto(r),cdbl(Ov)+1,1))>0 and cdbl(SplitInput(r))<100 then
						ResultWidth=cdbl(round(cdbl(Splitwidth(r))*cdbl(WidthScreen),0))-3				''各字段规定的宽度*总宽显示的比例
					else
						ResultWidth=cdbl(round(cdbl(Splitwidth(r))*cdbl(WidthScreen),0))-1				''各字段规定的宽度*总宽显示的比例
					end if
					''**************************************************************行单元格内异化区间
					if cdbl(ifvarvalue)=1 then
						if instr(SplitCol(r)," as ")>0 then
							splitas=split(SplitCol(r)," as ")
							WhereVarValue=rs(splitas(1))
						else
							WhereVarvalue=rs(SplitCol(r))
						end if
					else
						WhereVarValue=""                ''取变量值即字段值
					end if
					WhereVarname=SplitWhereVar(r)&pnum					''变量名称
					''---------------------------------------------异化变量值
					if cdbl(ifdifferent)=2 then
						if instr(SplitCol(r),"agid_innum")>0 then
							WhereVarValue=rs("agid_innum")
						elseif instr(SplitCol(r),"agid_remark")>0 then
							WhereVarValue=rs("agid_remark")
						elseif instr(SplitCol(r),"agid_fromcode")>0 then
							WhereVarValue=rs("agid_fromcode")
						end if
					end if
					''--------------------------------------------首列的取值问题
					if cdbl(SplitColIndex(r))=51 or cdbl(SplitColIndex(r))=1 then
						WhereVarValue=pnum
						WhereVarname=SplitWhereVar(r)
					end if
					''***************************************************************行单元格内容固定输出区间
					''------------------------------------------------可写加工:操作、布局的、可写类型的计算条件
					if cdbl(mid(SplitUseto(r),cdbl(Ov)+1,1))>0 and cdbl(SplitInput(r))<100 then		''当布局中对应的本次新增的状态大于0表示可写;可写类型小于100表示各种对应的表单
						if cdbl(mid(SplitUseto(r),cdbl(Ov)+1,1))=1 and cdbl(TrStates)=0 then
							ifinput=1
						elseif cdbl(mid(SplitUseto(r),cdbl(Ov)+1,1))=2 and cdbl(TrStates)=0 then
							ifinput=1
						elseif cdbl(mid(SplitUseto(r),cdbl(Ov)+1,1))=3 and cdbl(TrStates)>=0 then
							ifinput=1
						end if
						''------------------------------------------可写状态的内容
						if cdbl(ifinput)=1 then
							if cdbl(SplitInput(r))=1 then			''复选框
								TextInput="<input type='checkbox' name='"&WhereVarname&"' id='"&WhereVarname&"' style='width: "&ResultWidth&"px;text-align: "&SplitAlign(r)&";' value='"&WhereVarValue&"' />"
							elseif cdbl(SplitInput(r))=2 then		''输入框
								TextInput="<input type='text' name='"&WhereVarname&"' id='"&WhereVarname&"' style='width: "&ResultWidth&"px;text-align: "&SplitAlign(r)&";' value='"&WhereVarValue&"' />"
							elseif cdbl(SplitInput(r))=3 then		''选择框
							elseif cdbl(SplitInput(r))=4 then		''单选框
							end if
						end if
					else
						ifinput=0
					end if
					''------------------------------------------当选择了未生成单据的列表项时,只允许勾选,其它不可修改
					if cdbl(S_suid)>0 and cdbl(r)>0 then
						ifinput=0
					end if
					if cdbl(ifinput)=0 then
						TextInput="&nbsp;"&WhereVarValue
					elseif cdbl(ifinput)=2 then
						TextInput="*"
					end if
					response.write "<td style='width: "&ResultWidth&"px;text-align: "&SplitAlign(r)&";'>"&TextInput&"</td>"
				end if
			next
			response.write "</tr>"
			''*****************************************调用:不提交页面依据输入的数据计算单价。
			if ifxiaowei<>"" then
				response.write "<script>jsresult("&pnum&","&xiaowei&");</script>"
			end if
			if cdbl(ifotherline)=1 then
        %>
        <tr id="Drawing<% =pnum%>" style="display: none;" ondblclick="this.style.display='none';" title="鼠标双击该行空白区域隐藏">
            <!-- 					<td colspan="2">&nbsp;</td> -->
            <td colspan="<% =Ubound(SplitCol)%>" class='light_gray_color'>图纸:<input name="absk_drawing<% =pnum%>" type="text" id="absk_drawing<% =pnum%>" value="<% =abskdrawing%>" size="40" /><iframe src='../public/uploadok.asp?savepath=../files/own/O_drawing/&sizenum=40&tup=form3.absk_drawing<% =pnum%>' frameborder="0" width="420" height="25" scrolling="no"></iframe>
                &nbsp;&nbsp;<% if abskdrawing<>"" then%><a href="#" onclick="javascript:window.open('../files/own/O_drawing/<% =abskdrawing %>');">点击这里打开或下载图纸:<% =abskdrawing%></a><% end if%>
            </td>
        </tr>
        <%
			end if
			if cdbl(ifpnum)=1 then
				rs.movenext
				if rs.bof or rs.eof then exit for
			end if
		next
		response.write "</table>"
	end if
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值