FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour To Antonio :urgent!
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
To Antonio :urgent!
Posted: Sat Nov 22, 2008 06:09 PM

I recompiled expbuil.prg from fwh/source/functions and i cannot compiled it :i not have all the source code and i need also the resources.
Can you send me all this pls.?

Best Regards, Saludos



Falconi Silvio
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
To Antonio :urgent!
Posted: Sat Nov 22, 2008 08:40 PM
expbuild.prg
// Expression Builder Dialog
// FiveWin - Dialog tools

#include "FiveWin.ch"
#include "resource\ExpBuild.ch"

//----------------------------------------------------------------------------//

function cGetExpression( cExpression, cTitle )

   local oDlg, oExpr, oLbxAreas, oFields, cTemp
   local aUnDo  := { "" }
   local cAlias := "", cField := ""

   DEFAULT cExpression := Space( 100 ),;
           cTitle := "Expression builder"

   cTemp = PadR( cExpression, 100 )

   DEFINE DIALOG oDlg RESOURCE "ExpBuilder" TITLE cTitle

   REDEFINE GET oExpr VAR cTemp ID ID_EXPR OF oDlg

   REDEFINE LISTBOX cAlias ITEMS aGetWorkAreas() ;
      ID ID_WORKAREAS OF oDlg ;
      ON CHANGE ShowFields( cAlias, oFields )

   REDEFINE LISTBOX oFields VAR cField ID ID_FIELDS OF oDlg ;
      ON DBLCLICK ExprAdd( " " + cAlias + "->" + ;
                  SubStr( cField, 1, At( Chr( 9 ), cField ) - 1 ),;
                  @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_EQUAL OF oDlg ;
      ACTION ExprAdd( " = ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_NOEQUAL OF oDlg ;
      ACTION ExprAdd( " <> ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_AND OF oDlg ;
      ACTION ExprAdd( " .and. ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_PLUS OF oDlg ;
      ACTION ExprAdd( " + ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_LESS OF oDlg ;
      ACTION ExprAdd( " < ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_GREATER OF oDlg ;
      ACTION ExprAdd( " > ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_OR OF oDlg ;
      ACTION ExprAdd( " .or. ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_MINUS OF oDlg ;
      ACTION ExprAdd( " - ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_MINUSEQUAL OF oDlg ;
      ACTION ExprAdd( " <= ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_GREATEREQUAL OF oDlg ;
      ACTION ExprAdd( " >= ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_NOT OF oDlg ;
      ACTION ExprAdd( " .not. ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_TIMES OF oDlg ;
      ACTION ExprAdd( " * ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_LPAREN OF oDlg ;
      ACTION ExprAdd( " ( ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_RPAREN OF oDlg ;
      ACTION ExprAdd( " ) ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_CONTAINS OF oDlg ;
      ACTION ExprAdd( " $ ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_DIVIDE OF oDlg ;
      ACTION ExprAdd( " / ", @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_DATES OF oDlg ;
      ACTION Functions()

   REDEFINE BUTTON ID ID_STRING OF oDlg ;
      ACTION Functions()

   REDEFINE BUTTON ID ID_NUMERIC OF oDlg ;
      ACTION Functions()

   REDEFINE BUTTON ID ID_OBJECT OF oDlg ;
      ACTION Functions()

   REDEFINE BUTTON ID ID_UNDO OF oDlg ACTION UnDo( @cTemp, oExpr, aUnDo )

   REDEFINE BUTTON ID ID_CHECK OF oDlg ;
      ACTION If( At( Type( cTemp ), "UIUE" ) == 0,;
                 MsgInfo( "Correct expression" ),;
                 MsgAlert( "Invalid expression" ) )

   ACTIVATE DIALOG oDlg CENTERED

   if oDlg:nResult == IDOK
      cExpression = AllTrim( cTemp )
   endif

return cExpression

//----------------------------------------------------------------------------//

static function UnDo( cTemp, oExpr, aUnDo )

   if Len( aUnDo ) > 0
      cTemp = PadR( ATail( aUnDo ), 100 )
      oExpr:Refresh()
      ASize( aUnDo, Len( aUnDo ) - 1 )
   else
      Tone( 900, 2 )
   endif

return nil

//----------------------------------------------------------------------------//

static function ExprAdd( cNew, cExpr, oExpr, aUnDo )

   AAdd( aUnDo, RTrim( cExpr ) )
   cExpr = PadR( RTrim( cExpr ) + cNew, 100 )
   oExpr:Refresh()

return nil

//----------------------------------------------------------------------------//

static function ShowFields( cAlias, oLbx )

   local aFields
   local n

   aFields = ( cAlias )->( DbStruct() )
   oLbx:Reset()

   for n = 1 to Len( aFields )
      oLbx:Add( aFields[ n ][ 1 ] + Chr( 9 ) + ;
                aFields[ n ][ 2 ] + ;
                xPadL( Str( aFields[ n ][ 3 ], 3 ), 20 ) + ;
                xPadL( Str( aFields[ n ][ 4 ], 1 ), 10 ) )
   next

   oLbx:GoTop()

return nil

//----------------------------------------------------------------------------//

static function Functions()

   local oDlg

   DEFINE DIALOG oDlg RESOURCE "Functions"

   ACTIVATE DIALOG oDlg CENTERED

return nil

//----------------------------------------------------------------------------//


expbuild.ch
// FiveWin Expression Builder resources identifiers

#define ID_EXPR         110
#define ID_WORKAREAS    120
#define ID_FIELDS       130
#define ID_VARIABLES    140
#define ID_EQUAL        150
#define ID_NOEQUAL      160
#define ID_AND          170
#define ID_PLUS         180
#define ID_LESS         190
#define ID_DELALL	106
#define ID_GREATER      200
#define ID_OR           210
#define ID_MINUS        220
#define ID_MINUSEQUAL   230
#define ID_GREATEREQUAL 240
#define ID_NOT          250
#define ID_TIMES        260
#define ID_LPAREN       270
#define ID_RPAREN       280
#define ID_CONTAINS     290
#define ID_DIVIDE       300
#define ID_DATES        310
#define ID_STRING       320
#define ID_NUMERIC      330
#define ID_OBJECT       340
#define ID_UNDO         350
#define ID_CHECK        360

#define ID_NAMES        110


expbuild.rc
// FiveWin Expression Builder resources

#include "..\include\WinApi.ch"
#include "ExpBuild.ch"
#include "ExpType.rc"

EXPBUILDER DIALOG 23, 49, 246, 129
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Expression Builder"
FONT 8, "Arial"
{
 LTEXT "&Expression:", -1, 5, 1, 38, 8
 EDITTEXT ID_EXPR, 3, 10, 240, 12
 LTEXT "&WorkAreas", -1, 5, 27, 37, 8
 LISTBOX ID_WORKAREAS, 4, 38, 49, 75, LBS_NOTIFY | WS_BORDER | WS_BORDER | WS_VSCROLL | WS_TABSTOP
 LTEXT "&Fields", -1, 58, 27, 20, 8
 LISTBOX ID_FIELDS, 58, 38, 49, 75, LBS_NOTIFY | WS_BORDER | LBS_USETABSTOPS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
 LTEXT "&Variables", -1, 112, 27, 32, 8
 LISTBOX ID_VARIABLES, 112, 38, 49, 75, LBS_NOTIFY | WS_BORDER | WS_BORDER | WS_VSCROLL | WS_TABSTOP
 PUSHBUTTON "=", ID_EQUAL, 169, 29, 16, 13
 PUSHBUTTON "<>", ID_NOEQUAL, 187, 29, 16, 13
 PUSHBUTTON "AND", ID_AND, 204, 29, 21, 13
 PUSHBUTTON "+", ID_PLUS, 227, 29, 16, 13
 PUSHBUTTON "<", ID_LESS, 169, 43, 16, 13
 PUSHBUTTON ">", ID_GREATER, 187, 43, 16, 13
 PUSHBUTTON "OR", ID_OR, 204, 43, 21, 13
 PUSHBUTTON "-", ID_MINUS, 227, 43, 16, 13
 PUSHBUTTON "<=", ID_MINUSEQUAL, 169, 57, 16, 13
 PUSHBUTTON ">=", ID_GREATEREQUAL, 187, 57, 16, 13
 PUSHBUTTON "NOT", ID_NOT, 204, 57, 21, 13
 PUSHBUTTON "*", ID_TIMES, 227, 57, 16, 13
 PUSHBUTTON "(", ID_LPAREN, 169, 72, 16, 13
 PUSHBUTTON ")", ID_RPAREN, 187, 72, 16, 13
 PUSHBUTTON "$", ID_CONTAINS, 204, 72, 21, 13
 PUSHBUTTON "/", ID_DIVIDE, 227, 72, 16, 13
 PUSHBUTTON "&Date", ID_DATES, 169, 86, 34, 12
 PUSHBUTTON "&String", ID_STRING, 204, 86, 39, 12
 PUSHBUTTON "&Numeric", ID_NUMERIC, 169, 99, 34, 12
 PUSHBUTTON "&Object", ID_OBJECT, 204, 99, 39, 12
 PUSHBUTTON "&UnDo", ID_UNDO, 89, 114, 30, 13
 PUSHBUTTON "C&heck", ID_CHECK, 125, 114, 30, 13
 PUSHBUTTON "&Ok", 1, 53, 114, 30, 13
 PUSHBUTTON "&Cancel", IDCANCEL, 161, 114, 31, 13
}


exptype.rc
FUNCTIONS DIALOG 41, 42, 141, 104
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Select a function"
FONT 8, "Arial"
{
 LTEXT "Functions", 240, 3, 3, 68, 8
 LISTBOX ID_NAMES, 3, 13, 101, 89, LBS_NOTIFY | WS_BORDER | LBS_USETABSTOPS | WS_BORDER | WS_VSCROLL
 PUSHBUTTON "&Select", ID_OK, 108, 12, 29, 12
 PUSHBUTTON "&Cancel", IDCANCEL, 108, 27, 29, 12
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
To Antonio :urgent!
Posted: Sat Nov 22, 2008 08:59 PM

THANKS VERY THANKS

I must save the command in a string .

it was searched by me from long time...

Best Regards, Saludos



Falconi Silvio

Continue the discussion