PREENCHER GET COM P
Moderador: Moderadores
- Sergio_ASSilva
- Usuário Nível 2

- Mensagens: 92
- Registrado em: 09 Mar 2006 10:58
- Localização: Santo Estevão (Ba)
PREENCHER GET COM P
Olá Pessoal,
Algutem tem alguma fucao que complete o Get com a medida que a gente vai digitando as letras, um pouco doiferente da pesquisa letra a letra que vamos digitando e vai aparecendo os nomes e depois nos selecionamos com Ente.
Grato
Algutem tem alguma fucao que complete o Get com a medida que a gente vai digitando as letras, um pouco doiferente da pesquisa letra a letra que vamos digitando e vai aparecendo os nomes e depois nos selecionamos com Ente.
Grato
Clipper 5.3a/Blinker 7/DBFNTX
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: PREENCHER GET COM P
Tche, essa é Boa, mas CLIPPER não é EXCEL...entaum acho que para isso que vc esta citando funcionar, vc vai ter que alterar o GETSYS.PRG...agora como alterar e onde alterar eu não sei pq nunca mexi no GETSYS.PRG...se quiser dar uma olhada em um exemplo que adptei para tbrowse do letra a letra pode baixar no link abaixo:Sergio_ASSilva escreveu:Olá Pessoal,
Algutem tem alguma fucao que complete o Get com a medida que a gente vai digitando as letras, um pouco doiferente da pesquisa letra a letra que vamos digitando e vai aparecendo os nomes e depois nos selecionamos com Ente.
Grato
http://www.sygecom.com.br/xharbour/letra_a_letra.zip
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Se for pra fazer uma caixa de edição como nos programas Windows, nem mesmo alterando a GETSYS pra dar jeito, já que nela o controle de edição é feito pelos pseudo-objetos da classe GET. Teria de ser feito outro GETSYS, mas sem o uso dessa classe; implementando tudo na unha.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Pessoal... eu posso até estar falando alguma besteira... mais até onde eu sei, o "efeito" que o parceiro quer implementar, semelhante ao "auto-completar" do Excel ou até mesmo do OutLook entre outros, só é possível prq a rotina invoca uma base de dados (digamos assim) que guarda em bytes as últimas "x" entradas via teclado daquela máquina...
Talvez, se quizessemos implementar algo parecido em Clipper, o caminho (lógica/algorítimo) seja esse...
Talvez, se quizessemos implementar algo parecido em Clipper, o caminho (lógica/algorítimo) seja esse...
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
A lógica é mais ou menos essa. Os dados podem residir num buffer pra facilitar o trabalho, da mesma forma que se faz num combo box qualquer em Windows. Mas o problema está em implementar isso no GETLIST. De forma nativa, só com os métidos da classe GET não dá pra fazer.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Sergio_ASSilva
- Usuário Nível 2

