Impresion desde txtpreview a pdf

Impresion desde txtpreview a pdf

Postby surGom » Wed Oct 08, 2008 3:08 pm

Hola quisiera saber como puedo seleccionar una impresora para poder imprimir en pdf desde la clase tdosprn. Lo que quiero es seleccionar una impresora pdf, pasar el parametro para que con la clase txtpreview, me haga el archivo en pdf. Esto se debe a que para presentar a la Dgi me piden que lo enviemos en ese formato o txt. Y tengo todo hecho para impresión. ALgo como from user ?

Gracias

Luis
surGom
 
Posts: 640
Joined: Wed Oct 19, 2005 12:03 pm

Postby karinha » Wed Oct 08, 2008 3:22 pm

HOLA,

PODRIAS GENERAR EL .TXT NORMALMENTE Y DESPUÉS LLAMAR CON EL PEDFCREATOR.EXE.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7860
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby surGom » Wed Oct 08, 2008 5:01 pm

Si pero necesito que puedan seleccionar porque quieren imprimir y/o hacer el pdf según la ocasión. No hay como seleccionar la impresora??

Luis
surGom
 
Posts: 640
Joined: Wed Oct 19, 2005 12:03 pm

Postby karinha » Wed Oct 08, 2008 5:21 pm

Hola, mira se comprendes... Se necesitar de los DIALOGOS, avisame.

Code: Select all  Expand view  RUN
#Include "FiveWin.Ch"
#Include "BtnGet.Ch"       // Classe Que Inclui BotÆo em Get
#Include "CorGet.Ch"       // Cores Nos Gets
#Include "SSay.Ch"         // SAY'S Transparentes   precisa desta .ch

#Define SW_SHOWNA         8   // &H8
#Define SW_SHOW           5   // &H5
#DEfine SW_HIDE           0   // &H0

#Define CLR_LGRAY     nRGB( 230, 230, 230 )
#Define CLR_LGREEN    nRGB( 190, 215, 190 )
#Define CLR_VERMELHO  nRGB( 255, 000, 000 ) //--> Vermelho Para a Letra
#Define CLR_AMARELO   nRGB( 255, 255, 000 ) //--> Amarelo Para o Fundo

//-> Para Centraliza‡Æo dos Textos - Controle dos Centrimetros
#Define PAD_LEFT            0
#Define PAD_RIGHT           1
#Define PAD_CENTER          2

STATIC lDesligaBtnImp := .F.  //-> BotÆo de ImpressÆo Desativado
STATIC lDisableBtnGra := .F.  //-> BotÆo de Grava‡Æo  Desativado
STATIC nOpcaoRadio := 2       //-> Op‡Æo do Radio da Pesquisa
STATIC nOpcTipoCur := 1       //-> Op‡Æo do Radio do TIPO DE CURSO

//---------------------------------------------------------------------------//

