Outlook Calendar (prototype)

Re: Outlook Calendar (prototype)

Postby Silvio » Tue Feb 08, 2011 3:56 pm

DANIEL i AM USING YOUR TEST SAMPLE

i CHANGE ONLY TSELEX BECAUSE i NOT HAVE IT WITH

Code: Select all  Expand view
@ 100,10 say "Set Interval :" of oPanel transparent pixel
      @ 100, 80 combobox   oSelex VAR nOption of oPanel PIXEL size 80, 90;
      ITEMS   { "5", "10", "15", "20", "30", "60"} ;
      on change( ::oCalex:oView:SetInterval( Val( oSelex:aItems[ nOption ] ) ),  ::oCalex:refresh() )


i CHANGE ALSO THE CHANGESELEX METHOD

Code: Select all  Expand view

METHOD ChangeSelex() CLASS SampleCalex
      local cInterval := AllTrim( Str( ::oCalex:oView:nInterval * 60, 2 ) )
  // local nAt := AScan( ::oSelex:aOptions, cInterval ) // TSELEX
   local nAt := AScan( ::oSelex:aItems, cInterval ) //TCOMBO
   if nAt != 0  .and. ::oSelex:nOption != nAt
      ::oSelex:SetOption( nAt )
      ::oSelex:Refresh()
   endif
  RETURN nil




BUT THE PROCEDURE MAKE THIS ERROR


LOOK THIS LOG PLS

Code: Select all  Expand view


Application
===========
   Path and name: C:\work\PRG\calex1\sample01.Exe (32 bits)
   Size: 1,722,368 bytes
   Time from start: 0 hours 0 mins 0 secs
   Error occurred at: 02/08/2011, 16:51:03
   Error description: Error BASE/1076  Argument error: >=
   Args:
     [   1] = D   01/31/2011
     [   2] = U  

Stack Calls
===========
   Called from: .\source\prg\tcalex.PRG => TDAYVIEW:BUILDDATES(305)
   Called from: .\source\prg\tcalex.PRG => TDAYVIEW:SETINTERVAL(1232)
   Called from: sample01.prg => SAMPLECALEX:BUILDCALEX(139)
   Called from: sample01.prg => SAMPLECALEX:NEW(78)
   Called from: sample01.prg => MAIN(14)
 
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: Outlook Calendar (prototype)

Postby Silvio » Tue Feb 08, 2011 8:07 pm

I try with the first release of classes and I have this error
viewtopic.php?f=3&t=20836&p=110681#p110681
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: Outlook Calendar (prototype)

Postby Daniel Garcia-Gil » Tue Feb 08, 2011 8:19 pm

Silvio wrote:DANIEL i AM USING YOUR TEST SAMPLE

Code: Select all  Expand view


Application
===========
   Path and name: C:\work\PRG\calex1\sample01.Exe (32 bits)
   Size: 1,722,368 bytes
   Time from start: 0 hours 0 mins 0 secs
   Error occurred at: 02/08/2011, 16:51:03
   Error description: Error BASE/1076  Argument error: >=
   Args:
     [   1] = D   01/31/2011
     [   2] = U  

Stack Calls
===========
   Called from: .\source\prg\tcalex.PRG => TDAYVIEW:BUILDDATES(305)
   Called from: .\source\prg\tcalex.PRG => TDAYVIEW:SETINTERVAL(1232)
   Called from: sample01.prg => SAMPLECALEX:BUILDCALEX(139)
   Called from: sample01.prg => SAMPLECALEX:NEW(78)
   Called from: sample01.prg => MAIN(14)
 


Silvio, just right, the problem is with xharbour when the DBF take data, with harbour run OK

i will check when i have time to review
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Outlook Calendar (prototype)

Postby Daniel Garcia-Gil » Tue Feb 08, 2011 9:25 pm

User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Outlook Calendar (prototype)

Postby Silvio » Wed Feb 09, 2011 8:19 am

Daniel,
I think there is an error also on adddates method because I have a strange error ordesetfocus and ordscope .

please see this topic

viewtopic.php?f=3&t=20836&p=110681#p110681
this only on windows seven
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: Outlook Calendar (prototype)

Postby Silvio » Wed Feb 09, 2011 11:58 am

Daniel,

on Windows Xp it run ok only I try to insert it on a Tfsdi ( Dialog)


It run ok but I cannot see any record


then if I insert a new record then the procedure show the records of that day


if I change day thenI cannot see any record


why ? ( In send you the test this morning)
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: Outlook Calendar (prototype)

