Jump to content
Fivewin Brasil

Não consigo utilizar 2 bancos de dados.


flgc

Recommended Posts

icon_smile_sad.gif Caros Srs. estou com uma terrivel duvida. Sou extremamente novato no FiveWin Adiquiri o mesmo apouco mais de 2 meses e apesar de conhecer bem o clipper (10 Anos +-)estou engatinhando no mesmo graças ao FiveWin.

Bem a pergunta é o seguinte criei um cadastro de produto on desejo utilizar 2 banco de dados 1-produto e 2-grupo.

Jatentei de todas as formas que eu pude imaginar mais não consigo utilizar um combobox para abrir o meu banco de dados do grupo. Será que podem me dar um help.

Segue a rotina da ultima tentativa.

function Produto()

Local oDlg, oFont, oDbf, pDbf, oHand, lSai

Local lOk := .F.

Local lNew := .F.

local aGrupo := space(40)

Local aButtons

Local oBtnInc,oBtnAlt,oBtnSav,oBtnExc,oBtnPes,oBtnIni,;

oBtnPro,oBtnAnt,oBtnFin,oBtnGlb,oBtnPag,oBtnGer,;

oBtnPer,oBtnDes,oBtnSai

select 1

IF .NOT. Use_Arq("Produto",.T.,.F.,.T.)

Return nil

ENDIF

select 2

IF .NOT. Use_Arq("grupo",.T.,.F.,.T.)

Return nil

ENDIF

select 2

DATABASE pDbf

pDbf:bEoF := {|| NIL}

pDbf:bBoF := {|| NIL}

dbsetorder(2)

pDbf:Load()

aGrupo=pDbf

select 1

DATABASE oDbf

oDbf:bEoF := {|| NIL}

oDbf:bBoF := {|| NIL}

dbsetorder(1)

oDbf:Load()

DEFINE FONT oFont NAME "Arial" WEIGHT 8 BOLD

DEFINE CURSOR oHand RESOURCE "C_HAND"

DEFINE DIALOG oDlg RESOURCE 'Produtos' TITLE OemToAnsi('Manuten‡Æo do Produto')

REDEFINE GET oDbf:Produto ID 101 OF oDlg UPDATE PICTURE '@K999999' VALID ( If(lNew,OkCodigo_p(oDbf,oDlg,@lOK,@lNew,lSai,aButtons),.T.) )

REDEFINE GET oDbf:descricao ID 102 OF oDlg UPDATE PICTURE '@K!'

REDEFINE COMBOBOX oDbf:grupo ITEMS aGrupo ID 103 OF oDlg UPDATE

REDEFINE GET oDbf:unidade ID 104 OF oDlg UPDATE PICTURE '99999999'

REDEFINE GET oDbf:maximo ID 105 OF oDlg UPDATE PICTURE '99999999'

REDEFINE GET oDbf:medio ID 106 OF oDlg UPDATE PICTURE '99999999'

REDEFINE GET oDbf:baixo ID 107 OF oDlg UPDATE PICTURE '99999999'

REDEFINE GET oDbf:pco_custo ID 108 OF oDlg UPDATE PICTURE '999,999.999'

REDEFINE GET oDbf:pco_venda ID 109 OF oDlg UPDATE PICTURE '999,999.999'

REDEFINE GET oDbf:pco_ven_a1 ID 110 OF oDlg UPDATE PICTURE '999,999.999'

REDEFINE GET oDbf:pco_vend2 ID 111 OF oDlg UPDATE PICTURE '999,999.999'

REDEFINE GET oDbf:pco_vend_3 ID 112 OF oDlg UPDATE PICTURE '999,999.999'

REDEFINE BUTTON ;

ID 90 ;

OF oDlg ;

ACTION (BuscaProduto(oDbf,oDlg,@lOk,@lNew),oDlg:aControls[2]:SetFocus())

oDlg:aControls[12]:cToolTip := 'Pesquisar Produto'

REDEFINE BUTTON oBtnInc ID 1401 OF oDlg ACTION (NovoReg_p(@lNew,oDbf,aButtons,oDlg))

REDEFINE BUTTON oBtnAlt ID 1402 OF oDlg ACTION (AltReg_p(lNew, oDbf, aButtons, oDlg) )

