Jump to content
Fivewin Brasil

oliveiros

Membros
  • Posts

    129
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by oliveiros

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

     

     

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

     

     

      

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

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

    image.png.ef2cd37f4f216b09b52199595454ad5a.png

      

    Att.,

    Oliveiros Junior

     

     

     

    image.png

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

     

     

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

     

     

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

     

     

     

     

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

     

     

     

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

     

     

     

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

     

×
×
  • Create New...