CASE MESSAGE('Você deseja Gerar a página HTML?','Sucesso na geração do Arquivo',ICON:Question,BUTTON:Yes+BUTTON:No,BUTTON:No,1)
OF BUTTON:No
CYCLE
OF BUTTON:Yes
DeleteFile('\amarildo\a.txt')
end
quinta-feira, 21 de maio de 2009
Line Printer - Aumentar para limitacao caracteres - 21 05 09
hpvBuffer STRING(2048) <- aqui aumenta tamanho
Correção da limitação de 500 caracter por linha do Lineprint para 2048 caracteres. Esse erro foi verificado devido a remessa dos arquivos contabeis exigir 600 caracteres. Caso alguem passe por isso é só mudar dentro do template para o tamanho que achar necessário.
Correção da limitação de 500 caracter por linha do Lineprint para 2048 caracteres. Esse erro foi verificado devido a remessa dos arquivos contabeis exigir 600 caracteres. Caso alguem passe por isso é só mudar dentro do template para o tamanho que achar necessário.
quarta-feira, 13 de maio de 2009
Clarion - Queue - Pegar Campos (13 05 09)
LOOP
Campo# += 1
Nome" = WHO(ListQueue,Campo#)
if Nome" = '' then
Campo# -= 1
BREAK
END
END
message(Campo#)
Campo# += 1
Nome" = WHO(ListQueue,Campo#)
if Nome" = '' then
Campo# -= 1
BREAK
END
END
message(Campo#)
terça-feira, 12 de maio de 2009
Clarion - Programa Manual
segunda-feira, 11 de maio de 2009
sábado, 9 de maio de 2009
Clarion - Primeiro Programa - 09 05 09 08:20
program
map
testeproc
end
code
testeproc()
testeproc procedure
code
message('ola')
map
testeproc
end
code
testeproc()
testeproc procedure
code
message('ola')
terça-feira, 5 de maio de 2009
segunda-feira, 4 de maio de 2009
Clarion - Xml - IqXml - Como Fazer
!After Global Includes
INCLUDE('iQXML.inc','Equates')
--
!Before File Declarations
SOFTBALL FILE,DRIVER('TOPSPEED'),PRE(TEA),CREATE,BINDABLE,THREAD
LastNameKey KEY(TEA:LastName),DUP,NOCASE
Record RECORD,PRE()
Id LONG
FirstName STRING(30)
LastName STRING(30)
Hits SHORT
END
END
ASC2:ASCIIFile FILE,PRE(ASC2),DRIVER('ASCII'),NAME(ASCIIFileName),create
RECORD RECORD,PRE()
STRING STRING(5000)
END
END
----
!Inside the Global Map
INCLUDE('iQXML.inc','Modules')
INCLUDE('iQXML.inc','Equates')
--
!Before File Declarations
SOFTBALL FILE,DRIVER('TOPSPEED'),PRE(TEA),CREATE,BINDABLE,THREAD
LastNameKey KEY(TEA:LastName),DUP,NOCASE
Record RECORD,PRE()
Id LONG
FirstName STRING(30)
LastName STRING(30)
Hits SHORT
END
END
ASC2:ASCIIFile FILE,PRE(ASC2),DRIVER('ASCII'),NAME(ASCIIFileName),create
RECORD RECORD,PRE()
STRING STRING(5000)
END
END
----
!Inside the Global Map
INCLUDE('iQXML.inc','Modules')
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)