FUNCTION NOTIFICA( lAppend, oDbfTabela, oDbfCadDig, oDbfTurmas, oDbfVendedor, ;
                            oDbfEmpresa )

    LOCAL oDlg,    oLbx,  oFont, iDcor, oIco, oSay, oFnt, oBrush
    LOCAL oImagem, oHand, oNotifica, oSaida

    LOCAL oRadMenu

    MEMVAR XNOMEC
    MEMVAR oNome_Busca

    XNOMEC          := SPACE(40)

    //-------------------Abretura dos Bancos de Dados------------------------//

    //-> Banco de Dados Tabela.Dbf - Pre‡os e outros
    IF NetUse( "TABELA", .T. ) // Falso ‚ Exclusivo .T. ‚ Shared
        OrdListAdd( "TABELA", "CODIGO", "DESCRICAO", "PRECOS" ) // Ordem dos Indices.
        OrdDescend( ,,.F. )            // - Decrescente
        DATABASE oDbfTabela          // - Como Escrevemos em Ingles
        oDbfTabela:Load()
        oDbfTabela:GoTop()
        oDbfTabela:SetBuffer( .T. )
     ELSE
        MsgStop( "Banco de Dados TABELA Bloqueado", "Cuidado!" )
        RETURN NIL
    ENDIF

    //-> Banco de Dados dos Alunos
    IF NetUse( "CADDIG", .T. ) // Falso ‚ Exclusivo .T. ‚ Shared
        OrdListAdd( "CADDIG", "MATRICULA", "NOME", "CODIGO", "TURMA", "CIC_CPF" ) // Ordem dos Indices.
        OrdDescend( ,,.F. )            // - Decrescente
        DATABASE oDbfCadDig          // - Como Escrevemos em Ingles
        oDbfCadDig:Load()
        oDbfCadDig:GoTop()
        oDbfCadDig:SetBuffer( .T. )
     ELSE
        MsgStop( "Banco de Dados CADDIG Bloqueado", "Cuidado!" )
        RETURN NIL
    ENDIF

    // Banco de Dados Das Turmas
    IF NetUse( "TURMAS", .T. ) // Falso ‚ Exclusivo .T. ‚ Shared
        OrdListAdd( "TURMAS", "NTURMA", "NCURSO" ) // Ordem dos Indices.
        OrdDescend( ,,.F. )                        // Decrescente
        DATABASE oDbfTurmas                        // Como Escrevemos em Ingles
        oDbfTurmas:Load()
        oDbfTurmas:GoTop()
        oDbfTurmas:SetBuffer( .T. )
     ELSE
        MsgStop( "Banco de Dados TURMAS Bloqueado", "Cuidado!" )
        RETURN NIL
    ENDIF

    //-> VENDEDOR.DBF
    IF NetUse( "VENDEDOR", .T. ) // Falso ‚ Exclusivo .T. ‚ Shared
        OrdListAdd( "VENDEDOR", "CODIGO", "NOME" ) // Ordem dos Indices.
        OrdDescend( ,,.F. )            // - Decrescente
        DATABASE oDbfVendedor          // - Como Escrevemos em Ingles
        oDbfVendedor:Load()
        oDbfVendedor:GoTop()
        oDbfVendedor:SetBuffer( .T. )
     ELSE
        MsgStop( "Banco de Dados VENDEDOR Bloqueado", "Cuidado!" )
        RETURN NIL
    ENDIF

    //-> EMPRESA.DBF
    IF NetUse( "EMPRESA", .T. ) // Falso ‚ Exclusivo .T. ‚ Shared
        DATABASE oDbfEmpresa    // Como Escrevemos em Ingles
        oDbfEmpresa:Load()
        oDbfEmpresa:GoTop()
        oDbfEmpresa:SetBuffer( .T. )
     ELSE
        MsgStop( "Banco de Dados EMPRESA Bloqueado", "Cuidado!" )
        RETURN NIL
    ENDIF

    // Como Escrevemos em Ingles
    SELECT ( oDbfTabela:cAlias ) // Seleciona o Alias
    oDbfTabela:SetOrder( 2 )     // Ordenado Por Descri‡Æo
    oDbfTabela:GoTop()

    // Caixa de Dialogo -----------------------------------------------------//

    DEFINE BRUSH oBrush FILE "COMPAR.BMP"

    DEFINE CURSOR oHand RESOURCE "Dedo"
 
    DEFINE FONT oFnt  NAME "Ms Sans Serif" SIZE 0, -10 BOLD
    DEFINE FONT oFont NAME "Arial"         SIZE 08, 18 BOLD

    // Um Öcone no Lado Esquerdo da Tela
    DEFINE ICON OICO FILE ".\BRASIL__.BMP"
 
    DEFINE DIALOG oDlg RESOURCE "BROWSE_NOTIFICACAO_INICIAL"                  ;
           ICON oIco                                                          ;
           BRUSH oBrush TRANSPARENT

    oDlg:lHelpIcon := .F.

    oDlg:bRClicked = { || MsgInfo( OemToAnsi( "BotÆo Direito "        + CRLF+ ;
                                              "NÆo Est  Ativo" ),             ;
                                 ( OemToAnsi( "Informa‡Æo   " ) ) ) }

    //--- Melhoria visual nos say's
    For IDCor=401 TO 404
        REDEFINE SENSITIVE SAY ID iDcor ;
        COLOR CLR_HRED       OF oDlg    ;
        UPDATE                          ;
        BOX RAISED                      ;
        CENTER                          ;
        FONT oFnt
    Next IDCor  // By Ednaldo Rolim - Yes!

    //-----------------------------------------------------------------------//

    //-> Para Trocar o Indice da ListBox Para Busca da Conta
    REDEFINE RADIO oRadMenu VAR nOpcaoRadio  ID 201, 202 OF oDlg              ;
             COLOR CLR_BROWN, CLR_LGREEN                                      ;
             ON CHANGE( TROCA_INDICE( nOpcaoRadio, oDbfTabela, oLbx ),        ;
                        oLbx:GoTop(), oLbx:SetFocus(), oLbx:Refresh(),        ;
                        XNOMEC := SPACE(40), xFocus( oNome_Busca ),           ;
                 oNome_Busca:bGotFocus := { || oNome_Busca:SetPos( 1 ), Nil } )


    //-----------------------------------------------------------------------//

    Set( _SET_INSERT, ! Set( _SET_INSERT ) )

    // Get Para Fazer a Busca do Aluno na ListBox
    REDEFINE GET oNome_Busca VAR XNOMEC PICTURE "@K!"                         ;
             ID 20 OF oDlg                                                    ;
             FONT oFont                                                       ;
             COLORS CLR_VERMELHO, CLR_AMARELO                                 ;
             ON CHANGE( Conteudo( oNome_Busca, nKey, oDlg, oLbx, XNOMEC,      ;
                                  oDbfTabela ) )

    //-----------------------------------------------------------------------//

    // ListBox dos Alunos Est  No Arquivo.RES Recurso Browse ID 101
    REDEFINE LISTBOX oLbx FIELDS                                              ;
             xPadL( AllTrim( Str( ( oDbfTabela:cAlias )->COD ) ), 2 )       , ;
             ( oDbfTabela:cAlias )->DESC                                      ;
             HEADERS ( OemToAnsi( "C¢digo "                      ) )        , ;
                     ( OemToAnsi( "Descri‡Æo do Curso "          ) )          ;
             FIELDSIZES 100, 300                                              ;
             COLOR CLR_BROWN, CLR_LGREEN                                      ;
             FONT oFont                                                       ;
             CURSOR oHand                                                     ;
             UPDATE                                                           ;
             ID 101                                                           ;
             OF oDlg                                                          ;
             ON DBLCLICK( Click()                                           , ;
                          GETNOTIFICA( .T., oDbfTabela, oDbfCadDig,           ;
                                            oDbfTurmas, oDbfVendedor,         ;
                                            oDbfEmpresa ),                    ;
                                            oLbx:SetFocus() )

    //--------------------Pesquisa Incremental-------------------------------//

    // Neste Caso, Vai Fazer a Pesquisa Incremental
    oLbx:bKeyDown := { | nKey | FAZ_PESQUISA( nKey,                           ;
                            ( oDbfTabela:cAlias ), oLbx, oSay,                ;
                              oLbx:SetFocus(), oLbx:Refresh() ),              ;
                         IF ( nKey = VK_RETURN,                               ;
                            ( Click(), GETNOTIFICA( .T., oDbfTabela,          ;
                                                         oDbfCadDig,          ;
                                                         oDbfTurmas,          ;
                                                         oDbfVendedor,        ;
                                                         oDbfEmpresa ),       ;
                              oLbx:SetFocus() ),                              ;
                         IF ( nKey = VK_INSERT,                               ;
                            ( Click(),                                        ;
                              oLbx:SetFocus(), oLbx:Refresh() ),              ;
                         IF ( nKey = VK_DELETE,                               ;
                            ( Click(),                                        ;
                              oLbx:SetFocus(), oLbx:Refresh() ), ) ) ) }

    //---------------------------------------------------------------------
    oLbx:nClrBackHead  := CLR_LGREEN  // Cor do Fundo do Cabe‡alho
    oLbx:nClrBackFocus := CLR_HRED    // Cor do Cursor Em Cima do Ötem
    oLbx:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa
    oLbx:nClrForeHead  := CLR_HRED    // Cor nos Headers - Cabe‡alhos
    oLbx:nClrPane      := { || IIF( ( oLbx:cAlias )->( OrdKeyNo() ) %2 == 0, ;
                               CLR_LGREEN, CLR_LGRAY ) }
    oLbx:nColAct       := 2           // Onde o Cursor Vai Iniciar qual coluna?
    oLbx:nLineStyle    := 3           // Estilo das linhas nos dados da Browse
    oLbx:lCellStyle    := .T.         // S¢ Pinta a celula que o cursor est 
    oLbx:aJustify      := { .F., .F., .T. }
    oLbx:lMChange      := .F.         // Desabilita Mousemove
    oLbx:SetFocus()                   // Refocus on The Browse
    oLbx:Refresh()                    // Estabiliza o Browse/Listbox

    //---------------------Botäes do Cadastro de Clientes--------------------//

    //-> Que Chama GETNOTIFICA()
    REDEFINE BUTTON oNotifica       ID 301 OF oDlg                            ;
             ACTION( Click(), GETNOTIFICA( .T., oDbfTabela, oDbfCadDig,       ;
                                                oDbfTurmas, oDbfVendedor,     ;
                                                oDbfEmpresa ),                ;
                                                oLbx:SetFocus() )

    oNotifica:cToolTip := ( OemToAnsi( "Gerar a Notifica‡Æo Inicial Para ImpressÆo" ) )


    // Este Recurso, Traz o Icone de Saida Para o Menu Principal.
    REDEFINE BUTTON oSaida          ID 302 OF oDlg                            ;
             ACTION( Click(), oDlg:End() ) CANCEL

    oSaida:cToolTip := ( OemToAnsi( "Saida - Exit - Cancelar" ) )

    SET FONT OF oNotifica TO oFont
    SET FONT OF oSaida    TO oFont

    SET FONT OF oLbx TO oFont

    ACTIVATE DIALOG oDlg CENTERED

    DbCloseAll()

    Release All

    oFont:End()
    oFnt:End()

    oBrush:End()

    Set( _SET_INSERT, ! Set( _SET_INSERT ) )