Postby Silvio » Thu Feb 10, 2011 10:44 pm

Daniel,

I insert old command of old calex classes ( first pubblish) and it run ok

I believe there is an error on the last calex.lib because when the procedure load appoinments I cannot see any record , only if I insert a new record I see the others records.

I not Know Why!!!


I only re insert oldest classes and now I can see records at init , only I not have all the last modifies
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: Outlook Calendar (prototype)

Postby Daniel Garcia-Gil » Fri Feb 11, 2011 12:07 am

Silvio

i built the same sample with new lib (xharbour) and run ok
Code: Select all  Expand view

#include "fivewin.ch"
#include "calendar.ch"
#include "calex.ch"
#include "tselex.ch"
#include "ord.ch"

REQUEST DBFCDX

function Main()

   SET DATE FORMAT "MM/DD/YYYY"
   SET DELETE ON
     
   SampleCalex():New()

return nil

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

CLASS SampleCalex

   DATA dDateStart, dDateEnd
   
   DATA cAlias
   
   DATA lOnPreNext
   
   DATA oCalex
   DATA oDtPick
   DATA oExBar  
   DATA oPanelExplorer
   DATA oPanelCalex
   DATA oWnd
   DATA oSelex
   
   METHOD New()

   METHOD AddDates()

   METHOD BuildCalex()  
   METHOD BuildDbf()
   METHOD BuildDialog()
   METHOD BuildExplorer()
   METHOD BuildPanels()
   METHOD BuildPop( oView, dDateFrom, dDateTo, nTimeFrom, nTimeTo )
   
   METHOD ChangeSelex()
   
   METHOD DeleteInfo( oView, nIdx )
   
   METHOD SetSize( nType, nWidth, nHeight )
   
ENDCLASS

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

METHOD New() CLASS SampleCalex
   
   local oMenu
   local oSelf := Self
   
   MENU oMenu
   ENDMENU
   
   ::dDateStart = Date()
   ::dDateEnd   = Date()
   
   ::lOnPreNext = .F.
   
   ::cAlias = "citas"
   
   ::BuildDbf()
   
   DEFINE WINDOW ::oWnd MDI MENU oMenu
   
   ::BuildPanels()
   ::BuildExplorer()
   ::BuildCalex()
//   ::Adddates()
   
   ACTIVATE WINDOW ::oWnd MAXIMIZED;
            ON RESIZE oSelf:SetSize( nSizeType, nWidth, nHeight )
 
   
RETURN Self

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

METHOD AddDates( dStart, dEnd, nStart, nEnd ) CLASS SampleCalex

   local dDate
   // compat with xharbour  
   DEFAULT dStart := CToD( "  /  /  " )
   DEFAULT dEnd   := CToD( "  /  /  " )

   //Clear scopes
   ( ::cAlias )->( OrdSetFocus( "fecha" ) )
   ( ::cAlias )->( OrdScope( TOPSCOPE, NIL ) )
   ( ::cAlias )->( OrdScope( BOTTOMSCOPE, NIL ) )
   
   //Set New scopes
   ( ::cAlias )->(  DBGoTop() )
   ( ::cAlias )->( OrdScope( TOPSCOPE, DToS( dStart ) + Str( nStart * 100, 4 ) ) )
   ( ::cAlias )->( OrdScope( BOTTOMSCOPE, DToS( dEnd ) + Str( nEnd * 100, 4 ) ) )
   ( ::cAlias )->(  DBGoTop() )
   ::oCalex:Reset()
   DO WHILE ! ( ::cAlias )->( Eof() )
      ::oCalex:LoadDates( ( ::cAlias )->START,;
                          ( ::cAlias )->END, ;
                          ( ::cAlias )->DSTART, ;
                          ( ::cAlias )->DSTART, ;
                          ( ::cAlias )->TEXT, ;
                          ( ::cAlias )->SUBJECT,;
                          ( ::cAlias )->IDX )
      ( ::cAlias )->( DBSkip() )
   ENDDO

   
RETURN nil

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

