Mr Rao ha logrado hacer mas compatible la clase Eagle1 para obtener muchas de las funcionalidades del XBrowse y TDatarow. Tambien agradezco a Manu por haber permitido este gran avance a los que somos usuarios de la Eagle1
//#include "Eagle1.ch"
#include "FiveWin.ch"
#include "dtpicker.ch"
#include "calendar.ch"
//----------------------------------------------------------------------------//
function Main()
聽 聽local oDlg, oFont, oBrw
聽 聽local oConnect 聽 聽 聽 聽 聽 聽 聽 聽 聽// Connection object
聽 聽local oQry 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽// DataSet or RecordSet object
聽 聽local cHost 聽 聽 := "127.0.0.1"
聽 聽local cUser 聽 聽 := "root"
聽 聽local cPassword := ""
聽 聽local cDbName 聽:= "fwhdemo"
聽 聽local cTable 聽 聽 := "customers"
聽 聽local cPort, oRec
聽 聽FWNumFormat( "A", .t. )
聽 聽SetGetColorFocus()
聽 聽// Create the "connection" object
聽 聽oConnect := TMSConnect():New()
聽 聽// 聽We connect to the server
聽 聽if !oConnect:Connect( cHost, cUser, cPassword, cDbName )
聽 聽 聽 MsgInfo( "There is no connection with the server", "Operation Canceled" )
聽 聽 聽 oConnect:Free()
聽 聽 聽 return( nil )
聽 聽endif
聽 聽oQry := TMsTable():New( oConnect, cTable )
聽 聽oQry:SetTinyAsLogical( .t. )
聽 聽// We open the table, we bring the result to our client
聽 聽if !oQry:Open()
聽 聽 聽 MsgInfo( "Cannot open table: " + cTable, "Operation Cancelled" )
聽 聽 聽 return( nil )
聽 聽endif
聽 聽
聽 聽DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-15
聽 聽DEFINE DIALOG oDlg SIZE 750,500 PIXEL TRUEPIXEL FONT oFont ;
聽 聽 聽 TITLE oQry:ClassName()
聽 聽@ 50, 20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg ;
聽 聽 聽 DATASOURCE oQry COLUMNS "FIRST", "CITY", "SALARY", "AGE", "MARRIED" ;
聽 聽 聽 CELL LINES NOBORDER FOOTERS FASTEDIT AUTOSORT
聽 聽WITH OBJECT oBrw
聽 聽 聽 :nEditTypes := EDIT_GET
聽 聽 聽 //
聽 聽 聽 :bEdit 聽 := { |oRec| CtrDatos( oRec ) }
聽 聽 聽 //
聽 聽 聽 :Salary:nFooterType 聽:= AGGR_SUM
聽 聽 聽 :Age:nFooterType 聽 聽 := AGGR_AVG
聽 聽 聽 :MakeTotals()
聽 聽 聽 //
聽 聽 聽 :CreateFromCode()
聽 聽END
聽 聽@ 10, 10 BUTTON "&Add" SIZE 80, 30 PIXEL OF oDlg;
聽 聽 聽 聽 聽 聽 ACTION oBrw:EditSource( .t. )
聽 聽@ 10, 100 BUTTON "&Mod" SIZE 80, 30 PIXEL OF oDlg;
聽 聽 聽 聽 聽 聽 ACTION oBrw:EditSource()
聽 聽@ 10, 190 BUTTON "&Del" SIZE 80, 30 PIXEL OF oDlg;
聽 聽 聽 聽 聽 聽 ACTION oBrw:Delete( .t. ) 聽
聽 聽ACTIVATE DIALOG oDlg CENTERED
聽 聽RELEASE FONT oFont
聽 聽oQry:Close()
聽 聽oConnect:Close()
return nil
static procedure CtrDatos( oRec )
聽 聽local lNew 聽:= ( oRec:RecNo == 0 )
聽 聽local oDlg
聽 聽DEFINE DIALOG oDlg FROM 2, 2 TO 30, 77;
聽 聽 聽 聽 TITLE "Mantenimiento de la tabla Test - " + If( lNew, "ADD", "EDIT" );
聽 聽 聽 聽 STYLE nOr( DS_MODALFRAME, WS_POPUP, WS_CAPTION, WS_SYSMENU, 4 )
聽 聽 聽 聽 @ 01, 02 SAY "First" 聽 聽 聽 聽OF oDlg
聽 聽 聽 聽 @ 02, 1.5 GET oRec:First 聽 聽 PICTURE "@K" UPDATE OF oDlg
聽 聽 聽 聽 @ 01, 26.6 SAY "Last" 聽 聽 聽 聽 OF oDlg
聽 聽 聽 聽 @ 02, 20 GET oRec:Last 聽 聽 聽 PICTURE "@K" UPDATE OF oDlg
聽 聽 聽 聽 @ 2.8, 02 SAY "Street" 聽 聽 聽OF oDlg
聽 聽 聽 聽 @ 4, 1.5 GET oRec:Street 聽 聽 PICTURE "@K" UPDATE OF oDlg
聽 聽 聽 聽 @ 2.8, 26.6 SAY "City" 聽 聽 聽 聽OF oDlg
聽 聽 聽 聽 @ 4, 20 GET oRec:City 聽 聽 聽 PICTURE "@K" UPDATE OF oDlg
聽 聽 聽 聽 @ 4.6, 02 SAY "State" 聽 聽 聽 OF oDlg
聽 聽 聽 聽 @ 6, 1.5 GET oRec:State 聽 聽 聽PICTURE "@K XX" UPDATE OF oDlg
聽 聽 聽 聽 @ 4.6, 5.5 SAY "Zip" 聽 聽 聽 聽 OF oDlg
聽 聽 聽 聽 @ 6, 4 GET oRec:Zip 聽 聽 聽 聽PICTURE "@K 99999-9999" UPDATE OF oDlg
聽 聽 聽 聽 @ 4.6, 13.9 SAY "Hiredate" 聽 聽OF oDlg
聽 聽 聽 聽 @ 78, 83 DTPICKER oRec:Hiredate UPDATE 聽PIXEL SIZE 50, 11 OF oDlg
聽 聽 聽 聽 @ 6, 10 GET oRec:Hiredate 聽 PICTURE "@K" UPDATE OF oDlg
聽 聽 聽 聽 @ 5.7, 22 CHECKBOX oRec:Married PROMPT "Married" 聽UPDATE OF oDlg
聽 聽 聽 聽 @ 4.6, 33 SAY "Age" 聽 聽 聽 聽 OF oDlg
聽 聽 聽 聽 @ 6, 24.5 GET oRec:Age PICTURE "@K 999" 聽 聽 聽 聽UPDATE OF oDlg
聽 聽 聽 聽 @ 4.6, 37.5 SAY "Salary" 聽 聽 聽OF oDlg
聽 聽 聽 聽 @ 6, 28 GET oRec:Salary 聽PICTURE "@KE 9,999,999.999" 聽 UPDATE OF oDlg
//..................... El campo MEMO...............................................
聽 聽 聽 聽 @ 6.4, 02 SAY "Notes" 聽 聽 聽 OF oDlg
聽 聽 聽 聽 @ 8.1, 1.5 GET oRec:Notes 聽 聽 聽MEMO 聽 聽 聽 聽 UPDATE OF oDlg SIZE 270, 65
//..................................................................................
聽 聽 聽 聽 @ 10.5, 02 BUTTON "&Save";
聽 聽 聽 聽 聽 聽 聽 聽 聽OF oDlg;
聽 聽 聽 聽 聽 聽 聽 聽 聽SIZE 40, 12;
聽 聽 聽 聽 聽 聽 聽 聽 聽WHEN oRec:Modified() ;
聽 聽 聽 聽 聽 聽 聽 聽 聽ACTION ( oRec:Save(), oDlg:Update() )
聽 聽 聽 聽 @ 10.5, 10 BUTTON "&Cancel";
聽 聽 聽 聽 聽 聽 聽 聽 聽OF oDlg;
聽 聽 聽 聽 聽 聽 聽 聽 聽SIZE 40, 12;
聽 聽 聽 聽 聽 聽 聽 聽 聽ACTION ( oRec:Undo(), oDlg:Update() )
聽 聽 聽 聽 @ 10.5, 18 BUTTON "&Exit";
聽 聽 聽 聽 聽 聽 聽 聽 聽OF oDlg;
聽 聽 聽 聽 聽 聽 聽 聽 聽SIZE 40, 12;
聽 聽 聽 聽 聽 聽 聽 聽 聽ACTION oDlg:End()
聽 聽 ACTIVATE DIALOG oDlg CENTERED
return
//----------------------------------------------------------------------------//



FWH 25.12
Harbour/Hbmk2
Microsoft Visual C++
MySql 8.0
Antigravity