RETURN NIL

//-> Para Trocar o Indice do Aluno - Para Busca Incremental

STATIC FUNCTION TROCA_INDICE( nOpcaoRadio, oDbfTabela, oLbx  )

    IF nOpcaoRadio == 2
        SELECT ( oDbfTabela:cAlias )
        oDbfTabela:SetOrder( 2 )  //-> Por Nome do Curso
    ELSEIF nOpcaoRadio == 1
        SELECT ( oDbfTabela:cAlias )
        oDbfTabela:SetOrder( 1 )  //-> Por C¢digo do Curso
    ENDIF

RETURN NIL

//---------------Gerenciamento dos Alunos------------------------------------//

FUNCTION GETNOTIFICA( lAppend, oDbfTabela, oDbfCadDig, oDbfTurmas,            ;
                               oDbfVendedor, oDbfEmpresa )

    FIELD NOME, END, EMAIL, TEL, COD, DESC, TURMA, SALA, DE, A, HRINI, HRTER
    FIELD FONE

    LOCAL oDlg,  oFont, IDCor, oFnt, oBrush, oImprimir, oSaida, oGroup
    LOCAL oImpressora //-> Para Gerar o Arquivo.PDF
    LOCAL lThemed := IsAppThemed() //-> Busca na Classe o Tema do XP
    LOCAL cPrinter   := If( lThemed, "Printer", "Printer2" )
    LOCAL nGet := Array(20)  //-> Get's da Notifica‡Æo
    LOCAL oRadMenu

    MEMVAR XNOMEEMP, XPORTARIA, XENDERECO, XTELEFONE, XEMAIL, XOFICIO, XNOMECUR
    MEMVAR XCOD, XTURMA1, XDE1, XA1, XHRINI1, XHRTER1, XSALA1
    MEMVAR XDIRETOR, XCREDENCIAL, XDATALISTA, XCOFICIO, XCOMPTURM
    MEMVAR XNOMEDIRE, XCREDENCI
    MEMVAR XNOMEC
    MEMVAR oNome_Busca
    MEMVAR nRecNo

    //-> Bancos de Dados

    nRecNo := ( oDbfTabela:cAlias)->( RecNo() )
    oDbfTabela:GoTo( nRecNo )

    XCOD        := ( oDbfTabela:cAlias )->COD   //-> C¢digo do Curso
    XNOMECUR    := ( oDbfTabela:cAlias )->DESC  //-> Descri‡Æo do Curso
    XNOMEDIRE   := LEFT(FONE,30)
    XCREDENCI   := SUBSTR(FONE,31,10)
    XDIRETOR    := XNOMEDIRE
    XCREDENCIAL := XCREDENCI
   
    SELECT ( oDbfEmpresa:cAlias ) // Seleciona o Alias
    oDbfEmpresa:GoTop()

    XNOMEEMP    := ( oDbfEmpresa:cAlias)->NOME
    XPORTARIA   := [Portaria DETRAN Nº. 2280 de 18/12/2006                      ]
    XENDERECO   := ( oDbfEmpresa:cAlias)->END
    XTELEFONE   := ( oDbfEmpresa:cAlias)->TEL
    XEMAIL      := ( oDbfEmpresa:cAlias)->EMAIL
    XCOFICIO    := [                     ] //-> Digitara Manha/Tarde - Final de Semana
    XCOMPTURM   := [                     ] //-> Digitara Manha/Tarde - Final de Semana
    XOFICIO     := [     ] //-> Busca na Turma o C¢digo ela Digita por extenso
    XTURMA1     := 0
    XDE1        := CTOD( "  /  /  " )
    XA1         := CTOD( "  /  /  " )
    XHRINI1     := SPACE(05)
    XHRTER1     := SPACE(05)
    XSALA1      := 0
    XDATALISTA  := "SÃO PAULO      " + ",    "   + ;
                   LTRIM( STR( DAY( DATE() ) ) ) + ;
                   "   de   "                    + ;
                   OEMTOANSI(CMONTH( DATE() ))   + ;
                   "   de   "                    + ;
                   STR( YEAR( DATE() ) )         + ;
                   "."

    // Caixa de Dialogo -----------------------------------------------------//

    DEFINE BRUSH oBrush FILE "COMPAR.BMP"

    DEFINE FONT oFnt  NAME "Ms Sans Serif" SIZE 0, -10 BOLD
    DEFINE FONT oFont NAME "Arial"         SIZE 08, 18 BOLD

    DEFINE DIALOG oDlg RESOURCE "DLG_NOTIFICACAO_INICIAL"                     ;
           BRUSH oBrush TRANSPARENT

    oDlg:lHelpIcon := .F.

    oDlg:bRClicked = { || MsgInfo( OemToAnsi( "BotÆo Direito "        + CRLF+ ;
                                              "NÆo Est  Ativo" ),             ;
                                 ( OemToAnsi( "Informa‡Æo   " ) ) ) }

    //--- Melhoria visual nos say's
    For IDCor=401 TO 420
        REDEFINE SENSITIVE SAY ID iDcor ;
        COLOR CLR_BLACK      OF oDlg    ;
        UPDATE                          ;
        BOX RAISED                      ;
        CENTER TRANSPARENT              ;
        FONT oFnt
    Next IDCor  // By Ednaldo Rolim - Yes!

    //-> Cor no Group Box da Dialog
    REDEFINE GROUP oGroup ID 501 COLOR CLR_VERMELHO, CLR_AMARELO OF oDlg      ;
             FONT oFnt TRANSPARENT

    //-> µrea dos Get's------------------------------------------------------//

    //-> Nome da Empresa
    REDEFINE GET nGet[1]   VAR XNOMEEMP  PICTURE "@K!"                        ;
             WHEN( .F. )                                                      ;
             ID 20 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> N£mero da Portaria... Get Aberto Para Poder Trocar-Minusculo
    REDEFINE GET nGet[2]   VAR XPORTARIA PICTURE "@K"                         ;
             ID 21 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> ENDERECO da Empresa
    REDEFINE GET nGet[3]   VAR XENDERECO PICTURE "@K!"                        ;
             WHEN( .F. )                                                      ;
             ID 22 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> Telefone da Empresa
    REDEFINE GET nGet[4]   VAR XTELEFONE PICTURE "@K!"                        ;
             WHEN( .F. )                                                      ;
             ID 23 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> E-Mail da Empresa - Minusculo
    REDEFINE GET nGet[5]   VAR XEMAIL    PICTURE "@K"                         ;
             WHEN( .F. )                                                      ;
             ID 24 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> Nome do Curso
    REDEFINE GET nGet[6]   VAR XNOMECUR   PICTURE "@K!"                       ;
             WHEN( .F. )                                                      ;
             ID 25 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> Turma
    REDEFINE GET nGet[7]   VAR XTURMA1    PICTURE "@K 999999"                 ;
             ID 26 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN                                        ;
             VALID !EMPTY( XTURMA1 ) .AND.                                    ;
                   CHECA_TURMA( XTURMA1, nGet, oDbfTabela, oDbfCadDig,        ;
                                               oDbfTurmas, oDbfVendedor,      ;
                                               oDbfEmpresa )

    //-> Sala do Curso
    REDEFINE GET nGet[8]   VAR XSALA1     PICTURE "@K"                        ;
             WHEN( .F. )                                                      ;
             ID 27 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> OFICIO N§ //-> MATERIA em Turmas.Dbf o C¢digo do Oficio
    REDEFINE GET nGet[9]   VAR XOFICIO   PICTURE "@K!"                        ;
             WHEN( .F. )                                                      ;
             ID 28 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> OFICIO Por Extenso
    REDEFINE GET nGet[10]   VAR XCOFICIO   PICTURE "@K"                       ;
             ID 29 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    REDEFINE GET nGet[11]   VAR XCOMPTURM  PICTURE "@K"                       ;
             ID 30 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> Dias...
    REDEFINE GET nGet[12]   VAR XDE1       PICTURE "@D 99/99/99"              ;
             ID 31 OF oDlg                 SPINNER                            ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN                                        ;
             VALID ( CHECA_BOTAO() )

    REDEFINE GET nGet[13]   VAR XA1        PICTURE "@D 99/99/99"              ;
             ID 32 OF oDlg                 SPINNER                            ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN                                        ;
             VALID ( CHECA_BOTAO() )

    //-> Hora Inicial -  XHRINI1    := HRINI
    REDEFINE GET nGet[14]   VAR XHRINI1    PICTURE "@K"                       ;
             WHEN( .F. )                                                      ;
             ID 33 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> Hora Final -    XHRTER1    := HRTER
    REDEFINE GET nGet[15]   VAR XHRTER1    PICTURE "@K"                       ;
             WHEN( .F. )                                                      ;
             ID 34 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> XDIRETOR Nome do Diretor de Ensino
    REDEFINE GET nGet[16]   VAR XDIRETOR   PICTURE "@K"                       ;
             ID 35 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> XCREDENCIAL Credencial do Diretor de Ensino
    REDEFINE GET nGet[17]   VAR XCREDENCIAL   PICTURE "@K"                    ;
             ID 36 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //->XDATALISTA Data da Notifica‡Æo
    REDEFINE GET nGet[18]   VAR XDATALISTA   PICTURE "@"                      ;
             ID 37 OF oDlg                                                    ;
             FONT oFont UPDATE                                                ;
             COLOR CLR_HRED, CLR_HCYAN

    //-> R dios da Op‡Æo do TIPO DE CURSO - Rodap‚ do Relat¢rio
    REDEFINE RADIO oRadMenu VAR nOpcTipoCur  ID 201, 202 OF oDlg              ;
             WHEN( lDesligaBtnImp )                                           ;
             COLOR CLR_BLACK, CLR_LGREEN

    //-> µrea dos Botäes-----------------------------------------------------//

    //-> Imprimir o Formul rio
    REDEFINE BUTTON oImprimir       ID 301 OF oDlg                            ;
             WHEN( lDesligaBtnImp )                                           ;
             ACTION( Click(), IMPRIME_NOTIFICACAO( .T., oDbfTabela,           ;
                                                        oDbfCadDig,           ;
                                                        oDbfTurmas,           ;
                                                        oDbfVendedor,         ;
                                                        oDbfEmpresa, 1 ) )

    oImprimir:cToolTip := ( OemToAnsi( "Imprimir a Notifica‡Æo Inicial" ) )

    //-> Escolher a Impressora Para Gerar o Arquivo.Pdf Para DETRAN-SP
    REDEFINE BUTTON oImpressora      ID 302 OF oDlg                           ;
             WHEN( lDesligaBtnImp )                                           ;
             ACTION( Click(), CONFI_PRINT( .T., oDbfTabela, oDbfCadDig,       ;
                                                oDbfTurmas, oDbfVendedor,     ;
                                                oDbfEmpresa, @cPrinter, 2 ) )

    oImpressora:cToolTip := ( OemToAnsi( "Selecione a Impressora " +          ;
                                         "Para Gerar o Arquivo.Pdf " ) )

    // Este Recurso, Traz o Icone de Saida
    REDEFINE BUTTON oSaida          ID 303 OF oDlg                            ;
             ACTION( Click(), oDlg:End() ) CANCEL

    oSaida:cToolTip := ( OemToAnsi( "Saida - Exit - Cancelar" ) )

    SET FONT OF oDlg        TO oFont
    SET FONT OF oImprimir   TO oFont
    SET FONT OF oImpressora TO oFont
    SET FONT OF oSaida      TO oFont

    ACTIVATE DIALOG oDlg CENTERED

    EndDialog()

    oBrush:End()

    oFont:End()
    oFnt:End()

    lDesligaBtnImp := .F.

    SELECT ( oDbfTabela:cAlias ) // Seleciona o Alias

    // Volto Para o Get da Busca Incremental e Limpo Tudo.
    // Coloco o GET na Posi‡Æo 1 Para Nova Busca.
    XNOMEC := SPACE(40)
    xFocus( oNome_Busca )
    oNome_Busca:bGotFocus := { || oNome_Busca:SetPos( 1 ), Nil }

