FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Concantonate two fields in xBrowse
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Concantonate two fields in xBrowse
Posted: Wed Jul 07, 2010 03:51 PM
To All

Consider this code .. I want to concantonate the fname+", "+mname on one column .. here is the code :

Code (fw): Select all Collapse
DEFINE DIALOG oDlg RESOURCE "DRVRSLCT"               ;
       COLOR "W+/W"                                  ;
       TITLE "DRIVER Select for Agency "+xAGENCY     ;

        REDEFINE xBROWSE oLBX               ;
        RECORDSET oRsDrvr                   ;
        COLUMNS                             ;
        'LNAME',                            ;
        SUBSTR( ALLTRIM(oRsDrvr:Fields("FNAME"):Value)+", "+ALLTRIM(oRsDrvr:Fields("MNAME"):Value)+SPACE(30),1,30),   ;  
       'ACTIVE'                            ;
       COLSIZES 95,80, 40                  ;
       HEADERS "Lname",                    ;
             "Fname",                    ;
             "Act"                       ;
       ID 111 of oDlg                      ;
      AUTOSORT AUTOCOLS LINES CELL


The code breaks on the concantonation of fname+mname .. is there a way to combine both fields in one column ?

Thanks
Rick Lipkin
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Concantonate two fields in xBrowse
Posted: Wed Jul 07, 2010 05:11 PM
Code (fw): Select all Collapse
REDEFINE XBROWSE oLbx RECORDSET oRsDrvr ;
   COLUMNS 'Lname', 'Active' ;
   FIELDS  PADR( ALLTRIM(oRsDrvr:Fields("FNAME"):Value)+", "+ALLTRIM(oRsDrvr:Fields("MNAME"):Value), 30 ) ;
   HEADERS nil, 'Act', 'Fname' ;
   ORDERS nil, nil, 'FNAME' ;
   COLSIZES 95, 40, 80 ;
   ID 111 OF oDlg AUTOSORT LINES CELL
   
/*
Notes:
   Because we wrote 'Lname' in COLUMNS clause the header will be 'Lname' not 'LNAME'
   We may not use AUTOCOLS when we are specifying COLUMNS / FIELDS clause

   COLUMNS clause for independent columns only
   FIELDS clause for expressions.
   XBrowse automatically knows the sort order for columns.
   For expressions, we have to indicate the sort order.
   
   Now, we have columns in the order LNAME, ACT, FNAME.
   We need to rearrange them in the order LNAME, FNAME, ACT
   
   We can rearrange in two ways

*/


   // rearrange by moving columns
   oBrw:MoveCol( 3, 2 ) // let us move column 'Fname' to second position.
   // OR tell the xbrowse what order we want
   oBrw:ReArrangeCols( { "LNAME", "FNAME", "ACT" } )
Regards



G. N. Rao.

Hyderabad, India
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: Concantonate two fields in xBrowse
Posted: Wed Jul 07, 2010 06:05 PM
Rao

Your second suggestion worked GREAT .. here is the code that worked :

Code (fw): Select all Collapse
REDEFINE xBROWSE oLbx     ;
       RECORDSET oRsDrvr         ;
       COLUMNS 'Lname', 'Active' ;
       FIELDS  PADR( ALLTRIM(oRsDrvr:Fields("FNAME"):Value)+", "+ALLTRIM(oRsDrvr:Fields("MNAME"):Value), 30 ) ;
       HEADERS nil, 'Active', 'Fname';
       ORDERS nil, nil, 'FNAME'   ;
       COLSIZES 105, 60, 105      ;
       ID 111 OF oDlg             ;
       AUTOSORT LINES CELL

     oLbx:MoveCol( 3, 2 )
     *  oLbx:ReArrangeCols( { "LNAME", "FNAME", "ACT" } )


The oLbx:ReArrangeCols .. errored out with but I am using FWH 910 as well :

Code (fw): Select all Collapse
Application
===========
   Path and name: C:\FOX\DHEC\VEHSQL-NEW\Veh32.Exe (32 bits)
   Size: 3,510,272 bytes
   Time from start: 0 hours 0 mins 15 secs 
   Error occurred at: 07/07/2010, 13:55:17
   Error description: Warning BASE/1005  Message not found: TXBRWCOLUMN:_CREATIONORDER
   Args:

Stack Calls
===========
   Called from: source\rtl\tobject.prg => TXBRWCOLUMN:ERROR(172)
   Called from: source\rtl\tobject.prg => TXBRWCOLUMN:MSGNOTFOUND(205)
   Called from: source\rtl\tobject.prg => TXBRWCOLUMN:_CREATIONORDER(0)
   Called from: .\source\classes\XBROWSE.PRG => (b)TXBROWSE:REARRANGECOLS(4967)
   Called from:  => AEVAL(0)
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:REARRANGECOLS(4967)
   Called from: DRVRSLCT.PRG => DRVRGET(88)
   Called from: PTRPVIEW.PRG => (b)_PTRPVIEW(144)
   Called from: .\source\classes\TGET.PRG => TGET:LVALID(1197)
   Called from: .\source\classes\CONTROL.PRG => TGET:FWLOSTFOCUS(923)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1448)
   Called from: .\source\classes\TGET.PRG => TGET:HANDLEEVENT(586)
   Called from: .\source\classes\WINDOW.PRG => _FWH(3347)
   Called from:  => SYSREFRESH(0)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:KEYCHAR(730)
   Called from: .\source\classes\TGET.PRG => TGET:KEYCHAR(1105)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1469)
   Called from: .\source\classes\TGET.PRG => TGET:HANDLEEVENT(586)
   Called from: .\source\classes\WINDOW.PRG => _FWH(3347)
   Called from:  => DIALOGBOX(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(273)
   Called from: PTRPVIEW.PRG => _PTRPVIEW(205)
   Called from: PTRPBROW.PRG => (b)_PTRPBROW(106)
   Called from: .\source\classes\BUTTON.PRG => TBUTTON:CLICK(176)
   Called from: .\source\classes\CONTROL.PRG => TBUTTON:HANDLEEVENT(1427)
   Called from: .\source\classes\WINDOW.PRG => _FWH(3347)
   Called from:  => SENDMESSAGE(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:COMMAND(407)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT(928)
   Called from:  => DIALOGBOX(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(273)
   Called from: PTRPBROW.PRG => _PTRPBROW(149)
   Called from: RESBROW.PRG => (b)_RBROW(297)
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:LDBLCLICK(1860)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:LDBLCLICK(1484)
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:LDBLCLICK(3363)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1469)
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT(10158)
   Called from: .\source\classes\WINDOW.PRG => _FWH(3347)
   Called from:  => WINRUN(0)
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE(966)
   Called from: MAIN.PRG => MAIN(411)


Thanks for your help ONCE again!

Rick

Continue the discussion