- Mensagens: 92
- Registrado em: 09 Mar 2006 10:58
- Localização: Santo Estevão (Ba)
Sergio,
Se o campo que vai preencher for indexado, dá para usar a rotina abaixo:
[/code]
Se o campo que vai preencher for indexado, dá para usar a rotina abaixo:
Código: Selecionar todos
cNOME = space(40)
@ 10,10 GET cNOME PICT "@!"" WHEN BUSCANOME()
READ
// Faça alterações necessária para adequar ao seu programa
// A alteração será no indice, nas cores e nas coordenadas do get
/////////////////////////////
FUNCTION BUSCANOME
LOCAL tam, buf, get, pos, lin, col, tec, n_nsx
N_NSX := INDEXORD()
DBSETORDER(1) // set order do seu indice
get := GETACTIVE()
lin := get:row
col := get:col
buf := get:VarGet()
tam := LEN(buf)
pos := 1
SETCOLOR("w+/b")
@ 10,10 CLEAR TO 10,49 // coordenadas do seu get
DO WHILE .T.
@ 10,10 CLEAR TO 10,49 // coordenadas do seu get
SETPOS(lin, col)
DISPOUT(buf)
SETCOLOR("w+/b")
SET COLOR TO W+/R
SETPOS(lin, col - 1 + pos)
tec := INKEY(0)
IF tec >= 32 .AND. tec <= 255
TEC := ASC( UPPER( CHR( TEC )))
buf := LEFT(buf, pos - 1) + CHR(tec) + SUBS(buf, pos + 1)
IF DBSEEK(LEFT(buf, pos), .T.)
buf := LEFT(&(INDEXKEY(0)), tam)
ELSE
buf := LEFT(buf, pos) + SPACE( TAM - POS)
ENDIF
pos := MIN(tam, pos + 1)
ELSEIF tec == K_LEFT
pos := MAX(1, pos - 1)
ELSEIF tec == K_RIGHT
pos := MIN(tam, pos + 1)
ELSEIF tec == K_HOME
pos := 1
ELSEIF tec == K_END
pos := MIN(tam, LEN(TRIM(buf)) + 1)
ELSEIF tec == K_BS
IF pos > 1
pos --
buf := LEFT(buf, pos - 1) + SUBS(buf, pos + 1) + " "
ENDIF
ELSE
KEYB CHR(tec)
get:VarPut(buf)
get:UpdateBuffer()
DBSETORDER( N_NSX )
RETURN .T.
ENDIF
ENDDORapaz,
Eu acho que tenho uma função que faz isso! Peguei em algum site, mas não lembro em qual...
Quando eu chegar em casa vou olhar se encontro, valeu?
Jânio
Eu acho que tenho uma função que faz isso! Peguei em algum site, mas não lembro em qual...
Quando eu chegar em casa vou olhar se encontro, valeu?
Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- Sergio_ASSilva
- Usuário Nível 2

