2012-02-23 10 views
0

私は動的なtempテーブルと動的なクエリをcretedしている。今私はbrowse.Hereにそれを設定したい。私の問題は、 "バッファコピーステートメントのソース要素はレコードを持っていないようなエラーを表示している(5365 )」。 これを解決するにはどうすればよいですか?あなたがTTにソースクエリからのデータをコピーするためのいくつかのコード行方不明UIブラウザのデータをtemp-tableから読み込む?

CREATE BUFFER hBuffer FOR TABLE cip-tablename. 


CREATE QUERY hQuery.  /*this query I need for some other logic. 
hQuery:SET-BUFFERS(hBuffer). 
hQuery:QUERY-PREPARE("FOR EACH " + cip-tablename + " WHERE " + cip-condition). 
hQuery:QUERY-OPEN(). 


create temp-table hTT. 
hTT:Create-Like(cip-tablename). 
hTT:temp-table-prepare("tt" + cip-tablename). 

hTTb = htt:default-buffer-handle. 
hTTb:buffer-create(). 
hTTb:buffer-copy(hBuffer). 


CREATE QUERY hQuery1. 
hQuery1:SET-BUFFERS(hTTbh). 
hQuery1:QUERY-PREPARE("for each tt " + cip-tablename). 
hQuery1:QUERY-OPEN(). 

CREATE BROWSE hbrowse-hdl1 
ASSIGN 
TITLE  = cip-tablename + " Browse" 
FRAME  = Frame DetailsFrame:Handle 
QUERY  = hQuery1 
X   = 48 
Y   = 100 
WIDTH  = 96 
DOWN  = 10 
VISIBLE = YES 
SENSITIVE = TRUE 
READ-ONLY = yes. 
hbrowse-hdl1:ADD-COLUMNS-FROM(hTTbh). 
+1

私は完全に質問を理解していません。あなたのコードの1つの問題は、hQuery1:SET-BUFFERS(hTTbh)です。 "hTThh"はどこにもないので、2番目の問題は次の行、hQuery1:QUERY-PREPARE( "each tt" + cip-tablename)であるかもしれないので、うまくいかないかもしれません。ここでは、xxxのtablenameで準備されたクエリの文字列は "for each tt xxx"と評価されますが、あなたはtempテーブルttxxxをさらに呼び出しています...(hTT:temp-table-prepare( "tt" + cip-tablename) 。) – LyrixDeRaven

答えて

2

から取得 CIP-テーブル名= tableNameの:率直に言って

hQuery:Get-FIRST(no-lock). 

DO WHILE hbuffer:AVAILABLE: 

    hTTb:buffer-create(). 
    hTTb:buffer-copy(hBuffer). 
    hQuery:Get-NEXT(no-lock). 

END. 

を、それだけでショーが容易になるだろうソーステーブルからの参照。

関連する問題