Scooby
-
Posts
229 -
Joined
-
Last visited
Posts posted by Scooby
-
-
pode ser em php?
pode, estou montando um levantamento para desenvolver uma outra linguagem pois o acesso a esse tipo de recurso parece ser bem escarço.
-
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.) -
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
-
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 -
-
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
-
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.
-
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)}
-
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: UObrigado Antecipadamente
-
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. )endifJá 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.
-
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
-
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. )endifWinExec( "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.)
-
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? -
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
-
Olá Kapiaba...
Irei olhar essa classe, talvez ela ajude a solucionar o meu problema...
Obrigado
citação:
id=quote>id=quote>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
Márcio Pinheiro Varjão
DECLA TECNOLOGIA
xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 11.12 / Pelles C 6.50.8
-
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:
id=quote>id=quote>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
Márcio Pinheiro Varjão
DECLA TECNOLOGIA
xHB build 1.2.1 (SimpLex) & BCC 5.82 & FW 11.12 / Pelles C 6.50.8
-
citação:
id=quote>id=quote>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
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
-
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
-
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
-
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
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
-
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
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
-
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
-
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
-
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.
2 Conexões em uma mesma query ( MySql/SqlRdd )
in Programação
Posted
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