Visual Basic - validar campos que esten null

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

validar campos que esten null

Publicado por jose (1 intervención) el 22/07/2015 23:00:58
Buenas tardes tengo el siguien problema para validar unos datos, son unos campos que deberian de mostrar en la pagina web. estoy usando microsoft visual interdev. y los sp, este es el codigo la parte donde se ejecuta el sp y del error fueron marcada entre ________________________
para señalar donde creo que estoy errando, creo que el error se da por que se esta intentando cargar datos null
quisiera validar para que acepte datos null y not null, soy nuevo en esto espero me ayuden!

en esta seccion se ejecuta el sp

'if (not IsEmpty(concursoporprocesar)) or (not IsNull(concursoporprocesar)) then
Dim sqlProcedure,RecordProcedure
sqlProcedure="exec user_planeamiento.sp_plan_esco_pb_PbAsignado_sid '"&concursoPorProcesar&"'"
_________________________________________________________________________________________________

'Se crea la cadena sql que consulta al procedure por el cual se consultarán los siguientes datos pertenecientes a la tabla
'codigodematerial, solped, posicion, descripcion, clase, unidad, cantidad, preciosolp
Set RecordProcedure = CreateObject("ADODB.RecordSet")
RecordProcedure.Open sqlProcedure,Conexion
'else
'Response.Write("el problema es aqui")
'end if

''''''''''''''''''''''''''''''''''''''''''''
else
Response.Write("<br/>fallo de conexión")
end if
'end if
%>


<%
if request("a") = "calcularPrecios" then

calculo_y_actualizacion request("p"),request("m"),request("concurso"),request("t")
end if
%>

<%
if request("a") = "cambiarEstado" then
Conexion.Execute("update TBL_PLAN_ESCO_PB_PRESUPUESTOSUMI_DETALLE_SID set ESTADO = 'PENDIENTE POR REVISION' where codigoproceso='"&request("concurso")&"'")
Response.Write("concurso enviado a revisión")
end if
%>

<%
if request("a") = "asignarObJ" then
Conexion.Execute("update TBL_PLAN_ESCO_PB_PRESUPUESTOSUMI_DETALLE_SID set OBSERVACIONESJEFE = '"&request("obJ")&"' where codigoproceso='"&request("concurso")&"'")
Response.Write("Observaciones del jefe actualizadas")
end if

%>

<%
if request("a") = "asignarObA" then
Conexion.Execute("update TBL_PLAN_ESCO_PB_PRESUPUESTOSUMI_DETALLE_SID set OBSERVACIONESANALISTA = '"&request("obA")&"' where codigoproceso='"&request("concurso")&"'")
Response.Write("Observaciones del Analista actualizadas")
end if

'"asignarObA"
%>

<%
function calculo_y_actualizacion(p,m,c,t) '(precio,material,concurso)
'Response.write("<br/> al fin recibió precio: " &p&" material:" &m& " y conc: " &c)
'La idea es actualizar la columna tipodeprecioseleccionado

'Si el precio es proyectado (es decir tipo 1)
if t=1 then
conexion.execute("update TBL_PLAN_ESCO_PB_PRESUPUESTOSUMI_MATERIALES_SID set tipoprecio='proyectado'where codigoproceso='"&c&"' and codigomaterial='"&m&"'")
end if

'Si el precio es mercado (es decir tipo 2)
if t=2 then
conexion.execute("update TBL_PLAN_ESCO_PB_PRESUPUESTOSUMI_MATERIALES_SID set tipoprecio='mercado'where codigoproceso='"&c&"' and codigomaterial='"&m&"'")
end if

'Una vez verificada su actualizacion proceder a realizar los calculos para las 3 columnas restantes
'precioSinIva 'precioConIva 'montoBsF

conexion.execute("exec sp_plan_esco_pb_calculoDePreciosEnPB_sid '"&c&"','"&m&"','"&p&"'")

end function
%>

<script>
var currentValue = 0;
function handleClick(myRadio,material,concurso,tipo) {
currentValue = myRadio.value;
//alert("recibido el precio: " +currentValue + "\n para material: " + material + "\nconcurso: " + concurso + "\ntipo: " + tipo);

formprecios.m.value = material;
formprecios.p.value = currentValue;
formprecios.t.value = tipo;
formprecios.a.value = "calcularPrecios";
formprecios.submit();
}
</script>

