Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alexandre Zito

Problema com inserção de multiplos campos

Recommended Posts

Boa tarde Caros,

 

Estou com um problema que está impactando a aplicação que fiz..

 

é o seguinte:

 

Precisava fazer um form que enviasse todos os registros que eu selecionar pelo checkbox..

 

Até ai tudo bem..

 

Dai montei o algoritimo

 

arrayCodigo=(Split(Request.Form("selecionado"),"," ))
arrayDDL=(Split(Request.Form("vDDL"),","))
arrayQTD=(Split(Request.Form("vQTD"),","))
arrayVALOR=(Split(Request.Form("xVAL"),","))
arrayCPL=(Split(Request.Form("vCPL"),","))

i=0

For Each item in arrayCodigo


sqlCAD = "INSERT INTO dbo.HIS ( dbo.His.hiscod, dbo.His.HisDia, hisQTD," 
sqlCAD = sqlCAD & " dbo.His.HisCPL,dbo.His.Hisval,dbo.His.hisSET,dbo.H IS.hisOBR,dbo.HIS.HISFUN,dbo.HIS.HISTIP) Values ("& arrayCodigo(i) &","& arrayDDL(i) &","& arrayQTD(i) & ",'"& UCASE(arrayCPL(i)) & "'," & Transforma(arrayVALOR(i)) &"," & vSET &"," & vOBR &","& Session("codfun")&",'" & vTIP &"')"

vCOD = arrayCodigo(i) 
vQTD = arrayQTD(i)
vVAL = Transforma(arrayVALOR(i))

i=i+1

Next
Oque ocorre é o seguinte, quando seleciono na sequencia do primeiro ao terceiro por exemplo depende da quantidade de material que trouxe na consulta, se eu sigo a ordem (1º ao 3º tudo bem ele preenche tudo direitinho..

 

Agora se eu por exemplo tenho 3 materiais apenas escolho o segundo... ele insere o valor de quantidade zero e o valor do material do primeiro arrayVALOR(i) como eu consigo fazer inserções intercaladas minha lógica está errada ?

 

Ele não está segundo a ordem do Array, quando intercalo e o essencial para funcionar é a inserir oque eu escolher e não seguir a ordem para que funcione, não sei se fui claro....

 

Agradeceria o apoio

 

Att

Azitto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou um pouco confuso, se der para enviar o HTML talvez melhore.

 

Segue Sergio,

 

Se puder me ajudar fico muito agradecido

 

Todos os campos que preciso inserir estão vindo do request, eles só não tem o mesmo nome no codigo anterior, mas deveria funcionar, como falei a inserção quando é intercalada exemplo tenho 3 itens escolho o segundo ele insere as informações de VALORES

<!--#include file="..\bib\conexao.asp" -->

<%
Dim vOBR, vSET, vCOD, vQTD, vCPA, vTIP, Erro, Mensagem, sqlCAD, i

Call Verify
Call VeriAC( Session("codFUN"), 4 )


vOBR = Numero(Request("vOBR"))
vSET = Numero(Request("vSET"))
vCDC = Request("vCDC")
vNUM = Request("vNUM")
vCPA="B"
vTIP = Request("VTIP")
vFlag =Request("vFlag")

vSelecionado = Request("selecionado")

vCPL =UCase(Replace(Request("vCPL"),"'",""))
vCPA =Request("vCPA")



if Isnull(Request("selecionado")) or IsEmpty(Request("selecionado")) then

CabecPequenaRED("NÃO É POSSÍVEL PROSSEGUIR SEM ESCOLHER ITENS !!!")%>

<form name="form1" method="post" action="java script:history.go(-1)">
<tr>
<td align = center> <input name="Submit" type="submit" class="cor3" value="VOLTAR E SELECIONAR ITENS">
</td>
</tr>
</form>
</table>
<%

End if

codigo=Request.Form("selecionado")
vDDL = Request.Form("vDDL")
vQTD = Request.Form("vQTD")


arrayCodigo=(Split(Request.Form("selecionado"),","))
arrayDDL=(Split(Request.Form("vDDL"),","))
arrayQTD=(Split(Request.Form("vQTD"),","))
arrayVALOR=(Split(Request.Form("xVAL"),","))
arrayCPL=(Split(Request.Form("vCPL"),","))

i=0

For Each item in arrayCodigo
	
arrayCodigo=(Split(Request.Form("selecionado"),"," ))
arrayVALOR=(Split(Request.Form("xVAL"),","))


sqlCAD = "INSERT INTO dbo.HIS ( dbo.His.hiscod, dbo.His.HisDia, hisQTD," 
   sqlCAD = sqlCAD & " dbo.His.HisCPL,dbo.His.Hisval,dbo.His.hisSET,dbo.HIS.hisOBR,dbo.HIS.HISFUN,dbo.H
IS.HISTIP) Values ("& item &","& arrayDDL(i) &","& arrayQTD(i) & ",'"& UCASE(arrayCPL(i)) & "'," & Transforma(arrayVALOR(i)) &"," & vSET &"," & vOBR &","& Session("codfun")&",'" & vTIP &"')"

