Page 1 of 1
buttons and datepick on xbrowse
Posted: 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
Posted: Tue May 08, 2018 6:47 pm
by MGA
Re: buttons and datepick on xbrowse
Posted: Tue May 08, 2018 7:26 pm
by Silvio.Falconi
can you post an small sample thanks
Re: buttons and datepick on xbrowse
Posted: 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
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 testCode: Select all | Expand
#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
Posted: Wed May 09, 2018 7:55 am
by nageswaragunupudi
Change aData as
Code: Select all | Expand
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
Posted: 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
Posted: 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
Posted: 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
Posted: 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
Posted: 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
Posted: 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
Posted: 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
Posted: 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
Posted: 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
Posted: 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#p212105If you search on forum you found it