<script>
function actualizarEstado(concurso){
//alert("debería actualizar = " + concurso)
formprecios.a.value = "cambiarEstado";
formprecios.submit();
}
</script>

<script>
function recibirObsJefe(value,conc){
/*
if(value==""){
alert("Este campo no puede permanecer vacío");
}
*/

//si se tiene un valor distinto de vacío actualiza en base de datos
if(value!=""){
//alert("se recibió valor:" + value + " y el concurso " +concurso)

formprecios.obJ.value = value;
formprecios.a.value = "asignarObJ";
formprecios.submit();
}

}
</script>

<script>
function recibirObsAnalista(value,conc){
/*
if(value==""){
alert("Este campo no puede permanecer vacío");
}
*/

//si se tiene un valor distinto de vacío actualiza en base de datos
if(value!=""){
//alert("se recibió valor:" + value + " y el concurso " +concurso)

formprecios.obA.value = value;
formprecios.a.value = "asignarObA";
formprecios.submit();
}

}
</script>

<BODY>

<FORM METHOD="POST" ACTION="PbEnProceso_Analista.asp" id=formprecios name=formprecios>
<INPUT TYPE=hidden VALUE="<%=request("concurso")%>" id=concurso name=concurso> <!--concurso-->
<INPUT TYPE=hidden VALUE="" id=m name=m> <!--material-->
<INPUT TYPE=hidden VALUE="" id=p name=p> <!--precio-->
<INPUT TYPE=hidden VALUE="" id=t name=t> <!--tipo-->
<INPUT TYPE=hidden VALUE="" id=a name=a> <!--accion-->

<INPUT TYPE=hidden VALUE="" id=obJ name=obJ> <!--observaciones del jefe esco-->
<INPUT TYPE=hidden VALUE="" id=obA name=obA> <!--observaciones del analista-->
</FORM>

<p>&nbsp;</p>
<table style="font-size:10px; margin: 0 auto;" BORDER="1" CELLSPACING="0" CELLPADDING="0">
<tr bgcolor="#DCDCDC">
<td align="center"><b>ID</b></td>
<td align="center"><b>Código de Material</b></td>
<td align="center"><b>SOLPED</b></td>
<td align="center"><b>Posición</b></td>
<td align="center"><b>Descripción</b></td>
<td align="center"><b>Clase</b></td>
<td align="center"><b>Unidad</b></td>
<td align="center"><b>Cantidad</b></td>

<td align="center">
<input type="button" value="Precio Proyectado" onclick='location.href="PbEnProceso_PrecioProyectado(calculos).asp?concurso=<%=concursoPorProcesar%>"'/>
</td>

<!--<td align="center"><b>Calculos del precio proyectado</b></td> -->
<td align="center"><b>Precio del Mercado</b></td>
<!--<td align="center"><b>Calculos del precio de mercado</b></td> -->
<td align="center"><b>Tipo de precio seleccionado</b></td>
<!-- <td align="center"><b>Justificación</b></td> -->
<td align="center"><b>Precio SOLP</b></td>
<td align="center"><b>Precio PB sin IVA</b></td>
<td align="center"><b>Precio PB con IVA</b></td>
<td align="center"><b>Monto BsF PB sin IVA</b></td>
<td align="center"><b>Actualizar</b></td>
</tr>

<tr>
<%
'Cantidad de materiales
dim id
id=1
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Codigos de material
'Traer campo codigomaterial de la consulta al procedimiento
'Ademas se necesita almacenar en un arreglo los materiales debido a que se necesitan para las actualizaciones

dim arrayCodigosMaterial, posicionArrayCodigosMaterial

posicionArrayCodigosMaterial= 32768 'OJO Esto debería ser del tamaño de la cantidad de registros de la consulta al procedimiento,pero da error, debería ser: posicionArrayCodigosMaterial=(cInt(RecordProcedure.RecordCount))
'Response.Write("<br />problema, posiciones del array: " &(RecordProcedure.RecordCount))

