PowerBuilder 8 (8) Web DataWindow ( ) DataWindow Web DataWindow Web DataWindow Web DataWindow PowerDynamo Web DataWindow / Web DataWindow Web DataWindow Wizard Web DataWindow Web DataWindow DataWindow PowerDynamo Web DataWindow DataWindow HTML DataWindow Web DataWindow Web DataWindow DataWindow Painter PowerScript Modify() DataWindow Painter HTML DataWindow DataWindow Painter Properities View General HTML DataWindow HTML Preview DataWindow HTML DataWindow HTMLGenerator80 HTML HTML DataWindow HTML Update DataWindow DataWindow HTML HTML Modify() Describe() DataWindow.HTMLDW yes no 1 15
HTML Table HTML Table Web DataWindow Table Web DataWindow HTML Table Web DataWindow Web DataWindow Table 1 1 HTML Table Border Table Modify() HTMLTable.Border Table 1 Describe/Modify Border HTMLTable.Border Table Cell Spacing HTMLTable.CellSpacing (Cell) Cell Padding HTMLTable.CellPadding Width HTMLTable.Width Table No Wrap HTMLTable.NoWrap 2 15
Generate CSS HTMLTable.GenerateCSS Table CSS 1 HTML Table HTML Generation HTML Table Web DataWindow Web DataWindow JavaScript DataWindow Painter 2 Rows Per Page 2 HTML Generation Rows Per Page Web DataWindow DataWindow.HTMLGen.PageSize 0 Select 100 20 20 Generate Java Script 3 15
Web DataWindow JavaScript JavaScript Update yes JavaScript DataWindow.HTMLGen.GenerateJavaScript Client Events Web DataWindow Client (client-side events) Client Server PowerBuilder DataWindow PowerBuilder 2 PowerBuilder 7 PowerBuilder 8 PowerBuilder PowerBuilder 7 ButtonClicked 8 AfterAction 7 ItemFocusChanged 8 AfterRetrieve 7 ButtonClicking 8 AfterUpdate 7 RowFocusChanged 8 BeforeAction 7 Clicked 8 BeforeRetrieve 7 RowFocusChanging 8 BeforeUpdate 7 ItemChanged 8 OnDBError 7 UpdateStart 8 Validate 7 ItemError 8 ValidateError 2 Client Validation DataWindow Validation Rules Validation JavaScript script Validation Rules JavaScript DataWindow.HTMLGen.ClientValidation yes dept_id long Validation 100 4 15
mod( real(gettext()), 100 ) = 0 Client Validation Web DataWindow JavaScript 1. <SCRIPT LANGUAGE="JavaScript"> 2. function htmldw_dept_id_validate(exprctx) 3. { 4. var result; 5. /* mod( real(gettext()), 100 ) = 0 */ 6. result = ((parsefloat(exprctx.currenttext) % 100) == 0); 7. return result; 8. } Client Computed Fields DataWindow computed fields JavaScript DataWindow.HTMLGen.ClientComputedFields yes dept_name Computed Fields ' '+ dept_name Client Computed Fields Web DataWindow JavaScript 1. function dwclient_new_name_compute(exprctx) 2. { 3. var result; 4. /* ' '+ dept_name */ 5. var temp0 = exprctx.dw.rows[exprctx.row][2]; 6. if (temp0 == null) 7. result = null; 8. else 9. result = (" " + temp0); 10. return result; 11. } 5 15
Client Formatting DataWindow display formats JavaScript tab order format DataWindow.HTMLGen.ClientFormatting no Client Scriptable JavaScript PowerScript DataWindow RowCount() GetItem() SetItem() ItemChanged GetItem() SetItem() JavaScript DataWindow.HTMLGen.ClientScriptable no Browser HTML JavaScript HTML JavaScript HTML JavaScript DataWindow.HTMLGen.browser PowerDynamo GetServerVariables() HTTP Client IP Address Modify() HTML Version HTML DataWindow.HTMLGen.HTMLVersion 3.2 4.0 CSS(Cascading Style Sheets) (absolute positioning) (regular expressions) Object Name 6 15
Client DataWindow PowerBuilder DataWindow control Client DataWindow.HTMLGen.ObjectName htmldw Web DataWindow Web DataWindow Self Link PowerBuilder DataWindow button Action retrieve() update() insertrow() PageNext() PageFirst() Action PowerScript DataWindow button DataWindow button PowerBuilder Web DataWindow Action Web DataWindow refresh refresh DataWindow SelfLink refresh page not found DataWindow.HTMLGen.SelfLink string HTMLGenerator80 SetSelfLink() PowerDynamo document object model (DOM) document.name SetSelfLink() document.name Self Link Arguments DOM session string string para_id= String(column_name) pipeline ( ) 7 15
custid= String(customer_id) custname= customer_name DataWindow.HTMLGen.SelfLinkArgs HTMLGenerator80 SelfLinkArguments() DataWindow HTML Web DataWindow PowerDynamo Web DataWindow DynaScript Web DataWindow PowerBuilder Wizard Web DataWindow ObjMod80.ssc HTMLGenerator80 PowerDynamo DynaScript EAServer HTMLGenerator80 Web DataWindow DynaScript Web DataWindow DataWindow CommandButton Control DataWindow CommandButton Control Action Retrieve(2) InsertRow(12) DeleteRow(10) Update(13) 3 d_department DataWindow 3 d_department DataWindow PowerDynamo 1. <HTML> 8 15
2. <HEAD> 3. <TITLE>DataWindow DIY</TITLE> 4. </HEAD> 5. <BODY> 6. <!--SCRIPT 7. // Step 1 - Jaguar HTMLGenerator80 DataWindow HTML 8. dwserver = java.createcomponent("datawindow/htmlgenerator80","iiop://localhost:9000", "jagadmin", "" ); 9. if ( dwserver == null ) { 10. document.writeln( "Error Message: " + site.geterrorinfo() + "<BR>" ); 11. } 12. // Step 2 - DataWindow 13. retval = dwserver.setdwobject( "E:/book/book.pbl", "d_department" ); 14. if ( retval!= 1 ) { 15. document.writeln( "SetDWObject failed " + retval + "<BR>" ); 16. } 17. // Step 3-1 - DataWindow 18. dwserver.setweight(true, true, true, true, true); 19. // Step 3-2. DataWindow 20. dwserver.sethtmlobjectname( "dwclient" ); 21. // Step 3-3. DataWindow HTML HTML 3.0 HTML 4.0 22. dwserver.setbrowser( document.getservervariable( "HTTP_USER_AGENT" ) ); 23. // Step 4 - Connection 24. retval = dwserver.settrans( "ODBC", "ConnectString='DSN= EAS Demo DB V4;UID=dba;PWD=sql'", "", "", "", "", "" ); 25. // Step 5 - ( ) 26. retval = dwserver.retrieve(); 27. if ( retval < 0 ) { 28. document.writeln( "Error on Retrieve: " + retval + "<BR>"); 29. document.writeln( dwserver.getlasterrorstring() + "<BR>"); 30. } 31. // Step 6-32. dwserver.setselflink( document.name, "" ); 33. // Step 7 - User 34. function GetParam( envparam ) { 35. if ( exists ( document.value[envparam] ) ) { 36. return document.value[envparam] ; 37. } 9 15
38. return "" ; 39. } ; 40. var dwclient_action = GetParam( "dwclient_action" ) ; 41. var dwclient_context = GetParam( "dwclient_context" ) ; 42. if ( ""!= "" + dwclient_action ) { 43. retval = dwserver.setaction( dwclient_action, dwclient_context ) ; 44. if ( retval < 0 ) { 45. document.writeln( "Error on SetAction: " + retval + "<BR>" ); 46. document.writeln( dwserver.getlasterrorstring() + "<BR>" ); 47. } 48. } 49. // Step 8 - HTML 50. document.writeln( dwserver.generate() ); 51. // Client-side client control event 52. --> 53. <SCRIPT Language=JavaScript> 54. function dwclient_clicked(row, objname) 55. { 56. var temp = dwclient.getitem(row,objname); 57. alert("clicked event, row=" + row + ", object=" + objname + ", value=" + temp); 58. } ; 59. </SCRIPT> 60. </BODY> 61. </HTML> PowerDynamo 4 4 DynaScript Web DataWindow 10 15
8 8. dwserver = java.createcomponent("datawindow/htmlgenerator80","iiop://localhost:9000", "jagadmin", "" ); PowerDynamo Jaguar Server HTMLGenerator80 Instance package_name/component_name Jaguar Server Jaguar CORBA CORBA IIOP iiop Jaguar Server Jaguar Server jadadmin 9 11 dwserver null 13. retval = dwserver.setdwobject( " E:/book/book.pbl", "d_department" ); 13 SetDWObject() DataWindow PBL DataWindow PBL %JAGUAR%\bin 18. dwserver.setweight(true, true, true, true, true); 18 SetWeight() HTML JavaScript SetWeight(Boolean Allow_Updates, Boolean Validation, Boolean Events, Boolean Client_Scriptable, Boolean Client_Formatting); 3 Allow_Updates form 11 15
Validation Events Client_Scriptable Client_Formatting DataWindow (validation rules) Client JavaScript HTML itemchanged clicked buttonclicked HTML client-side DataWindow GetItem() SetItem() RowCount() DataWindow (Format) HTML 3 SetWeight 20. dwserver.sethtmlobjectname( "dwclient" ); 20 Web DataWindow Browser Window DataWindow Control Browser DataWindow RowCount() GetItem() Jaguar Server (HTMLGenerator80) dwclient dwserver htmldw Web DataWindow 22. dwserver.setbrowser( document.getservervariable( "HTTP_USER_AGENT" ) ); HTMLGenerator80 HTML JavaScript document.getservervariable("http_user_agent") PowerDynamo DynaScript HTTP Browser 24. retval = dwserver.settrans( "ODBC", "ConnectString='DSN= EAS Demo DB V4;UID=dba;PWD=sql'", "", "", "", "", "" ); 24 SetTrans() transaction PowerScript SetTrans() SetTrans (string DBMS, string DBParm, string Lock, string LogID, String LogPass, String Database, String ServerName) 12 15
DBMS DBParm Lock LogID LogPass Database ServerName Isolation level 4 SetTrans ODBC DSN EAS Demo DB V4 Jaguar Server connection cache Jaguar Server Book_cache connection cache retval = dwserver.settrans( "ODBC", "CacheName='Book_cache'", "", "", "", "", "" ); 26. retval = dwserver.retrieve();; 26 HTMLGenerator80 DataStore PowerScript HTMLGenerator80 Retrieve() RetrieveEx() RetrieveEx() RetrieveEx() \n 3 123456 IL 60540 1. var lv_args; 2. lv_args = 123456\nIL\n60540 3. dwserver.retrieveex(lv_args); 32. dwserver.setselflink( document.name, "" ); Web DataWindow 32 SetSelfLink() PowerDynamo document name 13 15
34GetParam( 48 ) dwclient_action dwclient_context HTML Web DataWindow dwserver.generate() HTML JavaScript Web DataWindow Web DataWindow Web DataWindow Web DataWindow Web DataWindow HTML + _ + HTML dwclient dwclient_action dwclient_context HTMLGenerator80 DataStore 50. document.writeln( dwserver.generate() ); 50 Generate() Web DataWindow HTML JavaScript string document.writeln() Web DataWindow Web DataWindow client client 1. DataWindow ClientEvents SetWeight() 2. DataWindow Client Scriptable SetWeight() 3. JavaScript JavaScript Server DynaScript --> JavaScript <SCRIPT Language=JavaScript> </SCRIPT> 4. JavaScript DataWindow (_) Web DataWindow Clicked dwclient_clicked Web DataWindow 14 15
Web DataWindow 5 DataWindow Control ButtonClicking ButtonClicked Clicked ItemChanged ItemError ItemFocusChanged RowFocusChanged RowFocusChanging UpdateStart row, objname row, objname row, objname row, colname, newvalue row, colname, newvalue row, colname Row currow, newrow None 5 Client DataWindow HTML PowerDynamo Web DataWindow Web DataWindow PowerDynamo Web DataWindow Web DataWindow Wizard Web DataWindow Wizard Web DataWindow PowerDynamo 15 15