AYUDA XBROWSE
Publicado por Juan Morales (36 intervenciones) el 28/02/2020 12:15:35
Buenos dias amigos, necesito una orientacion , estoy cambiandp mis listbox por xbrowse, segui un ejemplo , funciona, pero tengo unas dudas .. no se si alguien en el foro pueda orientarme
ene l programa ejemplo tengp dos cosas
primero, a pesar que no uso el oCol:bEditBlock = { | oGet1, oCol | pBusCapCue(oGet1,oCol) }, en el GET me siguen apareciendo al lado el cuadrito con .. los puntitos esperando presionar la ayuda de busqueda, y es mas me dice que el editblock no esta asignado..
como hago para que ese cuadrito no me aparezco, y lo haga solo cuando lo necesito
segundo , tengo la function teclasi con un delete funciona me elimina la linea pero se queda el comando actvo para seguir eliminado tengo que darle no para que se salga , no se como hace para que salga automatico a la primera vez..
ene l programa ejemplo tengp dos cosas
primero, a pesar que no uso el oCol:bEditBlock = { | oGet1, oCol | pBusCapCue(oGet1,oCol) }, en el GET me siguen apareciendo al lado el cuadrito con .. los puntitos esperando presionar la ayuda de busqueda, y es mas me dice que el editblock no esta asignado..
como hago para que ese cuadrito no me aparezco, y lo haga solo cuando lo necesito
segundo , tengo la function teclasi con un delete funciona me elimina la linea pero se queda el comando actvo para seguir eliminado tengo que darle no para que se salga , no se como hace para que salga automatico a la primera vez..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
oBrw:lFastEdit := .t.
*oBrw:bPastEof := {|| Dbappend(), oBrw:GoLeft(), oBrw:Refresh(), oBrw:aCols[ 1 ]:Edit() }
oBrw:bKeyDown :={ | nKey | Teclas(nKey,oBrw, oArchi) }
oCol = oBrw:AddCol()
oCol:bStrData = { || oArchi->Carnet }
oCol:cHeader = "Carnet"
oCol:nEditType = EDIT_GET_BUTTON //EDIT_GET
* oCol:bEditValid = { | oGet1, oCol | pValCapCue(oGet1,oCol,oSay1) }
* oCol:bEditBlock = { | oGet1, oCol | pBusCapCue(oGet1,oCol) }
oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, ( DbAppend(), oBrw:Refresh() ),), If( nKey == VK_RETURN, oArchi->carnet := xVal,) }
oCol:nWidth = 60
oCol = oBrw:AddCol()
oCol:bStrData = { || oArchi->Dia1 }
oCol:cHeader = "Dia1"
oCol:nEditType = EDIT_GET_BUTTON //EDIT_GET
* oCol:bEditValid = { | oGet2, oCol | pValCapCos(oGet2,oCol) }
* oCol:bEditBlock = { | oGet2, oCol | if (d_captu->VlCos=.t.,pBusCapCen(oGet2,oCol),"")}
oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, ( DbAppend(), oBrw:Refresh() ),), If( nKey == VK_RETURN, oArchi->Dia1 := xVal,) }
oCol:nWidth = 40
oCol = oBrw:AddCol()
oCol:bStrData = { || oArchi->Dia2 }
oCol:cHeader = "Dia2"
oCol:nEditType = EDIT_GET_BUTTON //EDIT_GET
* oCol:bEditValid = { | oGet3, oCol | pValCapTer(oGet3,oCol,oSay2) }
* oCol:bEditBlock = { | oGet3, oCol | pBusCapTer(oGet3,oCol) }
oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, ( DbAppend(), oBrw:Refresh() ),), If( nKey == VK_RETURN, oArchi->Dia2 := xVal,) }
oCol:nWidth = 40
oCol = oBrw:AddCol()
oCol:bStrData = { || oArchi->Dia3 }
oCol:cHeader = "Dia3"
oCol:cFooter = "TOTALES GENERALES --------------->"
oCol:nEditType = EDIT_GET_BUTTON //EDIT_GET
* oCol:bEditValid = { | oGet4, oCol | pValCapDes(oGet4,oCol) }
oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, DbAppend(),),;
If( nKey == VK_RETURN, oArchi->Dia3 := xVal ,) ,;
if( !lCtaOK(oBrw),(oBrw:GoLeftMost(), oBrw:GoBottom(),oBrw:Refresh()),;
if ( (oArchi)->(Recno())==(oArchi)->(Reccount()) , (DbAppend(), oBrw:GoLeftMost(),oBrw:GoBottom(), oBrw:Refresh()),) ) }
oCol:nWidth = 40
oBrw:SetRDD()
oBrw:CreateFromResource(181)
Function Teclas(nKey,oBrw, oArchi)
* xcol:=alltrim(str(oBrw:nColSel-1)) // esto si funciona devuelve el nro de la columna desde 0 a 3
Do Case
Case nKey == VK_DELETE
if MsgNoYes("¿Está seguro(a) de borrar este registro?","Borrar este registro "+alltrim(oArchi->carnet))
oArchi->(dbDelete())
oArchi->(dbPack())
oBrw:GoBottom()
oBrw:Refresh()
endif
EndCase
nKey:= ""
Return .t.
//-----------------------
Function lCtaOK(xVal)
if !catalogo->(dbSeek(xVal,.t.))
MsgStop("Codigo no existe","Alto")
return .f.
endif
Return .t.
Valora esta pregunta
0