redim arrayCodigosMaterial(posicionArrayCodigosMaterial)
posicionArrayCodigosMaterial = 0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'precio proyectado
dim i,tipo
i=0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Variables acumuladoras que se declaran e inicializan para totalizar
Dim PBtotal, unidadesTotal
PBtotal = 0
unidadesTotal = 0

do while not RecordProcedure.eof

%>
<tr>
<td align="center">
<% Response.Write("<br/>" &id)%>
</td>

<td align="center">
<%
arrayCodigosMaterial(posicionArrayCodigosMaterial)= (RecordProcedure("codigomaterial"))
Response.Write(arrayCodigosMaterial(posicionArrayCodigosMaterial)&"<br/>")
%>
</td>

<td align="center"> <% Response.Write(RecordProcedure("numerosolp")&"<br/>")%> </td>

<td align="center"> <% Response.Write(RecordProcedure("posicion")&"<br/>")%> </td>

<td align="center"> <% Response.Write(RecordProcedure("descripcionmaterial")&"<br/>")%> </td>

<td align="center"> <% Response.Write(RecordProcedure("clasificacion")&"<br/>") %> </td>

<td align="center"> <% Response.Write(RecordProcedure("um")&"<br/>") %> </td>

<td align="center">
<%
Response.Write(RecordProcedure("cantidadsolicitada")&"<br/>")
unidadesTotal = unidadesTotal + (RecordProcedure("cantidadsolicitada"))
%>
</td>
________________________________________________________

<td align="center"> <!-- el precio proyectado es de tipo 1-->
<% tipo=1 %>
<input type="radio" name=radio<%=i%> id=radio<%=i%> value=<%=RecordProcedure("PRECIOPROYECTADO")%> onclick="handleClick(this,'<%=arrayCodigosMaterial(i)%>','<%=concursoPorProcesar%>','<%=tipo%>')">
<% Response.Write(formatnumber((RecordProcedure("PRECIOPROYECTADO")),3)&"<br/>") %>
</td>


<td align="center"> <!-- el precio mercado es de tipo 2-->
<%
tipo=2
Response.Write(RecordProcedure("PRECIOMERCADO")&"<br/>")
%>
__________________________________________________________

<input type="radio" name=radio<%=i%> id=radio<%=i%> value=<%=RecordProcedure("PRECIOMERCADO")%> onclick="handleClick(this,'<%=arrayCodigosMaterial(i)%>','<%=concursoPorProcesar%>','<%=tipo%>')">

<input type="button" value="procesar" onclick='location.href="PbEnProceso_CotizacionMaterialPorConcurso.asp?concurso=<%=concursoPorProcesar%>&material=<%=arrayCodigosMaterial(posicionArrayCodigosMaterial)%>"'/ id=<%=i%> name=button<%=i%>>

</td>

<td align="center"> <% Response.Write(RecordProcedure("TIPOPRECIO")&"<br/>")%> </td>

<td align="center"> <% Response.Write(RecordProcedure("preciosolp")&"<br/>")%> </td>

<td align="center"> <% Response.Write(formatnumber(RecordProcedure("PRECIOPBSINIVA"))&"<br/>") %> </td>

<td align="center"> <% Response.Write(formatnumber((RecordProcedure("PRECIOPBCONIVA")),3)&"<br/>")%> </td>

<td align="center">
<%
Response.Write(formatnumber(RecordProcedure("MONTOBS"))&"<br/>")
PBtotal = PBtotal + (RecordProcedure("MONTOBS"))
%>
</td>

<td align="center">
<%
Response.Write("<br/>")
%>
<a href="javascript:window.location.reload()">Actualizar</a>
</td>

</tr>

<%
RecordProcedure.movenext 'Permite mover el archivo al siguiente registro, para revisar cada material
i=i+1
id=id+1
posicionArrayCodigosMaterial = posicionArrayCodigosMaterial +1
loop 'fin do while
RecordProcedure.MoveFirst
%>
</tr>

<tr>

</tr>
</tr>

</table>

<table style="font-size:10px; table align="left"; text-align:center;" BORDER="1" CELLSPACING="0" CELLPADDING="2" "">
<tr bgcolor="#DCDCDC">

