Olá pessoal! Oque faço quando no relatório ao buscar registro e da esse erro á baixo Nr.Ordem Projeto Manejo Data Abertura Data Encerramento Horas Prog Horas Reais Total Paradas ----------- ---------------- -------- ------------- ----------------- --------------- --------------- ------------- 511.953 J0051002 MAEV2P01 08/11/2011 08/11/2011 60,3400 1.103,9643 0,0833 ** Registro tt-ord-manut nao esta' disponivel. (91) ** Registro tt-ord-manut nao esta' disponivel. (91) ** Registro tt-ord-manut nao esta' disponivel. (91) ** Registro tt-ord-manut nao esta' disponivel. (91) 511.964 J0041004 MAJL0106 09/11/2011 09/11/2011 618,4700 0,0000 0,5333 511.964 J0041004 MAJL0106 09/11/2011 09/11/2011 1.455,2100 13,8332 0,5333 511.964 J0041004 MAJL0106 09/11/2011 09/11/2011 687,1800 0,0000 0,5333 511.964 J0041004 MAJL0106 09/11/2011 09/11/2011 24,7400 25,3167 0,5333 511.965 J0041004 MAJL0316 09/11/2011 09/11/2011 618,4700 0,0000 0,5000 511.965 J0041004 MAJL0316 09/11/2011 09/11/2011 1.455,2100 37,9333 0,5000 511.965 J0041004 MAJL0316 09/11/2011 09/11/2011 687,1800 0,0000 0,5000 511.965 J0041004 MAJL0316 09/11/2011 09/11/2011 24,7400 32,2334 0,5000 511.985 J0041005 MAJL0009 10/11/2011 10/11/2011 149,4300 6,0000 1,4667 511.985 J0041005 MAJL0009 10/11/2011 10/11/2011 29.885,7200 48,9164 1,4667 511.985 J0041005 MAJL0009 10/11/2011 10/11/2011 373,5700 12,0002 1,4667 511.985 J0041005 MAJL0009 10/11/2011 10/11/2011 149,4300 256,4840 1,4667
Você deve estar dando um find first nesta tabela, só que o registro não foi encontrado para a cláusula where informada. Sugiro adicionar um "if available tt-ord-manut" e utilizar os campos dessa tabela somente se cair nesta condição, desta forma se o registro não for encontrado então o erro não ocorrerá.
É importante lembrar que em uma clausula Find você deve declarar explicitamente que não quer receber erro STANDARD do progress. Para isso você dever usar NO-ERROR no comando Find. Vamos a um exemplo prático. Código: Find First NomeDaTabela where NomeDaTabela.NomeDoCampo = Variavel NO-LOCK NO-ERROR. Utilizando o NO-LOCK o banco não fica preso... Utilizando o NO-ERROR nenhum erro "standard" do PROGRESS vai ocorrer... Quando você usa essa cláusula no-error isso significa para o progress que você vai controlar quando os dados estarão disponiveis ou não, entende? Por exemplo: Se você utilizar o find dentro de uma instrução FOR EACH, faça o seguinte: Código: for each tabela1: find first tabela2 where tabela2.id = tabela1.id NO-LOCK NO-ERROR. If NOT available tabela2 Then next. /*isso fára o progress ir para a proxima interação do for each - otimização de código*/ else do: /*suas rotinas - registro disponivel*/ end. end.