METHOD BuildCalex() CLASS SampleCalex
   
   local oSelf := Self
   
   DEFINE CALEX ::oCalex OF ::oPanelCalex;
          FIRST_DATE 2
   
   DEFINE MONTH VIEW OF ::oCalex;
          ON SELECT VIEW ( oSelf:AddDates( ::dStart, ::dEnd, ::nStartHour, ::nEndHour ), ;
                           oSelf:oDtPick:SetDate( ::dDateSelected )  ) ;
          ON SELECT DAY  oSelf:oDtPick:SetDate( dDate ) ;
          ON SELECT WEEK oSelf:oDtPick:SetDate( dDate ) ;
          ON NEXT        ( oSelf:oDtPick:SetDate( dDate ), ;
                           oSelf:AddDates( ::dStart, ::dEnd, ::nStartHour, ::nEndHour ) );
          ON PREV        ( oSelf:oDtPick:SetDate( dDate ), ;
                           oSelf:AddDates( ::dStart, ::dEnd, ::nStartHour, ::nEndHour ) );
          ACTIVATE

   //Day

   DEFINE DAY VIEW OF ::oCalex ;
          INTERVAL 30 ;
          START HOUR 2 ;
          END HOUR 19;
          ON SELECT VIEW ( oSelf:AddDates( ::dStart, ::dEnd, ::nStartHour, ::nEndHour ), ;
                           oSelf:oDtPick:SetDate( ::dDateSelected )  ) ;
          ON NEXT        ( oSelf:oDtPick:SetDate( dDate ), ;
                           oSelf:AddDates( ::dStart, ::dEnd, ::nStartHour, ::nEndHour ) );
          ON PREV        ( oSelf:oDtPick:SetDate( dDate ), ;
                           oSelf:AddDates( ::dStart, ::dEnd, ::nStartHour, ::nEndHour ) );
          ON RIGHT CLICK ( oSelf:BuildPop( nRow, nCol, Self, dDateFrom, dDateTo, nTimeFrom, nTimeTo ) );
          ON DELETE      ( oSelf:DeleteInfo( Self, nIdx ) )
                           
   
   //Week
   
   DEFINE WEEK VIEW OF ::oCalex ;
          INTERVAL 30 ;
          START HOUR 2 ;
          END HOUR 19;
          ON SELECT VIEW ( oSelf:oDtPick:SetDate( oLast:dDateSelected - DoW( oLast:dDateSelected ) + 1 ),;
                           oSelf:AddDates( ::dStart, ::dEnd, ::nStartHour, ::nEndHour ) ) ;
          ON RIGHT CLICK ( oSelf:BuildPop( nRow, nCol, Self, dDateFrom, dDateTo, nTimeFrom, nTimeTo ) ) ;
          ON NEXT        ( oSelf:oDtPick:SetDate( dDate ), ;
                           oSelf:AddDates( ::dStart, ::dEnd, ::nStartHour, ::nEndHour ) );
          ON PREV        ( oSelf:oDtPick:SetDate( dDate ), ;
                           oSelf:AddDates( ::dStart, ::dEnd, ::nStartHour, ::nEndHour ) );
          ON DELETE      ( oSelf:DeleteInfo( Self, nIdx ) )
 
RETURN nil

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

METHOD BuildDbf() CLASS SampleCalex

   local aStructure

   if ! File( "citas.dbf" )
   
      aStructure = { { "start"  , "N",   4, 0 },;
                     { "end"    , "N",   4, 0 },;
                     { "dstart" , "D",   8, 0 },;
                     { "subject", "C", 100, 0 },;
                     { "text"   , "M",  10, 0 },;
                     { "idx"    , "N",  10, 0 } }
                        
      DBCreate( ::cAlias, aStructure, "DBFCDX" )
     
   ENDIF                        

   USE ( ::cAlias ) ALIAS ( ::cAlias ) VIA "DBFCDX"
                   
   INDEX ON DToS( citas->DSTART ) + StrZero( citas->START, 4 ) TAG fecha TO ( ::cAlias )
   INDEX ON citas->IDX TAG idx TO ( ::cAlias )
   
   

RETURN nil

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

