добавлен дополнительный абзац на 11/2-12 - я наткнулся на довольно классный способ просмотра данных буфера во время отладки, это было бы наиболее полезно для хранилищ данных, но должно хорошо работать для окна данных. Ознакомьтесь с разделом этого сайта Сохранить хранилище данных из отладчика.
Один обходной путь, который я обычно использую, заключается в добавлении кода к событию clicked элемента управления окна данных (предок даже лучше) и использовании функции нажатия клавиши для определения предопределенного и была нажата непонятная комбинация клавиш. Если да, то данные должны быть сохранены в файл.
Мне нравится создавать скрытые пасхальные яйца для наиболее распространенных типов, включая одну общую, которая запрашивает у пользователя тип и имя файла.
ctl+alt+e для Excel!
ctl+alt+t для текста!
ctl+alt+c для CSV!
ctrl+alt+a для любого (запрашивается диалоговым окном «Сохранить как»)
Таким образом, если пользователь удерживает ctrl+alt+e и щелкает в любом месте объекта данных, будет запущен следующий код, в результате чего данные будут записаны в excel, а файл excel автоматически открыт. Я часто оставляю эту функцию в производственных приложениях (иногда я фильтрую свой идентификатор пользователя в зависимости от того, насколько конфиденциальны данные), потому что это ОТЛИЧНЫЙ инструмент поддержки производственной среды. Нашему отделу контроля качества также нравится эта функциональность, так как они могут легко документировать данные и просматривать все столбцы, даже те, которые не показаны.
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"
Это не совсем то, что вы искали, но это работает!
ХТН
person
Rich Bianco
schedule
27.10.2012