• advertisement_alt
  • advertisement_alt
  • advertisement_alt
Jonilton Araujo

[Resolvido] Atualizar dados numa table feita por progamação

8 posts in this topic

Pessoal, criei uma tabela por programação, aonde leio os arquivos de uma pasta, até aí tudo bem, mas eu preciso ler essa table, e de acordo com algumas condições específicas, eu preciso colocar uma informação a mais numa coluna, na linha lida, como faço isso, alguém poderia me explicar?

Mais uma vez, agradeço a ajuda de vocês.

Share this post


Link to post
Share on other sites

Posta o código de como vc fez e da um exemplo do q precisa

Share this post


Link to post
Share on other sites

Posted (edited)

Em 11/04/2020 at 0:51 PM, Jonilton Araujo disse:

Pessoal, criei uma tabela por programação, aonde leio os arquivos de uma pasta, até aí tudo bem, mas eu preciso ler essa table, e de acordo com algumas condições específicas, eu preciso colocar uma informação a mais numa coluna, na linha lida, como faço isso, alguém poderia me explicar?

Mais uma vez, agradeço a ajuda de vocês.

Não sei se entendi o que deseja... 
Mas basta você saber qual posição se encontra
a linha que deseja alterar o valor.. exemplo:

// COM UMA VARIÁVEL
xLINHA is int = 0
FOR EACH A ROW OF TABLE
   xLINHA++
  IF TABLE[xLINHA].COL_CONDICAO = True THEN
     TABLE[xLINHA].COL_X = "OK"
  END
END

//  SEM VARIÁVEL
FOR EACH A ROW OF TABLE
  IF TABLE.COL_CONDICAO = True THEN
     TABLE.COL_X = "OK"
  END
END

Edited by FABRÍCIO
1 person likes this

Share this post


Link to post
Share on other sites

Você também pode identificar direto a linha que precisa alterar algum valor da coluna através da função TableSeek (https://help.windev.com/en-US/?3074015&name=TableSeek)
E após, fazer a alteração da maneira que o @FABRÍCIO indicou.
Ficando algo similar a:

nPosicao is int = TableSeek(COL_ID, "5", searchExactMatch)

IF nPosicao  <> -1 THEN Table[nPosicao}.COL_X = "OK"

 

1 person likes this

Share this post


Link to post
Share on other sites

Algumas observações sobre o código do Fabrício
https://www.screencast.com/t/Wvxe0AUS

Exemplo simples e limpo:
FOR EACH A ROW OF TABLE
  IF COL_CONDICAO THEN
     COL_X = "OK"
  END
END

se for inserir o valor que precisa durante a inserção dos dados, pode colocar o código no evento "Displaying a Row" da tabela
assim não precisa inserir, e depois ler todo o conteúdo de novo com for each

Share this post


Link to post
Share on other sites
Em 20/04/2020 at 3:11 PM, Vilani disse:

Algumas observações sobre o código do Fabrício
https://www.screencast.com/t/Wvxe0AUS

Vamos lá, primeiro pela questão da variável.. 
Se perceber eu citei 2 exemplos COM e SEM variável..
agora se é preciso ou não.. vai depender da necessidade do programador..
por exemplo.. se eu quiser saber qual a linha que estou, etc..
a variável irá identificar a posição, etc.. 
A segunda questão do segundo exemplo, que não precisa
informar o nome da table dentro do FOR EACH, nesse caso ai
é um padrão que eu sigo baseado nas normas do Wlanguage..
no sentido que se tiver mais de 1 table na janela, eu irei atribuir
e ter a certeza da qual table ali se refere aquela coluna.. agora quando tem
apenas 1 table na janela, ai sim eu adoto esse método.. de 
invocar apenas a coluna COL_X e não TABLE.COL_X.. apenas isso..
 

kkk.PNG

kiop.PNG

Share this post


Link to post
Share on other sites
1 hora atrás, FABRÍCIO disse:

Vamos lá, primeiro pela questão da variável.. 
Se perceber eu citei 2 exemplos COM e SEM variável..
agora se é preciso ou não.. vai depender da necessidade do programador..
por exemplo.. se eu quiser saber qual a linha que estou, etc..
a variável irá identificar a posição, etc.. 
A segunda questão do segundo exemplo, que não precisa
informar o nome da table dentro do FOR EACH, nesse caso ai
é um padrão que eu sigo baseado nas normas do Wlanguage..
no sentido que se tiver mais de 1 table na janela, eu irei atribuir
e ter a certeza da qual table ali se refere aquela coluna.. agora quando tem
apenas 1 table na janela, ai sim eu adoto esse método.. de 
invocar apenas a coluna COL_X e não TABLE.COL_X.. apenas isso..
 

kkk.PNG

 

 

Share this post


Link to post
Share on other sites
8 horas atrás, FABRÍCIO disse:

 

sim eu percebi que fez 2 exemplos, com e sem variáveis, tanto que pontuei nos dois,
de toda forma não é a melhor maneira declarar variáveis desnecessárias, nem escrever códigos desnecessários,
observei pois tem formas mais simples e mais corretas, apenas isso
sobre sua observação de usar a variável caso precise saber em qual linha esta, basta pegar via tabela[tabela], pronto terá o número da linha, sobre as normas do wlanguage nunca vi isso, se olhar no exemplo do help está como abaixo, mas cada um é livre para fazer como quiser, só respondi a dúvida do amigo da melhor forma possível.

// For each user selected in TABLE_User
FOR EACH SELECTED ROW OF TABLE_User
// Send an email
Proc_SendMessage(COL_Name, COL_Email)
END

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now