METHOD BuildDialog( oView, dDateFrom, dDateTo, nTimeFrom, nTimeTo ) CLASS SampleCalex

   local oDlg
   local cSubject := Space( 100 )
   local cText
   local lSave := .F.
   local lNew := oView:oCalex:oCalInfoSelected == NIL
   local o, nID, cLastOrd
   
   DEFINE DIALOG oDlg TITLE "Adding Data" SIZE 300, 370
   
   if ! lNew
      o = oView:oCalex:oCalInfoSelected
      cSubject = o:cSubject
      cText    = o:cText
   endif
   
   
   @ 10, 10 SAY "Date: " + DToC( dDateFrom ) OF oDlg PIXEL
   @ 25, 10 SAY "Time Start: [" + oView:ConvertTime( nTimeFrom, oView:lAmPm ) +;
                "] -- Time End: [" + oView:ConvertTime( nTimeTo, oView:lAmPm ) + "]" OF oDlg PIXEL
   @ 40, 10 SAY "Subject" OF oDlg PIXEL
   @ 40, 30 GET cSubject OF oDlg PIXEL SIZE 100, 10
   @ 55, 10 SAY "Text" OF oDlg PIXEL
   @ 70, 10 GET cText MEMO OF oDlg PIXEL SIZE 130, 95
   @ 170, 10 BUTTON "OK" PIXEL ACTION ( lSave := .T., oDlg:End() )
   @ 170, 100 BUTTON "CANCEL" PIXEL ACTION ( oDlg:End() )
   
   ACTIVATE DIALOG oDlg CENTERED

   IF lSave
      cLastOrd = ( ::cAlias )->( OrdSetFocus( "idx" ) )
      if lNew        
         nID = ( ::cAlias )->( DBGoBottom() )
         nID = ( ::cAlias )->IDX + 1
         ( ::cAlias )->( DBAppend() )
         REPLACE ( ::cAlias )->IDX  WITH nID
      else
         ( ::cAlias )->( DBSeek( o:nIdx ) )
         o:cSubject = cSubject
         o:cText    = cText            
      endif
     
      REPLACE ( ::cAlias )->start   WITH nTimeFrom
      REPLACE ( ::cAlias )->end     WITH nTimeTo
      REPLACE ( ::cAlias )->dstart  WITH dDateFrom
      REPLACE ( ::cAlias )->subject WITH cSubject
      REPLACE ( ::cAlias )->text    WITH cText
     
      ( ::cAlias )->( DBCommitAll() )
      ::AddDates( oView:dStart, oView:dEnd, oView:nStartHour, oView:nEndHour )      
      oView:BuildDates()      
      ( ::cAlias )->( OrdSetFocus( cLastOrd ) )
     
   ENDIF

RETURN nil

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

METHOD BuildExplorer() CLASS SampleCalex

   local oPanel
   local oSelf := Self
   local nOption := 5
   
   ::oExBar := TExplorerBar():New( 0, 0, 250, 300, ::oPanelExplorer )
   
   oPanel := ::oExBar:AddPanel( "Jump To Date", "c:\fwh\bitmaps\32x32\people.bmp", 200 )
   @ 40, 15 CALENDAR ::oDtPick VAR ::dDateStart OF oPanel PIXEL;
              SIZE 220, 157;
             
   ::oDtPick:bChange = { | o | ::oCalex:SetDate( o:GetDate() ), oSelf:oCalex:Refresh(), SysRefresh() }
   
   oPanel := ::oExBar:AddPanel( "View", "c:\fwh\bitmaps\32x32\people.bmp", 130 )
     oPanel:AddLink( "Daily"  , { || ::oCalex:SetDayView(), ::ChangeSelex()  }, "c:\fwh\bitmaps\16x16\additem.bmp" )
     oPanel:AddLink( "Weekly" , { || ::oCalex:SetWeekView(), ::ChangeSelex() }, "c:\fwh\bitmaps\16x16\additem.bmp" )
     oPanel:AddLink( "Monthly", { || ::oCalex:SetMonthView() }, "c:\fwh\bitmaps\16x16\additem.bmp" )

   @ 100, 10 SELEX ::oSelex VAR nOption of oPanel PIXEL size 220, 45;
      ITEMS "5", "10", "15", "20", "30", "60" ;
      GRADIENT OUTTRACK { { 1/2, nRGB( 219, 230, 244 ), nRGB( 207-50, 221-25, 255 ) }, ;
                          { 1/2, nRGB( 201-50, 217-25, 255 ), nRGB( 231, 242, 255 ) } };
      LINECOLORS nRGB( 237, 242, 248 ), nRGB( 141, 178, 227 );
      COLORTEXT  CLR_BLACK, CLR_GREEN ;
      ACTION (::oCalex:oView:SetInterval( Val( ::oSelex:aOptions[ nOption ] ) ), ::oCalex:refresh() )
     
   ::oPanelExplorer:oClient = ::oExBar
   ::oPanelExplorer:oClient:bMouseWheel = {|| MsgInfo( "ok" ) }

RETURN nil

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

