eXpress++ 2.0 build 261 is released

Announcements about new features or events.
Post Reply
Message
Author
User avatar
rdonnay
Site Admin
Posts: 4728
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

eXpress++ 2.0 build 261 is released

#1 Post by rdonnay »

This is going to be a big year for eXpress++ and Xbase++ 2.0. We are planning many improvements and additions as Alaska continues its development and documentation of Xbase++ 2.0. There will be much discussion of the features of Xbase++ 2.0 at the eXpress++ spring devcon in May 2015. eXpress++ will continue to be supported for Xbase++ 1.9 (331), Xbase++ 1.9 SLE (355) and Xbase++ 2.0. All new features, improvements and bug fixes in eXpress++ will apply to all Xbase++ versions except those that are specific to 2.0. At this moment, there are almost no features specific to 2.0 but that will probably change soon.

If your subscription is up-to-date, please send me an email for download instructions. Soon, there will be a login on our webpage for subscribers which will allow you to always download any version going back to 2008. I will announce when this is available. For now, just send me an email.

Code: Select all

           ---------------- New to 2.0 (build 261) ----------

 1363. Added new NAVMODE <nNavMode> clasue to @..DCBROWSE. This is an option
       that controls the way the browse handles navigation.  The default
       is XBPBRW_NAVIGATION_SYSTEM. The other option is
       XBPBRW_NAVIGATION_1XCOMPATIBLE. This option is available only in Xbase++
       2.0 or later. See the Alaska documentation for XbpBrowse:navigationMode.

 1362. The \exp20\util folder now contains a file named PATHFOUND.PRG and
       PATHFOUND.EXE.  This utility searches your path for each occurrence of
       a file to help debug pathing problems.

       Usage:

       "PATHFOUND ace32.dll" will search the path established by SET PATH
       for aced32.dll.

       "PATHFOUND dcdialog.ch INCLUDE" will search the path established by SET
       INCLUDE for dcdialog.ch.

 1361. The folder \exp20\PSCRIPT now contains a set of files for writing
       reports using the PageScript system from ABEE. DCPS.CH and DCPS.PRG
       contain commands and functions to use this excellent print engine with
       eXpress++ style commands.  DCPS commands are similar to DCPRINT
       commands except they use the PSCRIPT.DLL print engine.  This print
       engine will create PDF files, includes a print preview, and also
       supports bar codes. Run PBUILD PSTEST.XPJ and the run PSTEST.EXE to
       view the sample programs.

 1360. The DCSUBMENU..OWNERDRAW system will now allow icons and bitmaps of any
       size. They will automatically scale to fit the menu.

 1359. Fixed a bug in DCDIALOG.CH which fails to apply the HIDE clause to the
       SAY object of DCSAY..GET.

 1358. The Record tagging system is now threadsafe.  DC_Tagged(),
       DC_RecTagToggle(), DC_RecTagClear() are all affected by this change.

 1357. Rolled back the DCBROWSE tagging system to the code in build 259. There
       were too many reports of it not working correctly and it became too
       difficult to determine how to fix the code in a timely manner.  The
       improvements made by JD may be added again in the future.

 1356. Added new function: DC_ApplySQLParams(). This is used to apply local
       variable data into a SQL statement and properly format it for SQL.

 1355. Added new function: DC_Var2SQL(). This is used to convert an Xbase++
       value to a SQL value for creating SQL statements.

 1354. Added new function: DC_Array2SQLInsert( <aData>, <cTable> ).  This is
       used to create a SQL statement for inserting records into a database.
       <aData> can be an single-dimensional array of record objects or a
       multi-dimensional array of values that match the order of the fields in
       the database.

 1353. Added new <cRecordNum> parameter to DC_DbGather().  This is the name of
       a numeric field that contains the current record number.  It will be
       updated with the RecNo().  This is handy when a record number field is
       required in SQL queries and it needs to be maintained.

 1352. Added new <nLockingMode> parameter to DC_AdsStatement():new(). This
       allows SQL statements to work with compatible locking.

 1351. Added a new <lNoSpawn> parameter to DC_PrintPreviewXPSWriter(). Also,
       added a NOSPAWN subclause to the XPSWRITER clause of DCPRINT ON.
       This prevents the XPS file from being viewed by the Document Writer.

 1350. Added new batch file: MAKEDLL.BAT to .\UTILS. Use this when you want to
       create code that you can run from an XDOT.EXE dot prompt.  For example,
       if you need to test functions, it is often simpler to put them into a
       DLL and then load the DLL from the dot prompt. After that you can then
       call the functions with appropriate parameters from the dot prompt.
       Here is how you would use it.

       From a DOS prompt run MAKEDLL test.
       This will create TEST.DLL from TEST.PRG.

       From a XDot.EXE DOT prompt run DLL LOAD test.
       From a XDot.EXE DOT prompt call any of the functions in TEST.PRG.
       Ex. MyTestFunction( 23, Date() )

 1349. Added 3 new parameters to DC_WorkArea2Excel().  <lFreezeRow1>
       (default TRUE) causes the first row of the Excel sheet to be bold font
       and locked from scrolling. <lCSVFallBack> (default FALSE) causes a CSV
       file to be created in the event that the Excel ActiveX control cannot
       be loaded. <aColumnNames> is a 1-dimensional array with the names of
       the columns.  Default is the field name.

 1348. Fixed a regression bug in DC_DbSkip() when using DC_SetScopeArray().
       DC_Eof() failed to report end of file.

 1347. Fixed a bug in DCBROWSECOL .. HIDE that doesn't restore the
       useVisualStyle when the column is shown again.

 1346. Changed DC_DbRecordClone() to not require an alias to clone the record.

 1345. Added new function: DC_TimeToSec(). Converts a time string to seconds.

 1344. Added new function: DC_DbRecordTrim(). Trims all trailing spaces from
       character string values in a record object.

 1343. Added new function: DC_TestLockEnable().

 1342. Fixed a problem with DCSTATUSBARs when the dialog has no title bar
       and/or no border.

 1341. DC_WorkArea2Excel() now trims fields that are type C or M.

 1340. Added Sub Classing support to the DC_XbpMenu() and DC_XbpMenuBar()
       classes.

 1339. DCPUSHBUTTONXP will now paint the background of the button in the
       Windows visual style if the ::bgColor is GRA_CLR_BACKGROUND and a
       manifest file is used.

 1338. Added new SQL command and new DC_AdsSqlStatement() function.  This
       provides a functionality equal to the SQL SELECT feature of Xbase++
       2.0, however it only works with Advantage Server and a Data Dictionary.
       Look at the sample program in \exp20\samples\adssql\SqlTest.prg.  The
       command resides in DCADS.CH. The SQL command will return the result set
       in a workarea, in an array, or in an array of objects or all of them.

 1337. Added new functions for converting Xbase++ arrays and objects to
       JSON or XML.  DC_Array2JS(), DC_Object2JS(), DC_Array2XML(),
       DC_Object2XML().

 1336. Added a new ANCHOR clause to the DCSTATUSBAR command.  This option is
       used to anchor child items to the left rather than the right side of
       the status bar (default).
       Ex: DCSTATUSBAR oStat ALIGN DCGUI_ALIGN_BOTTOM ANCHOR DCGUI_ALIGN_LEFT

 1335. Fixed a regression in DCPUSHBUTTON..FANCY that caused the caption
       bitmap object to be destroyed.  This was a regression in build 260.
       Everything related to DCPUSHBUTTON..FANCY that was added in build 260
       has been rolled back to how it was in build 259.

 1334. Fixed a bug in the BUSY clause of DCREAD GUI that sometimes causes menu
       items to be disabled.

 1333. Fixed a regression in eXpress++ build 260 that caused a flicker on
       tabpages when a tabpage receives focus.

 1332. Fixed a bug in DC_InspectThreads(). The workarea dump routine could
       leave a different work area selected.

 1331. Fixed a bug in DC_DbRecordCopy() and DC_DbRecordClone() that did not
       copy the contents of the RECORD_NUMBER and RECORD_DELETED iVars.
