Page 1 of 1

buttons and datepick on xbrowse

PostPosted: Tue May 08, 2018 5:22 pm
by Silvio.Falconi
it is possible insert buttons and datepick into xbrowse

Re: buttons and datepick on xbrowse

PostPosted: Tue May 08, 2018 6:47 pm
by MGA

Re: buttons and datepick on xbrowse

PostPosted: Tue May 08, 2018 7:26 pm
by Silvio.Falconi
SGS wrote:https://imgur.com/PwiLqOF

https://imgur.com/6QqN1d9


can you post an small sample thanks

Re: buttons and datepick on xbrowse

PostPosted: Tue May 08, 2018 8:29 pm
by Silvio.Falconi
I made a small test but it make error on year and tdatepick

THE ERROR
Code: Select all  Expand view
Error description: Error BASE/1112  Argument error: YEAR
   Args:
     [   1] = C   19/02/2014

Stack Calls
===========
   Called from:  => YEAR( 0 )
   Called from: .\source\classes\TDTPICKE.PRG => (b)TDATEPICK( 42 )
   Called from: .\source\classes\TDTPICKE.PRG => TDATEPICK:SETDATE( 0 )
   Called from: .\source\classes\TDTPICKE.PRG => TDATEPICK:_CTEXT( 205 )
   Called from: .\source\classes\TDTPICKE.PRG => TDATEPICK:NEW( 109 )
   Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:EDITDATETIME( 14017 )
   Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:EDIT( 13711 )
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:LDBLCLICK( 4725 )



The test

Code: Select all  Expand view
#include "fivewin.ch"
#include "constant.ch"

Function Main()

             //ico
             // tipo
             // servizio
             // quantità
             // costo
             // totale
             // dal
             // al
             // gg
             // sconto
             // totale

      local oDlg, oBrw, oLarge, oFont
       Local aData:={ {"O","L","Ombrellone",1,10.00,10.00,"19/02/2014","19/02/2014",1,0.00,10.00},;
                      {"S","L","Sdraio",1,5.00,5.00,"19/02/2014","19/02/2014",2,0.00,10.00},;
                      {"L","L","Lettino",1,5.00,5.00,"19/02/2014","19/02/2014",2,0.00,10.00},;
                      {"R","L","Regista",1,5.00,5.00,"19/02/2014","19/02/2014",1,0.00,5.00} }

      DEFINE FONT oLarge NAME "VERDANA" SIZE 0,-48 BOLD
   DEFINE FONT oFont  NAME "TAHOMA"  SIZE 0,-15

       DEFINE DIALOG oDlg SIZE 800,260 PIXEL TRUEPIXEL FONT oFont ;
      TITLE "Testing date"

        @0,0 XBROWSE oBrw SIZE -20,200 PIXEL OF oDlg;
            COLUMNS 1,2,3,4,5,6,7,8,9,10,11 ;
            HEADERS "Ico","Type","Item Name","Qt.", "Amount","Total","From","To","Days""Descount","Total";
            ARRAY aData CELL LINES FOOTERS NOBORDER FASTEDIT


        oBrw:ItemName:cFooter:="Total"

        WITH OBJECT oBrw:Amount
            :nEditType := EDIT_GET
            :cEditPicture := '@ €99,999.99'
            :lTotal:=.T.
            :nTotal:=0.00
         END

          WITH OBJECT oBrw:From
            :nEditType := EDIT_DATE
         END

           WITH OBJECT oBrw:TO
            :nEditType := EDIT_DATE
           END




        oBrw:MakeTotals()
        oBrw:nStretchCol  := STRETCHCOL_WIDEST
        oBrw:CreateFromCode()

        ACTIVATE DIALOG oDlg CENTERED
    Return

Re: buttons and datepick on xbrowse

PostPosted: Wed May 09, 2018 7:55 am
by nageswaragunupudi
Change aData as
Code: Select all  Expand view
  local aData:={ {"O","L","Ombrellone",1,10.00,10.00,{^ 2014/02/19 },{^ 2014/02/19 },1,0.00,10.00},;
                  {"S","L","Sdraio",1,5.00,5.00,{^ 2014/02/19 },{^ 2014/02/19 },2,0.00,10.00},;
                  {"L","L","Lettino",1,5.00,5.00,{^ 2014/02/19 },{^ 2014/02/19 },2,0.00,10.00},;
                  {"R","L","Regista",1,5.00,5.00,{^ 2014/02/19 },{^ 2014/02/19 },1,0.00,5.00} }
 

