11/2-12 に追加のパラグラフを追加 - デバッグ中にバッファ データを表示する非常にクールな方法に出くわしました。このサイトのセクションSave DataStore from Debugger を確認してください。
私がよく使用する回避策の 1 つは、データウィンドウ コントロールのクリック イベントにコードを追加し(祖先はさらに優れています)、keydown 関数を使用して、事前定義されたあいまいなキーの組み合わせが押されたことを判断することです。ある場合は、データをファイルに保存する必要があります。
私は、ユーザーにファイルの種類と名前を求める一般的な機能を含む、最も一般的な種類の隠しイースターエッグ機能を作成するのが好きです。
エクセルならctl+alt+ e!
テキストの場合はctl+alt+ t !
CSV のctl+alt+ c !
ctrl+alt+ a for Any (名前を付けて保存ダイアログでプロンプト)
したがって、ユーザーがctrl+alt+eを押したまま dataobjectの任意の場所をクリックすると、次のコードがトリガーされ、データが Excel に書き込まれ、Excel ファイルが自動的に開きます。私はこの機能を実稼働アプリケーションに残すことがよくあります (データの機密性に応じて、ユーザー ID をフィルタリングすることもあります)。これは優れた実稼働支援ツールだからです。当社のQA 部門も、データを簡単に文書化でき、表示されていない列も含めてすべての列を表示できる機能を気に入っています。
long ll_handle
string ls_filename, ls_null, ls_dir
if keydown(KeyControl!) and keydown(KeyAlt!) then
// set work variables to be used in save
SetNull(ls_null)
// grab handle to MDI frame window for the ShellExecute function
ll_handle = Handle(gwMdi)
// construct the filename using dataobject and datetime
ls_dir = "c:\temp"
ls_filename = ls_dir + '\debug_dataobject_' + this.dataobject + '_date_' + string(Today(),'mmddyyhhmmss')
// determine if we are saving excel, text, csv, or prompting for filetype
if keydown(keye!) then
ls_filename =+ '.xls'
dw_1.SaveAs(ls_filename, Excel!,True!)
elseif keydown(keyt!) then
ls_filename =+ '.txt'
dw_1.SaveAs(ls_filename, Text!,True!)
elseif keydown(keyc!) then
ls_filename =+ '.txt'
dw_1.SaveAs(ls_filename, Csv!,True!)
elseif keydown(keya!) then
ls_filename =+ ''
// empty string forces dialog open
dw_1.SaveAs(ls_filename)
end if
// now automatically open the file using default program
// for the file type via Windows API function
if fileexists(ls_filename) then
gwMdi.ShellExecute(ll_handle, 'open', ls_filename, ls_null, ls_dir, 3)
end if
end if
// Define ShellExcecute as Local External Function
// somewhere in your application or as Global External Function:
Function Long ShellExecute (Long hWnd, String lpOperation, String lpFile, String lpParameters, String lpDirectory, Long nShowCmd) Library "shell32.dll" Alias For "ShellExecuteA"
それはまさにあなたが探していたものではありませんが、うまくいきます!
HTH