The eXpress train is coming - and it has more cars.

Cliff Wiernik
Posts: 605
Joined: Thu Jan 28, 2010 9:11 pm
Location: Steven Point, Wisconsin USA
Contact:

Re: eXpress++ 2.0 build 261 is released

#2 Post by Cliff Wiernik »

Did we have discussions at the SWXbase Devcon about making the Navigation mode to default to the 1x format so that all users did not have to change every browse to keep it 1.x compatible if desired. Or could that be a configurable global option. I know it can be configured on a browse by browse basis.

User avatar
rdonnay
Site Admin
Posts: 4728
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: eXpress++ 2.0 build 261 is released

#3 Post by rdonnay »

Cliff -

Thanks for catching that.
I made a mistake in the README.TXT file.
We did agree that the default would be XBPBRW_NAVIGATION_1XCOMPATIBLE and that is the way it is coded.

I will correct the README.TXT file.
The eXpress train is coming - and it has more cars.

Cliff Wiernik
Posts: 605
Joined: Thu Jan 28, 2010 9:11 pm
Location: Steven Point, Wisconsin USA
Contact:

Re: eXpress++ 2.0 build 261 is released

#4 Post by Cliff Wiernik »

Just testing my reading skills. Did you include any of the CXP stuff in the samples?

User avatar
rdonnay
Site Admin
Posts: 4728
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: eXpress++ 2.0 build 261 is released