Re: buttons and datepick on xbrowse

PostPosted: Wed May 09, 2018 8:35 am
by Silvio.Falconi
Mr Rao,
I here I put an array but I have a dbf
then can I personalized the button of datepick ( now I not see the button)

How I can to insert before the 4th columns "Qt. " the buttons "+ "and "- " ?

can I use personalized bitmap button ?

thanks

Re: buttons and datepick on xbrowse

PostPosted: Wed May 09, 2018 11:22 am
by Silvio.Falconi
Nages,
I tried to insert buttons as you see here but I have some problems



1) I wish the 4th Header must be together with 5th header sample :


2) How I can make when the user click on "-" or "+" add/minus the value of Quantity ?

3) Now On oBrw:aCols[ 8] and oBrw:aCols[ 9 ] I insert bitmaps but How I can call tdatepick class ? to select a date ?

thanks

Re: buttons and datepick on xbrowse

PostPosted: Wed May 09, 2018 1:56 pm
by MGA
Silvio,

oBrwcp:aCols[9]:nDataStrAlign := AL_RIGHT
oBrwcp:aCols[9]:nHeadStrAlign := AL_CENTER
oBrwcp:aCols[9]:cHeader := 'Bonificado'
oBrwcp:aCols[9]:nWidth := 60
oBrwcp:aCols[9]:bEditValue := {|| aHistoricoComprasProdutos[oBrwcp:nArrayAt,10]}
oBrwcp:aCols[9]:cEditPicture := '@E 99,999.999'

oBrwcp:AddCol()
oBrwcp:aCols[10]:nDataStrAlign := AL_CENTER
oBrwcp:aCols[10]:nHeadStrAlign := AL_CENTER
oBrwcp:aCols[10]:cHeader := '-'
oBrwcp:aCols[10]:cBtnCaption := '-'
oBrwcp:aCols[10]:cEditPicture := '@!'
oBrwcp:aCols[10]:nWidth := 16
oBrwcp:aCols[10]:nBtnWidth := 12
oBrwcp:aCols[10]:nEditType := EDIT_GET_BUTTON
oBrwcp:aCols[10]:bStrData := {|| ''}
oBrwcp:aCols[10]:bEditBlock := {|| Produto_Bonificar_Menos( oBrwcp, aHistoricoComprasProdutos ), NIL}
oBrwcp:aCols[10]:bEditWhen := {|| .f. }

oBrwcp:AddCol()
oBrwcp:aCols[11]:nDataStrAlign := AL_CENTER
oBrwcp:aCols[11]:nHeadStrAlign := AL_CENTER
oBrwcp:aCols[11]:cHeader := '+'
oBrwcp:aCols[11]:cBtnCaption := '+'
oBrwcp:aCols[11]:cEditPicture := '@!'
oBrwcp:aCols[11]:nWidth := 16
oBrwcp:aCols[11]:nBtnWidth := 12
oBrwcp:aCols[11]:nEditType := EDIT_GET_BUTTON
oBrwcp:aCols[11]:bStrData := {|| ''}
oBrwcp:aCols[11]:bEditBlock := {|| Produto_Bonificar_Mais( oBrwcp, aHistoricoComprasProdutos ), NIL}
oBrwcp:aCols[11]:bEditWhen := {|| .f. }

oBrwcp:aCols[12]:nDataStrAlign := AL_RIGHT
oBrwcp:aCols[12]:nHeadStrAlign := AL_CENTER
oBrwcp:aCols[12]:cHeader := 'Valor'+CRLF+'Unitário'
oBrwcp:aCols[12]:nWidth := 60
oBrwcp:aCols[12]:bEditValue := {|| aHistoricoComprasProdutos[oBrwcp:nArrayAt,9]}
oBrwcp:aCols[12]:cEditPicture := '@E 99,999.99'