METHOD BuildPanels() CLASS SampleCalex

   local oBrush

   ::oPanelExplorer = TPanel():New( 0, 0, ::oWnd:nHeight, 280, ::oWnd:oWndClient )
   
   ::oPanelCalex    = TPanel():New( 0, 281, ::oWnd:nHeight, ::oWnd:nWidth, ::oWnd:oWndClient )
   
   DEFINE BRUSH oBrush COLOR CLR_WHITE
   
   ::oPanelCalex:SetBrush( oBrush )
   
   oBrush:End()


RETURN nil

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

METHOD ChangeSelex() CLASS SampleCalex
   
   local cInterval := AllTrim( Str( ::oCalex:oView:nInterval * 60, 2 ) )
   local nAt := AScan( ::oSelex:aOptions, cInterval )

   if nAt != 0  .and. ::oSelex:nOption != nAt
      ::oSelex:SetOption( nAt )
      ::oSelex:Refresh()
   endif
   

RETURN nil

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

METHOD SetSize( nType, nWidth, nHeight ) CLASS SampleCalex
   
   if nWidth != nil
      ::oPanelExplorer:Move( , , , nHeight )
      ::oPanelCalex:Move( , , nWidth - ::oPanelExplorer:nRight, nHeight )
   endif
   
RETURN nil

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

METHOD BuildPop( nRow, nCol, oView, dDateFrom, dDateTo, nTimeFrom, nTimeTo ) CLASS SampleCalex

   local oMenu
   local oSelf := Self
   local lNew := oView:oCalex:oCalInfoSelected == NIL
   
   MENU oMenu POPUP
      MENUITEM If( lNew, "New appointment",;
                         "Modify appointment" ) ACTION oSelf:BuildDialog( oView, dDateFrom, dDateTo, nTimeFrom, nTimeTo )
      if ! lNew                        
         MENUITEM "Delete appointment"  ACTION If( MsgYesNo( "Are you sure?" ), oView:oCalex:DelCalInfo(), )
      endif
     
      MENUITEM "Today"           ACTION ( oView:SetDate( date() ), If( oView:IsKindOf( "TWEEKVIEW" ),;
                                                                       oView:oCalex:SetWeekView(),;
                                                                       oView:oCalex:SetDayView() ) )
   ENDMENU


   ACTIVATE POPUP oMenu OF oView:oCalex AT nRow, nCol

RETURN nil 

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

METHOD DeleteInfo( oView, nIdx ) CLASS SampleCalex

   local cLastOrd

   cLastOrd = ( ::cAlias )->( OrdSetFocus( "idx" ) )
   ( ::cAlias )->( DBSeek( nIdx ) )
   ( ::cAlias )->( DBDelete() )

   ( ::cAlias )->( OrdSetFocus( cLastOrd ) )


RETURN NIL

//---------------------------------------------------//
 
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Outlook Calendar (prototype)

Postby Silvio » Fri Feb 11, 2011 7:50 am

sorry but i f I use your builddbf then it create cdx
then I cannot open citas.dbf it make error , I try with wdbu on winxp and xourdbu on w7
perhaps that is the problem because to open the citas I use a function to open dbfs on net
see the source code I sent you

oDCal:=Open_dbf("citas",.T.,.T.,aIdx)
(oDCal)->(OrdSetFocus(1))
(oDCal)->(DbGoTop())


it make the same of your code

only I add for each line of index this command "for !deleted()"

I use this function from ten years and with success

here the code

on base.dbf I insert only the index sample as your command


Image


Code: Select all  Expand view


