Jump to content
Fivewin Brasil

Duvidas com BD


fabin01

Recommended Posts

luiz essa é a funçao que vai cahmara a tela principal de stores onde vai ter o botao novo altera deleta imprime sair e a listview ela estácom a codificaçao que voce me passou nao alterei muita coisa ainda nao....


Local cNome:=Space(40), cEnde:=Space(55), oGet[2]

Define Dialog oDLG RESOURCE "SETORESPRINCIPAL" Title "Cadastramento/Manutenção de Setores/Locais"

Redefine ListBox Olbx Fields Setor->Nome,Setor->Endereço;

Headers "NOME","Endereco" ID 4001 oF oDLG ;

On change PegaDados(cNome,cEndereco,oget)

Redefine Get oGet[1] Var cNome ID of odlg

Redefine Get oGet[2] Var cEnde ID od odlg

Redefine BTNBMP obtn3 Prompt "" RESOURCE "NOVO","NOVO2";

ID 4002 of oDLG Action SETORES_PRINCIPAL_BOTAONOVO(oDLG)

Redefine BTNBMP obnt1 Prompt "Altera" RESOURCE "ALTERA1" Right ;

ID 4003 of oDLG Action SETORES_PRINCIPAL_BOTAOALTERA(oDLG)

Redefine BTNBMP obnt1 Prompt "DELETA" RESOURCE "DEL1" Right;

ID 4004 of oDLG Action SETORES_PRINCIPAL_BOTALDELETA(oDLG)

Redefine BTNBMP obnt1 Prompt "Procura" RESOURCE "PROCURA" Right;

ID 4005 of oDLG Action SETORES_PRINCIPAL_BOTAOPROCURA(oDLG)

Redefine BTNBMP obnt1 Prompt "Imprime" RESOURCE "PRINT" Right;

ID 4006 of oDLG

Redefine BTNBMP obnt2 Prompt "Sair" RESOURCE "EXIT","EXIT2" RIGHT;

ID 4007 of oDLG Action oDLG:end()

Activate Dialog oDLG CENTERED

Return Nil

id=code>id=code>

e criei outras funçoes para chamr telas do botao novo altera.... tendeu os gets que voce mepassou que nao estou entendendo, que devo fazer sendo que so há a listview e os botoes nao tela

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

  • Replies 126
  • Created
  • Last Reply

Top Posters In This Topic

Eu é que não to entendendo o que vc. não está entendendo..

Se vc. fez chamada para outra dialog os controles tem que estar nela Por exemplo;

vc. fez uma chamada para SETORES_PRINCIPAL_BOTAONOVO(oDLG) então os gets tem que estar lá nela...

*


Function SETORES_PRINCIPAL_BOTAONOVO(oDLG)

cNome=Nome

cEnde=Endereco

Define Dialog odlg2 Resource "Sua Nova Dialog "

*

Redefine Get oGet Var cNOme ID

Redefine Get oGet Var cEnde ID

*

Redefine Button obtn prompt "Salvar" ID Action SalvaAlteracao(cNome,cEnde)

Redefine Button obtn Prompt "Voltar" ID Action odlg2:end()

*

Activate Dialog odlg2

Return .t.

//------------------------

Function SalvaAlteracao(cNome,cEnde)

Replace Nome with cNome, Endereco With cEnde

Return .t.

id=code>id=code>

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

entao luiz quero pegar os dados salvo nessa tela do botao novo e jogar na listview q esta na principal entendeu?

ai o usuario dando odois cliques sobre o item do listview vai aparecer a tela de alteraçao entendeu? e é isso que to querendo aprender

codigo da funçao botaonovo


Private cCodigo:=0;cNome:=Space(50);cDescricao:=Space(100)

Select 1

Use SETOR

Define Dialog oDLG RESOURCE "SETORESPRINCNOVO" Title "Inclusão de Novo Setor / Local"

Redefine Get oGet Var cCodigo ID 4005 Picture "99.999"