//calend
oBrowse:aCols[2]:AddResource('CALEND')
oBrowse:aCols[2]:nBtnBmp := 1
oBrowse:aCols[2]:lBmpStretch := .f.
oBrowse:aCols[2]:lBmpTransparent := .t.
oBrowse:aCols[2]:nDataBmpAlign := AL_CENTER
oBrowse:aCols[2]:nHeadStrAlign := AL_CENTER
oBrowse:aCols[2]:nFootStrAlign := AL_RIGHT
oBrowse:aCols[2]:nDataStrAlign := oBrowse:aCols[2]:DefStyle(AL_LEFT,.f.)
oBrowse:aCols[2]:cHeader := 'Vencimento'
oBrowse:aCols[2]:nBtnWidth := 30
oBrowse:aCols[2]:nWidth := 160
oBrowse:aCols[2]:cEditPicture := '@!'
oBrowse:aCols[2]:bEditValue := {|| aParcelasModalidade[oBrowse:nArrayAt,3]}
oBrowse:aCols[2]:nEditType := EDIT_GET_BUTTON
oBrowse:aCols[2]:bOnPostEdit := {| oCol, xVal, nKey | IIf( nKey == VK_RETURN,(aParcelasModalidade[oBrowse:nArrayAt,3] := xVal, oBrowse:Refresh()),) }
oBrowse:aCols[2]:bEditBlock := {|r,c| IIf(!Empty(aParcelasModalidade[oBrowse:nArrayAt,1]), aParcelasModalidade[oBrowse:nArrayAt,3] := Calend(aParcelasModalidade[oBrowse:nArrayAt,3], r, c + 150, oDialog),) }
oBrowse:aCols[2]:bFooter := {|| 'Total:'}
oBrowse:aCols[2]:bEditWhen := {|| !Empty(aParcelasModalidade[oBrowse:nArrayAt,1]) }
oBrowse:aCols[2]:lUseBtnWidthEditOfCol := .t.


/*************************************************/
function Calend(dDate, nRow, nCol, oDlg)
/*
*/
Local oDlf, lSelecao := .f., oCalend, dDataCalend := IIf(!Empty(dDate), dDate, Date()), oBtn[2]

RetornaRowColDoObj(oDlg, @nRow, @nCol)

define dialog oDlf resource 'CALEND2' transparent font M->oWnd:ofont color CLR_WHITE,CLR_WHITE

redefine calendar ocalend var ddatacalend id 2001 of oDlf;
dblclick(oBtn[1]:Click());
action(oBtn[1]:Click())

redefine button oBtn[1] id 104 of odlf action(lSelecao := .t., dDate := dDataCalend, oDlf:End())
redefine button oBtn[2] id 103 of odlf action(lSelecao := .f., oDlf:End()) cancel

oDlf:lHelpicon := .f.
activate dialog oDlf on init(IIf(ValType( nRow ) != 'N', WndCenter(oDlf:hWnd), oDlf:move(nRow,nCol)))

return(dDate)

/*************************************************************************************************************/
procedure RetornaRowColDoObj(oObj, nRow, nCol)
/*
*/
local aPos, nLen

if HB_IsObject(oObj)
aPos := oObj:GetRect()
if ValType(nRow) == 'N'
nRow += aPos:nTop
nCol += aPos:nLeft
endif
if (nLen := (GetSysMetrics(1)-(nRow+254))) < 0
nRow += nLen
endif
if (nLen := (GetSysMetrics(0)-(nCol+158))) < 0
nCol += nLen
end
endif

return

Re: buttons and datepick on xbrowse

PostPosted: Wed May 09, 2018 3:27 pm
by Silvio.Falconi
thanks but I found how insert button now I have other problems
Please see this message
viewtopic.php?f=3&t=35604#p211980

Re: buttons and datepick on xbrowse

PostPosted: Wed May 09, 2018 10:24 pm
by MGA
3) Agora no oBrw: aCols [8] e oBrw: aCols [9] eu insiro bitmaps mas como eu posso chamar tdatepick classe? selecionar uma data?