RETURN NIL

//-> Chamar a Impressora DEFAULT-> PDFCreator - Para Gerar o Arquivo.PDF
//-> Agradecimentos Especiais, Jos‚ Carlos - <jcleoner> - FiveWin Brasil

STATIC FUNCTION CONFI_PRINT( lAppend, oDbfTabela,   oDbfCadDig, oDbfTurmas,   ;
                                      oDbfVendedor, oDbfEmpresa,              ;
                                      cPrint, cFlag )

    LOCAL oDlg, oLbx, oFont, iDcor, oIco, oSay, oFnt, oBrush, oPdfCreator,    ;
          oSaida

    SndPlaySound( ".\Init.Wav" )

    // Caixa de Dialogo -----------------------------------------------------//

    DEFINE BRUSH oBrush FILE "COMPAR.BMP"

    DEFINE FONT oFnt  NAME "Ms Sans Serif" SIZE 0, -14 BOLD
    DEFINE FONT oFont NAME "Arial"         SIZE 08, 16 BOLD

    DEFINE DIALOG oDlg RESOURCE "DLG_ESCOLHE_PDFCREATOR"                      ;
           BRUSH oBrush TRANSPARENT                       

    oDlg:lHelpIcon := .F.

    oDlg:bRClicked = { || MsgInfo( OemToAnsi( "BotÆo Direito " + CRLF+        ;
                                              "NÆo Est  Ativo" ),             ;
                                 ( OemToAnsi( "Informa‡Æo    " ) ) ) }

    //--- Melhoria visual nos say's
    FOR IDCor=401 TO 416
        REDEFINE SENSITIVE SAY ID iDcor ;
        COLOR CLR_BLACK      OF oDlg    ;
        UPDATE                          ;
        BOX RAISED                      ;
        CENTER                          ;
        FONT oFnt
    NEXT IDCor  // By Ednaldo Rolim - Yes!

    //-> Botäes do PDFCreator

    //-> Escolha Obrigat¢ria da Impressora PDFCreator
    REDEFINE BUTTON oPdfCreator  ID 301 OF oDlg                               ;
             ACTION( Click(), ESCOLHER_PDFCREATOR( lAppend, oDbfTabela,       ;
                                                            oDbfCadDig,       ;
                                                            oDbfTurmas,       ;
                                                            oDbfVendedor,     ;
                                                            oDbfEmpresa,      ;
                                                            cPrint, 2 ) )

    oPdfCreator:cToolTip := ( OemToAnsi( "Escolha da Impressora " +           ;
                                         "PDFCreator, Op‡Æo Obrigat¢ria " ) )

    // Este Recurso, Traz o Icone de Saida Para o Menu Principal.
    REDEFINE BUTTON oSaida      ID 302 OF oDlg                                ;
             ACTION( Click(), oDlg:End() ) CANCEL

    oSaida:cToolTip := ( OemToAnsi( "Saida - Exit - Cancelar " ) )

    SET FONT OF oPdfCreator TO oFont
    SET FONT OF oSaida      TO oFont

    ACTIVATE DIALOG oDlg CENTERED

    oFnt:End()
    oFont:End()
    oBrush:End()

    EndDialog()