Redefine Get oGet Var cNome ID 4006 Picture "@!"

Redefine Get oGet Var cDescricao ID 4007 Picture "!@"

Redefine BTNBMP obnt1 Prompt "" RESOURCE "GRAVA";

ID 4008 of oDLG Action Gravar()

Redefine BTNBMP obtn2 Prompt "" RESOURCE "EXIT","EXIT2";

ID 4009 of oDLG Action oDLG:end()

Activate Dialog oDLG CENTERED

Return Nil

Function Gravar()

Replace CODIGO with cCodigo,NOME with cNOme,DESCRICAO with cDESCRICAO

commit

unlock all

return .t.

id=code>id=code>

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Editado por - fabin01 on 18/08/2009 09:45:54

Link to comment
Share on other sites

este comando seria para que luiz??

to querendo que os itens salvos na tabela setor apareça no listview... esse comando vai fazer isso?

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Ai seria o Redefine ListBox como está + acima, vc. mesmo já postou um exemplo com o Redefine ListBox, o que tá acontecendo não mostra os registro na tela ??

Ponha uma imagem da tela, quem sabe entendo o que tá acontendo..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

citação:

Ai seria o Redefine ListBox como está + acima, vc. mesmo já postou um exemplo com o Redefine ListBox, o que tá acontecendo não mostra os registro na tela ??

Ponha uma imagem da tela, quem sabe entendo o que tá acontendo..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>


id=quote>id=quote>

esta dando este erro

parse error at 'ListBox'

o codigo da funçao que chama a tela

Function SETORES_PRINCIPAL(oDLG)

Local cNome:=Space(40), cEnde:=Space(55), oGet[2]

Define Dialog oDLG RESOURCE "SETORESPRINCIPAL" Title "Cadastramento/Manutenção de Setores/Locais"

Redefine BTNBMP obtn3 Prompt "" RESOURCE "NOVO","NOVO2";

ID 4002 of oDLG Action SETORES_PRINCIPAL_BOTAONOVO(oDLG)

Redefine BTNBMP obnt1 Prompt "Altera" RESOURCE "ALTERA1" Right ;

ID 4003 of oDLG Action SETORES_PRINCIPAL_BOTAOALTERA(oDLG)

Redefine BTNBMP obnt1 Prompt "DELETA" RESOURCE "DEL1" Right;

ID 4004 of oDLG Action SETORES_PRINCIPAL_BOTALDELETA(oDLG)

Redefine BTNBMP obnt1 Prompt "Procura" RESOURCE "PROCURA" Right;

ID 4005 of oDLG Action SETORES_PRINCIPAL_BOTAOPROCURA(oDLG)

Redefine BTNBMP obnt1 Prompt "Imprime" RESOURCE "PRINT" Right;

ID 4006 of oDLG

Redefine BTNBMP obnt2 Prompt "Sair" RESOURCE "EXIT","EXIT2" RIGHT;

ID 4007 of oDLG Action oDLG:end()

Redefine ListBox olbx Fields Setor->Nome,Setor->Endereço;

Headers "NOME","Endereco" ID 4001 oF oDLG;

Activate Dialog oDLG CENTERED erro --> aponta essa linhaid=red>

Return Nil[/cod]

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Tira esse ponto e vírgula que está depois de 'OF ODLG' da linha acima da linha do erro.

Tá faltando um pouco de lógica de programação e analisar primeiro o que você precisa. Creio que você está querendo ir muito depressa e perdendo muitos conceitos.

Veja este exemplo de um programa rodando (com todos os fontes inclusos): http://www.fivewin.com.br/exibedicas.asp?id=1001

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

Luisão -- desculpe ai mas acho que passar um programa usando Minigui como exemplo vai complicar + ainda a cabeça dele.. icon_smile_big.gif

Abraços..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

aponta para mesma linha

ma sagora o erro é

id=code>
id=code>

brtoher nao to indo depressa nao;