- Mensagens: 92
- Registrado em: 09 Mar 2006 10:58
- Localização: Santo Estevão (Ba)
BUSCAR NOME
Bom dia Zoc !!
Colega, achei interessantíssimo sua rotina. Tentei implementá-la. Porém o programa informa que não existe a variável K_LEFT. Tenho que inicializá-la primeiro ??
Grato!
Netavin
Colega, achei interessantíssimo sua rotina. Tentei implementá-la. Porém o programa informa que não existe a variável K_LEFT. Tenho que inicializá-la primeiro ??
Grato!
Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
" Sem saber que era impossível, foi lá e fez !! "
Re: BUSCAR NOME
Esse é o código da tecla seta à esquerda. Basta incluir o header INKEY.CH no seu programa.Netavin escreveu:o programa informa que não existe a variável K_LEFT. Tenho que inicializá-la primeiro ??
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
GET
... valeu amigo Malígno !!!
Como não pensei nisso antes de escrever ..!?
Desculpe-me!!
Sinceros agradecimentos!
[]´s
Netavin.
Como não pensei nisso antes de escrever ..!?
Desculpe-me!!
Sinceros agradecimentos!
[]´s
Netavin.
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
" Sem saber que era impossível, foi lá e fez !! "
Re: GET
São os pequenos detalhes que fazem a diferença. Eu sofro com esse tipo de esquecimento o tempo todo com C e C++, que são linguagens altamente dependentes de headers. O remédio pra isso é desconfiar sempre. Faça como eu faço. Eu sempre me digo coisas do tipo: "Aposto que vai dar errado.", "Deu certo! Mas deve ter algo errado!".Netavin escreveu:... valeu amigo Malígno !!!
Como não pensei nisso antes de escrever ..!?
Não tem do que se desculpar. Isso acontece.Desculpe-me!!
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
O exemplo que o colega Zoc deu, acho que resolveu. Mas gostaria de adicionar um exemplo que eu tenho no cadastro de clientes, onde cadastra-se a empresa onde trabalha. Este exemplo servirá para demostrar a exibição da empresa fora do focus do GET onde o usuário digita (aparecendo a sugestão ao estilo Windows). Fiz esta função para que o usuário não precise digitar muito, consultando um BD de empresas da qual tiro proveito para mala-direta. Portanto não permito que haja duplicidade de registros. A procura da empresa é em modo FANTASIA, isto é, o nome reduzido ou nome mais conhecido da empresa. Mesmo que no meu exemplo abaixo eu tenha colocado poucos campos (para facilitar compreensão), nesse BD daria para acrescentar outros campos como endereço, telefone, CNPJ, etc. Neste exemplo também pode ser utilizado para corregir certos tipos de erros cometido pelo usuário. Por exemplo colocar "APOSENTADO" como nome da empresa.
O exemplo acima pode ser compilado que irá criar um arquivo DBF e NTX para sua funcionabilidade. Digite como exemplo a palavra "BAN" e irá aparecer o primeiro banco cadastrado mas se digitar "BAND" irá muda para BANDEIRANTES, também pode ser testado com a palavra "SAD".
Cabe lembrar a você que caso haja necessidade de cadastrar nova empresa o sistema acatará ao confirmar com <ENTER>.
Bem, espero que gostem e tenha servidor para outros propósitos também.
Código: Selecionar todos
SETCOLOR("N/W")
CLS
CONTECOR := { "09/01","00/07","15/04","15/01","00/03","00/07","04/07","08/07","15/03","15/02","15/04","14/07","15/03" }
IF !FILE("EMPRESAS.DBF")
CRIARQS()
ENDIF
SELE 4
USE EMPRESAS INDEX EMPRE001,EMPRE003
V_EMP:=SPACE(20)
V_COD_EMP:=1
TELA_TRAB=SAVESCREEN(14,05,17,78)
@ 13,08 SAY " Local de Trabalho.....:"
@ 13,33 SAY V_EMP COLOR CONTECOR[8]
@ 13,82 GET V_COD_EMP PICT "9999" WHEN MUDA_EMP(V_COD_EMP)
READ
@ 14,08 SAY " Codigo da Empresa.....: "+STRZERO(V_COD_EMP,6,0)
FUNCTION MUDA_EMP(V_COD_EMP,XMSG)
// MENSAGEM("Digite o nome da empresa onde trabalha")
SET CURSOR ON
VP=1
VQL1=ROW()
VQC1=COL()
VX1=13
VY1=33
IF V_COD_EMP=0
V_EMP=SPACE(20)
ELSE
SELE 4
SET ORDER TO 1
SEEK STRZERO(V_COD_EMP,4,0)
IF FOUND()
V_EMP=(4->FANTASIA)
ELSE
V_EMP=SPACE(20)
ENDIF
ENDIF
VT=LEN(V_EMP)
DECLARE LETRAS[VT]
FOR VI=1 TO VT
LETRAS[VI]:=SUBSTR(V_EMP,VI,1)
NEXT
@ VX1,VY1 SAY V_EMP COLOR CONTECOR[9]
@ VX1,VY1-1+VP SAY "" COLOR CONTECOR[9]
DO WHILE .T.
PASS=''
FOR VI=1 TO VT
PASS=PASS+LETRAS[VI]
NEXT
IF LEN(ALLTRIM(PASS))>2
SELE 4
SET ORDER TO 2
SEEK ALLTRIM(PASS)
IF FOUND()
RESTSCREEN(14,05,17,78,TELA_TRAB)
VTAM=LEN(ALLTRIM(PASS))
@ 14,30+VTAM TO 16,VTAM+31+LEN(ALLTRIM(4->FANTASIA)) COLOR CONTECOR[4]
@ 15,31+VTAM SAY ALLTRIM(4->FANTASIA) COLOR CONTECOR[4]
SOMBRA(14,30+VTAM,16,VTAM+31+LEN(ALLTRIM(4->FANTASIA)))
ELSE
RESTSCREEN(14,05,17,78,TELA_TRAB)
ENDIF
ELSE
RESTSCREEN(14,05,17,78,TELA_TRAB)
ENDIF
@ VX1,VY1-1+VP SAY "" COLOR CONTECOR[9]
CODI=INKEY(0)
IF CODI=0
LOOP
ELSEIF CODI=25 // Ctrl-Y
VP=1
AFILL(LETRAS,SPACE(1))
FOR VI=VP TO VT
@ VX1,VY1-1+VI SAY LETRAS[VI] COLOR CONTECOR[9]
NEXT
LOOP
ELSEIF CODI=8 .AND. VP>1 // Backspace, Ctrl-H
VP=VP-1
ADEL(LETRAS,VP)
LETRAS[VT]=SPACE(1)
FOR VI=VP TO VT
@ VX1,VY1-1+VI SAY LETRAS[VI] COLOR CONTECOR[9]
NEXT
ELSEIF CODI=8 .AND. VP=1
LOOP
ELSEIF CODI=19 .AND. VP>1 .AND. VP<=VT // Left arrow, Ctrl-S
@ VX1,VY1-1+VP SAY LETRAS[VP] COLOR CONTECOR[9]
VP=VP-1
LOOP
ELSEIF CODI=7 // Del, Ctrl-G
ADEL(LETRAS,VP)
LETRAS[VT]:=" "
FOR VI=VP TO VT
@ VX1,VY1-1+VI SAY LETRAS[VI] COLOR CONTECOR[9]
NEXT
ELSEIF CODI=5 // Up
KEYBOARD CHR(5)
EXIT
ELSEIF CODI=24 // Down
KEYBOARD CHR(24)
EXIT
ELSEIF CODI=18 .OR. CODI=3 .OR. CODI=26 .OR. CODI=2 .OR. CODI=29 .OR. CODI=23 .OR. CODI=31 .OR. CODI=30 .OR. CODI=10 .OR. CODI=9 .OR. CODI=28 .OR. CODI<0
EXIT
ELSEIF CODI=6 // End, Ctrl-F
PASS=''
FOR VI=1 TO VT
PASS=PASS+LETRAS[VI]
NEXT
IF LEN(RTRIM(PASS))=20
VP=LEN(RTRIM(PASS))
ELSE
VP=LEN(RTRIM(PASS))+1
ENDIF
@ VX1,VY1-1+VP SAY LETRAS[VP] COLOR CONTECOR[9]
RELEASE VI,PASS
LOOP
ELSEIF CODI=22 // Ins, Ctrl-V
IF READINSERT()=.T.
READINSERT(.F.)
SETCURSOR(1)
ELSE
READINSERT(.T.)
SETCURSOR(3)
ENDIF
LOOP
ELSEIF CODI=1 // Home, Ctrl-A
VP=1
@ VX1,VY1-1+VP SAY LETRAS[VP] COLOR CONTECOR[9]
LOOP
ELSEIF CODI=19 .AND. VP=1
LOOP
ELSEIF CODI=4 .AND. VP<=VT // Right arrow, Ctrl-D
@ VX1,VY1-1+VP SAY LETRAS[VP] COLOR CONTECOR[9]
VP=VP+1
ELSEIF CODI=13
PASS=''
FOR VI=1 TO VT
PASS=PASS+LETRAS[VI]
NEXT
IF VPROFIS(PASS)=.T.
EXIT
ENDIF
ELSEIF CODI=27
FOR VI=1 TO VT
LETRAS[VI]:=SUBSTR(V_EMP,VI,1)
NEXT
EXIT
ELSE
IF READINSERT()=.T.
AINS(LETRAS,VP)
LETRAS[VP]:=UPPER(CHR(CODI))
FOR VI=VP TO VT
@ VX1,VY1-1+VI SAY LETRAS[VI] COLOR CONTECOR[9]
NEXT
ELSE
LETRAS[VP]=UPPER(CHR(CODI))
@ VX1,VY1-1+VP SAY UPPER(CHR(CODI)) COLOR CONTECOR[9]
ENDIF
VP=VP+1
ENDIF
IF VP>VT
EXIT
ENDIF
ENDDO
IF LASTKEY()=13
PASS=''
FOR VI=1 TO VT
PASS=PASS+LETRAS[VI]
NEXT
@ VQL1,VQC1 SAY ""
IF !EMPTY(ALLTRIM(PASS))
SELE 4
SET ORDER TO 2
SEEK ALLTRIM(PASS)
IF FOUND()
V_COD_EMP=(4->COD_EMP)
ELSE
V_COD_EMP=SEQ_PEGA() // Procura numero sequencial (exemplo)
SELE 4
IF RLOCK()
REPLACE COD_EMP WITH V_COD_EMP, FANTASIA WITH PASS
UNLOCK
ENDIF
ENDIF
VRET=STRZERO(V_COD_EMP,4,0)
ELSE
VRET=REPLICATE("0",4)
ENDIF
ELSE
VRET=STRZERO(V_COD_EMP,4,0)
ENDIF
KEYBOARD VRET
RELEASE LETRAS,VT,VP,VI,VX1,VY1
RELEASE VQL1,VQC1,CODI
RESTSCREEN(14,05,17,78,TELA_TRAB)
SELE 1
RETURN .T.
FUNCTION VPROFIS(PASS)
DO CASE
CASE "DO LAR" $ PASS
VRET=.F.
CASE "APOSENTAD" $ PASS
VRET=.F.
CASE "PEDREIR" $ PASS
VRET=.F.
CASE "GUARDA" $ PASS
VRET=.F.
CASE "CABELEIREIR" $ PASS
VRET=.F.
CASE "TRABALHANDO" $ PASS
VRET=.F.
CASE "GERENTE" $ PASS
VRET=.F.
CASE "GERENCIA" $ PASS
VRET=.F.
CASE "PROPRIETARI" $ PASS
VRET=.F.
CASE "ESTUDANTE" $ PASS
VRET=.F.
CASE "PENSIONISTA" $ PASS
VRET=.F.
CASE "RESERVISTA" $ PASS
VRET=.F.
CASE "TAXISTA" $ PASS
VRET=.F.
CASE "OPERADOR" $ PASS
VRET=.F.
CASE "AUXILIAR" $ PASS
VRET=.F.
CASE "MOTORISTA" $ PASS
VRET=.F.
CASE "ELETRICISTA" $ PASS
VRET=.F.
CASE "PADEIRO" $ PASS
VRET=.F.
CASE "LOJISTA" $ PASS
VRET=.F.
CASE "POR CONTA" $ PASS
VRET=.F.
CASE "EMPRESARIO" $ PASS
VRET=.F.
CASE "AUTONOM" $ PASS
VRET=.F.
CASE "RETIRAD" $ PASS
VRET=.F.
CASE "DESEMPREGAD" $ PASS
VRET=.F.
CASE "DOMESTIC" $ PASS
VRET=.F.
CASE "EMPREGAD" $ PASS
VRET=.F.
OTHERWISE
VRET=.T.
ENDCASE
IF VRET=.F.
TONE( 250, 4 )
ALERT("Aten‡„o: Esta n„o ‚ nome de empresa.;Deixe em branco este campo e coloque como observa‡„o.")
ENDIF
RETURN VRET
FUNCTION SOMBRA( LIN_SUP, COL_SUP, LIN_INF, COL_INF )
IF PCOUNT() = 2 .OR. PCOUNT() = 3
C_SOM := COL_SUP; L_SOM := LIN_SUP
LIN_SUP := VAL( SUBS( C_SOM, 1, 2 ) )
COL_SUP := VAL( SUBS( C_SOM, 3, 2 ) )
LIN_INF := VAL( SUBS( C_SOM, 5, 2 ) )
COL_INF := VAL( SUBS( C_SOM, 7, 2 ) )
COL_SOM := SUBS( C_SOM, 9 )
LIN_SOM := L_SOM
ENDIF
IF COL_SUP < 2 .OR. LIN_INF > 22
C_SOM := ""; L_SOM := ""
RETURN .F.
ENDIF
IF PCOUNT() = 3
RESTSCREEN( LIN_SUP + 1, COL_SUP - 2, LIN_INF + 1, COL_SUP - 1, COL_SOM )
RESTSCREEN( LIN_INF + 1, COL_SUP - 2, LIN_INF + 2, COL_INF - 2, LIN_SOM )
RETURN .F.
ENDIF
IF PCOUNT() != 2
COL_SOM := SAVESCREEN( LIN_SUP + 1, COL_SUP - 2, LIN_INF + 1, COL_SUP - 1 )
LIN_SOM := SAVESCREEN( LIN_INF + 1, COL_SUP - 2, LIN_INF + 2, COL_INF - 2 )
ENDIF
IF SUBS( COL_SOM, 2, 1 ) != CHR( 8 )
C_SOM := STR( LIN_SUP, 2 ) + STR( COL_SUP, 2 ) + STR( LIN_INF, 2 ) +;
STR( COL_INF, 2 ) + COL_SOM
L_SOM := LIN_SOM
ENDIF
FOR I = 2 TO LEN( COL_SOM ) STEP 2
COL_SOM := STUFF( COL_SOM, I, 1, CHR( 8 ) )
NEXT
FOR I = 2 TO LEN( LIN_SOM ) / 2 STEP 2
LIN_SOM := STUFF( LIN_SOM, I, 1, CHR( 8 ) )
NEXT
RESTSCREEN( LIN_SUP + 1, COL_SUP - 2, LIN_INF + 1, COL_SUP - 1, COL_SOM )
RESTSCREEN( LIN_INF + 1, COL_SUP - 2, LIN_INF + 2, COL_INF - 2, LIN_SOM )
RETURN .T.
FUNCTION SEQ_PEGA()
// Este exemplo de sequencial, nao ‚ aconselhado (fiz este para nao complicar)
VRET:=LASTREC()+1
RETURN VRET
FUNCTION CRIARQS()
CAMPOS:={{"COD_EMP" ,"N",010,000},;
{"EMPRESA" ,"C",036,000},;
{"FANTASIA","C",020,000} }
DBCREATE("EMPRESAS.DBF",CAMPOS)
SELE 4
USE EMPRESAS EXCLUSIVE
TEXT TO FILE("EMPRESAS.TXT" )
1,"SADIA TRADING S/A","SADIA"
2,"BANCO BRADESCO AGHH","BANCO BRADESCO"
3,"GRUPO BANDEIRAS DE TELEVISAO","BANDEIRANTES"
4,"BANCO DO ESTADO DE SAO PAULO","BANCO BANESPA"
ENDTEXT
APPEND FROM EMPRESAS.TXT DELI
GOTO 1
DELE
PACK
INDEX ON STRZERO(COD_EMP,4,0) TO EMPRE001
INDEX ON FANTASIA TO EMPRE003
CLOSE 4
RETURN NILCabe lembrar a você que caso haja necessidade de cadastrar nova empresa o sistema acatará ao confirmar com <ENTER>.
Bem, espero que gostem e tenha servidor para outros propósitos também.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Olá,
Se não me engano no Clipper 5.3 já existem prontas as classes para listbox e combobox... Eu também prefiro usar um TBrowse mas conforme for até um achoice poderia ser implementado, vai da criatividade... Se tiver interesse nas classes mencionadas é só dar uma olhadinha no NG.
Falou!
Se não me engano no Clipper 5.3 já existem prontas as classes para listbox e combobox... Eu também prefiro usar um TBrowse mas conforme for até um achoice poderia ser implementado, vai da criatividade... Se tiver interesse nas classes mencionadas é só dar uma olhadinha no NG.
Falou!
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.

