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
Falconi Silvio
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.?
// 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
//----------------------------------------------------------------------------//// 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// 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
}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
}THANKS VERY THANKS
I must save the command in a string .
it was searched by me from long time...