o que quero somente é colocar dados do bd em uma listview isso acho que deve ser bem simples ou nao?

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Zipa tudo e me manda...

mas antes renomeia o exe para EX_ meu email não recebe executaveis...

Já já vamos ver o que tá ocorrendo..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

Luiz, o que eu quis dizer é mais para pegar os conceitos dos tratamentos que fazemos no FiveWin em relação a arquivos e telas por exemplo.

Na criação dos controles, aí não tem como mesmo. Eu uso @SAY, vocês usam recursos, então aí vai de cada um mesmo.

Mas por exemplo: telas de cadastro, geralmente você traz uma tela com todos os registros (LISTBOX) e através dela você chama uma outra função/tela com os dados para visualização(GETs). O que quero dizer é que dá para padronizar isso, que é a maneira mais simples de se trabalhar. (Posso estar enganado, mas acho que é aí que o Fábio está se "perdendo").

Do Listbox, você chama uma função passando um parâmetro para sua função:

Visualiza( cTipo )

Essa função visualiza é a tela com todos os campos em GETs.

cTipo = 'A' = Alteração / Habilita GETs Necessários

cTipo = 'E' = Exclusão / Desabilita todos os GETs

cTipo = 'I' = Inclusão / Habilita GETs Necessários

cTipo = 'V' = Visualização / Desabilita todos os GETs

Desculpa se estou falando coisas que já foram ditas, pois não estou acompanhando de perto as "aulas", mas era isso o que eu tinha pra dizer.

=D

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

Vou chutar o que é esse parser erro 'O'

Acho que era algum OF oDLG que você tirou o F por engano...

Me parece que é isso já que no código que você postou não tem a letra O perdida em nenhum lugar

=D

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

luizao o que eu quero saber é como vou chamra dados salvos de uma tela em uma listview entendeu?

luiz ja enviei para seu email

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Editado por - fabin01 on 18/08/2009 13:34:36

Link to comment
Share on other sites

citação:

Luiz, o que eu quis dizer é mais para pegar os conceitos dos tratamentos que fazemos no FiveWin em relação a arquivos e telas por exemplo.

Na criação dos controles, aí não tem como mesmo. Eu uso @SAY, vocês usam recursos, então aí vai de cada um mesmo.

Mas por exemplo: telas de cadastro, geralmente você traz uma tela com todos os registros (LISTBOX) e através dela você chama uma outra função/tela com os dados para visualização(GETs). O que quero dizer é que dá para padronizar isso, que é a maneira mais simples de se trabalhar. (Posso estar enganado, mas acho que é aí que o Fábio está se "perdendo").

Do Listbox, você chama uma função passando um parâmetro para sua função:

Visualiza( cTipo )

Essa função visualiza é a tela com todos os campos em GETs.

cTipo = 'A' = Alteração / Habilita GETs Necessários

cTipo = 'E' = Exclusão / Desabilita todos os GETs

cTipo = 'I' = Inclusão / Habilita GETs Necessários

cTipo = 'V' = Visualização / Desabilita todos os GETs

Desculpa se estou falando coisas que já foram ditas, pois não estou acompanhando de perto as "aulas", mas era isso o que eu tinha pra dizer.

=D

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY


id=quote>id=quote>

Realmente.. eu tb. tinha entendido isso, mas ficamos dando voltas até enrrolar o meio de campo.. icon_smile_big.gif eu não sabia mas explicar e ele não conseguia mas entender.. e toma voltas.. e eu quase pinel icon_smile_big.gif

Acho que agora vai...

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

Fábio, vou tentar explicar meio por cima:

Essa função que está abaixo, eu chamo ela de um LISTBOX (Duplo-clique, ENTER ou um Botão Selecionar)

Eu passo um parâmetro para ela (cOp, que seria o que eu expliquei anteriormente)

O que eu faço é carregar os dados do Cliente em variáveis e depois fazer todos os tratamentos necessários com base nessas variáveis.

Veja o código:


FUNCTION MANUTCL(cOP)

