|
|
|
Help plz ...
|
|||
|---|---|---|---|
|
#18+
Доброго всем времени суток. Ребята, подскажите плз, может есть какой инструмент или у кого-то есть уже написаный парсер ... Нужно пробежатса по библиотекам и дать отчёт о количестве (желательно имена) окон в которых больше чем одно updateable datawindow Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 00:38 |
|
||
|
Help plz ...
|
|||
|---|---|---|---|
|
#18+
voronkНужно пробежатса по библиотекам и дать отчёт о количестве (желательно имена) окон в которых больше чем одно updateable datawindow А если DataObject назначается динамически/изменяются свойства обновления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 10:03 |
|
||
|
Help plz ...
|
|||
|---|---|---|---|
|
#18+
Их у нас не много, я их знаю в лицо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 19:46 |
|
||
|
Help plz ...
|
|||
|---|---|---|---|
|
#18+
Вот, пару строк на Перле :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 12:15 |
|
||
|
Help plz ...
|
|||
|---|---|---|---|
|
#18+
Всем спасибо. Опять взяли за горло, пришлось накропать, вот, может кому пригодитса. Начальство довольно. Для себя, если кто посоветует как сделать получше, просто так, for future references с вниманием выслушаю. // This script will go thru the all libraries, get the list of the all main type windows, all datawindows // inside them and look if any of this datawindows updatable ... datastore dw_1, dw_2, dw_3 long l_handle, l_row, l_first, l_last, l_fnd, l_row1, l_knt string s_name, s_lib, s_dir, s_window, s_dir_windows boolean b_go ClassDefinition cd_def WindowType ltype int i_int str_pass str_pass int i_knt long l_pos, l_pos2 datawindow dw string s_syntax, s_table_name, s_class_name, s_data_object, s_dw_list window w SetNull(l_handle) s_name = space(81) GetModuleFileNamea(l_handle, s_name, 80) IF UPPER(Right(s_name, 8)) <> 'PB90.EXE' THEN MessageBox('Unauthorized Screen Access', 'You are not authorized to access this screen.', Exclamation!) RETURN END IF SetPointer(hourglass!) dw_1 = create datastore dw_2 = create datastore dw_3 = create datastore dw_1.dataobject = 'dw_pbl' dw_2.dataobject = 'dw_window_dir_pbl' dw_3.dataobject = 'dw_pbl' s_lib = Upper(GetLibraryList()) s_lib = f_find_and_replace(s_lib, ',', '~n') dw_1.ImportString (s_lib) FOR l_row = 1 TO dw_1.RowCount() Yield() This.SetMicroHelp ('Exporting Windows') s_dir = Upper(dw_1.GetItemString(l_row, 'column_01')) s_dir_windows = LibraryDirectory(s_dir, DirWindow!) IF match(upper(s_dir), 'PCERV') = TRUE THEN EXIT END IF dw_2.Reset() dw_2.ImportString (s_dir_windows) FOR l_row1 = 1 TO dw_2.RowCount() Yield() s_window = '' l_first = 1 l_last = 0 s_window = dw_2.GetItemString(l_row1, 'column_01') IF s_window <> '' and & s_window <> 'w_test' THEN cd_def = FindClassDefinition(s_window) b_go = FALSE FOR i_int = 1 TO UpperBound(cd_def.variablelist) IF cd_def.variablelist[i_int].name = 'windowtype' THEN ltype = cd_def.variablelist[i_int].initialvalue CHOOSE CASE ltype CASE Main! b_go = TRUE EXIT END CHOOSE END IF NEXT IF b_go THEN //w = window('') //open(w, s_window) w = g_w_frame.fw_open_sheet (s_window, 0, 1, str_pass) IF IsValid(w) THEN This.SetMicroHelp ('Exporting Window - ' + s_window) w.visible = false w.setredraw(false) dw_3.insertrow(0) dw_3.SetItem(dw_3.RowCount(), 'column_01', s_window + ' - ' + w.Title) //dw_3.SaveAs("c:\windows.XLS", Excel!, FALSE) FOR i_knt = 1 TO upperbound(w.control[]) CHOOSE CASE w.control[i_knt].typeof() CASE datawindow! s_class_name = w.control[i_knt].classname() // Return dw_1, dw_2, etc ... dw = w.control[i_knt] s_data_object = dw.dataobject // Return data object dw_gl_account, dw_gl_entries, etc ... IF NOT IsNull(s_data_object) and trim(s_data_object) <> '' and IsValid(dw) = TRUE THEN s_syntax = dw.Object.DataWindow.Syntax // Get datawindow syntax ... l_pos = pos(s_syntax, 'update="') // Look for update ... IF l_pos > 0 THEN // If yes, get the table name ... l_pos = l_pos + 8 l_pos2 = Pos(s_syntax, '"', l_pos) // Look for a table closing quote ... s_table_name = Mid(s_syntax, l_pos, l_pos2 - l_pos) // Get the table name ... END IF IF IsNull(s_table_name) THEN s_table_name = '' END IF IF Len(trim(s_table_name)) > 0 THEN s_dw_list = dw_3.GetItemString(dw_3.RowCount(), 'column_02') IF IsNull(s_dw_list) THEN s_dw_list = '' END IF dw_3.SetItem(dw_3.RowCount(), 'column_02', s_dw_list + ' - ' + s_table_name) //dw_3.SaveAs("c:\windows.XLS", Excel!, FALSE) END IF END IF END CHOOSE NEXT close(w) END IF END IF END IF NEXT NEXT dw_3.InsertRow(0) dw_3.InsertRow(0) dw_3.SetItem(dw_3.RowCount(), 'column_01', 'Windows Excluded: ' + & 'w_test') dw_3.SaveAs("c:\windows.XLS", Excel!, FALSE) setmicrohelp('Ready') // dw_3.SaveAs("c:\c3_Security.html", htmltable!, FALSE) DESTROY dw_1 DESTROY dw_2 DESTROY dw_3 SetPointer(arrow!) MessageBox('test', 'done') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 17:59 |
|
||
|
Help plz ...
|
|||
|---|---|---|---|
|
#18+
voronkВсем спасибо. Опять взяли за горло, пришлось накропать, вот, может кому пригодитса. Начальство довольно. Для себя, если кто посоветует как сделать получше, просто так, for future references с вниманием выслушаю.Можно попридираться :-) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 18:36 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=34228785&tid=1337404]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
136ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 442ms |

| 0 / 0 |