RETURN NIL

//-> Status da Impressora, Obrigat¢rio: PDFCreator

STATIC FUNCTION ESCOLHER_PDFCREATOR( lAppend, oDbfTabela,   oDbfCadDig,       ;
                                              oDbfTurmas,   oDbfVendedor,     ;
                                              oDbfEmpresa,  cPrint, cFlag )

    LOCAL oPrn

    PRINTER oPrn FROM USER // open oPrint object with the printer

    IF EMPTY( oPrn:hDC )

        SndPlaySound(".\Erro.wav" )

        MsgStop( 'Impressora Não Esta Pronta !,   ' +CRLF+CRLF+             ;
                 'Deve Estar Conectada/Instalada. ' +CRLF+CRLF+             ;
                 'Você Só Pode Usar a Impressora: ' +CRLF+CRLF+             ;
                 '<PDFCreator> Para Gerar Arquivo ' +CRLF+CRLF+             ;
                 'no Formato:   *.PDF             ' +CRLF+CRLF+             ;
                 'ADOBE ACROBAT READER            ' )

        oPrn:End()

        RETURN NIL

    ENDIF

    //-> Escolher a Impressora PDFCreator - Para Gerar o Arquivo.PDF
    cPrint := oPrn:GETMODEL()

    oPrn:End()

    //-> Se o Nome da Impressora For PDFCreator
    IF cPrint == [PDFCreator]

        SndPlaySound( ".\Init.Wav" )

        //-> Vai Gerar o Arquivo.Pdf, Se a Impressora Escolhida, Foi PDFCreator
        IMPRIME_NOTIFICACAO( .T., oDbfTabela,   oDbfCadDig, oDbfTurmas,       ;
                                  oDbfVendedor, oDbfEmpresa, 2 )
    ELSE
        SndPlaySound(".\Erro.wav" )

        MsgStop( OemToAnsi( "Aten‡Æo Usu rio, Para Gerar Arquivos  " ) +CRLF+ ;
                 OemToAnsi( "no Formato do ACROBAT READER(PDF), ‚  " ) +CRLF+ ;
                 OemToAnsi( "Necess rio, Que Se Tenha Instalado o  " ) +CRLF+ ;
                 OemToAnsi( "Aplicativo PDFCreator.Exe.            " ) +CRLF+ ;
                 OemToAnsi( "E Uma Impressora Com o Nome PDFCreator" ) +CRLF+ ;
                 OemToAnsi( "na Pasta de Impressoras.              " ) +CRLF+ ;
                 OemToAnsi( "Se Vocˆ J  Instalou o Aplicativo:     " ) +CRLF+ ;
                 OemToAnsi( "PDFCreator.Exe, Automaticamente, ele  " ) +CRLF+ ;
                 OemToAnsi( "Instalou Uma Impressora Com Este Nome," ) +CRLF+ ;
                 OemToAnsi( "PDFCreator.                           " ) +CRLF+ ;
                 OemToAnsi( "Retorne e Escolha a Impressora:       " ) +CRLF+ ;
                 OemToAnsi( "<PDFCreator> Para Criar o ARQUIVO.PDF." ) +CRLF+ ;
                 OemToAnsi( "Depois de Gerar o PREVIEW do Texto,   " ) +CRLF+ ;
                 OemToAnsi( "<Click> no BotÆo de ImpressÆo Para    " ) +CRLF+ ;
                 OemToAnsi( "Gerar/Criar o ARQUIVO no Formato PDF. " ) +CRLF+ ;
                 OemToAnsi( "Depois ‚ S¢ Enviar Para o DETRAN.     " ) +CRLF+ ;
                 OemToAnsi( "D£vidas, Ligue: (11) 5681-4569        " ),       ;
                 OemToAnsi( "Erro na Escolha da Impressora.        " ) )

    ENDIF