//OBJETOS

PRIVATE oMTCL

PRIVATE oCOMBOP:=NIL

PRIVATE oCOMBOUF:=NIL

PRIVATE oCAD:=NIL

PRIVATE oCLACEITAR:=NIL

PRIVATE oCLCANCELAR:=NIL

PRIVATE oCLCOD:=NIL

PRIVATE oCLNOME:=NIL

PRIVATE oCLTEL:=NIL

PRIVATE oCLCEL:=NIL

PRIVATE oCLFAX:=NIL

PRIVATE oCLCEP:=NIL

PRIVATE oCLEND:=NIL

PRIVATE oCLBAIR:=NIL

PRIVATE oCLCID:=NIL

PRIVATE oCDBC:=NIL

PRIVATE oNOMEBC:=NIL

PRIVATE oPBC:=NIL

//MATRIZES

PRIVATE aCLUF:={' ','AC','AM','AP','BA','CE','DF','ES','GO','MA','MG','MS','MT','PA','PE','PI','PR','RJ','RN','RO','RR','RS','SC','SE','SP','TO'}

PRIVATE aBC:={}

//NUMÉRICOS

PRIVATE nCLUF:= 1 //INDICE DO COMBO DA UF

PRIVATE nCLCOD:= CLCDCL

PRIVATE nCLCEP:= CLECEP

PRIVATE i:=1

PRIVATE nIBC:=1

PRIVATE nCDBC:=CLBCPG

//STRINGS

PRIVATE sCLNOME:=CLNOME

PRIVATE sCLTEL:= CLTELE

PRIVATE sCLFAX:= CLNFAX

PRIVATE sCLCEL:= CLNCEL

PRIVATE sCLEND:= CLERUA

PRIVATE sCLBAIR:=CLEBAI

PRIVATE sCLESTA:=CLEEST

PRIVATE sCLCID:= CLECID

PRIVATE sNOMEBC:=''

*////////////////////////////*

*///////TELA CADASTROS///////*

*////////////////////////////*

define DIALOG oMTCL from 01,01 to 400,600 title 'Cadastro de Clientes';

COLOR 255 pixel ICON cICO

//FRAME DADOS NECESSARIOS

@ 5,5 TO 160, 295 LABEL 'Dados Necessários' OF oMTCL pixel FONT oFONT2

@ 15,15 SAY ANSITOOEM('Código:') of oMTCL SIZE 55,12 FONT oFONT2 RIGHT pixel

@ 12,75 GET oCLCOD VAR nCLCOD of oMTCL size 50,12 FONT oFONT1 pixel;

VALID PESQUISA(nCLCOD)

// oCLCOD:bGOTFOCUS := { || oCLCOD:SETCOLOR(0,12314866) }

// oCLCOD:bLOSTFOCUS:= { || oCLCOD:SETCOLOR(oCLCOD:nCLRDEF()) }

@ 30,15 SAY 'Nome:' of oMTCL SIZE 55,12 FONT oFONT2 RIGHT pixel

@ 27,75 GET oCLNOME VAR sCLNOME of oMTCL size 200,12 FONT oFONT1 pixel

// oCLNOME:bGOTFOCUS := { || oCLNOME:SETCOLOR(0,12314866) }

// oCLNOME:bLOSTFOCUS:= { || oCLNOME:SETCOLOR(oCLNOME:nCLRDEF()) }

@ 45,15 SAY 'Cidade:' of oMTCL SIZE 55,12 FONT oFONT2 RIGHT pixel

@ 42,75 GET oCLCID VAR sCLCID of oMTCL size 70,12 FONT oFONT1 pixel

// oCLCID:bGOTFOCUS := { || oCLCID:SETCOLOR(0,12314866) }

// oCLCID:bLOSTFOCUS:= { || oCLCID:SETCOLOR(oCLCID:nCLRDEF()) }

@ 45,150 SAY ANSITOOEM('Cód. Banco') of oMTCL SIZE 35,12 FONT oFONT2 RIGHT pixel