<td>
<!--Monto Global-->
<%
Dim sqlObtenerMontoGlobal, RecordObtenerMontoGlobal
sqlObtenerMontoGlobal = "select montoglobal from user_planeamiento.TBL_PLAN_ESCO_PB_PRESUPUESTOSUMI_DETALLE_SID where codigoproceso='"&concursoPorProcesar&"'"
Set RecordObtenerMontoGlobal = CreateObject("ADODB.RecordSet")
RecordObtenerMontoGlobal.Open sqlObtenerMontoGlobal, Conexion

Response.write("<br/><b>Monto Global =</b> " &RecordObtenerMontoGlobal("montoglobal"))
RecordObtenerMontoGlobal.Close
%>

</td>

<td>

<!--Total Item-->
<%
Dim sqlObtenerTotalItem, RecordObtenerTotalItem
sqlObtenerTotalItem = "select cantidaditem from user_planeamiento.TBL_PLAN_ESCO_PB_PRESUPUESTOSUMI_DETALLE_SID where codigoproceso='"&concursoPorProcesar&"'"
Set RecordObtenerTotalItem = CreateObject("ADODB.RecordSet")
RecordObtenerTotalItem.Open sqlObtenerTotalItem, Conexion

Response.write("<br/><b>Total Item =</b> " &RecordObtenerTotalItem("cantidaditem"))
RecordObtenerTotalItem.Close
%>

</td>

<td>

<!--Total Unidades-->
<%
Response.write("<br/><b>Total Unidades =</b> " &unidadesTotal)
Conexion.Execute("update TBL_PLAN_ESCO_PB_PRESUPUESTOSUMI_DETALLE_SID set totalunidades= '"&unidadesTotal&"' where codigoproceso='"&concursoPorProcesar&"'")
%>
</td>
<td>

<!--Total PB-->
<%
Response.write("<br/><b>Total Presupuesto Base= </b> "& formatnumber(PBtotal,3))
Conexion.Execute("update TBL_PLAN_ESCO_PB_PRESUPUESTOSUMI_DETALLE_SID set totalpb = '"&PBtotal&"' where codigoproceso='"&concursoPorProcesar&"'")
%>
</td>

<table style="font-size:10px;margin: 0 auto; table align="center"; text-align:center;" BORDER="1" CELLSPACING="0" CELLPADDING="0" aling="center"">
<td>

<form METHOD="POST" ACTION="PbEnProceso_Analista.asp" id=Observaciones name=Observaciones>
<p><b>Observaciones Jefe ESCO:</b>
<textarea id="ObsJefe" name="ObsJefe" onBlur="recibirObsJefe(this.value,'<%=concursoPorProcesar%>')"></textarea>
</p>
<p><b>Observaciones Analista: </b>
<textarea id="ObsAnalista" name="ObsAnalista" onBlur="recibirObsAnalista(this.value,'<%=concursoPorProcesar%>')"></textarea>
</p>
<p></p>
</form>
</td>
</table>


</table>


<center>

<!-- Para actualizar la pagina -->
<table border="1" width="44%">
<tr>
<td width="100%"><p align="center"><a href="javascript:window.location.reload()">Actualizar Cambios Realizados</a></td>
</tr>
</table>

<!-- Botón que pemite enviar el PB para revisión -->
<p></p>
<table>
<tr>
<input id=buttonAB name=buttonAB type="button" value="Enviar PB para Revisión" onclick="actualizarEstado('<%=request("concurso")%>')"/>
</tr>

<!-- Botón que pemite exportar excel con el PB -->
<tr>
<input id=buttonAB name=buttonAB type="button" value="Exportar Excel con el PB" onclick='location.href="generarExcel.asp?concurso=<%=concursoPorProcesar%>"'/>
</tr>

<!-- Botón que pemite exportar excel con los cálculos del precio proyectado de todos los materiales de un concurso -->
<tr>
<input id=buttonAB name=buttonAB type="button" value="Exportar calculos para el precio proyectado" onclick='location.href="generarExcelPrecioProyectado.asp?concurso=<%=concursoPorProcesar%>"'/>
</tr>

</table>

</center>


</BODY>
<%
RecordProcedure.Close 'cerrar archivo
Conexion.close 'Se cierra conexion con la base de datos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder