Contributed works of Andrés González López
Anchor Windows (ON MOUSEDRAG)
Bos Taurus – Incredible !!!
DEFINE REPORT (with filtered data)
Demo Debug
Generate PDF files
Improved interfaces (Label Button)
My color list (i_color.ch)
Anchor Windows (ON MOUSEDRAG)
Bos Taurus – Incredible !!!
DEFINE REPORT (with filtered data)
Demo Debug
Generate PDF files
Improved interfaces (Label Button)
My color list (i_color.ch)
File Name: HMG.3.0.46.exe
File Size: 38.91 MB
Date: 06. November 2012
– Update to latest Harbour Nightly Build (18443 2012-11-05)
– New
– Print Barcode sample. See samples/printean13 folder for details. (Contributed by Marek Olszewski)
– Desktop Make Shortcut for file/dir and URLs in HFCL. See sample at hfcl/samples/makeshortcut folder. (Contributed by B.P Dave and Esgici)
– buildalllib.bat in the base directory to build all the libraries including hmg, hfcl, hmgsqlbridges, crypt, edit, editex, ini, graph, report etc with a single call.
– Included hbvpdf library in HMG library folder. This library is required to compile all the samples in samples/report.advanced folders.
– Update
– Bos Taurus Graphics library 1.01. Author Claudio Soto had modified the source files to make it compatible for HFCL. (Thanks to Claudio Soto)
– Updated BT_BitmapLoadFile() fuction, now load images in the formats: BMP, GIF, JPG, TIF and PNG.
– Added Functions:
– BT_BitmapInvert
– BT_BitmapContrast
– BT_BitmapModifyColor
– BT_BitmapGammaCorrect
– BT_BitmapConvolutionFilter3x3
– Updated BosTaurus-FunctionsReferenceGuide.PDF with changes made.
– Added Demo10
– HMG_HPDF Library in HFCL. Now the image command accepts both jpg and png file formats from either file or resource location. (Contributed by Claudio Soto)
– Fix
– Number of warnings while compiling the HMG library is now reduced to only six. Great thanks to Claudio Soto.
– Hardcoded Path name references in batch files. Now HMG can be installed any path (having no spaces).
User Interface
? | ?? | Display one or more values to the console |
@…BOX | Draw a box on the screen |
@…CLEAR | Clear a rectangular region of the screen |
@…GET | Build a new Get object and display it to the screen |
@…PROMPT | Paint a menu item and define a message |
@…SAY | Display data at a specified screen or printer row and column |
@…TO | Draw a single- or double-line box |
ACCEPT* | Place keyboard input into a memory variable |
CLEAR TYPEAHEAD | Empty the keyboard buffer |
DISPLAY | Display records to the console |
INPUT* | Enter the result of an expression into a variable |
KEYBOARD | Stuff a string into the keyboard buffer |
LIST | List records to the console |
MENU TO | Execute a lightbar menu for defined PROMPTs |
READ | Activate full-screen editing mode using Get objects |
RESTORE SCREEN* | Display a saved screen |
SAVE SCREEN* | Save the current screen to a buffer or variable |
SET BELL | Toggle sounding of the bell during full-screen operations |
SET COLOR* | Define screen colors |
SET CONFIRM | Toggle required exit key to terminate GETs |
SET CONSOLE | Toggle console display to the screen |
SET CURSOR | Toggle the screen cursor on or off |
SET DECIMALS | Set the number of decimal places to be displayed |
SET DELIMITERS | Toggle or define GET delimiters |
SET ESCAPE | Toggle Esc as a READ exit key |
SET FIXED | Toggle fixing of the number of decimal digits displayed |
SET FORMAT* | Activate a format when READ is executed |
SET FUNCTION | Assign a character string to a function key |
SET INTENSITY | Toggle enhanced display of GETs and PROMPTs |
SET MESSAGE | Set the @…PROMPT message line row |
SET SCOREBOARD | Toggle the message display from READ or MEMOEDIT() |
SET TYPEAHEAD | Set the size of the keyboard buffer |
SET WRAP* | Toggle wrapping of the highlight in menus |
TEXT* | Display a literal block of text |
WAIT* | Suspend program processing until a key is pressed |
APPEND BLANK | Add a new record to the current database file |
APPEND FROM | Import records from a database (.dbf) file or ASCII text file |
AVERAGE | Average numeric expressions in the current work area |
CONTINUE | Resume a pending LOCATE |
COPY STRUCTURE | Copy the current .dbf structure to a new database (.dbf) file |
COPY STRUCTURE EXTENDED | Copy field definitions to a .dbf file |
COPY TO | Export records to a database (.dbf) file or ASCII text file |
COUNT | Tally records to a variable |
CREATE | Create an empty structure extended (.dbf) file |
CREATE FROM | Create a new .dbf file from a structure extended file |
DELETE | Mark records for deletion |
DELETE TAG | Delete a tag |
FIND* | Search an index for a specified key value |
GO | Move the pointer to the specified identity |
INDEX | Build an index file |
JOIN | Build new database file by merging from two work areas |
LOCATE | Search sequentially for a record matching a condition |
PACK | Remove deleted records from a database file |
RECALL | Restore records marked for deletion |
REINDEX | Rebuild open indexes in the current work area |
REPLACE | Assign new values to field variables |
SEEK | Search an order for a specified key value |
SELECT | Change the current work area |
SET AUTOPEN | Toggles automatic opening of a structural index file |
SET AUTORDER | Defines the default controlling index for automatically opened index files |
SET AUTOSHARE | Defines network detection for shared file access |
SET DELETED | Toggle filtering of deleted records |
SET DESCENDING | Change the descending flag of the controlling order |
SET EXCLUSIVE* | Establish shared or exclusive USE of database files |
SET FILTER | Hide records not meeting a condition |
SET INDEX | Open one or more order bags in the current work area |
SET MBLOCKSIZE | Change the block size for memo files |
SET ORDER | Select the controlling order |
SET RELATION | Relate two work areas by a key value or record number |
SET SCOPE | Change the boundaries for scoping keys in controlling order |
SET SCOPEBOTTOM | Change bottom boundary for scoping keys in controlling order |
SET SCOPETOP | Change top boundary for scoping keys in controlling order |
SET SOFTSEEK | Toggle relative seeking |
SET STRICTREAD | Toggles read optimization for database access |
SET UNIQUE* | Toggle inclusion of non-unique keys into an index |
SKIP | Move the record pointer to a new position |
SORT | Copy to a database (.dbf) file in sorted order |
SUM | Sum numeric expressions and assign results to variables |
TOTAL | Summarize records by key value to a database (.dbf) file |
UNLOCK | Release file/record locks set by the current user |
UPDATE | Update current database file from another database file |
USE | Open an existing database (.dbf) and its associated files |
ZAP | Remove all records from the current database file |
CANCEL | Terminate program processing |
DO* | Executes a function or procedure |
QUIT | Terminate program processing |
RUN | Execute a OS command or program |
SET KEY | Assign a procedure invocation to a key |
NOTE* | Place a single-line comment in a program file |
SET PROCEDURE* | Compile procedures and functions into the current object file |
CLEAR ALL* | Close files and release public and private variables |
CLEAR GETS | Release Get objects from the current GetList array |
CLEAR MEMORY | Release all public and private variables |
CLEAR SCREEN | Clear the screen and return the cursor home |
RELEASE | Delete public and private memory variables |
RESTORE | Retrieve memory variables from a memory (.mem) file |
SAVE | Save variables to a memory (.mem) file |
STORE* | Assign a value to one or more variables |
SET EXACT | Toggle exact matches for character strings |
CLOSE | Close a specific set of files |
COMMIT | Perform a solid-disk write for all active work areas |
COPY FILE | Copy a file to a new file or to a device |
DELETE FILE | Remove a file from disk |
DIR* | Display a listing of files from a specified path |
ERASE | Remove a file from disk |
RENAME | Change the name of a file |
SET ALTERNATE | Echo console output to a text file |
SET DEFAULT | Set the application default drive and directory |
SET DEVICE | Direct @…SAYs to the screen or printer |
SET PATH | Specify the CA-Clipper search path for opening files |
TYPE | Display the contents of a text file |
EJECT | Advance the printhead to top of form |
SET MARGIN | Set the page offset for all printed output |
SET PRINTER | Toggle echo of output to printer or set the print destination |
LABEL FORM | Display labels to the console |
REPORT FORM | Display a report to the console |
SET CENTURY | Modify the date format to include or omit century digits |
SET DATE | Set the date format for input and display |
SET EPOCH | Control the interpretation of dates with no century digits |
HMG-IDE Harbour MiniGUI Integrated Development Environment is a comprehensive and highly sophisticated project management utility. It is also extremely facilitated to easily use.
It’s possible to build and manage an entire project from scratch under this utility; without needing cryptic batch command ( .bat ) file, without interesting endless compiler / linker switches, etc.
HMG-IDE is more than a project maker :
HMG-IDE come as two flawor : ANSI and Unicode versions. Dont worry about it, this two version works almost exectly same; only difference is Unicode supoort. You may use either depending on either your need to Unicode or not.
HMG-IDE has four part :
– Control Panel : This main window is constituted on a menu bar and a tool box, having many command buttons with descriptive tool tips.
– Project Browser : You can view, select and inspect all project elements in this window. henever you add or exclude a project element (module (program source file), form, resource, report …), IDE automatically updates the project browser.
– Object Inspector : This window is for view and change properties and events of GUI elements in your forms.
– Form design board : A chalk board for designing forms and directing its graphical elements.
SFRR_HCODE() Short: ------ SFRR_HCODE() Output report definition to .PRG code Returns: -------- Nothing Syntax: ------- SFRR_HCODE() Description: ------------ SFRR_HCODE will present you with a menu-driven interface to allow selection of output options for a hard-coded .PRG file for a given saved report. You will be presented options for : SOURCE Report Definition and OUTPUT .PRG file name (you choose) Once these are selected, you may do a translation into .PRG code. The .PRG will do all of the setup needed to call SFRR_PMAIN() - the main print routine called by both REPORT() and QUICKREPORT(). The .PRG will no longer require the SFREPORT.DBF in order to produce the report. This has been written as a function, so you may incorporate it easily. To produce a stand-alone .EXE to generate report .PRGs, you could do the following: initsup() USE SFREPORT sfrr_hcode() The resulting .PRGs must be called with DO <prgname> If you like, you could make them into a function by issuing a by issuing a FUNCTION <function name> at the top. Examples: --------- initsup() USE SFREPORT sfrr_hcode() Source: ------- R_HCODE.PRG
QUIKREPORT() Short: ------ QUIKREPORT() Runtime pre-defined report printing module Returns: -------- Nothing Syntax: ------- QUIKREPORT([cReportName]) Description: ------------ Presents a picklist of pre-defined reports and prints the selected one. [cReportName] name of the report to run - picklist is bypassed. For batches. Examples: --------- QUIKREPORT('Quarterly Hog Count') Warnings: ---------- Requires DBF and indexes to be open Source: ------- R_QUIKR.PRG
-> Alias assignment--binary (Special) ------------------------------------------------------------------------------ Syntax <idAlias>-><idField> <idAlias>->(<exp>) (<nWorkArea>)-><idField> (<nWorkArea>)->(<exp>) FIELD-><idVar> MEMVAR-><idVar> Operands <idAlias> is the name of the unselected work area to access and must refer to a work area with a database file in USE. <nWorkArea> is the number of the unselected work area to access. <idField> is the name of a field in the specified work area. <exp> is an expression of any data type to be executed in the specified work area. If an expression more complicated than a single field reference is used as the second operand, the expression must be enclosed in parentheses ( ). <idVar> is any valid CA-Clipper identifier. Depending on whether you specify FIELD or MEMVAR, the identifier will be forced to a database field or memory variable (public or private) reference. Description When used with an <idAlias> as the first operand, the alias operator (->) accesses field information or evaluates an expression in the indicated work area. The alias operator implicitly SELECTs the <idAlias> before evaluating the <idField> or <exp> operand. When the evaluation is complete, the original work area is SELECTed again. An alias reference can be in an expression or on a line by itself: ? Customer->Name Customer->(UpdateTransaction()) Using the alias operator lets you: . Access information from unselected work areas within expressions . Access environmental information from unselected work areas . Access information from unselected work areas in modes such as REPORT and LABEL FORMs . Write more compact code In addition to allowing expression and field evaluation in unselected work areas, the alias operator makes an explicit reference to a field or variable using either the FIELD or the MEMVAR keyword aliases. MEMVAR forces <idVar> to refer to a memory variable name, and FIELD forces it to reference a database field. These special alias identifiers allow you to avoid ambiguity when there are conflicts between field and memory variable names. Remember that a reference to a variable identifier not prefaced with an alias defaults to a field if there are both field and memory variables with the same name. To override this, use the (/V) option when compiling. In addition to specifying the alias as an identifier, you can access the target work area using an expression that returns the work area number if the expression is enclosed by parentheses. This lets you use work area numbers as handles, which is useful for passing references to work areas without using macros, aliases, names, etc. Examples . This example accesses database and work area information in an unselected work area: USE Customer NEW USE Invoices NEW ? Customer->CustName // Result: Bill Smith ? Customer->(RECNO()) // Result: 1 ? Customer->(FOUND()) // Result: .F. ? Customer->(City + ", " + State + ; " " + Zip) // Result: ShadowVille, // CA 90415 . This example uses a user-defined function (MySeek()) as an operand of the alias operator for a common operation that normally requires many more statements: IF Invoices->(MySeek(CustNum)) <process customer>... ELSE <process no find>... ENDIF RETURN FUNCTION MySeek( cSearch ) SEEK cSearch RETURN (FOUND()) Note: This example is just an illustration of the alias operator with a user-defined function. CA-Clipper's DBSEEK() could be used instead of MySeek(). . This example explicitly references field and memory variables with the same name: USE Customer NEW MEMVAR->CustName = "Bill Smith" // Create a memvar // CustName LOCATE FOR MEMVAR->CustName = FIELD->CustName . This example uses an expression as a work area handle to create a work area-independent database operation: cTable1 := "C:Myfile.dbf" cTable2 := "D:Myfile.dbf" USE (cTable1) NEW hArea1 = SELECT() USE (cTable2) NEW hArea2 = SELECT() DoStuff( hArea1, hArea2 ) FUNCTION DoStuff( hArea1, hArea2 ) LOCAL nCount, nSave nSave := SELECT() SELECT (hArea1) FOR nCount := 1 TO FCOUNT() FIELDPUT( nCount, ( hArea2 )-> ; ( FIELDGET( nCount ))) NEXT SELECT (nSave) RETURN NIL
See Also: FIELD FIELDNAME() FIELDPOS() FIELDGET() SELECT
Databases (PDF)
Author : G.C. Reddy