@ 42,190 BUTTON oPBC PROMPT '...' OF oMTCL SIZE 15,12;

FONT oFONT3 ACTION (PBANCO('CL'),oCLTEL:SETFOCUS()) CANCEL PIXEL

@ 42,210 GET oCDBC VAR nCDBC of oMTCL size 65,12 FONT oFONT1 RIGHT pixel;

VALID CHBC()

oCDBC:bKeyChar := { | nKey, nFlags | KEYCLM(nKey) }

// oCDBC:bGOTFOCUS := { || oCDBC:SETCOLOR(0,12314866) }

// oCDBC:bLOSTFOCUS:= { || oCDBC:SETCOLOR(oCDBC:nCLRDEF()) }

@ 57,150 GET oNOMEBC VAR sNOMEBC of oMTCL size 125,12;

FONT oFONT1 CENTER READONLY pixel

@ 60,15 SAY 'Telefone:' of oMTCL SIZE 55,12 FONT oFONT2 RIGHT pixel

@ 57,75 GET oCLTEL VAR sCLTEL of oMTCL size 70,12 FONT oFONT1 pixel

// oCLTEL:bGOTFOCUS := { || oCLTEL:SETCOLOR(0,12314866) }

// oCLTEL:bLOSTFOCUS:= { || oCLTEL:SETCOLOR(oCLTEL:nCLRDEF()) }

@ 75,15 SAY 'Fax:' of oMTCL SIZE 55,12 FONT oFONT2 RIGHT pixel

@ 72,75 GET oCLFAX VAR sCLFAX of oMTCL size 70,12 FONT oFONT1 PIXEL

// oCLFAX:bGOTFOCUS := { || oCLFAX:SETCOLOR(0,12314866) }

// oCLFAX:bLOSTFOCUS:= { || oCLFAX:SETCOLOR(oCLFAX:nCLRDEF()) }

@ 90,15 SAY 'Celular:' of oMTCL SIZE 55,12 FONT oFONT2 RIGHT pixel

@ 87,75 GET oCLCEL VAR sCLCEL of oMTCL size 70,12 FONT oFONT1 pixel

// oCLCEL:bGOTFOCUS := { || oCLCEL:SETCOLOR(0,12314866) }

// oCLCEL:bLOSTFOCUS:= { || oCLCEL:SETCOLOR(oCLCEL:nCLRDEF()) }

@ 105,15 SAY 'CEP:' of oMTCL SIZE 55,12 FONT oFONT2 RIGHT pixel

@ 102,75 GET oCLCEP VAR nCLCEP of oMTCL size 70,12 FONT oFONT1 pixel

// oCLCEP:bGOTFOCUS := { || oCLCEP:SETCOLOR(0,12314866) }

// oCLCEP:bLOSTFOCUS:= { || oCLCEP:SETCOLOR(oCLCEP:nCLRDEF()) }

@ 120,15 SAY ANSITOOEM('Endereço:') of oMTCL SIZE 55,12 FONT oFONT2 RIGHT pixel

@ 117,75 GET oCLEND VAR sCLEND of oMTCL size 200,12 FONT oFONT1 pixel

// oCLEND:bGOTFOCUS := { || oCLEND:SETCOLOR(0,12314866) }

// oCLEND:bLOSTFOCUS:= { || oCLEND:SETCOLOR(oCLEND:nCLRDEF()) }

@ 135,15 SAY 'Bairro:' of oMTCL SIZE 55,12 FONT oFONT2 RIGHT pixel

@ 132,75 GET oCLBAIR VAR sCLBAIR of oMTCL size 100,12 FONT oFONT1 pixel

// oCLBAIR:bGOTFOCUS := { || oCLBAIR:SETCOLOR(0,12314866) }

// oCLBAIR:bLOSTFOCUS:= { || oCLBAIR:SETCOLOR(oCLBAIR:nCLRDEF()) }

