RowsMove

RowsMove

Overview

Bem-vindo ao nosso guia passo a passo sobre como aprimorar suas habilidades no PowerBuilder, utilizando a funcionalidade RowsMove! Se você está buscando uma maneira eficaz de mover linhas entre Datawindows ou datastores, ou mesmo dentro de uma mesma Datawindow, este artigo é perfeito para você. Com explicações claras, exemplos práticos e detalhes cuidadosos sobre a sintaxe e o retorno esperado da função, preparamos um conteúdo riquíssimo para ajudá-lo no dia a dia do desenvolvimento. Seja você experiente ou novato, há sempre algo novo para aprender conosco.

Move uma série de linhas (rows) de uma datawindow (ou datastore) para outra. Esta função também pode ser utilizada para mover um range de linhas de um buffer para o outro dentro da própria Datawindow (ou datastore).

Sintaxe:

dwcontrol.RowsMove(long startrow, long endrow, DWBuffer movebuffer, targetdw, long beforerow, DWBuffer targetbuffer)

Retorno:

  • 1 – sucesso na operação;
  • -1 – em caso de erro;
  • null: se algum argumento for nulo;

Destalhes sobre a função!

Appeon: Funciona sem restrições.

  • Esta função (ou qualquer manipulação de buffer) só pode ser realizada quando a datawindow não estiver em modo query.
  • As linhas movidas são receberão o status de NewModified! na targetdw.
  • Se as linhas forem copiadas de um buffer para o outro dentro do mesmo objeto, o PB conseguirá controlar as linhas e o seu respectivo contexto. Exemplo: se você copiar linhas não modificadas para o buffer Delete!, elas serão marcadas para remoção; Todavia, se as linhas forem movidas para outra DataWindow e depois movidas de volta, elas chegarão como NewModified!.
  • Esta função aciona os eventos RowFocusChanging e RowFocusChanged apenas quando a linha atual (current row) é afetada. Se apenas os valores da linha forem alterados, os eventos não serão disparados.
  • Quando utilizada, esta função não recupera dados para DropDownDataWindows. As linhas são simplesmente inseridas na datawindow alvo.

Como utilizar:

Exemplo 01: Movendo todas as linhas da Datawindow do buffer Delete para o buffer primario, simulando uma função “Undelete”.

long ll_rows

ll_rows = dw_1.DeletedCount()
dw_1.RowsMove(1, ll_rows, Delete!, dw_1, 1, Primary!)

Argumentos:

ArgumentoObrigatórioDataTypeDescrição
dwcontrolSimDataWindow, DataStore ou DataWindowChildNome do controle que contem as linhas (rows) que serão movidos.
startrowSimlongNumero da primeira linha que deverá ser movida.
endrowSimlongNúmero da última linha que deverá ser movida.
movebufferSimDWBufferDWBuffer onde estão as linhas que serão movidas.
targetdwSimDataWindow, DataStore, DataWindowChildControle que receberá as linhas movidas do dwcontrol.
beforerowSimlongValor referente ao ponto em que as linhas serão inseridas. Se o valor for maior que o números de linhas da targetdw, as linhas serão inseridas no final.
targetbufferSimDWBufferDWBuffer da targetdw que receberá as linhas movidas.

Referência:

Dúvidas sobre o artigo? Sugestões? Precisa de ajuda com outra funcionalidade do PowerBuilder? Deixe um comentário.