REDEFINE BUTTON oBtnSav ID 1403 OF oDlg ACTION (SalvaReg_p(oDlg,oDbf,.T.,lNew,aButtons))

REDEFINE BUTTON oBtnExc ID 1404 OF oDlg ACTION (DeleteReg(lNew,oDbf,oDlg) )

REDEFINE BUTTON oBtnPes ID 1406 OF oDlg ACTION pesquisa('Produto',2,"DESCRICAO",oDlg,oDbf)

REDEFINE BUTTON oBtnIni ID 1407 OF oDlg ACTION (IniReg(@lNew,oDbf,aButtons,oDlg))

REDEFINE BUTTON oBtnPro ID 1408 OF oDlg ACTION (oDbf:Skip(1),If(oDbf:Eof(),(MsgErro('Fim de Arquivo'),oDbf:GoBottom()), oDlg:Update()))

REDEFINE BUTTON oBtnAnt ID 1409 OF oDlg ACTION (oDbf:Skip(-1),If(oDbf:Bof(),(MsgErro('Início do Arquivo'),oDbf:GoTop()), oDlg:Update()))

REDEFINE BUTTON oBtnFin ID 1410 OF oDlg ACTION (oDbf:GoBottom(), oDlg:Update())

REDEFINE BUTTON oBtnSai ID 1411 OF oDlg ACTION (lSai := .T.,oDlg:End())

REDEFINE BUTTON oBtnGlb ID 1412 OF oDlg ACTION in_work()

REDEFINE BUTTON oBtnPag ID 1413 OF oDlg ACTION in_work()

REDEFINE BUTTON oBtnGer ID 1414 OF oDlg ACTION in_work()

REDEFINE BUTTON oBtnPer ID 1415 OF oDlg ACTION in_work()

REDEFINE BUTTON oBtnDes ID 1416 OF oDlg ACTION in_work()

aButtons := {oBtnInc,oBtnAlt,oBtnSav,oBtnExc,oBtnPes,oBtnIni,oBtnPro,;

oBtnAnt,oBtnFin,oBtnGlb,oBtnPag,oBtnGer,oBtnPer,oBtnDes,oBtnSai}

ACTIVATE DIALOG oDlg CENTERED ON ;

INIT (If(oDbf:Bof(),(lNew:=.T.,oDlg:aControls[12]:Disable(),NovoReg_p(@lNew,oDbf,aButtons,oDlg)) , SetaButtons('11011111111',aButtons)) )

DbCloseAll()

return NIL

Quem puder me ajudar eu estarei eternamente grato

Link to comment
Share on other sites

FLGC, embora a sugestão do Vargner e do Gilmer funcione, em alguns casos como ocorreu comigo a DBCOMBO não servirá, pois ela é extremamente pobre em recursos, ou seja, preve muito poucos DATA e METHOD na definição de sua Classe TDBCOMBO.

Neste caso você terá que fazer o que fiz e farei sempre, que é criar 2 TWBROWSE em uma DIALOG e trabalhar com as 2 ao mesmo tempo.

Na verdade um é o arquivo PAI e o outro é o arquivo FILHO, quando move no PAI atualiza o FILTRO no FILHO e REFRESH() nele.

Inclusive tenho casos que precisarei de 3 TWBROWSE ao mesmo tempo, arquivo PAI, FILHO e NETO.

Até...

Jorge Adourian

Suporte On Line Clipper 24h: www.solclipper.hpg.com.br

Pare de usar DBU conheça o DBE em www.dbe.hpg.com.br

Informe-se: Aulas Particulares para São Paulo-SP

Editado por - jorgeado on 10/04/2003 23:00:02

Link to comment
Share on other sites

Acredito que o combobox, vai limitar muito suas atitudes dentro do programa, recomento o uso do mesmo, somente quando são situações, pré determinadas pelo programador.

Quando o campo é de busca em um banco de dados, que poderá conter um número grande de registro, o melhor seria criar um GET com busca no aquivo.

Eu uso assim.

@ l,c BMPGET _var Pict "!!" Size t,a Update ACTION XXX()

Function xxx()

//ative um listbox //

retorne com o campo desejado

tem que utilizar o BMPGET.CH (include)

Se precisar de maiores detalhes comunique que te enviarei um exemplo completo.

Oliveira, Sérgio A.

PERSONAL - LINS

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...