Bom dia, quando eu recebo o retorno do XML do 5011, ele vem com uma lista de valores (tag <infoCREstab>), não sabemos se vem sempre a mesma quantidade de itens, temos o FOR para percorrer a lista, porém não sabemos como vamos salvar no banco, segue a parte do código que é feito a gravação:
for I := 0 to evtS5011.EvtCS.InfoCS.ideEstab.Items[0].infoCREstab.Count - 1 do
begin
TbGrava.ParamByName('TPCRCRESTAB').AsString := evtS5011.EvtCS.InfoCS.ideEstab.Items[0].infoCREstab.Items[I].tpCR; //TPCRCRESTAB
TbGrava.ParamByName('VRCPCRESTAB').AsCurrency := evtS5011.EvtCS.InfoCS.ideEstab.Items[0].infoCREstab.Items[I].vrCR; //VRCPCRESTAB
end;
for I := 0 to evtS5011.EvtCS.InfoCS.infoCRContrib.Count - 1 do
begin
TbGrava.ParamByName('TPCRCRCONTRIB').AsString := evtS5011.EvtCS.InfoCS.infoCRContrib.Items[I].tpCR; //TPCRCRCONTRIB
TbGrava.ParamByName('VRCPCRCONTRIB').AsCurrency := evtS5011.EvtCS.InfoCS.infoCRContrib.Items[I].vrCR; //VRCPCRCONTRIB
end;
TbGrava.ExecSQL;