@ 135,180 SAY 'UF' OF oMTCL SIZE 15,12 FONT oFONT2 CENTER PIXEL

@ 133,195 COMBOBOX oCLCOMBOUF VAR nCLUF ITEMS aCLUF size 25,12 FONT oFONT1 of oMTCL pixel

//BOTAO GRAVAR

@ 165,10 BUTTON oCLACEITAR PROMPT '&Gravar' OF oMTCL SIZE 130,20;

FONT oFONT3 ACTION (GRAVARCL(cOP),SAIRCL2()) PIXEL

//BOTAO CANCELAR

@ 165,160 BUTTON oCLCANCELAR PROMPT '&Cancelar' OF oMTCL SIZE 130,20;

FONT oFONT3 ACTION (SAIRCL()) PIXEL CANCEL

ABRIR(cOP)

//WHILE PARA SETAR UF

WHILE i<29

IF aCLUF = CLEEST

nCLUF:=i

i:=30

oCLCOMBOUF:REFRESH()

END IF

i:=i+1

LOOP

END

activate dialog oMTCL centered VALID SAIRCL2()

RETURN

FUNCTION ABRIR(cOP)

LOCAL NPOS:=0

IF cOP = 'A'

oCLCOD:DISABLE()

aBC:=BANCO()

//SETAR NOME DO BANCO

Npos=ASCAN(aBC,{|X| X[1]=nCDBC })

IF NPOS != 0

sNOMEBC:=aBC[NPOS,2]

ELSE

sNOMEBC:=''

ENDIF

END IF

IF cOP = 'I'

oCLCOD:ENABLE()

SET ORDER TO 1

GO BOTTOM

nCLCOD:= CLCDCL +1

SKIP + 1

nCLCEP:= CLECEP

sCLNOME:=CLNOME

sCLTEL:= CLTELE

sCLFAX:= CLNFAX

sCLCEL:= CLNCEL

sCLEND:= CLERUA

sCLBAIR:=CLEBAI

sCLESTA:=CLEEST

sCLCID:= CLECID

sCLCID:= CLECID

nCDBC:= CLBCPG

oCLCOD: REFRESH()

oCLNOME:REFRESH()

oCLTEL: REFRESH()

oCLCEL: REFRESH()

oCLFAX: REFRESH()

oCLCEP: REFRESH()

oCLEND: REFRESH()

oCLBAIR:REFRESH()

oCLCID: REFRESH()

oCDBC: REFRESH()

END IF

RETURN

FUNCTION GRAVARCL(cOP)

SET ORDER TO 1

IF cOP = 'I'

DBAPPEND()

IF NETERR()

msginfo('Nao foi possivel incluir um novo registro')

ENDIF

IF .NOT. sCLNOME = '' .and. .not. sCLNOME = SPACE(LEN(sCLNOME))

REPLACE CLCDCL WITH nCLCOD

REPLACE CLNOME WITH ALLTRIM(sCLNOME)

REPLACE CLTELE WITH ALLTRIM(sCLTEL)

REPLACE CLNFAX WITH ALLTRIM(sCLFAX)

REPLACE CLNCEL WITH ALLTRIM(sCLCEL)

REPLACE CLERUA WITH ALLTRIM(sCLEND)

REPLACE CLEBAI WITH ALLTRIM(sCLBAIR)

REPLACE CLECEP WITH nCLCEP

REPLACE CLEEST WITH aCLUF[nCLUF]

REPLACE CLECID WITH ALLTRIM(sCLCID)

REPLACE CLBCPG WITH nCDBC

COMMIT

MSGINFO("Cadastro realizado com Sucesso!")

oLCL:REFRESH()

oMTCL:END()

ELSE

? 'O campo "Nome" deve ser preenchido'

oCLNOME:SETFOCUS()

ENDIF

END IF

IF cOP = 'A'

IF RLOCK()

REPLACE CLCDCL WITH nCLCOD

REPLACE CLNOME WITH ALLTRIM(sCLNOME)

