spacer.png, 0 kB
Inicio arrow Contribuciones arrow Ejemplos arrow Ejemplo de Tarifas (Jose Miguel - Valencia)
Menú Principal
Inicio
Fundamentos
Licencia
Descarga-Instalación
HMG Guia - Referencia
Tutorial
IDE
MAKE
Noticias
Foro Oficial HMG
HMG 3.X Lista de Cambios
Contribuciones
Enlaces
Harbour Reference
Preguntas Frecuentes
Buscar en esta Web
Foro en Yahoo
Recomendar este sitio
Contactar
Harbour Minigui
spacer.png, 0 kB
spacer.png, 0 kB
Ejemplo de Tarifas (Jose Miguel - Valencia) Imprimir E-Mail
  • Archivo: miniprint_list.prg 

***Creado por Jose Miguel (Valencia)***

#include "minigui.ch"

PROCEDURE main()

   ***CODIGO DE PAGINA español***
   REQUEST HB_CODEPAGE_ESWIN
   HB_SETCODEPAGE("ESWIN")

   ***Inicializacion RDD DBFCDX Nativo***
   REQUEST DBFCDX , DBFFPT
   RDDSETDEFAULT( "DBFCDX" )

   ***DATOS DE INICIALIZACION***
   Set Navigation Extended //TAB y ENTER
   SET DATE FORMAT "dd-mm-yyyy"
   SET EPOCH TO YEAR(DATE())-50

   ***crear fichero de datos para este ejemplo***
   IF .NOT. FILE("TARIFAS.DBF")
      aArq:={}
      Aadd( aArq , { 'CODTAR'    , 'C' , 10  , 0 } )
      Aadd( aArq , { 'NOMTAR'    , 'C' , 50  , 0 } )
      Aadd( aArq , { 'IMPORTE'   , 'N' , 13  , 2 } )
      DBCreate( "TARIFAS" , aArq  )
      Use TARIFAS Alias TARIFAS new
      FOR N=1 TO 50
         APPEND BLANK
         REPLACE CODTAR WITH "E"+STRZERO(N,3)
         REPLACE NOMTAR WITH "Nombre articulo "+LTRIM(STR(N))
         REPLACE IMPORTE WITH N+1000
      NEXT
      TARIFAS->( DBCLOSEAREA() )
   ENDIF
   ***fin crear fichero de datos para este ejemplo***

   ***crear fichero indice para este ejemplo***
   IF .NOT. FILE("TARIFAS.CDX")
      FERASE('TARIFAS.CDX')
      Use TARIFAS Alias TARIFAS new shared
      Index on CODTAR TAG ORDEN1 to TARIFAS.CDX
      TARIFAS->( DBCLOSEAREA() )
   ENDIF
   ***fin crear fichero indice para este ejemplo***

Lis_TarCodigo()

procedure Lis_TarCodigo()
   TituloImp:="Listado de tarifas"

   DEFINE WINDOW W_Imp1 ;
      AT 10,10 ;
      WIDTH 400 HEIGHT 275 ;
      TITLE 'Imprimir: '+TituloImp ;
      MAIN      ;
      ON RELEASE CloseTables()

      @ 15,10 LABEL L_CodTar1 ;
              VALUE 'Desde codigo' ;
              WIDTH 90 HEIGHT 25
      @ 10,100 TEXTBOX T_CodTar1 ;
              WIDTH 100 ;
              VALUE '' ;
              TOOLTIP 'Codigo tarifa' ;
              MAXLENGTH 10

      @ 45,10 LABEL L_CodTar2 ;
              VALUE 'Hasta codigo' ;
              WIDTH 90 HEIGHT 25
      @ 40,100 TEXTBOX T_CodTar2 ;
              WIDTH 100 ;
              VALUE 'ZZZZZZZZZZ' ;
              TOOLTIP 'Codigo tarifa' ;
              MAXLENGTH 10

      @ 70,10 CHECKBOX C_Cuadro ;
            CAPTION 'Imprimir cuadros en lineas' ;
            WIDTH 200 VALUE .F.


