Jump to content
Fivewin Brasil

jaguiar

Membros
  • Posts

    27
  • Joined

  • Last visited

Posts posted by jaguiar

  1. Tá pronta a versão inicial com exe e fontes em dicas.

    Acompanham dois projetos (sistemas) para deixar claro o funcionamento.

    Toda sugestão será bem vinda.

    Esqueci de mencionar em dicas: A pasta do programa (MsGpro)deve ser descompactada no raiz do hd, de modo que o path será c:\msgpro ou h:\msgpro, etc.

    Estou a disposição para qq esclarecimento.

  2. Olá galera.

    Achei muito interessante essa classe, mas cofesso a vocês que sou zera à esquerda em RicEdit. Tudo que preciso saber é a sintaxe do richedit em relação à TPrint. Por exemplo, o que devo mudar no fonte abaixo para enviar para richEdit?

    
    

    PRIVATE oPrn,oFont,nTam, nLen, nTamPag, nTamRel,aCOL,nPROW

    PRINT oPrn NAME "Impressao de Pedido de Venda Nº "+STR(ARQCAD->PEDORC,6) PREVIEW MODAL FROM USER

    oPrn:SetPage(9) // 1=Carta 9=A4

    DEFINE FONT oFONTCB1 NAME "ARIAL" SIZE 30,26 BOLD OF OPRN

    DEFINE FONT oFONTDET NAME "ARIAL" SIZE 27,10 BOLD OF OPRN

    DEFINE FONT oFont NAME "ARIAL" SIZE 27,10 OF oPrn

    DEFINE PEN oPen WIDTH 2 OF oPrn

    nCOLE := 6

    nPAG := 0

    DbSelectArea("TMPDETAL")

    DbGoTop()

    DO WHILE !EOF()

    ResLinha := oPrn:nLogPixely()/2.54

    ResColuna := oPrn:nLogPixelx()/2.54

    PAGE

    nPROW := 0 // En

    ++ nPAG

    MBox(0.90,0.90,26.0,20)

    oPrn:SayBitMap( 1.00 * ResLinha, 1.00 * ResColuna,;

    "&cDRIVE\SISCOM\BITMAPS\LogoGradial.bmp",;

    08.40 * ResLinha, 7.10 * ResColuna ) // 8.40 3.10

    MBox(4.60,0.90,4.61,20) // linha hoprizontal

    oPrn:SetFont(oFontCb1)

    oPrn:CharSay(PROWW(06.1),nCOLE, "PEDIDO DE VENDA No. "+ STR(ARQCAD->PEDORC,6) )

    oPrn:CharSay(PROWW(),nTamRel," ","D")

    //

    oPrn:SetFont(oFONTDET)

    oPrn:CharSay(PROWW(11),nCOLE,"EMISSÃO:")

    oPrn:CharSay(PROWW( ),17,NOVADATA(DATE()) )

    //oPrn:CharSay(PROWW( ),65,"Vendedor: " +STRZERO(ARQCAD->PEDVND,3) + " "+;

    // TRIM(ARQFUNC->NOME))

    oPrn:CharSay(PROWW(),nTamRel," ","D")

    oPrn:CharSay(PROWW(1),nCOLE, "CLIENTE:")

    oPrn:CharSay(PROWW( ),17, TRIM(cNOMCLI)+" "+STR(ARQCAD->PEDCLI,6) )

    oPrn:CharSay(PROWW(),nTamRel," ","D")

    ...

    ENDPAGE

    ENDDO

    ENDPRINT

    id=code>id=code>
  3. Olá Ico.

    É Mais ou menos isso: No exemplo abaixo, quando clico em moda cor o sistema me mostra o objeto de seleção de cores. Notes que nesse objeto, na parte inferior direita tem as cores: red, green e blue representada por números. É extamente esse três números que preciso capcurar para minhas variáveis de cores e definir as cores mais ou menos assim:

    #Define CLR_FUNGET nRGB( nCOREDIT1,nCOREDIT2,nCOREDIT3)

    #Define CLR_FONGET nRGB( nCOREDIT4,nCOREDIT5,nCOREDIT6)

    LOCAL oDLG

    nGET := 0

    DEFINE DIALOG oDlg FROM 02,01 TO 15,45 TITLE 'Seleção de cores'

    @ 02.5,01 SAY "Cor Gets"

    @ 02.7,04 GET oGET VAR nGET PICT "9999999999"

    //

    @ 0012,05 Button oBtnCancel Prompt "&Muda Cor Get";

    Size 40,15 Pixel Action oGET:SelColor() Of oDlg

    @ oDlg:nHeight()/2-19,oDlg:nWidth()/2-35 Button oBtnCancel Prompt "&Cancelar";

    Size 30,15 Pixel Action oDlg:End() Of oDlg

    ACTIVATE DIALOG oDlg CENTERED

  4. Olá Lailton.

    Segue o código amigo...

    STATIC FUNCTION Imprime(cWILCOND)

    LOCAL oCBX, oBoleto

    LOCAL nJURODIA := ARQPARAM->JURODIA

    LOCAL nVALDESC,nVALTIT,nVALMULT

    LOCAL cINST01,cINST02,cINST03,cINST04,cINST05

    PRIVATE cARQCONF,cARQLOGO,cAGENCIA,cCONTA

    // Necessrio efetuar download da lib TOleAuto em ftp://ftp.harbour-project.org/contrib/hbole.zip

    //

    // Exemplo dado pelo evandro@skillnet.com.br

    //

    dllatual:= loadlibrary("Cobrebemx.dll")

    SET RESOURCES TO dllatual

    //

    // SET RESOURCES TO "H:\SISCOM\cobrebem\Cobrebemx.dll" // "C:\cobrebemx\Cobrebemx.dll" // dllatual

    // SET RESOURCES TO "Cobrebemx.dll"

    //

    oCBX := TOleAuto():New("CobreBemX.ContaCorrente")

    // Monta arquivo de licena de teste para banco 001 carteira 18

    cARQCONF := ARQPARBL->ARQCONF

    oCBX:ArquivoLicenca := "&cDRIVE\SISCOM\CobreBem\&cARQCONF" // TL356_42.conf"

    // oCBX:ArquivoLicenca := "H:\SISCOM\CobreBem\TL356_42.conf"

    // Monta dados da conta corrente

    cAGENCIA := STRZERO(ARQPARBL->AGENCIA,4)

    IF !EMPTY(ARQPARBL->DIGAGENC)

    cAGENCIA += "-"+ARQPARBL->DIGAGENC

    ENDIF

    oCBX:CodigoAgencia := cAGENCIA // STRZERO(ARQPARBL->AGENCIA,4) // "0200"

    cAGENCIA := STRZERO(ARQPARBL->AGENCIA,4) + ;

    IF( !EMPTY(ARQPARBL->DIGAGENC),"-"+ARQPARBL->DIGAGENC," ")

    cCONTA := TRIM(ARQPARBL->CONTA)+;

    IF(!EMPTY(ARQPARBL->DIGCONTA),"-"+ARQPARBL->DIGCONTA," " )

    oCBX:NumeroContaCorrente := TRIM(cCONTA)

    //oCBX:NumeroContaCorrente := LEFT(ARQPARBL->CONTA,7) rem 03/07/09

    oCBX:LocalPagamento := "Pagável em qualquer banco até o vencimento"

    //

    oCBX:CodigoCedente := LEFT(ARQPARBL->CONTA,7) // "0715383"

    IF ARQPARBL->NNUMERNF

    // Gera o n. número igual à nota fiscal no Bradesco é assim

    oCBX:InicioNossoNumero := "0000001"

    oCBX:FimNossoNumero := "0079999"

    nNOSSNUM := VAL( STR(TMPCREC->RECSEQ,6)+STR(TMPCREC->RECPARC,1) ) // Adi 22/07/09

    oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM-1,5) // adi em 03/07/09

    //oCBX:ProximoNossoNumero := STRZERO(TMPCREC->RECSEQ-1,5) rem 22/07/09

    ELSE

    // oCBX:InicioNossoNumero := "00001" rem 03/07/2009

    // oCBX:FimNossoNumero := "79999" rem 03/07/2009

    oCBX:InicioNossoNumero := STRZERO(ARQPARBL->NNUMEROI,7) // ad 03/07/2009

    oCBX:FimNossoNumero := STRZERO(ARQPARBL->NNUMEROF,7) // ad 03/07/2009

    oCBX:ProximoNossoNumero := STRZERO(ARQPARBL->NNUMERO-1,5)

    ENDIF

    nNOSSNUM := ARQPARBL->NNUMERO

    oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := "&cDRIVE\SISCOM\bitmaps\"

    //

    DbSelectArea("ARQPARBL")

    REGLOCK(0,.F.)

    DbSelectArea("TMPCREC")

    //

    cARQLOGO := LTRIM( STR(nCDBANC) ) + ".jpg"

    oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := "&cDRIVE\SISCOM\bitmaps\&cARQLOGO"

    //oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := "&cDRIVE\SISCOM\bitmaps\356.jpg"

    // MsgAlert("Erro "+oCBX:PadroesBoleto:UltimaMensagemErro)

    /*

    Caso queira emitir o boleto no formato Carnet, informe para a propriedade 'LayoutBoleto'

    do objeto 'IPadroesBoletoImpresso' o valor 'CarnetReciboLateralEsquerda'

    ou 'CarnetReciboLateralDireita'

    */

    //

    // oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto := "CarnetReciboTopo"

    //oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto := "PadraoReciboTopo"

    While &cWILCOND // !eof()

    IF cWILCOND=="!EOF()" .AND. RECBCO # nCDBANC

    DbSkip()

    LOOP

    ENDIF

    nVALDESC:= 0

    nVALTIT := TMPCREC->RECVAL - nVALDESC

    nVALMULT:= 2.00

    IF !EMPTY(ARQPARBL->DIASPROT)

    // cINST01 := 'NAO DISPENSA MORA. COBRAR MORA DE '+TRIM(ARQPARAM->PMOEDA)+' '+LTRIM( TRANSF( (TMPCREC->RECVAL-nVALDESC) * nJURODIA/100,'@E 99,999.99') ) +' POR DIA DE ATRASO'

    cINST01 := ' '

    cINST02 := 'APOS VENCIMENTO COBRAR MULTA DE '+TRIM(ARQPARAM->PMOEDA)+' '+LTRIM( TRANSF( (TMPCREC->RECVAL-nVALDESC) * 0.02,'@E 99,999.99'))

    cINST03 := 'PROTESTAR APOS '+LTRIM(ARQPARBL->DIASPROT) + ' DIAS UTEIS DO VENCIMENTO'

    ELSE

    cINST01 := ' '

    cINST02 := ' '

    cINST03 := ' '

    ENDIF

    cINST04 := 'VALORES EXPRESSOS EM REAIS'

    cINST05 := 'NF '+STR(TMPCREC->RECSEQ,6)

    //

    // O bloco do IF abaixo não existe no programa da Distribegi. Verificar se é necessário

    //

    IF !ARQPARBL->NNUMERNF .AND. !EMPTY(TMPCREC->RECNNUM) // adi 03/07/09

    //IF !EMPTY(TMPCREC->RECNNUM) rem 03/07/09

    nNOSSNUM := VAL(TMPCREC->RECNNUM) - 1

    oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM,5)

    ++ nNOSSNUM

    ENDIF

    oBoleto := oCBX:DocumentosCobranca:Add()

    syswait(.5) // Tem no programa exemplo do chegado do forum

    // Monta dados do sacado

    cNOMSAC := TRIM(ARQCLI->CLIRAZAO)

    IF !LEFT(ARQCLI->CLIRAZAO,20) == ARQCLI->CLINOME

    cNOMSAC += " - "+ARQCLI->CLINOME

    ENDIF

    oBoleto:NomeSacado := cNOMSAC

    oBoleto:EnderecoSacado:= ARQCLI->CLIENDC

    oBoleto:BairroSacado := ARQCLI->CLIBAIC

    oBoleto:CidadeSacado := ARQCLI->CLICIDC

    oBoleto:EstadoSacado := ARQCLI->CLIUFC

    oBoleto:CEPSacado := ARQCLI->CLICEPC

    // Monta dados do documento de cobranca

    oBoleto:PadroesBoleto:InstrucoesCaixa := cINST01 + "

    " + cINST02 + "

    " + cINST03 + "

    " + cINST04 + "

    " + cINST05

    oBoleto:PadroesBoleto:Demonstrativo := cINST01 + "

    " + cINST02 + "

    " + cINST03 + "

    " + cINST04 + "

    " + cINST05

    oBoleto:DataDocumento := DTOC(RECDEMI)

    oBoleto:DataProcessamento:= DTOC(RECDEMI)

    oBoleto:DataVencimento := DTOC(RECDVEN)

    oBoleto:NumeroDocumento := STRZERO(RECSEQ,6)+STR(RECPARC,1)

    oBoleto:ValorDocumento := nVALTIT

    oBoleto:TipoDocumentoCobranca:= "DM"

    //

    oCBX:calcularDadosBoletos()

    linhadigi := oBoleto:LinhaDigitavel // pega linha digitável

    codildigi := oBoleto:CodigoBarras // codigo utilizado para gerar o código de barras

    //

    // nNossoCob := oBoleto:NossoNumero && pega nosso número

    //

    // Pega o nosso numero igual a nf

    IF ARQPARBL->NNUMERNF // Bradesco

    //nNOSSNUM := TMPCREC->RECSEQ Rem em 22/07/09

    nNOSSNUM := VAL( STR(TMPCREC->RECSEQ,6)+STR(TMPCREC->RECPARC,1) ) // AD em 22/07/09

    oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM-1,10) // STRZERO(nNOSSNUM,8) Sem o digito conf contato c/Cobrebem

    ELSE // Real

    // Pega o nosso numero pelo contador de auto-incremento - Real

    IF EMPTY(TMPCREC->RECNNUM)

    DbSelectArea("ARQCREC")

    GO TMPCREC->NRECNO

    REGLOCK(0,.F.)

    REPLACE RECNNUM WITH STRZERO(nNOSSNUM,5)

    DbUnlock()

    REPLACE TMPCREC->RECNNUM WITH STRZERO(nNOSSNUM,5)

    //

    DbSelectArea("TMPCREC")

    ++ nNOSSNUM

    REPLACE ARQPARBL->NNUMERO WITH nNOSSNUM // ta travado

    ELSE

    // Retorna o próximo n.número para os parâmetros

    nNOSSNUM := ARQPARBL->NNUMERO

    oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM-1,5)

    ENDIF

    ENDIF

    syswait(.5)

    IF cWILCOND=="!EOF()"

    DbSkip()

    ELSE

    EXIT

    ENDIF

    SysRefresh() && aqui verifica numero do boleto 17/04/2007 retirar se der algo errado

    Enddo

    IF !"JOAO" $ cUSUARIO

    oCBX:ImprimeBoletosSemPreview()

    ELSE

    oCBX:ImprimeBoletos()

    ENDIF

    oCBX:End()

    //

    DbSelectArea("ARQPARBL")

    DbUnlock()

    //

    DbSelectArea("TMPCREC")

    RETURN( NIL )

    ***********************************************************************************************

  5. Olá pessoal.

    Tenho o sistema em harbour 7.01 e devido a nfe tive que compilar em xharbour. A partir daí começou a dar um erro a cada boleto impresso.

    Sgue o erro

    Called from: source\rtl\win32ole.prg => TOLEAUTO:END(0)

    Called from: IMPBOLL.prg => IMPRIME(398)

    Alguem tem esta hbole.lib?

    Grato

    joão Freire de Aguair

    joaosiscom@hotmail.com

  6. Olá pessoal.

    Tenho o sistema em harbour 7.01 e devido a nfe tive que compilar em xharbour. A partir daí começou a dar um erro a cada boleto impresso.

    Sgue o erro

    Called from: source\rtl\win32ole.prg => TOLEAUTO:END(0)

    Called from: IMPBOLL.prg => IMPRIME(398)

    Alguem tem esta hbole.lib?

    Grato

    joão Freire de Aguair

    joaosiscom@hotmail.com

  7. Olá Yury.

    Falei com o pessoal da Cobrebem que me enviaou um código html com o layout do boleto Bradesco que necessito. Porém, torna-se necessário utilizar a opção PadraoReciboPersonalizado e criar as tags html.

    Aí é que o bicho pega, pois nunca fiz nada parecido!.

    Se alguém tiver um exemplo de como fazer isso, vou ficar eternamente grato.

    João Freire de Aguiar

  8. Olá pessoal.

    Tenho um sistema em Clipper que gera arquivos para palm zire 100 e recebe os arquivos gerados pelo mesmo e agora me deparei com a necessidade de implantar esse sistema em um programa em xHarbour.

    Gostaria de saber dos amigos programadores se voces conhecem o Zire e o que acham dele. Caso tenham uma sugestão melhor, mais pratica, será bem vida a dica.

    Grato

    João Freire de Aguiar

  9. Olá pessoal.

    Tenho um sistema em Clipper que gera arquivos para palm zire 100 e recebe os arquivos gerados pelo mesmo e agora me deparei com a necessidade de implantar esse sistema em um programa em xHarbour.

    Gostaria de saber dos amigos programadores se voces conhecem o Zire e o que acham dele. Caso tenham uma sugestão melhor, mais pratica, será bem vida a dica.

    Grato

    João Freire de Aguiar

×
×
  • Create New...