oliveiros
Membros-
Posts
129 -
Joined
-
Last visited
-
Days Won
6
Everything posted by oliveiros
-
Olá, obrigado pelas respostas.
-
Oi Kapiaba, blz? É o seguinte: Tenho um a dialog pintada com setDlgGradiente dividido horizontalmente, aonde o lado esquerdo e 3/4 da tela. Sobre esse lado eu consigo colocar uma imagem, porém necessito sobre essa imagem colocar outra, porém não funciona. Achei o comando TransBmp, porém só funciona com bmp e preciso que seja png. Att., Oliveiros Junior
-
Olá, bom dia! Pessoal é possível sobre imagem com outra imagem, ambas png. Vou detalhar aqui a minha necessidade: Tenho uma dialog, aonde eu divido em duas partes com o comando SetDlgGradient, sendo o lado esquerdo maior, 3/4 da tela. Sobre o lado maior, esquerdo, coloquei a imagem fundo.png, porém preciso colocar imagens sobre a fundo.png. Já tentei algumas opções que não funcionaram, como https://forums.fivetechsupport.com/viewtopic.php?f=3&t=36838&p=219823&hilit=bitmap+transparent&sid=65eca4af1d53bc22544edbbd2b12fc48#p219823; e transpBmp(). Alguém teria alguma sugestão? Att., Oliveiros Junior
-
Olá, É simples. oCol := oBrowse:AddCol() oCol:nWidth := 30 oCol:cHeader := "Situação" oCol:oHeaderFont := oFonte5 oCol:nHeadStrAlign := AL_CENTER oCol:AddResource( "FALTA" ) // Imagem do rc - 1 oCol:AddResource( "FALTA_JUSTIFICADA" ) // Imagem do rc - 2 oCol:AddResource( "AULA" ) // Imagem do rc - 3 oCol:bBmpData := { || IIf( financeiro->situacao_cobranca = "01", 1, ; IIf( financeiro->situacao_cobranca = "02", 2, 3 ) ) } Att., Oliveiros Junior
-
Olá João, tudo bem? Você tem o link para baixar o BCC7.60? Att., Oliveiros Junior
-
Olá, bom dia! Obrigado a todos.
-
Boa noite pessoal! Alguém saberia informar se existe alguma forma de colorir metade de uma dialog de uma cor e a outra de outra cor? Att., Oliveiros Junior
-
Olá, bom dia! Obrigado pelas respostas. Acredito que uma solução passe pela função FW_GetMonitor do fivewin. https://forums.fivetechsupport.com/viewtopic.php?f=3&t=41156&p=246507&hilit=FW_GetMonitor&sid=38bcc961beab96a50e8dab3c700c0eb8#p246507 Att., Oliveiros Junior
-
Olá, boa tarde! Alguém conseguiu implementar os dois monitores, um para que o cliente possa acompanhar a compra e outra para o caixa? Att., Oliveiros Junior
-
Olá, Acho que seria mais interessante o Messenger. Será que alguém tem uma rotina para partilhar? Desde já agradeço. Att., Oliveiros Junior
-
Oi Wellington, boa noite! Obrigado! Já havia resolvido com o xBrowse. Estou acabando de montar. Att., Oliveiros Junior
-
Valeu, obrigado! Mas teria outra opção? Oliveiros Junior
-
Pessoal, boa tarde! Estava precisando colocar em um browser vários registro na mesma linha, como no exemplo abaixo, que por sinal é daqui do fórum. Alguém sabe dizer se isso é da xBrowser, se tem algum método especifico ou foi feito por meio de array? Att., Oliveiros Junior
-
Olá, agora entendi. select a.Date, ( SELECT COUNT(*) from process AS p WHERE a.Date >= p.dtcalc1 and If( TIMESTAMPDIFF(DAY, p.dtcalc1, p.dtcalc2) = 0 , a.Date <= p.dtcalc2, a.Date < p.dtcalc2 ) GROUP BY a.Date) AS ocorrencia from ( select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a) + (1000 * d.a) ) DAY as Date from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as d ) a where a.Date between '2023-06-01' and '2023-06-07' GROUP BY a.Date ORDER BY a.Date Essa query vai retorna algo assim 2023-06-01 - NULL 2023-06-02 - NULL 2023-06-03 - 1 2023-06-04 - 3 2023-06-05 - 1 2023-06-06 - 2 2023-06-07 - NULL Att., Oliveiros Junior
-
Oi, bom dia! Explica melhor a demanda, por favor. Vc precisa colocar a quantidade de dias entre as datas dtcalc1 e dtcalc2, isso? SELECT p.dtcalc1 AS data, SUM( IF( TIMESTAMPDIFF(DAY, p.dtcalc1, p.dtcalc2) = 0, 1, TIMESTAMPDIFF(DAY, p.dtcalc1, p.dtcalc2) ) ) AS dias FROM process AS p GROUP BY p.dtcalc1; Testa essa Query. O resultado será: 03/06/2023 - 2; 04/06/2023 - 3; 06/06/2023 - 2; Não entendi na sua demanda dia 05/06/2023 - 1; Atenciosamente, Oliveiros Junior
-
Olá Kapiaba, boa noite! Consegui usar a HBOle. O problema é que ela tinha que vir no inicio do bat de compilação. Obrigado pela ajuda Oliveiros Junior
-
Oi, não João, atualmente uso o 20.07. Esse é um sistema que está funcionando bem só preciso implementar essa rotina.
-
Olá Kapiaba, boa tarde! Em primeiro lugar, obrigado pela resposta. Coloquei seu exemplo para compilar na versão "FiveWin for Harbour 2.4 - July 2003" e agora ele não passa o URL. Abre o IE e no browser mostra "http:///". Att., Oliveiros Junior.
-
Olá pessoal, boa noite! Preciso compilar um programa antigo e estou precisando da lib HbOleAut, queria saber se tem alguém que possa compartilhar. A que tenho é de 15.07.2007. Estou tentando abrir um página da internet, e para isso estou usando a seguinte rotina: Function AbrirURL() Local oOle, cURL cURL := "https://receita.fazenda.df.gov.br.com.br" oOle:= TOleAuto():NEW( "InternetExplorer.Application" ) oOle:Visible := .T. oOle:ToolBar := .F. oOle:StatusBar := .F. oOle:MenuBar := .F. oOle:Navigate2( cURL ) //While oOle:ReadyState <> 4 // SysWait( .5 ) //Enddo SysRefresh() Return .t. *----------------------------------------------------------------------------------------* O programa compila, porém diz que a propriedade Navigate2, no momento da execução, é "tipo de variante não implementado" Desde já agradeço. Se quiser mandar direto, pode mandar para oliveiros.jr@uol.com.br Att., Oliveiros Junior
-
Oi emotta, boa tarde! Você precisa capturar seu certificado. Eu uso a capcom.dll e seleciono o certificado pela função: .... cXML := HB_MemoRead( cXML_Assinado ) cCertificado := Pegar_Certificado() If Empty( cCertificado ) cMensagem += "Não foi possível carregar as informações do certificado." Exibir_Mensagem() Return .F. Else cMensagem += "Certificado em uso " + cCertificado Exibir_Mensagem() EndIf TRY oServer := CreateObject( "MSXML2.ServerXMLHTTP.6.0" ) CATCH oError cMensagem += "Não foi possível carregar objeto XMLHTTPServer." Exibir_Mensagem() Return .F. END oServer:setOption( 3, 'CURRENT_USER\MY\' + cCertificado ) oServer:open( 'POST', cLink, .F. ) oServer:setRequestHeader( 'SOAPAction' , cSoapAct ) oServer:setRequestHeader( 'Content-Type' , 'text/xml; charset=utf-8' ) oServer:setRequestHeader( 'Content-Length:', AllTrim( Str( Len( cXML ) ) ) ) TRY oDOMDoc := CreateObject( "MSXML2.DOMDocument.5.0" ) oDOMDoc:async := .F. oDOMDoc:resolveExternals := .F. oDOMDoc:validateOnParse := .T. oDOMDoc:preserveWhiteSpace := .T. oDOMDoc:LoadXML( cXML ) CATCH cMensagem += "Não foi possível carregar o documento XML." Exibir_Mensagem() Return .F. END *------------------------------------------------------------------------------* Function Pegar_Certificado() Local oCapicom Local oCertificado Local cCertificado Local nX Local cSubjectName TRY oCapicom := CreateObject( "CAPICOM.Store" ) CATCH END If oCapicom == NIL Return "" EndIf oCapicom:open( CAPICOM_CURRENT_USER_STORE,'My', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED ) oCertificado := oCapicom:Certificates() For nX := 1 To oCertificado:Count() If oCertificado:Item(nX):SerialNumber == cSerial_Certificado cSubjectName := oCertificado:Item( nX ):SubjectName EndIf Next cCertificado := "" FOR nX := At( "CN=", cSubjectName ) + 3 To Len( cSubjectName ) If SubStr( cSubjectName, nX, 1 ) == "," Exit EndIf cCertificado += SubStr( cSubjectName, nX, 1 ) Next Return cCertificado *------------------------------------------------------------------------------* ATENÇÃO! Essa função é baseada na classe sefazclass do JoséQuintas Att., Oliveiros Junior
-
Boa noite! Alguém já testou a conexão com BD pelo IPV6 - SQLLib, HDO, Eagle ou Nativa do Fivewin? que possa passar sua experiência? Att., Oliveiros Junior
-
Oi emotta, boa tarde! Eu tenho um servidor linux na LocaWeb com mysql 8.0. Att., Oliveiros Junior
-
Oi, Alterei o campo observação para mediumblob e fiz um teste colocando o campo no GROUP BY, e como lhe falei o resultado foram 3 registros, porque o conteúdo do campo observação são diferentes.
-
Só uma observação, como o conteúdo da obervação é diferente, como na seq, ele mostra a primeira ocorrência. Se o seq estiver na lista de campos a ser apresentado, ele apresentaria a seq 001.