draw rectangle in window W_Imp1 at 110,010 to 112,390 fillcolor{255,0,0} //Rojo
      aIMP:=Impresoras("LISTADO")
      @125,10 LABEL L_Impresora ;
              VALUE 'Impresora' ;
              WIDTH 90 HEIGHT 25
      @120,100 COMBOBOX C_Impresora ;
            WIDTH 280 ;
            ITEMS aIMP[1] ;
            VALUE aIMP[3] ;
            TOOLTIP 'Impresora' NOTABSTOP

      @150, 10 CHECKBOX nImp CAPTION 'Seleccionar impresora' ;
               width 150 value .f. ;
               ON CHANGE W_Imp1.C_Impresora.Enabled:=IF(W_Imp1.nImp.Value=.T.,.F.,.T.)

      @180, 10 CHECKBOX nVer CAPTION 'Previsualizar documento' ;
               width 150 value .f.

      @210, 10 BUTTON B_Imp CAPTION 'Imprimir' WIDTH 90 HEIGHT 25 ;
               ACTION Lis_TarCodigoi("IMPRESORA")

      @210,110 BUTTON B_Excel CAPTION 'Hoja excel' WIDTH 90 HEIGHT 25 ;
               ACTION Lis_TarCodigoi("EXCEL")

      @210,210 BUTTON B_Can CAPTION 'Cancelar'  WIDTH 90 HEIGHT 25 ;
               ACTION W_Imp1.release

      END WINDOW
      CENTER WINDOW W_Imp1
      ACTIVATE WINDOW W_Imp1

Return Nil

Function CloseTables()
   DBCOMMITALL()
   DBUNLOCKALL()
   CLOSE DATABASES
Return NIL


procedure Lis_TarCodigoi(LLAMADA)
   IF FILE("FIN.DBF")
      IF SELEC("FIN")<>0
         FIN->( DBCLOSEAREA() )
      ENDIF
      ERASE FIN.DBF
      ERASE FIN.CDX
   ENDIF

   Use TARIFAS index TARIFAS Alias TARIFAS new shared

   SET FILTER TO
   COPY TO FIN FOR ;
   CODTAR>=W_Imp1.T_CodTar1.value .AND. CODTAR<=W_Imp1.T_CodTar1.value
   Use FIN Alias FIN new shared
   INDEX ON CODTAR TO FIN

   GO TOP
   IF LASTREC()=0
      MsgExclamation("No hay datos en las fecha introducidas","Informacion")
      FIN->( DBCLOSEAREA() )
      RETURN
   ENDIF

   IF LLAMADA="EXCEL"
      Lis_TarCodigoiE()
   ELSE
      Lis_TarCodigoiF()
   ENDIF


procedure Lis_TarCodigoiF(LLAMADA)
   dirimp:=GetCurrentFolder()

   IF W_Imp1.nImp.value=.t.
      IF W_Imp1.nVer.value=.t.
         SELECT PRINTER GetPrinter() ORIENTATION PRINTER_ORIENT_PORTRAIT PREVIEW
      ELSE
         SELECT PRINTER GetPrinter() ORIENTATION PRINTER_ORIENT_PORTRAIT
      ENDIF
   ELSE
      IF W_Imp1.C_Impresora.ItemCount=0 .OR. ;
         W_Imp1.C_Impresora.Value<=0 .OR. ;
         W_Imp1.C_Impresora.Value>W_Imp1.C_Impresora.ItemCount
         MSGSTOP("No hay impresoras instaladas","Error")
         SetCurrentFolder(dirimp)
         RETURN
      ENDIF
      IF W_Imp1.nVer.value=.t.
         SELECT PRINTER W_Imp1.C_Impresora.Item(W_Imp1.C_Impresora.Value) ORIENTATION PRINTER_ORIENT_PORTRAIT PREVIEW
      ELSE
         SELECT PRINTER W_Imp1.C_Impresora.Item(W_Imp1.C_Impresora.Value) ORIENTATION PRINTER_ORIENT_PORTRAIT
      ENDIF
   ENDIF

   START PRINTDOC NAME TituloImp
   START PRINTPAGE


GO TOP
PAG:=0
LIN:=0
DO WHILE .NOT. EOF()
   IF LIN>=260 .OR. PAG=0
      IF PAG<>0
         @ LIN+5,105 PRINT "SIGUE EN LA HOJA: "+LTRIM(STR(PAG+1)) CENTER
         END PRINTPAGE
         START PRINTPAGE
      ENDIF
      PAG=PAG+1

      @ 20,20 PRINT "SUIZO ejemplos"
      @ 20,190 PRINT "Hoja: "+LTRIM(STR(PAG)) RIGHT
      @ 25,20 PRINT DATE()

      @ 25,105 PRINT "Nombre de la empresa" CENTER
      @ 35,105 PRINT TituloImp FONT "ft18" CENTER

      @ 40,20 PRINT 'desde: '+W_Imp1.T_CodTar1.value
      @ 45,20 PRINT 'hasta: '+W_Imp1.T_CodTar2.value

      LIN:=55
      IF W_Imp1.C_Cuadro.Value=.T.
         @ LIN, 19 PRINT RECTANGLE TO LIN+5, 39
         @ LIN, 39 PRINT RECTANGLE TO LIN+5,109
         @ LIN,109 PRINT RECTANGLE TO LIN+5,141
      ELSE
         @ LIN+4,20 PRINT LINE TO LIN+4,140
      ENDIF
      @ LIN,20 PRINT "Codigo"
      @ LIN,40 PRINT "Descripcion"
      @ LIN,140 PRINT "Importe" RIGHT

      LIN:=LIN+5
   ENDIF

   IF W_Imp1.C_Cuadro.Value=.T.
      @ LIN, 19 PRINT RECTANGLE TO LIN+5, 39
      @ LIN, 39 PRINT RECTANGLE TO LIN+5,109
      @ LIN,109 PRINT RECTANGLE TO LIN+5,141
   ENDIF
   @ LIN,20 PRINT CODTAR
   @ LIN,40 PRINT NOMTAR
   @ LIN,140 PRINT TRANSFORM( IMPORTE , "@E 9,999,999.99" ) RIGHT

   LIN:=LIN+5
   SKIP