FUNCTION Open_Dbf( cDbf, lNew, lIdx, aIdx, nIdxa )
   LOCAL cFile, cABas, lErr := .F.
   LOCAL cDriver := DBSetDriver()
   LOCAL  nD, cAlias

   DEFAULT lNew := .T.
   DEFAULT lIdx := .F.
   DEFAULT nIdxa := .T.
   DEFAULT aIdx := NIL

   cDbf := Upper( cDbf )
   IF Empty( aDbfs )
      aDbfs := { }
   ENDIF

   IF Select( cDbf ) > 0
      DBSelectArea( cDbf )
      IF lNew
         nD := AScan( aDbfs, { | aAt | aAt[ 1 ] == cDbf } )
         IF nD > 0
            aDbfs[ nD, 2 ] ++
         ENDIF
         cAlias := New_Alias( cDbf, nD )
         DBUseArea( .T., cDriver, cDbf, cAlias, .T., .F. )
         IF File( cDbf + ".cdx" ) .and. nIdxa
            ( cAlias ) ->( DBSetIndex( cDbf ) )
            ( cDbf ) ->( DBSetOrder( 1 ) )
         ENDIF
      ENDIF
   ELSE
      IF ! File( cDbf + ".dbf" )


       MSGINFO("NOT EXIST")  //Non esiste il database
         lErr := .T.

      ELSE
         nD := AScan( aDbfs, { | aAt | aAt[ 1 ] == cDbf } )
         IF nD = 0
            AAdd( aDbfs, { cDbf, 1 } )
            nD := AScan( aDbfs, { | aAt | aAt[ 1 ] == cDbf } )
         ELSE
            aDbfs[ nD, 2 ] ++
         ENDIF
         cAlias := New_Alias( cDbf, nD )
         DBUseArea( .T., cDriver, cDbf, cAlias, .T., .F. )
         IF File( cDbf + ".CDX" ) .and. nIdxa
            ( cAlias ) ->( DBSetIndex( cDbf ) )
            ( cAlias ) ->( DBSetOrder( 1 ) )
         ENDIF
      ENDIF
   ENDIF
   IF ! lErr .AND. lIdx
      cFile := Upper( cDbf )
      cABas := Apri_Dbf( "BASE" )
      ( cABas ) ->( DBSeek( cFile ) )
      IF Found()
         DO WHILE ( cABas ) ->TABELLA = cFile .AND. ! ( cABas ) ->( Eof() )
            AAdd( aIdx, ( cABas ) ->Commento )
            //AAdd(aIdx,(cABas)->Legend)
            ( cABas ) ->( DBSkip() )
         ENDDO
      ENDIF
      Chiudi_Dbf( "BASE", cABas )
      DBSelectArea( cDbf )
   ENDIF
   RETURN ( cAlias )

//========================================================================================
// --- Crea un nuevo alias para una base de datos ---------------------------
//========================================================================================
STATIC FUNCTION New_Alias( cDbf, nD )
   LOCAL cAlias, nX := 1
   IF RAt( "\", cDbf ) > 0
      cDbf := SubStr( cDbf, RAt( "
\", cDbf ) + 1, Len( cDbf ) )
   ELSE
      IF Select( cDbf ) = 0
         RETURN ( cDbf )
      ENDIF
   ENDIF
   cAlias := cDbf + LTrim( Str( aDbfs[ nD, 2 ] ) )
   DO WHILE Select( cAlias ) > 0 .AND. nX < 250
      cAlias := cDbf + LTrim( Str( nX ++ ) )
   ENDDO
   RETURN ( cAlias )
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: Outlook Calendar (prototype)

Postby ukservice » Mon Feb 21, 2011 9:34 am

Daniel,

Do you plan to sell the class or it will be included in next FW build?

Thank you
FWH 11.11, Harbour 3.1 and Borland C++ 5.82
User avatar
ukservice
 
Posts: 417
Joined: Tue Feb 23, 2010 3:09 pm
Location: John

Re: Outlook Calendar (prototype)

Postby Daniel Garcia-Gil » Mon Feb 21, 2011 12:23 pm

Hello

really.. i dont know... until now. i left the initial source code (90%) and next release will be like LIB, but i had not have time to continue with the development
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Outlook Calendar (prototype)

Postby ukservice » Mon Feb 21, 2011 1:37 pm

Hello Daniel,

I am interested in the source code, as I never use a control without having the source.

So I don´t understand if you will sell it or include in FW.

Obviously, it can´t be free.
FWH 11.11, Harbour 3.1 and Borland C++ 5.82
User avatar
ukservice
 
Posts: 417
Joined: Tue Feb 23, 2010 3:09 pm
Location: John

Re: Outlook Calendar (prototype)

Postby Silvio » Tue Feb 22, 2011 7:16 am

you sad " I never use a control without having the source"
but I saw , you wrote you use... Fast Report, have you the source code of it ?
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: Outlook Calendar (prototype)

Postby ukservice » Tue Feb 22, 2011 8:30 am

Silvio,

Fast Report is a very consolidated company, which is in fact a Microsoft and Borland Gold Partner. It offers support and it is quite sure they will do in the future.

But I can´t say the same abour Easyreport or Canalfive. So that is what I purchase the code.
FWH 11.11, Harbour 3.1 and Borland C++ 5.82
User avatar
ukservice
 
Posts: 417
Joined: Tue Feb 23, 2010 3:09 pm
Location: John

Re: Outlook Calendar (prototype)

Postby Silvio » Tue Feb 22, 2011 8:36 am

Right!
But We can create a our fastreport source code often go to third company and have a general support from fivetech from all classes...
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

PreviousNext

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 72 guests