vCOD = arrayCodigo(i) 
vQTD = arrayQTD(i)
vVAL = Transforma(arrayVALOR(i))

i=i+1
		  
Conn.Execute ( sqlCAD )

CALL InsertACT( vSET, vCDC, vCOD, Session("codfun"),vVAL,vQTD,vOBR) 'Insere ações

Call Abre_cn

SQLOBR ="EXEC SPOBRNOME "&vOBR
SET RSOBR = Conn.Execute ( SQLOBR )
NOMEOBRA = UCASE(RSOBR("NOMEOBRA"))

SqlCUSTOCTT="SELECT TOP 1 * FROM [CUSCTT] WHERE CTTcod=" & vCOD & " and CTTOBR = " & vOBR
Set rsCUSTOCTT = Conn.Execute( sqlCUSTOCTT )

SQLMATNUM ="EXECUTE spMATNUM "&vCOD
SET rsMATNUM = Conn.Execute(SQLMATNUM)

If rsCUSTOCTT.EOF Then

INSCTT = "INSERT INTO [CUSCTT] ( cttcod, cttcdc, cttnum, cttobr, cttval, cttdat, cttfun) VALUES ("
INSCTT = INSCTT & vCOD & ", " & vCDC & ", " & rsMATNUM("NUMERO") &","& vOBR &"," & vVAL &",Getdate()," & Session("codfun")&")"

CONN.EXECUTE(INSCTT)

End if

TotalGeral = TotalGeral + 1

Next

sqlNotifica = "EXECUTE spNOTIFICAOBRA "&vOBR ' PROCEDURE NOTIFICA ENGENHEIROS DAS OBRAS
SET rsNOTIFICA = Conn.Execute( sqlNotifica )



sqlSOLICITANTE = "SELECT FUNEMA FROM [FUN] WHERE FUNCOD="&session("codfun")
SET rsSOLICITA = Conn.Execute( sqlSOLICITANTE )


While NOT rsNOTIFICA.EOF

xNOTIFICA = rsNOTIFICA("EMAIL")

IF NOT ISNULL(xNOTIFICA) OR NOT rsNOTIFICA.EOF THEN 

CALL NOTIFICAOBRA( rsSOLICITA("FUNEMA"), NOMEOBRA , xNOTIFICA )

END IF

rsNOTIFICA.MOVENEXT 

WEND 

FUNCTION NOTIFICAOBRA( EMAIL_DE , NOMEOBRA , EMAIL_PARA )

if EMAIL_PARA <> "parpinelli@teckma.com.br" AND EMAIL_PARA <> "carlos@teckma.com.br" and EMAIL_PARA <> "barione@teckma.com.br"  then

sch = "http://schemas.microsoft.com/cdo/configuration/" 
Set cdoConfig = Server.CreateObject("CDO.Configuration") 
cdoConfig.Fields.Item(sch & "sendusing") = 2 
cdoConfig.Fields.Item(sch & "smtpauthenticate") = 1 
cdoConfig.Fields.Item(sch & "smtpserver") = "smtp.teckma.com.br"
cdoConfig.Fields.Item(sch & "smtpserverport") = 25
cdoConfig.Fields.Item(sch & "sendusing") = 2
cdoConfig.Fields.Item(sch & "smtpconnectiontimeout") = 30 
cdoConfig.Fields.Item(sch & "sendusername") = "smtp" 
cdoConfig.Fields.Item(sch & "sendpassword") = "smtp2004" 
cdoConfig.fields.update
Set cdoMessage = Server.CreateObject("CDO.Message") 