#5 Post by rdonnay »

I wanted first to get the binaries, source code and documentation released.

CXP Samples will be coming this week.

They don't affect the source code.

I will post a zip file and you can copy them to your \exp20261\samples folder.

I will probably release a build 262 before our devcon in May.
It will include the samples.
The eXpress train is coming - and it has more cars.

Wolfgang Ciriack
Posts: 479
Joined: Wed Jan 27, 2010 10:25 pm
Location: Berlin Germany

Re: eXpress++ 2.0 build 261 is released

#6 Post by Wolfgang Ciriack »

Hi Roger,
We did agree that the default would be XBPBRW_NAVIGATION_1XCOMPATIBLE and that is the way it is coded.
That seem not do be the default, all my browses are working in the new default mode for XBase 2.0.
Only if i set expizit NAVMODE XBPBRW_NAVIGATION_1XCOMPATIBLE for the DCBROWSE, the 1.9 behavior is set.
It would be nice if this could be set for all Browses as default.
_______________________
Best Regards
Wolfgang

User avatar
rdonnay
Site Admin
Posts: 4728
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: eXpress++ 2.0 build 261 is released

#7 Post by rdonnay »

This is a NEW default setting for build 261.

The default is now XBPBRW_NAVIGATION_1XCOMPATIBLE
The eXpress train is coming - and it has more cars.

Wolfgang Ciriack
Posts: 479
Joined: Wed Jan 27, 2010 10:25 pm
Location: Berlin Germany

Re: eXpress++ 2.0 build 261 is released

#8 Post by Wolfgang Ciriack »

I have tested it with 261 ?!?!
_______________________
Best Regards
Wolfgang

User avatar
rdonnay
Site Admin
Posts: 4728
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: eXpress++ 2.0 build 261 is released

#9 Post by rdonnay »

I must be going crazy.
I specifically wrote the code to force :navigationMode to be XBPBRW_NAVIGATION_1XCOMPATIBLE as the default.
This is the code:

Code: Select all

#if XPPVER > 02000000
IF Valtype(aArray[52]) == 'N'
  ::navigationMode := aArray[52]
ELSE
  ::navigationMode := XBPBRW_NAVIGATION_1XCOMPATIBLE
ENDIF
#endif
When I went back to look at the code it was changed to XBPBRW_NAVIGATION_SYSTEM.

I changed it back the way it should be.
I am going to update build 261 with this change rather than a new build number.

Here is the source.
Copy it to your \exp20\source\dclipx folder and run BUILD20.BAT to rebuild DCLIPX.DLL.

Sorry for that confusion.
Attachments
_dcxbrow.zip
(29.32 KiB) Downloaded 828 times
The eXpress train is coming - and it has more cars.

Wolfgang Ciriack
Posts: 479
Joined: Wed Jan 27, 2010 10:25 pm
Location: Berlin Germany

Re: eXpress++ 2.0 build 261 is released

#10 Post by Wolfgang Ciriack »

Thanks Roger, it works now :dance:
_______________________
Best Regards
Wolfgang

Post Reply