REPLACE CLTELE WITH ALLTRIM(sCLTEL)

REPLACE CLNFAX WITH ALLTRIM(sCLFAX)

REPLACE CLNCEL WITH ALLTRIM(sCLCEL)

REPLACE CLERUA WITH ALLTRIM(sCLEND)

REPLACE CLEBAI WITH ALLTRIM(sCLBAIR)

REPLACE CLECEP WITH nCLCEP

REPLACE CLEEST WITH aCLUF[nCLUF]

REPLACE CLECID WITH ALLTRIM(sCLCID)

REPLACE CLBCPG WITH nCDBC

COMMIT

oLCL:REFRESH()

oMTCL:END()

ELSE

MSGINFO('Registro não pode ser alterado agora. tente mais tarde!','Erro')

END IF

END IF

RETURN

FUNCTION SAIRCL()

oDLGCL:REFRESH()

oLCL:REFRESH()

GO TOP

oMTCL:END()

RETURN

FUNCTION SAIRCL2()

oLCL:REFRESH()

oDLGCL:REFRESH()

RETURN .T.

FUNCTION CHBC()

LOCAL NPOS:=0

aBC:=BANCO()

Npos=ASCAN(aBC,{|X| X[1]=nCDBC })

IF NPOS != 0

sNOMEBC:=aBC[NPOS,2]

oNOMEBC:REFRESH()

RETURN .T.

ELSE

sNOMEBC:=''

MSGINFO('Banco não cadastrado')

nCDBC:=0

oCDBC:SETFOCUS()

oCDBC:REFRESH()

RETURN .F.

ENDIF

FUNCTION KEYCLM(TECLA)

IF TECLA = -3

PBANCO('CL')

ENDIF

id=code>id=code>

Qualquer duvide, pergunte. Este programa tem uns 2 anos, fiz ele quando estava aprendendo também, espero que ajude.

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

luizao é para uma listview errei ao pronunciar no topico acima?

mesmo assim funciona?

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Então cara, acho que fui eu que confundi.

Na verdade, quando eu quero exibir todos os registros num "GRID", eu uso o LISTBOX.

O LISTVIEW eu nunca usei, por isso não posso te dizer nada a respeito.

Mas de qualquer forma, esta rotina que eu postei, serve para qualquer caso, pois basta que o registro desejado esteja posicionado ele vai fazer tudo certo.

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

é pq é o seguinte aqui na empresa o chefe pediu para fazer um programa igual a um que ele fez aqui antes estava fazendo um pelo vb (achu q é bem mais facil q fw hehehe) e passei pra esse e fiquei meio perdido mas agora to sacando algumas coisas, o meu problema é este listview que nao sei como vou associar dados de uma tabela nele para quando o usuario clicar ele poder alterar e tals... mas valews pela atençao ai..

essa funçao que voce passou seria no caso somente para listbox neh?

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Então Fábio, eu diria (e acho que muitas pessoas aqui no fórum concordariam) para você usar o LISTBOX. Veja no HELP do xDev, tem a sintaxe bem explicada lá.

Muitos aqui usam o xBrowse, que é bem mais completo, aí você poderia criar um tópico "xBrowse" e a galera iria ajudar em peso!

Sobre a função que eu te passei, eu chamo ela daqui:


#INCLUDE 'FiveWin.ch'

#INCLUDE 'SQLLIB.CH'

//TELA COM O GRID DE CLIENTES

FUNCTION CLIENTES()

//OBEJETOS

PRIVATE oDLGCL:=NIL

PRIVATE oPESQ:=NIL

PRIVATE oLCL:=NIL

PRIVATE oALTCL:=NIL

PRIVATE oDELCL:=NIL

PRIVATE oINCCL:=NIL

PRIVATE oCB:=NIL

PRIVATE oGETCOD:=NIL

PRIVATE oCLIMP:=NIL

PRIVATE oCBIMP:=NIL

PRIVATE oCLMODO:=NIL

PRIVATE oPACK:=NIL