ENDDO

   SELEC FIN
   FIN->( DBCLOSEAREA() )

   END PRINTPAGE
   END PRINTDOC
   SetCurrentFolder(dirimp)

   W_Imp1.release


Return Nil


procedure Lis_TarCodigoiE(LLAMADA)
   LOCAL oExcel, oHoja
   oExcel := TOleAuto():New( "Excel.Application" )
   oExcel:WorkBooks:Add()
   oExcel:Sheets("Hoja1"):Name := "Listado"
*   oExcel:Sheets("Hoja2"):Name := "Resumen"
   oHoja := oExcel:Get( "ActiveSheet" )
   oHoja:Cells:Font:Name := "Arial"
   oHoja:Cells:Font:Size := 10

   LIN:=8

oHoja:Cells( LIN, 1 ):Value := "Codigo"
oHoja:Cells( LIN, 1 ):HorizontalAlignment:= -4152  //Derecha
oHoja:Cells( LIN, 2 ):Value := "Descripcion"
oHoja:Cells( LIN, 3 ):Value := "Importe"
oHoja:Cells( LIN, 3 ):Set( "NumberFormat", "#.##0,00 €" )

oHoja:Range(CHR(64+1)+LTRIM(STR(LIN))+":"+CHR(64+3)+LTRIM(STR(LIN))):Font:Bold := .T.
oHoja:Range(CHR(64+1)+LTRIM(STR(LIN))+":"+CHR(64+3)+LTRIM(STR(LIN))):Interior:ColorIndex := 36 //sombrear celdas
oHoja:Range(CHR(64+1)+LTRIM(STR(LIN))+":"+CHR(64+3)+LTRIM(STR(LIN))):Borders(4):LineStyle:= 1  //linea inferior
oHoja:Range(CHR(64+1)+LTRIM(STR(LIN))+":"+CHR(64+3)+LTRIM(STR(LIN))):HorizontalAlignment := -4108  //Centrar

   LIN++

PAG:=0
*LIN:=0
DO WHILE .NOT. EOF()

   oHoja:Cells( LIN, 1 ):Value := CODTAR
   oHoja:Cells( LIN, 2 ):Value := NOMTAR
   oHoja:Cells( LIN, 3 ):Value := IMPORTE
   oHoja:Cells( LIN, 3 ):Set( "NumberFormat", "#.##0,00" )

   LIN++
   SKIP

ENDDO

   oHoja:Cells( 1, 1 ):Value := "SUIZO ejemplos"
   oHoja:Cells( 2, 1 ):Value := DATE()
   oHoja:Cells( 4, 1 ):Value := 'desde:'
   oHoja:Cells( 4, 2 ):Value := W_Imp1.T_CodTar1.value
   oHoja:Cells( 5, 1 ):Value := 'hasta:'
   oHoja:Cells( 5, 2 ):Value := W_Imp1.T_CodTar2.value
   oHoja:Range("A1:B6"):HorizontalAlignment:= -4131  //Izquierda

   FOR nCol:=1 TO FCOUNT()
      oHoja:Columns( nCol ):AutoFit()
   NEXT

 

*Guardar como
*oHoja:SaveAs( TituloImp )

oHoja:Cells( 1, 1 ):Select()
oExcel:Visible := .T.

oHoja:End()
oExcel:End()

   SELEC FIN
   FIN->( DBCLOSEAREA() )

   W_Imp1.release

Return Nil

 

procedure Impresoras(LLAMADA)
   aIMP1:=aPrinters()
   ASORT(aIMP1,,, { |x, y| UPPER(x) < UPPER(y) })
   aIMP2:=GetDefaultPrinter()
   aIMP3:=ASCAN(aIMP1, {|aVal| aVal == aIMP2})
   aIMP:={aIMP1,aIMP2,aIMP3}
RETURN(aIMP)

 
< Anterior   Siguiente >



spacer.png, 0 kB
spacer.png, 0 kB
spacer.png, 0 kB
spacer.png, 0 kB
Copyright © 2006/2011 - HarbourMiniGUI - Webmaster: J.F. Ruano - Nota Legal spacer.png, 0 kB