Ir para conteúdo
  • Cadastre-se

dev botao

Function result array


  • Este tópico foi criado há 4910 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

ola pessoal .

esou criando uma funcao que me retorne um array

Type

  TFiltroRateio = Record

    conta: String;

    Descricao: String;

  End;

a funcao é essa :
//------------------------------------------------------------------------------

Procedure GetFiltroRateio(Opfinan: integer; var conta:Array Of TFiltroRateio);

Var

  MySql: String;

  Contar: integer;

  tabela: TIBQuery;

  tmp: Array Of TFiltroRateio;

Begin

  setlength(conta, 0);

  SetLength(tmp, 0);

  tabela := TIBQuery.create(application);

  tabela.close;

  tabela.database := dm1.IBDatabase;

  tabela.sql.clear;

  tabela.sql.add('select * from OPRATEIO');

  tabela.sql.add(format('where OPFINAN = %d', [Opfinan]));

  tabela.sql.add('order by conta');

  tabela.open;

  tabela.First;

  contar := 0;

  While Not tabela.Eof Do

    Begin

      inc(contar);

      tabela.Next;

    End;

  If contar > 0 Then

    Begin

      SetLength(tmp, contar);

      contar := 1;

      tabela.First;

      While Not tabela.Eof Do

        Begin

          tmp[contar].conta := tabela.fieldbyname('conta').asstring;

          tmp[contar].Descricao := tabela.fieldbyname('descricao').asstring;

          inc(contar);

          tabela.Next;

        End;

    End;

  tabela.free;

End;

mas se eu der setlength(conta,0) da incomtibilidade , dis que a variavel conta nao e multidirecional , as éa mesma que a variavel tmp fiquei sem entender vo char a funcao asism :
Procedure TFM_OPFinan.MostraRatreio(OpFinan: integer);

Var

  Rateio: Array Of TFiltroRateio;

  f: Integer;

Begin

  Setlength(Rateio,0);

  GetFiltroRateio(OpFinan, Rateio);

  If length(Rateio) > 0 Then

    Begin

      tbTemp.Close;

      TbTemp.Open;

      For f := 1 To length(Rateio) Do

        Begin

          TbTemp.Append;

          TbTempconta.Value := rateio[f].conta;

          TbTempdescricao.Value := rateio[f].Descricao;

          TbTemp.Post;

        End;

    End;

End;

http://www.rdwtecnologia.com.br/

Rodnei Hernandes Lino

Um pouco ce conhecimento é uma coisa perigosa.

Então é muito. (-Albert Einstein)

Guaíra-SP

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4910 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...