//calend
oBrowse:aCols[2]:AddResource('CALEND')
oBrowse:aCols[2]:nBtnBmp := 1
oBrowse:aCols[2]:lBmpStretch := .f.
oBrowse:aCols[2]:lBmpTransparent := .t.
oBrowse:aCols[2]:nDataBmpAlign := AL_CENTER
oBrowse:aCols[2]:nHeadStrAlign := AL_CENTER
oBrowse:aCols[2]:nFootStrAlign := AL_RIGHT
oBrowse:aCols[2]:nDataStrAlign := oBrowse:aCols[2]:DefStyle(AL_LEFT,.f.)
oBrowse:aCols[2]:cHeader := 'Vencimento'
oBrowse:aCols[2]:nBtnWidth := 30
oBrowse:aCols[2]:nWidth := 160
oBrowse:aCols[2]:cEditPicture := '@!'
oBrowse:aCols[2]:bEditValue := {|| aParcelasModalidade[oBrowse:nArrayAt,3]}
oBrowse:aCols[2]:nEditType := EDIT_GET_BUTTON
oBrowse:aCols[2]:bOnPostEdit := {| oCol, xVal, nKey | IIf( nKey == VK_RETURN,(aParcelasModalidade[oBrowse:nArrayAt,3] := xVal, oBrowse:Refresh()),) }
oBrowse:aCols[2]:bEditBlock := {|r,c| IIf(!Empty(aParcelasModalidade[oBrowse:nArrayAt,1]), aParcelasModalidade[oBrowse:nArrayAt,3] := Calend(aParcelasModalidade[oBrowse:nArrayAt,3], r, c + 150, oDialog),) }
oBrowse:aCols[2]:bFooter := {|| 'Total:'}
oBrowse:aCols[2]:bEditWhen := {|| !Empty(aParcelasModalidade[oBrowse:nArrayAt,1]) }
oBrowse:aCols[2]:lUseBtnWidthEditOfCol := .t.


/*************************************************/
function Calend(dDate, nRow, nCol, oDlg)
/*
*/
Local oDlf, lSelecao := .f., oCalend, dDataCalend := IIf(!Empty(dDate), dDate, Date()), oBtn[2]

RetornaRowColDoObj(oDlg, @nRow, @nCol)

define dialog oDlf resource 'CALEND2' transparent font M->oWnd:ofont color CLR_WHITE,CLR_WHITE

redefine calendar ocalend var ddatacalend id 2001 of oDlf;
dblclick(oBtn[1]:Click());
action(oBtn[1]:Click())

redefine button oBtn[1] id 104 of odlf action(lSelecao := .t., dDate := dDataCalend, oDlf:End())
redefine button oBtn[2] id 103 of odlf action(lSelecao := .f., oDlf:End()) cancel

oDlf:lHelpicon := .f.
activate dialog oDlf on init(IIf(ValType( nRow ) != 'N', WndCenter(oDlf:hWnd), oDlf:move(nRow,nCol)))

return(dDate)

/*************************************************************************************************************/
procedure RetornaRowColDoObj(oObj, nRow, nCol)
/*
*/
local aPos, nLen

if HB_IsObject(oObj)
aPos := oObj:GetRect()
if ValType(nRow) == 'N'
nRow += aPos:nTop
nCol += aPos:nLeft
endif
if (nLen := (GetSysMetrics(1)-(nRow+254))) < 0
nRow += nLen
endif
if (nLen := (GetSysMetrics(0)-(nCol+158))) < 0
nCol += nLen
end
endif

return

Re: buttons and datepick on xbrowse

PostPosted: Thu May 10, 2018 5:43 am
by Silvio.Falconi
thanks but I resolved
it is not saved because when I open the dbf it was exclusive

then Mr. Rao sad not use bOnPostEdit it is a feature of Past!!!

only I cannot erasee the line of the header of
- 1+

Re: buttons and datepick on xbrowse

PostPosted: Tue Aug 14, 2018 2:56 pm
by jbrita
hola silvio , consuta como pudiste poner 2 botones en una celda

saludos

Re: buttons and datepick on xbrowse

PostPosted: Tue Aug 14, 2018 8:02 pm
by Silvio.Falconi
on the new release can insert the buttons or you must create two columns

Re: buttons and datepick on xbrowse

PostPosted: Tue Aug 14, 2018 11:31 pm
by jbrita
Hola Silvio, gracias por responder, pero tu tienes un ejemplo de como lo hiciste por favor

saludos

Re: buttons and datepick on xbrowse

PostPosted: Thu Aug 16, 2018 4:29 pm
by Silvio.Falconi
Please
do not claim the sources from me (it is already in two TOPICS that you give the SAME THING)

PLEASE SEE HERE
viewtopic.php?f=3&t=35626#p212105

If you search on forum you found it