RETURN( .T. )

//-> Ligar o BotÆo de ImpressÆo

STATIC FUNCTION CHECA_BOTAO()

    lDesligaBtnImp := .T.

RETURN( .T. )

//-> Validar a Turma do Curso------------------------------------------------//

STATIC FUNCTION CHECA_TURMA( XTURMA1, nGet, oDbfTabela, oDbfCadDig,           ;
                                            oDbfTurmas, oDbfVendedor,         ;
                                            oDbfEmpresa )

    FIELD NOME, END, EMAIL, TEL, COD, DESC, TURMA, SALA, DE, A, HRINI, HRTER
    FIELD MATERIA

    LOCAL lRet
    MEMVAR XNOMEEMP, XPORTARIA, XENDERECO, XTELEFONE, XEMAIL, XOFICIO, XNOMECUR
    MEMVAR XCOD, XDE1, XA1, XHRINI1, XHRTER1, XSALA1
    MEMVAR XDIRETOR, XCREDENCIAL, XDATALISTA


    SELECT ( oDbfTurmas:cAlias ) //-> Seleciona o Alias
    SET ORDER TO 1               //-> Por N£mero da Turma
    oDbfTurmas:GoTop()

    DBSEEK( XTURMA1 ) //-> N£mero da Turma

    IF FOUND()

        XDE1     := DE
        XA1      := A
        XHRINI1  := HRINI
        XHRTER1  := HRTER
        XSALA1   := STRZERO( SALA, 2 )   // SALA DO CURSO
        XOFICIO  := MATERIA              // Oficio, codigo

        IF XOFICIO == [  ]

           MsgInfo( OemToAnsi( "Aten‡Æo Usu rio:                   " ) +CRLF+ ;
                    OemToAnsi( "o  Complemento  da  Turma  NÆo  Foi" ) +CRLF+ ;
                    OemToAnsi( "Preenchido Corretamente ou Est   em" ) +CRLF+ ;
                    OemToAnsi( "Branco. Verifique Por Favor!       " ) +CRLF+ ;
                    OemToAnsi( "Menu Principal: Criar Novas Turmas." ) +CRLF+ ;
                    OemToAnsi( "Ex.: Final de Semana = <SD>        " ),       ;
                    OemToAnsi( "Mensagem de Erro Para o Usu rio.   " ) )

        ENDIF

        nGet[8]:Varput( XSALA1 )
        nGet[8]:Refresh()

        nGet[9]:Varput( XOFICIO )
        nGet[9]:Refresh()

        nGet[12]:Varput( XDE1 )
        nGet[12]:Refresh()

        nGet[13]:Varput( XA1 )
        nGet[13]:Refresh()

        nGet[14]:VarPut( XHRINI1 )
        nGet[14]:Refresh()

        nGet[15]:VarPut( XHRTER1 )
        nGet[15]:Refresh()

        lRet := .T.
    ELSE

        MsgInfo( OemToAnsi( "Aten‡Æo Usu rio:                      " ) +CRLF+ ;
                 OemToAnsi( "NÆo Localizei Esta Turma em TURMAS.DBF" ) +CRLF+ ;
                 OemToAnsi( "Por Favor, Verfique se Esta Turma Foi " ) +CRLF+ ;
                 OemToAnsi( "Cadastrada Corretamente.    Obrigado! " ),       ;
                 OemToAnsi( "Mensagem Para o Usu rio...            " ) )

        //-> VAR XTURMA1
        xFocus ( nGet[8] )

        lDesligaBtnImp := .F.

        lRet := .F.

        SELECT ( oDbfTabela:cAlias ) // Seleciona o Alias

    ENDIF

RETURN( lRet )

//-> µrea de ImpressÆo da NOTIFICA€ÇO INICIAL -------------------------------//

STATIC FUNCTION IMPRIME_NOTIFICACAO( lAppend, oDbfTabela, oDbfCadDig,         ;
                                              oDbfTurmas, oDbfVendedor,       ;
                                              oDbfEmpresa, cFlag )

//-> TU REPORT aqui...


RETURN NIL

// ---------------------- FIM DO PROGRAMA -----------------------------------//



Saludos
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7860
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 46 guests