//STRINGS

PRIVATE cCLSTAT:=''

PRIVATE cORD:='Código'

//MATRIZES

PRIVATE aI:={'Código','Nome','Cidade','Rua'}

PRIVATE aRPT:={'Relatório Padrão','Report'}

PRIVATE aCLMODO:={'Gráfico','Matricial'}

//NUMÉRICOS

PRIVATE nR:=0

PRIVATE nRIMP:=1

PRIVATE nCLMODO:=1

PRIVATE i:=0

PRIVATE nCODIGO:=0

define DIALOG oDLGCL from 01,01 to 500,750 title 'Clientes';

pixel ICON cICO

IF OPENCL()

GO TOP

//GRID DOS CLIENTES

@ 5,5 LISTBOX oLCL ;

FIELDS ;

TRANS(CL->CLCDCL,"99999") ,;

CL->CLNOME ,;

CL->CLERUA ,;

CL->CLEBAI ,;

CL->CLECID ,;

CL->CLEEST ,;

TRANS(CL->CLECEP,"99999999") ,;

CL->CLTELE ,;

CL->CLNCEL ,;

CL->CLNFAX ;

HEADERS;

AnsiToOem("Código") ,;

"Nome" ,;

ANSITOOEM("Endereço") ,;

"Bairro" ,;

"Cidade" ,;

"UF" ,;

"CEP" ,;

"Telefone" ,;

"Celular" ,;

"FAX" ;

FONT oFONT1 SIZE 365,200 PIXEL OF oDLGCL

oLCL:lCellStyle := .T.

oLCL:bLdblClick := {|| MANUTCL('A') }

oLCL:bKeyChar := { | nKey, nFlags | TECLACL(nKey) }

oLCL:aJustify := { .F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F. }

oLCL:cToolTip := "ENTER - Alterar"+CHR(13)+;

"Backspace - Incluir" +CHR(13)+;

"Ctrl+BS - Deletar" +CHR(13)+;

"Espaço - Pesquisar"

oLCL:refresh()

//GO TOP

//FOR i=1 TO LEN(oLCL)

// IF CLCDCL= 20

// oLCL:SETCOLOR(nRGB(0,50,170),nRGB(50,150,50))

// oLCL:REFRESH()

// ENDIF

//SKIP+1

//NEXT

//GO TOP

//BOTÃO INCLUIR

@ 210, 12 BUTTON oINCCL PROMPT 'Incluir' OF oDLGCL SIZE 73,14;

FONT oFONT3 ACTION (MANUTCL('I'))PIXEL

//BOTÃO ALTERAR

@ 210, 90 BUTTON oALTCL PROMPT 'Alterar' OF oDLGCL SIZE 73,14;

FONT oFONT3 ACTION (MANUTCL('A')) PIXEL

id=code>id=code>

Funciona assim: A função OPENCL é responsável por abrir o arquivo DBF dos clientes (É aquela função que eu postei há algum tempo atrás com o nome de ABRE_SETOR, se não me engano)

Com o arquivo aberto, eu exibos todos os registros usando a classe LISTBOX.

Quando eu dou 2 cliques (blDblClick), eu chamo a função MANUTCL (que postei mais acima) passando o parâmetro 'A' de alteração. E quando eu clico no botão INCLUIR, passo o parâmetro 'I' de inclusão, entendeu ?

Esse é o raciocínio geral. O código tá bem simples porque fiz ele há quase 2 anos atrás, quando comecei a trabalhar com FW, mas acho que ele está fácil de entender.

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

Putz!!! agora boiei++... o que vc. chama de listview ???

Esse controle listview que tem no PellesC eu uso para Mostrar os registros na Tela tipo browse.. To usabdo ele como TwBrowse nativo do FW que é o ListBox.. Se não for isso me explique..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

mas kapi no samples ta como codigo e mao tem nada de recurso nele e no caso criei um listview pelo pelles e queria chamar os dados cadastrados nele tendeu?

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...