Hola Carlos:
Si puedo pasarte algo del codigopor privado pero no se tu privado el mio es
carlos@colthop.es.
No obstante pongo aqui lo principal :
Asi se crea la ventana donde esta alojado:
SELECT 47
use &ZB1 SHARED
OrdSetFocus (zb1a)
seek zejer + str(opci00,1,0) + zNom + padl(alltrim(str(zNum01,2,0)),2,"0") + padl(alltrim(str(zNum02,2,0)),2,"0")
if eof()
NuevDeCu()
endif
oDlgwBro:Hide()
oDlgwBro:Destroy()
re = 0
zImpMan1 = 0
zImpMan4 = 12
zAnc = 590
zLar = 810
zVer = int((600 - 590)/2)
zHor = int((1024 - (810*zProPorH))/2)
DEFINE WINDOW oDlgwVen MDICHILD OF oVentPrinc PIXEL FROM zVer*ProPorV,zHor*ProPorH TO (zVer+zAnc)*ProPorV,(zHor+zLar)*ProPorH COLORS escri01, fondo01 STYLE nOr(WS_DLGFRAME, WS_VSCROLL)
DEFINE SCROLLBAR oDlgwVen:oVScroll VERTICAL OF oDlgwVen
oDlgwVen:bKeyDown = { | nKey | ImprDeCu ( nKey ) }
oDlgwVen:bMouseWheel = { | nKey,nDelta,nXPos,nYPos | RatoDeCu ( nKey,nDelta,nXPos,nYPos ) }
pintdecu()
ACTIVATE WINDOW oDlgwVen NORMAL ON INIT IMPOSTASCROLL9(oDlgwVen,.T.) VALID (if (GetKeyState (VK_ESCAPE), .F.,oDlgwBus:End()))
RETURN (NIL)
Asi se carga lavariable (al final del todo
procedure TomaDeCu()
do case
case opci00 = 1
do case
case zNum01 = 1
zNum04 = 0
zNum05 = 20
zNum06 = 27
case zNum01 = 2
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 32
zNum06 = 64
case zNum02 = 2
zNum04 = 0
zNum05 = 30
zNum06 = 60
case zNum02 = 3
zNum04 = 0
zNum05 = 12
zNum06 = 24
case zNum02 = 4
zNum04 = 0
zNum05 = 30
zNum06 = 60
case zNum02 = 5
zNum04 = 0
zNum05 = 34
zNum06 = 68
endcase
case zNum01 = 3
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 32
zNum06 = 64
case zNum02 = 2
zNum04 = 0
zNum05 = 30
zNum06 = 60
endcase
case zNum01 = 4
zNum04 = 0
zNum05 = 23
zNum06 = 46
case zNum01 = 5
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 87
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 87
case zNum02 = 3
zNum04 = 0
zNum05 = 0
zNum06 = 87
case zNum02 = 4
zNum04 = 0
zNum05 = 0
zNum06 = 87
case zNum02 = 5
zNum04 = 0
zNum05 = 0
zNum06 = 29
endcase
case zNum01 = 6
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 28
zNum06 = 56
case zNum02 = 2
zNum04 = 0
zNum05 = 20
zNum06 = 40
case zNum02 = 3
zNum04 = 0
zNum05 = 29
zNum06 = 58
endcase
case zNum01 = 7
zNum04 = 0
zNum05 = 2
zNum06 = 0
case zNum01 = 8
do case
case zNum02 = 1
zNum04 = 50
zNum05 = 26
zNum06 = 129
case zNum02 = 2
zNum04 = 62
zNum05 = 31
zNum06 = 155
case zNum02 = 3
zNum04 = 33
zNum05 = 33
zNum06 = 0
case zNum02 = 4
zNum04 = 33
zNum05 = 66
zNum06 = 33
case zNum02 = 5
zNum04 = 33
zNum05 = 66
zNum06 = 33
case zNum02 = 6
zNum04 = 33
zNum05 = 33
zNum06 = 33
case zNum02 = 7
zNum04 = 33
zNum05 = 33
zNum06 = 33
case zNum02 = 8
zNum04 = 66
zNum05 = 33
zNum06 = 66
case zNum02 = 9
zNum04 = 0
zNum05 = 33
zNum06 = 0
endcase
case zNum01 = 9
zNum04 = 1
zNum05 = 36
zNum06 = 0
case zNum01 = 10
zNum04 = 0
zNum05 = 15
zNum06 = 0
endcase
case opci00 = 2
do case
case zNum01 = 1
zNum04 = 0
zNum05 = 20
zNum06 = 27
case zNum01 = 2
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 22
zNum06 = 44
case zNum02 = 2
zNum04 = 0
zNum05 = 26
zNum06 = 52
case zNum02 = 3
zNum04 = 0
zNum05 = 16
zNum06 = 32
endcase
case zNum01 = 3
zNum04 = 0
zNum05 = 29
zNum06 = 58
case zNum01 = 4
zNum04 = 0
zNum05 = 19
zNum06 = 38
case zNum01 = 5
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 63
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 63
case zNum02 = 3
zNum04 = 0
zNum05 = 0
zNum06 = 63
case zNum02 = 4
zNum04 = 0
zNum05 = 0
zNum06 = 63
case zNum02 = 5
zNum04 = 0
zNum05 = 0
zNum06 = 21
endcase
case zNum01 = 6
zNum04 = 0
zNum05 = 2
zNum06 = 0
case zNum01 = 7
do case
case zNum02 = 1
zNum04 = 50
zNum05 = 26
zNum06 = 129
case zNum02 = 2
zNum04 = 62
zNum05 = 31
zNum06 = 155
case zNum02 = 3
zNum04 = 33
zNum05 = 33
zNum06 = 0
case zNum02 = 4
zNum04 = 33
zNum05 = 66
zNum06 = 33
case zNum02 = 5
zNum04 = 33
zNum05 = 66
zNum06 = 33
case zNum02 = 6
zNum04 = 33
zNum05 = 33
zNum06 = 33
case zNum02 = 7
zNum04 = 33
zNum05 = 33
zNum06 = 33
case zNum02 = 8
zNum04 = 66
zNum05 = 33
zNum06 = 66
case zNum02 = 9
zNum04 = 0
zNum05 = 33
zNum06 = 0
endcase
case zNum01 = 8
zNum04 = 1
zNum05 = 36
zNum06 = 0
case zNum01 = 9
zNum04 = 0
zNum05 = 15
zNum06 = 0
case zNum01 = 10
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum01 = 11
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum01 = 12
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 26
endcase
case zNum01 = 13
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum01 = 14
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 90
endcase
case zNum01 = 15
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 108
case zNum02 = 3
zNum04 = 0
zNum05 = 0
zNum06 = 118
endcase
case zNum01 = 16
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 138
endcase
case zNum01 = 17
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum01 = 18
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum01 = 19
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 62
endcase
case zNum01 = 20
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 147
case zNum02 = 3
zNum04 = 0
zNum05 = 0
zNum06 = 147
case zNum02 = 4
zNum04 = 0
zNum05 = 0
zNum06 = 203
case zNum02 = 5
zNum04 = 0
zNum05 = 0
zNum06 = 203
endcase
case zNum01 = 21
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 64
endcase
case zNum01 = 22
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 32
case zNum02 = 3
zNum04 = 0
zNum05 = 0
zNum06 = 14
endcase
case zNum01 = 23
zNum04 = 0
zNum05 = 0
zNum06 = 14
endcase
case opci00 = 3
do case
case zNum01 = 1
zNum04 = 0
zNum05 = 20
zNum06 = 27
case zNum01 = 2
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 21
zNum06 = 42
case zNum02 = 2
zNum04 = 0
zNum05 = 25
zNum06 = 50
case zNum02 = 3
zNum04 = 0
zNum05 = 15
zNum06 = 30
endcase
case zNum01 = 3
zNum04 = 0
zNum05 = 28
zNum06 = 56
case zNum01 = 4
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 81
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 81
case zNum02 = 3
zNum04 = 0
zNum05 = 0
zNum06 = 81
case zNum02 = 4
zNum04 = 0
zNum05 = 0
zNum06 = 81
endcase
case zNum01 = 5
zNum04 = 0
zNum05 = 2
zNum06 = 0
case zNum01 = 6
do case
case zNum02 = 1
zNum04 = 50
zNum05 = 26
zNum06 = 129
case zNum02 = 2
zNum04 = 62
zNum05 = 31
zNum06 = 155
case zNum02 = 3
zNum04 = 33
zNum05 = 33
zNum06 = 0
case zNum02 = 4
zNum04 = 33
zNum05 = 66
zNum06 = 33
case zNum02 = 5
zNum04 = 33
zNum05 = 66
zNum06 = 33
case zNum02 = 6
zNum04 = 33
zNum05 = 33
zNum06 = 33
case zNum02 = 7
zNum04 = 33
zNum05 = 33
zNum06 = 33
case zNum02 = 8
zNum04 = 66
zNum05 = 33
zNum06 = 66
case zNum02 = 9
zNum04 = 0
zNum05 = 33
zNum06 = 0
endcase
case zNum01 = 7
zNum04 = 1
zNum05 = 36
zNum06 = 0
case zNum01 = 8
zNum04 = 0
zNum05 = 15
zNum06 = 0
case zNum01 = 9
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum01 = 10
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum01 = 11
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 26
endcase
case zNum01 = 12
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum01 = 13
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 90
endcase
case zNum01 = 14
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 108
case zNum02 = 3
zNum04 = 0
zNum05 = 0
zNum06 = 118
endcase
case zNum01 = 15
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 138
endcase
case zNum01 = 16
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum01 = 17
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum01 = 18
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 62
endcase
case zNum01 = 19
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 147
case zNum02 = 3
zNum04 = 0
zNum05 = 0
zNum06 = 147
case zNum02 = 4
zNum04 = 0
zNum05 = 0
zNum06 = 203
case zNum02 = 5
zNum04 = 0
zNum05 = 0
zNum06 = 203
endcase
case zNum01 = 20
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 64
endcase
case zNum01 = 21
do case
case zNum02 = 1
zNum04 = 0
zNum05 = 0
zNum06 = 0
case zNum02 = 2
zNum04 = 0
zNum05 = 0
zNum06 = 32
case zNum02 = 3
zNum04 = 0
zNum05 = 0
zNum06 = 14
endcase
case zNum01 = 22
zNum04 = 0
zNum05 = 0
zNum06 = 14
endcase
endcase
SELECT 47
if re = 0
seek zejer + str(opci00,1,0) + zNom + padl(alltrim(str(zNum01,2,0)),2,"0") + padl(alltrim(str(zNum02,2,0)),2,"0")
else
go re
endif
a = 1
do while .T.
do case
case a > 99
zVari1 = "zCampoFe" + str(a,3,0)
zVari2 = "zCampoTe" + str(a,3,0)
zVari3 = "zCampoNu" + str(a,3,0)
zVari4 = "CampoFe" + str(a,3,0)
zVari5 = "CampoTe" + str(a,3,0)
zVari6 = "CampoNu" + str(a,3,0)
case a > 9
zVari1 = "zCampoFe0" + str(a,2,0)
zVari2 = "zCampoTe0" + str(a,2,0)
zVari3 = "zCampoNu0" + str(a,2,0)
zVari4 = "CampoFe0" + str(a,2,0)
zVari5 = "CampoTe0" + str(a,2,0)
zVari6 = "CampoNu0" + str(a,2,0)
otherwise
zVari1 = "zCampoFe00" + str(a,1,0)
zVari2 = "zCampoTe00" + str(a,1,0)
zVari3 = "zCampoNu00" + str(a,1,0)
zVari4 = "CampoFe00" + str(a,1,0)
zVari5 = "CampoTe00" + str(a,1,0)
zVari6 = "CampoNu00" + str(a,1,0)
endcase
if a <= zNum04
&zVari1 = &zVari4
endif
if a <= zNum05
&zVari2 = &zVari5
endif
if a <= zNum06
&zVari3 = &zVari6
endif
a = a + 1
if a = 205
exit
endif
enddo
if zNum04 + zNum05 + zNum06 = 0
zCampoMe001 := CampoMe001
endif
RETURN (NIL)
Asi se pide primero una imagen de fondo:
zImpMan1 = 0
oImg = CurDrive() + ":\" + CurDir() + "\impranua\" + zNom + padl(alltrim(str(zNum01,2,0)),2,"0") + padl(alltrim(str(zNum02,2,0)),2,"0") + ".png"
@( 5*ProporV)-(zImpMan1*30), 5*ProporH IMAGE tDlg001 FILE oImg OF oDlgwVen PIXEL SIZE 700*ProporH,1185*ProporV ADJUST
botodecu()
gDlg001:SetFocus()
Despues se solicita el campò:
procedure To15DeCu()
@8000*ProporV,625*ProporH SAY vDlg001 VAR "" OF oDlgwVen PIXEL COLOR escri03, fondo03 FONT oFont SIZE 0*ProporH, 0*ProPorV
@ 95*ProporV, 35*ProPorH GET gDlg001 VAR zCampoMe001 MEMO OF oDlgwVen PIXEL COLOR escri02, fondo02 FONT oFont SIZE 640*ProPorH, 1050*ProPorV NOBORDER
RETURN (NIL)
Asi se graba (al final):
procedure GrabDeCu()
bloqfila()
a = 1
do while .T.
do case
case a > 99
zVari1 = "zCampoFe" + str(a,3,0)
zVari2 = "zCampoTe" + str(a,3,0)
zVari3 = "zCampoNu" + str(a,3,0)
zVari4 = "CampoFe" + str(a,3,0)
zVari5 = "CampoTe" + str(a,3,0)
zVari6 = "CampoNu" + str(a,3,0)
case a > 9
zVari1 = "zCampoFe0" + str(a,2,0)
zVari2 = "zCampoTe0" + str(a,2,0)
zVari3 = "zCampoNu0" + str(a,2,0)
zVari4 = "CampoFe0" + str(a,2,0)
zVari5 = "CampoTe0" + str(a,2,0)
zVari6 = "CampoNu0" + str(a,2,0)
otherwise
zVari1 = "zCampoFe00" + str(a,1,0)
zVari2 = "zCampoTe00" + str(a,1,0)
zVari3 = "zCampoNu00" + str(a,1,0)
zVari4 = "CampoFe00" + str(a,1,0)
zVari5 = "CampoTe00" + str(a,1,0)
zVari6 = "CampoNu00" + str(a,1,0)
endcase
if a <= zNum04
replace &zVari4 with &zVari1
endif
if a <= zNum05
replace &zVari5 with &zVari2
endif
if a <= zNum06
replace &zVari6 with &zVari3
endif
a = a + 1
if a = 205
exit
endif
enddo
if zNum04 + zNum05 + zNum06 = 0
* replace CampoMe001 with zCampoMe001
CampoMe001 := zCampoMe001
endif
if zNum01 = 1
va110 = campote018
va111 = campote019
va112 = campote020
va100 = campote001
va101 = campote005
va102 = space(20)
va103 = campote006
va104 = campote007
va105 = campote008
endif
dbunlock()
RETURN (NIL)
Un saludo
Carlos