Set cdoMessage.Configuration = cdoConfig
 
cdoMessage.From =  EMAIL_DE

cdoMessage.To = EMAIL_PARA  ' Aqui você coloca o e-mail para quem você deseja enviar

cdoMessage.Subject = "SOLICITAÇÃO DE MATERIAL PARA OBRA:"&NOMEOBRA&" EM "&NOW()

htmlText = "NOTIFICAÇÃO DE LANÇAMENTOS"

htmlText = htmlText & "<hr>"

htmlText = htmlText & "<IMG WIDTH=150 SRC=http://www.teckma.com.br/images/logo.jpg HEIGHT=153>"

htmlText = htmlText & "<hr>"



sqlMAT = " SELECT MATCDC,MATCOD,MATDES,MATNUM,MATMED FROM [MAT] WHERE MATCOD IN("&vSelecionado&") ORDER BY MATDES"
Set rsMAT = Conn.Execute( sqlMat )

htmlText = htmlText & "<tr>"

htmlText = htmlText & "<td align=center>" & "QUANTIDADE TOTAL:("& TotalGeral & ")</td>"

htmlText = htmlText & "<p><td align=center>" & "HOUVERAM "&STRZERO(TotalGeral,3)&" LANÇAMENTOS NA OBRA "&NOMEOBRA&"</font></td></p>"

While not rsMAT.EOF
htmlText = htmlText & "<tr>"
htmlText = htmlText & "<td class='minimoGreen'>"&StrZero(rsMAT("matCDC"),3) & "." & StrZero(rsMAT("matNUM"),4)&"</td>"
htmlText = htmlText & "<td class='minimoGreen'>"&"-"&rsMAT("matdes")&"</td>"
htmlText = htmlText & "<td class='minimoGreen'>"&"-"&rsMAT("matmed")&"</td>"
htmlText = htmlText & "<hr>"
htmlText = htmlText & "</tr>"
rsMat.movenext 
Wend
htmlText = htmlText & "<p><td align=center>" & "FAVOR VERIFICAR E PROCEDER COM OS PROCESSOS NORMAIS, LIBERAÇÃO OU REMOÇÃO"&"</font></td></p>"

htmlText = htmlText & "<p><td class=cor3 align=center>" & "<a href='HTTP://200.207.163.107/SISTECKMA'>"&"CLIQUE AQUI PARA ACESSAR O SISTECKMA"&"</A>"&"</font></td></p>"

htmlText = htmlText & "<td align=center>" & "OBRIGADO E TENHA UM BOM TRABALHO (ERP SISTECKMA)"&"</font></td>"&"<hr>"

htmlText = htmlText & "<hr>"

htmlText = htmlText & "</tr>"

cdoMessage.HTMLBody = htmlText 

On Error Resume Next

cdoMessage.Send 

Set cdoMessage = Nothing 
Set cdoConfig = Nothing

end if

END FUNCTION 

Call Fecha_Cn
SET rsVER = Nothing
SET rsMATNUM = Nothing
SET rsCUSTOCTT = Nothing
SET rsSOLICITA = Nothing
SET rsNOTIFICA = Nothing

Function Transforma( vValor  )
Transforma =  Replace(vValor,",",".")
End Function 

Function InsertACT( vSET, vCDC, vCOD, vFUN, vVAL, vQTD, vOBR )
SQLAction = "INSERT INTO [ACOES] ( OBRA, SETOR, FUNCIONARIO, MATERIAL, ACAO, QUANTIDADE) VALUES ("
SQLAction = SQLAction & vOBR & ", " & vSET & ", " & Session("codFUN") & ", " & vCOD & ", 'B'," & vQTD & ")"
Conn.Execute( SQLAction )
End Function
%>
<form method=POST action="mcsMAT.asp">
<input type=hidden name="vOBR" value="<%=vOBR%>">
<input type=hidden name="vSVV" value="<%=vSVV%>">
<input type=hidden name="vSTT" value="<%=vSTT%>">
<input type=hidden name="vSET" value="<%=vSET%>">
<script>document.forms[0].submit();</script>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.