domingo, 3 de maio de 2009
Queue - Copiar em memoria
Queue - Copiar em memoria
loop a# = 1 to record(cola) by 1
bet(Cola,q#)
end
get(cola,campo) !Busca um resitro
add(cola)
put(cola)
delete(cola)
loop a# = 1 to record(cola) by 1
bet(Cola,q#)
end
get(cola,campo) !Busca um resitro
add(cola)
put(cola)
delete(cola)
Browse - subir,descer registro
Browse - subir,descer registro
Windo Manager - init - (pr-9000)
post(event:scrollUp,?browse) !subir um registro
post(event:scrollDown,?browse) !descer um registro
post(event:scrolltop,?browse) !primeiro um registro
post(event:scrollBottom,?browse)!ultimo um registro
Windo Manager - init - (pr-9000)
post(event:scrollUp,?browse) !subir um registro
post(event:scrollDown,?browse) !descer um registro
post(event:scrolltop,?browse) !primeiro um registro
post(event:scrollBottom,?browse)!ultimo um registro
Menu - PopUp Menu de um browse
Menu - PopUp Menu de um browse
Window Manager - Init - Prepare Alert Key(Pr-9001)
Brw1.PopUp.AddItemMimic('Texto',?Boton)
Window Manager - Init - Prepare Alert Key(Pr-9001)
Brw1.PopUp.AddItemMimic('Texto',?Boton)
Menu - PopUp Menu de um browse
Menu - PopUp Menu de um browse
Window Manager - Init - Prepare Alert Key(Pr-9001)
Brw1.PopUp.AddItemMimic('Texto',?Boton)
Window Manager - Init - Prepare Alert Key(Pr-9001)
Brw1.PopUp.AddItemMimic('Texto',?Boton)
Browse - Ordenar antes de abrir
Browse - Ordenar antes de abrir
Local Objects - Brows on Tabela - InitSort (pr-10000)
Brw1.SetOrder('tbl:Campo')
Local Objects - Brows on Tabela - InitSort (pr-10000)
Brw1.SetOrder('tbl:Campo')
Browse - Resetar
Browse - Resetar
setcursos(cursor:wait)
brw1.ResetFromFile()
Brw1.ResetFromBuffer()
ThisWindow.Reset(True)
Setcursos
setcursos(cursor:wait)
brw1.ResetFromFile()
Brw1.ResetFromBuffer()
ThisWindow.Reset(True)
Setcursos
Browse - Resetar
Browse - Resetar
setcursos(cursor:wait)
brw1.ResetFromFile()
Brw1.ResetFromBuffer()
ThisWindow.Reset(True)
Setcursos
setcursos(cursor:wait)
brw1.ResetFromFile()
Brw1.ResetFromBuffer()
ThisWindow.Reset(True)
Setcursos
Browse - Chave composta em campos
Browse - Chave composta em campos
Chave de uma tabela
-------------------
Empresa
Cliente
colocar em Range Limite sempre o ultimo campo de uma chave que se quer limitar
no caso cliente
se quizer empresa colocar
TBL:EMPRESA=GLO:EMPRESA
BRW1.ADDRANGE(TBL:EMPRESA)
BRW1.APPLYRANGE()
thisWindow.Reset(True)
Se quizer cliente colocar
TBL:Cliente=GLO:Cliente
BRW1.ADDRANGE(TBL:EMPRESA)
BRW1.APPLYRANGE()
thisWindow.Reset(True)
Chave de uma tabela
-------------------
Empresa
Cliente
colocar em Range Limite sempre o ultimo campo de uma chave que se quer limitar
no caso cliente
se quizer empresa colocar
TBL:EMPRESA=GLO:EMPRESA
BRW1.ADDRANGE(TBL:EMPRESA)
BRW1.APPLYRANGE()
thisWindow.Reset(True)
Se quizer cliente colocar
TBL:Cliente=GLO:Cliente
BRW1.ADDRANGE(TBL:EMPRESA)
BRW1.APPLYRANGE()
thisWindow.Reset(True)
Report - como colocar filtro antes de imprimir
Report - como colocar filtro antes de imprimir
Open Report - code (pr-5000)
ThisReport.SetFilterr('TBL:CAMPO1=xxx')
ThisReport.ApplyFilter()
Open Report - code (pr-5000)
ThisReport.SetFilterr('TBL:CAMPO1=xxx')
ThisReport.ApplyFilter()
Report - como colocar ordem antes de imprimir
Report - como colocar ordem antes de imprimir
Open Report - code (pr-5000)
ThisReport.SetOrder('TBL:CAMPO1','TBL:CAMPO2','-TBL:CAMPO3')
ThisReport.ApplyOrder()
Open Report - code (pr-5000)
ThisReport.SetOrder('TBL:CAMPO1','TBL:CAMPO2','-TBL:CAMPO3')
ThisReport.ApplyOrder()
Browse - controlar browse antes de um form
Browse - controlar browse antes de um form
Local Object - Browse on tabla - ask(Byte REquest) (pr-4999)
if request = insertREcord
Local Object - Browse on tabla - ask(Byte REquest) (pr-4999)
if request = insertREcord
Browse - controlar browse antes de um form
Browse - controlar browse antes de um form
Local Object - Browse on tabla - ask(Byte REquest) (pr-4999)
if request = insertREcord
Local Object - Browse on tabla - ask(Byte REquest) (pr-4999)
if request = insertREcord
Browse - filtrar antes de mostrar - 1
Browse - filtrar antes de mostrar
Local Object - Browse on tabla - ValidateRecord (pr-4500)
if condicion then return Record:Filtered;end
Local Object - Browse on tabla - ValidateRecord (pr-4500)
if condicion then return Record:Filtered;end
Browse - filtrar antes de mostrar - 1
Browse - filtrar antes de mostrar
Local Object - Browse on tabla - ValidateRecord (pr-4500)
if condicion then return Record:Filtered;end
Local Object - Browse on tabla - ValidateRecord (pr-4500)
if condicion then return Record:Filtered;end
Browse - filtrar antes de mostrar
Browse - filtrar antes de mostrar
Local Object - Browse on tabla - initsort (pr-10000)
if condicion = 1
brw1.setfilter('(tcon:cvp_b<>0)')
brw1.ApplyFilter()
end
Local Object - Browse on tabla - initsort (pr-10000)
if condicion = 1
brw1.setfilter('(tcon:cvp_b<>0)')
brw1.ApplyFilter()
end
Browse - como colocar codigo em cada registro lido
Browse - como colocar codigo em cada registro lido
Local Object - Browse on tabla - SetQueueRecord(pr-2500)
Local Object - Browse on tabla - SetQueueRecord(pr-2500)
Browse - como colocar codigo em cada registro lido
Browse - como colocar codigo em cada registro lido
Local Object - Browse on tabla - SetQueueRecord(pr-2500)
Local Object - Browse on tabla - SetQueueRecord(pr-2500)
Como forcar validacao de um campo
Como forcar validacao de um campo
Control events - Selected - Generated Code (pr-4000)
?campo{prop:touched} = true
Control events - Selected - Generated Code (pr-4000)
?campo{prop:touched} = true
Onde colocar codigo para validar em um campo form
Onde colocar codigo para validar em um campo form
Control Events - Accept - Generated Code (pr-7000)
if condicao
beep
message('Texto com erro','Texto ventada',&ICON:EXCLAMATION,BUTTON:CANCEL,BUTTON:CANCEL,1)
select(?)
cycle
end
se quizer testar todos botoes
case message('texto','texto1',icon:question,button:yes+button:no,button:no,1)
of button:no
select(?)
cycle
of button:yes
end
Control Events - Accept - Generated Code (pr-7000)
if condicao
beep
message('Texto com erro','Texto ventada',&ICON:EXCLAMATION,BUTTON:CANCEL,BUTTON:CANCEL,1)
select(?)
cycle
end
se quizer testar todos botoes
case message('texto','texto1',icon:question,button:yes+button:no,button:no,1)
of button:no
select(?)
cycle
of button:yes
end
Colocar Codigos depois do form - inclusao-alteracao-exclusao
Colocar Codigos depois do form - inclusao-alteracao-exclusao
Window Manager - Takecompleted (pr-5001)
if sef.request = insertREcord
if sef.request = changeREcord
if sef.request = DeleteREcord
Window Manager - Takecompleted (pr-5001)
if sef.request = insertREcord
if sef.request = changeREcord
if sef.request = DeleteREcord
Colocar Codigos antes do form - inclusao-alteracao-exclusao
Colocar Codigos antes do form - inclusao-alteracao-exclusao
Window Manager - Takecompleted (pr-5000)
if sef.request = insertREcord
if sef.request = changeREcord
if sef.request = DeleteREcord
Window Manager - Takecompleted (pr-5000)
if sef.request = insertREcord
if sef.request = changeREcord
if sef.request = DeleteREcord
Saber modo - inclusao/alteracao/exclusao
Antes de abrir saber qual modo
ADD-CHANGE-DELETE-VIEW
Window Manager - Init - Open the window(pr-8000)
IF SELF.REQUEST = INSERTRECORD
IF SELF.REQUEST = CHANGERECORD
IF SELF.REQUEST = VIEWRECORD
IF SELF.REQUEST = DELETERECORD
ADD-CHANGE-DELETE-VIEW
Window Manager - Init - Open the window(pr-8000)
IF SELF.REQUEST = INSERTRECORD
IF SELF.REQUEST = CHANGERECORD
IF SELF.REQUEST = VIEWRECORD
IF SELF.REQUEST = DELETERECORD
Igualar duas tabelas
Igualar os registros de duas tabelas
tb1:record :=: tb2:record
iguala duas tabelas indepedente das posicoes dos campos
tb1:record :=: tb2:record
iguala duas tabelas indepedente das posicoes dos campos
Arquivos - Acesso Sequencial
Clear(tbl:record)
tbl:campo=xxx
set(tbk:chave,tbl:chave)
loop until access:tabla.next()
xxx
end
tbl:campo=xxx
set(tbk:chave,tbl:chave)
loop until access:tabla.next()
xxx
end
Excluir Registro
Clear(tbl:record)
tbl:campo=xxx
access:tabla.fetch(tbl:chave)
if error()
access:Tabla:deleterecord()
relate:tabla.delete(0)
delete(tabla)
end
tbl:campo=xxx
access:tabla.fetch(tbl:chave)
if error()
access:Tabla:deleterecord()
relate:tabla.delete(0)
delete(tabla)
end
Alterar - Registro
Clear(tbl:record)
tbl:campo=xxx
access:tabla.fetch(tbl:chave)
if error()
tbl:campo=xxx
access:Tabla:update()
end
tbl:campo=xxx
access:tabla.fetch(tbl:chave)
if error()
tbl:campo=xxx
access:Tabla:update()
end
String - Instring
Texto CLASS
Frase String(200), PROTECTED
Palabra String(20), PROTECTED
Puntero Short, PROTECTED
Delimitadores String(20), PRIVATE
Construct PROCEDURE
Inicio PROCEDURE(String Frase)
SigPalabra PROCEDURE, String
END
Texto.Construct PROCEDURE()
CODE
!cualquiera de estos caracteres pueden separar palabras
SELF.Delimitadores = ' ,;.-()][}{{_:<<>\/@#ºª^?¿¡!|"'''
SELF.Puntero = 1
Texto.Inicio PROCEDURE(String Frase)
CODE
SELF.Puntero = 1
SELF.Frase = Frase
Texto.SigPalabra PROCEDURE()
DESDE SHORT
HASTA SHORT
LETRA STRING(1)
CODE
SELF.Palabra = ''
!primero busco donde comienza la siguiente palabra (elimino delimitadores)
LOOP DESDE = SELF.Puntero TO 200
IF NOT INSTRING(SUB(SELF.Frase,DESDE,1), SELF.Delimitadores,1,1)
THEN BREAK.
END
LOOP HASTA = DESDE TO 200
Letra = SUB(SELF.Frase,HASTA,1)
IF INSTRING(Letra, SELF.Delimitadores,1,1)
BREAK
ELSE
SELF.Palabra = CLIP(SELF.Palabra) & Letra
END
END
SELF.Puntero = HASTA + 1
RETURN(SELF.Frase[Desde : Hasta])
Frase String(200), PROTECTED
Palabra String(20), PROTECTED
Puntero Short, PROTECTED
Delimitadores String(20), PRIVATE
Construct PROCEDURE
Inicio PROCEDURE(String Frase)
SigPalabra PROCEDURE, String
END
Texto.Construct PROCEDURE()
CODE
!cualquiera de estos caracteres pueden separar palabras
SELF.Delimitadores = ' ,;.-()][}{{_:<<>\/@#ºª^?¿¡!|"'''
SELF.Puntero = 1
Texto.Inicio PROCEDURE(String Frase)
CODE
SELF.Puntero = 1
SELF.Frase = Frase
Texto.SigPalabra PROCEDURE()
DESDE SHORT
HASTA SHORT
LETRA STRING(1)
CODE
SELF.Palabra = ''
!primero busco donde comienza la siguiente palabra (elimino delimitadores)
LOOP DESDE = SELF.Puntero TO 200
IF NOT INSTRING(SUB(SELF.Frase,DESDE,1), SELF.Delimitadores,1,1)
THEN BREAK.
END
LOOP HASTA = DESDE TO 200
Letra = SUB(SELF.Frase,HASTA,1)
IF INSTRING(Letra, SELF.Delimitadores,1,1)
BREAK
ELSE
SELF.Palabra = CLIP(SELF.Palabra) & Letra
END
END
SELF.Puntero = HASTA + 1
RETURN(SELF.Frase[Desde : Hasta])
Clarion - Gravar direto api windows txt
\BANCO\EXEMPLO\TXT\WRITE.APP - EVOLUTION
!Variaveis
Texto cstring 10.000
FileName cstring 200
!Variavies
!Inside the Global Map
MODULE('Windows API')
_lcreat(*CSTRING,SIGNED),SIGNED,PASCAL,RAW
_hwrite(SIGNED,*CSTRING,LONG),LONG,PASCAL,RAW
_lclose(SIGNED),SIGNED,PASCAL
END
!CODE
IF NOT FILEDIALOG('Guardar como',FileName,'Text|*.TXT|Source|*.CLW',FILE:Save + FILE:LongName)
CYCLE
END
F# = _lcreat(FileName,0)
X# = _hwrite(F#,Texto,LEN(Texto))
X# = _lclose(F#)
!code
!Variaveis
Texto cstring 10.000
FileName cstring 200
!Variavies
!Inside the Global Map
MODULE('Windows API')
_lcreat(*CSTRING,SIGNED),SIGNED,PASCAL,RAW
_hwrite(SIGNED,*CSTRING,LONG),LONG,PASCAL,RAW
_lclose(SIGNED),SIGNED,PASCAL
END
!CODE
IF NOT FILEDIALOG('Guardar como',FileName,'Text|*.TXT|Source|*.CLW',FILE:Save + FILE:LongName)
CYCLE
END
F# = _lcreat(FileName,0)
X# = _hwrite(F#,Texto,LEN(Texto))
X# = _lclose(F#)
!code
Assinar:
Postagens (Atom)