Fórum Recuperar valores do HTMl e salvar na tabela #351066
26/12/2007
0
amigos, estou com um problemasso aqui...
tenho um arquivo html com checkboxes e edits(txtfields). cada checkbox tem o seu edit.
gostaria de ir recuperando o valor do checkbox e do edit (quando o checkbox estiver checked=true) e ir salvando tais valores na tabela. até o momento eu consigo salvar os valores do checkbox na tabela, porém os valores do edit se perdem ao tentar salva-los....
na linha onde está o codigo ´ShowMessage(´edit: ´ + ResultSubs[i]);´ o valor é recuperado corretamente
conto com vossa ajuda...
obrigado
tenho um arquivo html com checkboxes e edits(txtfields). cada checkbox tem o seu edit.
gostaria de ir recuperando o valor do checkbox e do edit (quando o checkbox estiver checked=true) e ir salvando tais valores na tabela. até o momento eu consigo salvar os valores do checkbox na tabela, porém os valores do edit se perdem ao tentar salva-los....
na linha onde está o codigo ´ShowMessage(´edit: ´ + ResultSubs[i]);´ o valor é recuperado corretamente
var Doc: IHTMLDocument2; I: Integer; Element: OleVariant; Elements: IHTMLElementCollection; ValueCheck,ResultSubs : array[0..999] of string ; for I := 0 to Elements.length - 1 do begin Element := Elements.item(I, varEmpty); if (UpperCase(Element.tagName) = ´INPUT´) and (UpperCase(Element.Type) = ´CHECKBOX´) then begin if (Element.Checked = true) then begin ValueCheck[i] := Element.value; //ShowMessage(´CheckBox: ´ + ValueCheck[i]); end; end else begin // edit responável pelo resultado da substancia escolhida if (UpperCase(Element.tagName) = ´INPUT´) and (UpperCase(Element.Type) = ´TEXT´) then begin if (Element.value <> ´´) then begin ResultSubs[i] := Element.Value; //ShowMessage(´edit: ´ + ResultSubs[i]); end; end; end; end; // final do laço For // insere as substâncias e seus resultados no CdsSubstancias cdsSubstancias.Open; for I := 0 to 999 do begin if ValueCheck[i] <> ´´ then begin cdsSubstancias.Insert; cdsSubstanciasID.AsInteger := StrToInt(ValueCheck[i]); cdsSubstanciasResultado.AsString := ResultSubs[i]; // todo: verificar por que nao esta inserindo esse valor no cds, uma vez que o valor é recuperado corretamente no showMessage acima cdsSubstancias.Post; end; end;
conto com vossa ajuda...
obrigado
Mahdak
Curtir tópico
+ 0
Responder
Posts
26/12/2007
Mahdak
esqueci de postar como carregar o arquivo na var doc...
Obs: Wb = TWebbrowser
Doc := Wb.Document as IHTMLDocument2;
Elements := Doc.All;
Obs: Wb = TWebbrowser
Doc := Wb.Document as IHTMLDocument2;
Elements := Doc.All;
Responder
Gostei + 0
26/12/2007
Mahdak
resolvido com a ajuda do amigo Marcelo Moreira
resolução:
valeu marcelo! e valeu a todos que observaram esse tópico
abração!
resolução:
procedure RecuperaValorHTML; var Doc: IHTMLDocument2; I: Integer; Element: OleVariant; Elements: IHTMLElementCollection; anexo : string; Checado : Boolean; StringTemp,ValueCheck,ResultSubs : string; begin Checado := false; Doc := Wb.Document as IHTMLDocument2; Elements := Doc.All; for I := 0 to Elements.length - 1 do begin Element := Elements.item(I, varEmpty); if (UpperCase(Element.tagName) = ´INPUT´) and (UpperCase(Element.Type) = ´CHECKBOX´) then begin if (Element.Checked = true) then begin ValueCheck := Element.value; StringTemp := ValueCheck; Checado := true; //ShowMessage(´CheckBox: ´ + ValueCheck[i]); end; end; // edit responável pelo resultado da substancia escolhida if (UpperCase(Element.tagName) = ´INPUT´) and (UpperCase(Element.Type) = ´TEXT´) then begin ResultSubs := ReplaceStr(RemoveChar(Element.Value),´.´,´,´);// transforma a variavel em apenas numeros e virgula //ShowMessage(´edit: ´ + ResultSubs[i]); if Checado = true then begin Checado := false; InsereSubs( StringTemp, ResultSubs); end; end; end; // final do laço For end; procedure insereSubs(ID, Resultado: string); begin // insere as substâncias e seus resultados no CdsSubstancias cdsSubstancias.Open; cdsSubstancias.Insert; cdsSubstanciasID.AsInteger := StrToint(ID); cdsSubstanciasResultado.AsString := Resultado; cdsSubstancias.Post; end;
valeu marcelo! e valeu a todos que observaram esse tópico
abração!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)