Jump to content
Fivewin Brasil

Scooby

Membros
  • Posts

    229
  • Joined

  • Last visited

Everything posted by Scooby

  1. Boa Tarde Emotta Eu fiz diversos testes e não consegui nenhum retorno positivo, olhei com outros programadores de outras linguagens e a solução também foi a mesma, gravação de registro ou através de abertura de arquivo ou via vetor ( multiplos insert ). Entrei em contato com o Rafael Culik também e ele me reportou agora que não é possível efetuar join como conexão externa, somente as que estão dentro da mesma conexão e de diferentes schemas. Então agora é gravar dessa maneira. Agradeço a compreensão e ajuda de todos
  2. pode, estou montando um levantamento para desenvolver uma outra linguagem pois o acesso a esse tipo de recurso parece ser bem escarço.
  3. Bom Dia Senhores fhw : Na verdade eu estou precisando mesmo é com comandos MySql, mas obrigado pela intenção. Emotta: pois é, eu também estou procurando em vários lugares e ainda não achei algo compatível ao desejado, sim dei uma olhada em várias ferramentas que criam links entre os bancos, porém nenhuma que funcione de mysql para mysql gratuita, ainda vou continuar procurando. Jmsilva, Pois é, eu vi o funcionamento da função SR_SetActiveConnection , porém ela define que no momento que eu executo o "oSlq:Exc", eu já tenha setado em qual banco/conexão aquela query será montada e executava. É dai que vem o meu problema, como são bancos MySql ( Local e Nuvem ), eu tenho que abrir os 2 schemas e efeutar ambas conexões e excutar um único comando ( Join ) que possa ligar essas duas conexões diferentes... se fosse a opção um ou outro estaria tranquilo, o problema é que eu estou levando os dados que estão local para nuvem, então a melhor forma seria evitar interação com loop ou abertura de tabelas para replicação e afins. Fazendo isso com somente 1 comando Sql economizar tempo de execução além de deixar o código mais fácil de manutenção. Para ter mais ou menos ideia de como seria, seria assim: Veja o exemplo da própria SQLRDD, a função SR_SetActiveConnection( nCnn1 ) é a responsável por ativar a conexão desejada, a partir dela pode ser feito o CRUD via cmd sql ou via função do xHarbour DBAPPEND() #include "sqlrdd.ch" nCnn1 := SR_AddConnection( CONNECT_MYSQL, cConnString1 ) // 1 Local nCnn2 := SR_AddConnection( CONNECT_MYSQL, cConnString2 ) // 2 Nuvem SR_SetActiveConnection( nCnn1 ) SR_SetActiveConnection( nCnn2 ) nConn := SR_GetActiveConnection() oSQL := SR_GetConnection( nCnn2 ) nErr := oSql:exec( 'INSERT INTO nCnn1.Banco1.TabelaXX(Campo1, Campo2, Campo3 ...) SELECT Campo1, Campo2, Campo3 ... FROM nCnn2 .Banco2.TabelaXX Where Condicional',.t.,.t.)
  4. Boa Tarde Senhores Gostaria de perguntar se alguém já passou por essa situação. Atualmente estou com um banco de dados na Nuvem ( Google Cloud - MySql ) e um banco de dados Local ( MySql 5.7 ). Eu consigo via conexões separadas efetuar consultas em ambos os bancos. Porém estou passando pela seguinte situação, eu vou precisar efetuar um CRUD nas tabela do Servidor Nuvem. É ai que está o problema, estou utilizando a SqlRdd e para diferenciar as conexões eu utilizo assim: conexao:=sr_addconnection() // e guarda o número da conexão Sr_getconnection(conexao) // retorna o objeto da conexão pra executar queries Faço isso para ambas conexões. Porém eu gostaria de executar esse comando ou um join qualquer: INSERT INTO banco.tabela-destino (campo1, campo2, campo3...) SELECT campo1,campo2,campo3... FROM banco.tabela-origem; Ai é que eu não estou conseguindo, alguém já passou por esse problema? Agradeço antecipadamente Márcio Pinheiro
  5. Bom Dia senhores. Estou com a seguinte duvida, estou utilizando um arquivo .ini para que o usuário possa definir a fonte que será utilizada no sistema bem como a largura e comprimento. Arquivo .Ini FONTE_NOME=Tahoma FONTE_ALTURA=5 FONTE_LARGURA=-14 LOGOMARCA_ARQUIVO=LogoSuc.Bmp ICONE_ARQUIVO=IcoSuc.Bmp Porém acontece o seguinte: fiz todas as configurações no sistema. Procedure DefFonSys(oFon_,oBmp_,oIco_,vNomIco_) // Define a fonte do sistema Local vFonNam:="",vNomLog:="",vNomIco:="",; nFonAlt:=0,nFonLar:=0 If !Empty(vTxtIni:=MemoRead(cCamPro_+"Success.Ini")) vFonNam:=RatTxt(vTxtIni,"FONTE_NOME=",0) nFonAlt:=Val(RatTxt(vTxtIni,"FONTE_ALTURA=",0)) nFonLar:=Val(RatTxt(vTxtIni,"FONTE_LARGURA=",0)) vNomLog:=RatTxt(vTxtIni,"LOGOMARCA_ARQUIVO=",0) vNomIco:=RatTxt(vTxtIni,"ICONE_ARQUIVO=",0) EndIf vFonNam:=AllTrim(If(Empty(vFonNam),"Tahoma",vFonNam)) nFonAlt:=If(Empty(nFonAlt),5,nFonAlt) nFonLar:=If(Empty(nFonLar),-14,nFonLar) vNomLog:=AllTrim(If(Empty(vNomLog),"LogoSuc.Bmp",vNomLog)) vNomIco:=AllTrim(If(Empty(vNomIco_),If(Empty(vNomIco),"IcoSuc.Bmp",vNomIco),vNomIco_)) Define Font oFon_ Name vFonNam Size nFonAlt,nFonLar Define BitMap oBmp_ File(cCamPro_+vNomLog) Adjust Define Icon oIco_ File(cCamPro_+vNomIco) O problema que acontece é o seguinte, em algumas telas o formato da fonte, simplesmente não ocorre e o que é pior, o sistema ainda a transforma em 'Negrito', gostaria de saber se alguém pode me ajudar com essa questão. Imagem do erro: https://drive.google.com/open?id=1n6_xRz70ir5vUU4udwwE2qjACLvMRrmE Att
  6. Então gente Encontrei a resposta do problema... oBrwOse:bLClicked :={||(lClkOse:=.T.,lClkSae:=.F.)} era só colocar a chamada assim, que o single click deu a possibilidade de permitir executar uma ação.. Vlw
  7. Bom Dia aferra Então, coloquei o recurso que você falou acima, ele executa ao inicializar a tela, porém se eu mudo o foco pro Listbox ao lado, ele não executa novamente o bloco de código. Pra ficar mais fácil até coloquei a imagem abaixo da tela, pra ver se fica mais fácil o entendimento. https://1drv.ms/i/s!AmBm4nJiUvnr4yePW6nex8N2wFwv
  8. Pois é Kapiaba, não utilizo nenhum prg de terceiros.. utilizo esse mesmo que postou.. Quanto a forma de trabalho que você postou acima, é o mesmo que utilizo aqui, porém nesse caso de controle o single click é uma exceção que estamos criando, e pra esse recurso funcionar eu precisaria mesmo desse recurso para conseguir controlar os botões de acordo com o browse selecionado.
  9. oBrwOse:SetArray(aTmpOse) oBrwOse:aJustify :={.F.,.F.,.F.,.T.,.F.,.F.,.T.,.T.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.} oBrwOse:nLineStyle:=4 oBrwOse:bLClick :={||MsgYesNo("Teste1")} <- Linha 200 oBrwOse:bLDblClick:={|nRow,nCol| IncIteOse(!(oBrwOse:nAt<Len(aTmpOse)),@lNovOse,@lNovIte,@vCodiOse,oDlgOse)} oBrwOse:bKeyChar :={|nKey|If(nKey=13 ,IncIteOse(!(oBrwOse:nAt<Len(aTmpOse)),@lNovOse,@lNovIte,@vCodiOse,oDlgOse),Nil)} oBrwOse:bKeyDown :={|nKey|If(nKey=VK_F3,IncIteOse(.T.,@lNovOse,@lNovIte,@vCodiOse,oDlgOse),; If(nKey=VK_F4,IncIteOse(.F.,@lNovOse,@lNovIte,@vCodiOse,oDlgOse),Nil))} oBrwOse:nClrText :={||If(aTmpOse[oBrwOse:nAt,26]="C",CLR_HBLUE,CLR_BLACK)} oBrwOse:nClrPane :={||If(oBrwOse:nAt%2==0,CLR_AZUL3,CLR_WHITE)}
  10. Bom Dia Senhores Gostaria de tirar uma dúvida, estou usando a TwBrowse e em uma tela estou adicionando 2 listbox que serão a armazenado dados distintos, porém ambos os listbox possuem o mesmo padrão de botões e nesse caso estou tentando evitar redundância na tela e me surgiu uma duvida. Estou tentando colocar a regra, onde ao clicar sobre o listbox desejado e pressionar o botão "incluir" por exemplo, o sistema possa saber de qual lisbox foi o que estava selecionado. Tentei executar o "bLClick", porém o sistema me retornou esse erro, gostaria de saber se alguém já passou por esse problema. Descrição do Erro: Advertência BASE/1005 Message not found: TWBROWSE:_BLCLICK Chamada da Sequência: ================= Chamada De: TWBROWSE:ERROR(174) Chamada De: TWBROWSE:MSGNOTFOUND(208) Chamada De: TWBROWSE:_BLCLICK(0) Chamada De: DA0017(200) Chamada De: (b)MMENU(99) Chamada De: TMENU:COMMAND(561) Chamada De: TWINDOW:COMMAND(1199) Chamada De: TMDIFRAME:COMMAND(255) Chamada De: TMDIFRAME:HANDLEEVENT(0) Chamada De: _FWH(3450) Chamada De: WINRUN(0) Chamada De: TMDIFRAME:ACTIVATE(1152) Chamada De: MAIN(52) Variaveis em uso: ================= Procedimento Tipo Valor ========================== (b)MAIN Param 1: O Classe: ERROR TWBROWSE:ERROR Param 1: C "Message not found" Param 2: C "TWBROWSE" Param 3: C "_BLCLICK" Param 4: N 1005 Local 1: U Local 2: O Classe: TWBROWSE Local 3: N 16 TWBROWSE:MSGNOTFOUND Param 1: C "_BLCLICK" Param 2: O Classe: TWBROWSE TWBROWSE:_BLCLICK Param 1: A Len: 2 DA0017 Param 1: U Param 2: C " " Param 3: C " " Param 4: C " " Param 5: C " " Param 6: C "" Local 1: U (b)MMENU Param 1: O Classe: TMENUITEM TMENU:COMMAND Param 1: N 20013 Local 1: O Classe: TMENU Local 2: O Classe: TMENUITEM TWINDOW:COMMAND Param 1: N 20013 Param 2: N 0 Local 1: O Classe: TMDIFRAME Local 2: N 0 Local 3: N 20013 Local 4: N 0 TMDIFRAME:COMMAND Param 1: N 20013 Param 2: N 0 Local 1: O Classe: TMDIFRAME Local 2: L .F. TMDIFRAME:HANDLEEVENT Param 1: N 273 Param 2: N 20013 Param 3: N 0 _FWH Param 1: N 0 Param 2: N 273 Param 3: N 20013 Param 4: N 0 Param 5: N 1 Local 1: O Classe: TMDIFRAME WINRUN Param 1: N 264536 TMDIFRAME:ACTIVATE Param 1: C "MAXIMIZED" Param 2: U Param 3: U Param 4: U Param 5: U Param 6: B {|| ... } Param 7: U Param 8: B {|| ... } Param 9: U Param 10: U Param 11: U Param 12: U Param 13: U Param 14: U Param 15: U Param 16: U Param 17: B {|| ... } Param 18: U Param 19: U Param 20: L .F. Local 1: O Classe: TMDIFRAME Local 2: U Local 3: U Obrigado Antecipadamente
  11. Boa Tarde Kapiaba Então... Configurei as Dll´s do mesmo jeito do seu e o erro persiste. Sim o executavel, Gbasmsb.exe se encontra tanto no diretório onde se encontra o executável, quanto CurDrive()+":\"+CurDir()+'\gbas\windows\' e em nenhum dos casos eu consigo gerar o arquivo, via winexec. Eu faço a verificação antes de enviar o comando de gerar o arquivo txt. if !File( cExeDir+"gbasmsb.exe" ) MsgStop('Arquivo gbasmsb.exe não localizado!','Atenção') Return( .F. ) endif Já passei um email para o suporte da DataSus e nada... eu tbm acho que o problema seja no executável, agora estou no aguardo da resposta deles.
  12. Bom Dia Kapiaba Então, o teste que eu estou fazendo é numa máquina com windows XP, eu já fiz diversos testes... quando eu tiro o conteudo " > C:\retorno.txt" ou " > c:\retorno\retorno.txt", o executável gbasmsb.exe gera a chave que preciso, isso usando o winexec. Porém ao executar esse mesmo comando no prompt de comando o arquivo é gerado com sucesso... por isso eu não sei se de fato o problema é no executavel ( gbasmsb ). Coloquei o trecho que código que você me passou e ocorreu o mesmo problema... abre-se uma tela do dos, porém não é gerado o arquivo dentro da pasta c:\retorno
  13. local nHandle, cTmpFile := dtos(date())+strtran(time(),":")+".dna" local cExeDir := CurDrive()+":\"+CurDir()+'\gbas\windows\' ::Dna := "" ferase( cTmpFile ) if !File( cExeDir+"gbasmsb.exe" ) MsgStop('Arquivo gbasmsb.exe não localizado!','Atenção') Return( .F. ) endif WinExec( "gbasmsb.exe --solicitacao 12345678909 12123123000111 3759 GO 30/09/2014 > c:\retorno.txt" ) WinExec( cExeDir+"gbasmsb.exe --solicitacao 12345678909 12123123000111 3759 GO 30/09/2014 > c:\retorno.txt" ) WinExec( cExeDir+"gbasmsb.exe --solicitacao "+::Cpf+" "+::Cnpj+" "+::Crm+" "+::UF+" "+dtoc(::Data_Receita) ) return (.t.)
  14. Boa Tarde gente!!! Eu estou com o seguinte problema: Estou usando a função "winexec" e não consegui puxar o retorno do gbasmsb.exe. Se eu abrir uma janela do prompt do DOS e executar o comando "gbasmsb.exe --solicitacao 12345678909 12123123000111 3759 GO 29/09/2014 > c:\retorno.txt" eu consigo gerar o arquivo texto com o conteúdo do DNA gerado, porém se eu faço a mesma execução dentro do sistema o mesmo não retorna nenhum arquivo, somente abre o prompt do Dos e fecha. Alguém já passou por esse problema?
  15. Olá a Todos Só para constar o encerramento do tópico, conversei com o Luiz Kulik e ele me passou a seguinte ferramenta, caso alguém precise Xpdf: Download www.foolabs.com/xpdf/download.html Muito bom... Abraço Márcio Pinheiro Varjão DECLA TECNOLOGIA xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 11.12 / Pelles C 6.50.8
  16. Olá Kapiaba... Irei olhar essa classe, talvez ela ajude a solucionar o meu problema... Obrigado citação:http://www.baixaki.com.br/download/free-pdf-to-word-doc-converter.htm João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 http://pt-br.facebook.com/people/Jo%C3%A3o-Santos/100001195894196 FWH 2.7 - xHARBOUR WorkShop.Exe id=quote>id=quote>Márcio Pinheiro Varjão DECLA TECNOLOGIA xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 11.12 / Pelles C 6.50.8
  17. Olá Jmsilva Obrigado pelo exemplo de como tratar um arquivo pdf, irei fazer os teste para ver se deu tudo certinho... mas antecipadamente agradeço pela boa vontade.. Valew citação:Olá Pessoal, diante da falta de opção vou apresentar a minha solução, porém sei que não é o desejado pelo Márcio. Mas estou postando a rotina a baixo porque poderá ser útil para quem precisa ler um PDF e tratar o texto como desejar, salvando-o em txt, dbf, como achar melhor e não tem opção melhor. O indesejado é a necessidade de ter instalado o pacote Office(seja Br ou Open) . Mas acho bastante útil. ** Autor....: José Maria da Silva ** ** Objetivo: Ler um arquivo Draw ou PDF, extrair e exibir em browse, ** ** salvar em TXT. ** ** Requesito: Precisa ter o Broffice instalado ** ** **============================================================================** #INCLUDE "FIVEWIN.CH" **============================================================================== FUNCTION MAIN() **============================================================================== LOCAL oService,oDesktop,oDoc,oShape,oCursor,oDrawPage,aProp:={},i LOCAL cFile,cTEXTO,aVetStr:={} cFile := cGetFile("Arquivo (pdf,odg)|*.odg;*.pdf|",; "Selecione o Arquivo (pdf/odg)", 4 ) IF EMPTY(cFILE) ; RETURN .F. ; ENDIF cFile := "file:///"+StrTran(cFile,"\","/") oService := TOleAuto():New("com.sun.star.ServiceManager") oDesktop := oService:createInstance("com.sun.star.frame.Desktop") AAdd(aProp,MakePropertyValue(oService,"Hidden",.T.)) //oculta oDoc := oDesktop:loadComponentFromURL(cFile, "_blank", 0, aProp) oDrawPage := oDoc:getDrawPages():getByIndex(0) //AKI pode colocar um oMeter FOR i:=0 TO oDrawPage:getCount()-1 oShape := oDrawPage:getByIndex(i) oCursor := oShape:createTextCursor() cTEXTO := oCursor:getText():getString() AADD(aVetStr,cTEXTO) NEXT oDoc:Close(.T.) xbrowse(aVetStr) RETURN NIL **============================================================================== STATIC FUNCTION MakePropertyValue(oService,cName,nValue) **============================================================================== LOCAL oStruct := oService:Bridge_GetStruct("com.sun.star.beans.PropertyValue") oStruct:Name := cName oStruct:Value := nValue RETURN(oStruct) id=code>id=code>JMSILVA-Caraguatatuba/SP id=quote>id=quote>Márcio Pinheiro Varjão DECLA TECNOLOGIA xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 11.12 / Pelles C 6.50.8
  18. citação:Olá, Que eu saiba não tem uma classe, mas tem um executável que faz isto muito bem ( Convert Doc ). Quem sabe bem sobre isto está muito longe de você. É o Alex2002. []s, Evandro G. de Paula Curvelo - MG evandro@skillnet.com.br (Escr. - na Cidade) imortal@skillnet.com.br (Res. - na Roça) FWH 9.01+PellesC+MyMake+xHarbour.org 1.00+SqlLib id=quote>id=quote>Olá... Pois é Evandro, eu até conversei com o Alexandre, mas o problema é que o Convert Doc precisa ser instalado e estava precisando de algo nativo preferencialmente. Márcio Pinheiro Varjão DECLA TECNOLOGIA xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 11.12 / Pelles C 6.50.8
  19. Olá Garimpeiros Gostaria de saber se existe alguma classe nativa do xHarbour ou executável ( De preferencia que execute via linha de comando ) que converta Arquivos PDF em Txt. Márcio Pinheiro Varjão DECLA TECNOLOGIA xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 11.12 / Pelles C 6.50.8 Editado por - scooby on 13/03/2012 15:10:05
  20. Olá Garimpeiros Gostaria de saber se existe alguma classe nativa do xHarbour ou executável ( De preferencia que execute via linha de comando ) que converta Arquivos PDF em Txt. Márcio Pinheiro Varjão DECLA TECNOLOGIA xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 11.12 / Pelles C 6.50.8 Editado por - scooby on 13/03/2012 15:10:05
  21. Scooby

    TVistaMenu

    Boa Tarde Garimpeiros. Alguém já esta fazendo uso do TVistaMenu??? Estou com o seguinte problema, quando eu mando executar o primeiro menu o sistema efetua a criação na janela principal até ai tudo ok, porém quando clico no botão de "procedimento" que efetua a criação do 3 menu, eu não consigo criar um novo menu na janela principal, abaixo segue o código que estou usando para criar as janelas. DEFINE WINDOW oERP FROM 4, 4 TO 25, 75 TITLE oSis:_sistema MenuRibbonERP() ACTIVATE WINDOW oERP MAXIMIZED //////////////////////////// static function MenuRibbonERP() DEFINE RIBBONBAR oRBar WINDOW oERP; PROMPT 'Tabelas', ; 'Custo', ; 'Orçamento', ; 'Vendas', ; 'Contas a Pagar', ; 'Contas a Receber', ; 'Produção', ; 'Documentos', ; 'Contratos', ; 'Bancos,', ; 'Estoque' HEIGHT 140 TOPMARGIN 25 oRBar:nLeftMargin = 01 oRBar:CalcPos() ADD GROUP oGr1 RIBBON oRBar TO OPTION 1 width 1000 @ 16, 05 ADD BUTTON oBtn11 GROUP oGr1 SIZE 80, 72 PROMPT " &Tabelas " round ; Action Menu_Tab_1() @ 16, 85 ADD BUTTON oBtn1 GROUP oGr1 SIZE 80, 72 PROMPT " &Relatório " round ; action nil @ 16, 165 ADD BUTTON oBtn13 GROUP oGr1 SIZE 80, 72 PROMPT " &Procedimento " round ; action Menu_Tab_3() @ 16, 245 ADD BUTTON oBtn15 GROUP oGr1 SIZE 80, 72 PROMPT " &Usuário " round ; action nil @ 16, 325 ADD BUTTON oBtn16 GROUP oGr1 SIZE 80, 72 PROMPT " S&enha " round ; action nil @ 16, 405 ADD BUTTON oBtn17 GROUP oGr1 SIZE 80, 72 PROMPT " &Sair " round ; action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr2 RIBBON oRBar TO OPTION 2 width 1000 @ 16, 890 ADD BUTTON oBtn1 GROUP oGr2 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr3 RIBBON oRBar TO OPTION 3 width 1000 @ 16, 890 ADD BUTTON oBtn1 GROUP oGr3 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr4 RIBBON oRBar TO OPTION 4 width 1000 @ 16, 890 ADD BUTTON oBtn4 GROUP oGr4 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr5 RIBBON oRBar TO OPTION 5 width 1000 @ 16, 890 ADD BUTTON oBtn5 GROUP oGr5 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr6 RIBBON oRBar TO OPTION 6 width 1000 @ 16, 890 ADD BUTTON oBtn6 GROUP oGr6 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr7 RIBBON oRBar TO OPTION 7 width 1000 @ 16, 890 ADD BUTTON oBtn7 GROUP oGr7 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr8 RIBBON oRBar TO OPTION 8 width 1000 @ 16, 890 ADD BUTTON oBtn8 GROUP oGr8 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr9 RIBBON oRBar TO OPTION 9 width 1000 @ 16, 890 ADD BUTTON oBtn9 GROUP oGr9 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr10 RIBBON oRBar TO OPTION 10 width 1000 @ 16, 890 ADD BUTTON oBtn10 GROUP oGr10 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr11 RIBBON oRBar TO OPTION 11 width 1000 @ 16, 890 ADD BUTTON oBtn11 GROUP oGr11 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ********************* Function Menu_Tab_1 local oWnd local oVmenu local oItem local oIcon DEFINE WINDOW oWnd TITLE "VistaMenu" oVMenu := TVistaMenu():New( 100, 100, 100, 100, oERP ) oVMenu:nColumns := 1 oVMenu:nType := 2 // Primeiro Menu oItem := oVMenu:AddItem( "Tabelas ", "" ) oItem:AddItem( "Ramo de Atividades",,; { | o | o := ERP_AA() } ) oItem:AddItem( "Fornecedores",,; { | o | o := ERP_AB() } ) oItem:AddItem( "Clientes",,; { | o | o := ERP_AC() } ) oWnd:oClient := oVMenu ACTIVATE WINDOW oWnd On Init (oWnd:Minimize(),oWnd:End()) return 0 ********************* Function Menu_Tab_3 local oWnd local oVmenu local oItem local oIcon DEFINE WINDOW oWnd TITLE "VistaMenu" oVMenu := TVistaMenu():New( 100, 100, 100, 100, oErp ) oVMenu:nColumns := 1 oVMenu:nType := 2 // Primeiro Menu oItem := oVMenu:AddItem( "Procedimentos Auxiliares", "" ) oItem:AddItem( "Cadastro de Perfil",,; { | o | o := ERP_OA() } ) oItem:AddItem( "Atualizar preço de Venda",,; { | o | o := ERP_OB() } ) oWnd:oClient := oVMenu ACTIVATE WINDOW oWnd On Init (oWnd:Minimize(),oWnd:End()) return 0 id=code>id=code>Márcio Pinheiro Varjão DECLA TECNOLOGIA xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 11.12 / Pelles C 6.50.8 Editado por - Scooby on 23/01/2012 15:44:32
  22. Boa Tarde Garimpeiros. Alguém já esta fazendo uso do TVistaMenu??? Estou com o seguinte problema, quando eu mando executar o primeiro menu o sistema efetua a criação na janela principal até ai tudo ok, porém quando clico no botão de "procedimento" que efetua a criação do 3 menu, eu não consigo criar um novo menu na janela principal, abaixo segue o código que estou usando para criar as janelas. DEFINE WINDOW oERP FROM 4, 4 TO 25, 75 TITLE oSis:_sistema MenuRibbonERP() ACTIVATE WINDOW oERP MAXIMIZED //////////////////////////// static function MenuRibbonERP() DEFINE RIBBONBAR oRBar WINDOW oERP; PROMPT 'Tabelas', ; 'Custo', ; 'Orçamento', ; 'Vendas', ; 'Contas a Pagar', ; 'Contas a Receber', ; 'Produção', ; 'Documentos', ; 'Contratos', ; 'Bancos,', ; 'Estoque' HEIGHT 140 TOPMARGIN 25 oRBar:nLeftMargin = 01 oRBar:CalcPos() ADD GROUP oGr1 RIBBON oRBar TO OPTION 1 width 1000 @ 16, 05 ADD BUTTON oBtn11 GROUP oGr1 SIZE 80, 72 PROMPT " &Tabelas " round ; Action Menu_Tab_1() @ 16, 85 ADD BUTTON oBtn1 GROUP oGr1 SIZE 80, 72 PROMPT " &Relatório " round ; action nil @ 16, 165 ADD BUTTON oBtn13 GROUP oGr1 SIZE 80, 72 PROMPT " &Procedimento " round ; action Menu_Tab_3() @ 16, 245 ADD BUTTON oBtn15 GROUP oGr1 SIZE 80, 72 PROMPT " &Usuário " round ; action nil @ 16, 325 ADD BUTTON oBtn16 GROUP oGr1 SIZE 80, 72 PROMPT " S&enha " round ; action nil @ 16, 405 ADD BUTTON oBtn17 GROUP oGr1 SIZE 80, 72 PROMPT " &Sair " round ; action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr2 RIBBON oRBar TO OPTION 2 width 1000 @ 16, 890 ADD BUTTON oBtn1 GROUP oGr2 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr3 RIBBON oRBar TO OPTION 3 width 1000 @ 16, 890 ADD BUTTON oBtn1 GROUP oGr3 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr4 RIBBON oRBar TO OPTION 4 width 1000 @ 16, 890 ADD BUTTON oBtn4 GROUP oGr4 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr5 RIBBON oRBar TO OPTION 5 width 1000 @ 16, 890 ADD BUTTON oBtn5 GROUP oGr5 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr6 RIBBON oRBar TO OPTION 6 width 1000 @ 16, 890 ADD BUTTON oBtn6 GROUP oGr6 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr7 RIBBON oRBar TO OPTION 7 width 1000 @ 16, 890 ADD BUTTON oBtn7 GROUP oGr7 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr8 RIBBON oRBar TO OPTION 8 width 1000 @ 16, 890 ADD BUTTON oBtn8 GROUP oGr8 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr9 RIBBON oRBar TO OPTION 9 width 1000 @ 16, 890 ADD BUTTON oBtn9 GROUP oGr9 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr10 RIBBON oRBar TO OPTION 10 width 1000 @ 16, 890 ADD BUTTON oBtn10 GROUP oGr10 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ADD GROUP oGr11 RIBBON oRBar TO OPTION 11 width 1000 @ 16, 890 ADD BUTTON oBtn11 GROUP oGr11 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT" ********************* Function Menu_Tab_1 local oWnd local oVmenu local oItem local oIcon DEFINE WINDOW oWnd TITLE "VistaMenu" oVMenu := TVistaMenu():New( 100, 100, 100, 100, oERP ) oVMenu:nColumns := 1 oVMenu:nType := 2 // Primeiro Menu oItem := oVMenu:AddItem( "Tabelas ", "" ) oItem:AddItem( "Ramo de Atividades",,; { | o | o := ERP_AA() } ) oItem:AddItem( "Fornecedores",,; { | o | o := ERP_AB() } ) oItem:AddItem( "Clientes",,; { | o | o := ERP_AC() } ) oWnd:oClient := oVMenu ACTIVATE WINDOW oWnd On Init (oWnd:Minimize(),oWnd:End()) return 0 ********************* Function Menu_Tab_3 local oWnd local oVmenu local oItem local oIcon DEFINE WINDOW oWnd TITLE "VistaMenu" oVMenu := TVistaMenu():New( 100, 100, 100, 100, oErp ) oVMenu:nColumns := 1 oVMenu:nType := 2 // Primeiro Menu oItem := oVMenu:AddItem( "Procedimentos Auxiliares", "" ) oItem:AddItem( "Cadastro de Perfil",,; { | o | o := ERP_OA() } ) oItem:AddItem( "Atualizar preço de Venda",,; { | o | o := ERP_OB() } ) oWnd:oClient := oVMenu ACTIVATE WINDOW oWnd On Init (oWnd:Minimize(),oWnd:End()) return 0 id=code>id=code>Márcio Pinheiro Varjão DECLA TECNOLOGIA xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 11.12 / Pelles C 6.50.8 Editado por - Scooby on 23/01/2012 15:44:32
  23. Olá a todos... Só reportando o problema citado no tópico acima referente ao Folder, na versão do Fivewin 11.10 o Folder de fato não esta funcionando, tanto a execução do valid quanto os direcionais "Seta para Cima" e "Seta para Baixo" e "TAB", retornei o fw para versão 10.09 e os controles funcionaram corretamente. Márcio Pinheiro Varjão DECLA TECNOLOGIA xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 10.9 / Pelles C 6.00.2
  24. Olá Luiz Fernando Pois é, quando eu dou um "Enter" o foco simplesmente se perde dentro do dialog ele não para no campo ctipofj simplesmente eu preciso alternar de tela para saber onde o foco esta no dialog ou somente retorna quando clico com o mouse sobre o campo desejado. Conferi o "ORDER CONTROLS" do pelles e também esta seguindo uma ordem já estabelecida. Mesmo fazendo todos esses passos acima não consegui fazer com que o "Enter" nem o "TAB" pudessem ser usados... só que existe um porém que não sei se tem alguma influência, quando eu clico no ultimo campo do meu adialogs[1] e vou dando "Shift+Tab" o folder reconhece a ordem e vai subindo os campos da forma correta. Abraço
  25. Olá Luís Meu código está da seguinte maneira... define dialog odlg_0002 resource "dlg_0002" title rot1+' - '+rot2 color cor_dlg HELPID 0002 redefine Get ocfornec var cCodfornec picture '@k 99999' id 201 of oDlg_0002 update redefine Get ofornec var cfornec picture '@!' id 202 of oDlg_0002 update redefine folder oFld_0002 ID 601 OF oDlg_0002 ; prompt "Dados &Básicos", "&Outros Dados"; dialogs "DLG_0002A", "DLG_0002B" UPDATE oFld_0002:aenable = {.t.,.t.} redefine get orazao var crazao picture '@!' id 203 of ofld_0002:adialogs[1] update redefine Radio oTipoFJ var ctipofj id 801, 802 of ofld_0002:adialogs[1] update redefine get ocgc var cCgc picture '99999999999999' id 204 of ofld_0002:adialogs[1] update id=code>id=code>. . . Restante da tela segue o mesmo padrão citado acima. Já no DLG_0002A que é uma Aba do Folder as propriedades estão da seguinte maneira "Style = Child", "Modal Frame = yes", "3D look = yes", já a propriedades dos EDIT dentro da Child estão da seguinte maneira: Com YES somente as propriedade "Border","Visible" e "TabStop" Estou usando o Pelles 6.5 e a minha maquina em questão o processador é 64bits.
×
×
  • Create New...