FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ejemplo sencillo de factura
Posts: 53
Joined: Tue Aug 18, 2015 07:34 PM
Re: Ejemplo sencillo de factura
Posted: Sun Apr 17, 2016 02:36 AM
joseluisysturiz wrote:Saludos Rosita, en este foro siempre encontraras ayuda en todo lo posible, si no de un codigo completo por lo menos de ideas de como hacerlo, hay que dar de gracia lo que se recibe de gracia, todos en algun momento fuimos principiantes y con ayudas y un poco de lectura y practica, nos fuimos superando sabiendo algo mas que algunos algunos pero tambien por menos que otros mas experimentados, y asi se van reeemplazando los escalafones, espero te sirva el codigo y sigo a la orden en lo que pueda...quede esperando dijeras de donde eres, gracias, saludos... :-)



Hola amigo, soy de carrillo puerto mexico, ya lo habia dicho antes :-) ,pero no me molesta recordarlo a todos los presentes del foro :-)


Lamentablemente si le entendi o medio le entendi su codigo fuente, pero tengo mas dudas mas que no veo en tu rutina amigo,para entenderle mas

primero
en que momento cargo los datos desde dbf al array si quiero realizar una consulta a la pantalla de factura al browser

segundo en que momento grabo toda la informacion desde arrays a la base de datos del dato.dbf por ejemplo

entiendo que para traer toda la informacion al browse lei referente ala funcione ordcsope() para cargar el registro folio 25 pero como cargar del dbf ala array

iluminenme porfis poefis

Rosa
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Ejemplo sencillo de factura
Posted: Sun Apr 17, 2016 01:57 PM

Rosita:

Se que Jose Luis te está atendiendo, sin embargo quiero participar para que inicies tu proyecto.

Saludos, José Luis.

Te he enviado los fuentes de un programa de facturacion completo.

Lo hice cuando comenzaba a independizarme en esto (1996). Muy novato en ese entonces.

Las .dll son de 16 bits, asi que necesitaras pasarlas a 32. Aqui en el foro de FiveWin encontrarás como hacerlo.

Renombra el archivo .zip a .zop

Espero te sean de ayuda para finalizar tu proyecto.

Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Ejemplo sencillo de factura
Posted: Sun Apr 17, 2016 01:59 PM

Upss...

Por supuesto que tendrás, tambien, que convertir los browses a XBrowse. He usado LISTBOX.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Ejemplo sencillo de factura
Posted: Sun Apr 17, 2016 04:47 PM

Saludos Francisco, un gusto saludarte, tu ayuda a la colega es bienvenida, no es mi paciente personal jejeje...la idea es que ella entienda lo que le mandamos, pero creo aca tambien tenemos que saber...que tanto es su conocimiento para saber que tipo de informacion enviarle y en que terminos explicarle...
Rosita, seria bueno saber si ya habias programado antes y que tipo de modulos, asi podemos ayudarte entre todos, no se si tengo algun modulo que use DBF ya que desde hace años estoy usando MYSQL, buscare en mi baul haber que consigo que sea con dbf, te podria mandar todo el modulo de facturacion a tu correo, pero esto es un extracto de un sistema grande de otro tipo de facturacion y que uso la opcion de agregar datos, buscare algo mas sencillo, ve construyendo tu proyecto con lo que has entendido y asi tambien se te pued ayudar con tu codigo, saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Ejemplo sencillo de factura
Posted: Sun Apr 17, 2016 06:03 PM

Enviado a tu correo un programito completo de facturacion que consegui en el baul, renombralo de .ror a .rar y luego descomprimes, saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 53
Joined: Tue Aug 18, 2015 07:34 PM
Re: Ejemplo sencillo de factura
Posted: Mon Apr 18, 2016 02:11 PM
FranciscoA wrote:Upss...

Por supuesto que tendrás, tambien, que convertir los browses a XBrowse. He usado LISTBOX.



Hola buenos dias y gracias por tu apreciable atencion Francisco checo mi correo y estudio el codigo ya quiero empezar armar mi factura sencilla

Saludos

Rosa
Posts: 53
Joined: Tue Aug 18, 2015 07:34 PM
Re: Ejemplo sencillo de factura
Posted: Mon Apr 18, 2016 02:12 PM
joseluisysturiz wrote:Enviado a tu correo un programito completo de facturacion que consegui en el baul, renombralo de .ror a .rar y luego descomprimes, saludos... :-)



Gracias y buenos dias Jose Luis por tu apreciable atencion,checo mi correo y estudio el codigo y armar mi factura sencilla

Saludos

Rosa
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM
Re: Ejemplo sencillo de factura
Posted: Fri Apr 22, 2016 04:33 PM
Rosita wrote:
joseluisysturiz wrote:Enviado a tu correo un programito completo de facturacion que consegui en el baul, renombralo de .ror a .rar y luego descomprimes, saludos... :-)



Gracias y buenos dias Jose Luis por tu apreciable atencion,checo mi correo y estudio el codigo y armar mi factura sencilla

Saludos

Rosa



Hola buenos dias Ing. Rosita, dejo un pedazo de codigo inconcluso que espero te sea de mucha ayuda, aunque no esta realizado por arrays ,traigo los datos desde dbfs,ya que nunca casi le entendi como cargar datos a un arrays a txbrowse desde dbfs si realizo alguna consulta o modificacion de polizas y asi como grabar datos desde arrays,ya que segun es mas facil insertar registros con la funcion ains() pero nunca lo realice y me quede con ese detalle de solucionarlo :-) :-) .

Espero le sea de gran ayuda .

Code (fw): Select all Collapse
// MENU PRINCIPAL

#include "FiveWin.ch"

STATIC oDlg,oSay, oG_C,oG_D,oBtn, oBrw
STATIC S01,S02,S03,S04,S05,S06,S07
STATIC cMesAno, dFecMov, dFecPresent, nTipOpera,cNumOperac, nCveSATCont
STATIC cNombOpera, cNombSAT
STATIC lNew, lAdd

STATIC aGradBarSelFocus := {{ 1, RGB(252,232,171) , RGB(248,195,34) }} ,;
       aGradBarSel      := {{ 1, RGB(252,235, 184), RGB(251,222,88) }}

Memvar cPath, cDirReport, nNumEmp, cRutaDat

//------------------------------------------------------------------------------\\
FUNCTION AltasSAT()

 oSay := Array(1)
 oG_C := Array(1)
 oBtn := Array(2)

 S04 := Abre_Dbf(4,4) // CTOPERAC.DBF

 S05 := Abre_Dbf(5,5) // CTOPERAC.DBF
 S06 := Abre_Dbf(6,6) // CTSATCON.DBF
 S07 := Abre_Dbf(7,7) // MOVDEFIS.DBF

 cMesAno     := "0216"
 dFecMov     := DATE()
 nTipOpera   := 0
 cNumOperac  := SPACE(22)
 dFecPresent := DATE()
 nCveSATCont := 0
 lNew        := .F. // Nuevo registro
 lAdd        := .F. // Agregar registro

 DEFINE DIALOG oDlg RESOURCE "ALTASAT" TITLE "Alta obligacion fiscal"
   REDEFINE GET oG_C[01] VAR cMesAno     ID 101 OF oDlg PICT "####" VALID V_MESANO()

   REDEFINE BUTTON oBtn[01] ID 201 OF oDlg ACTION Mod_Cap(.T.) // CapDet(.T.)
   REDEFINE BUTTON oBtn[02] ID 202 OF oDlg ACTION Mod_Cap(.F.) CANCEL // HabD_Cap(.F.) CANCEL

   REDEFINE XBROWSE oBrw ID 106 OF oDlg ;
            HEADERS "Tipo"+CRLF+"Operacion", "Fec"+CRLF+"Present","Nomb Operac","Num Operacion","SAT Cont" ;
            COLUMNS "TIPOPERAC" , "FECPRESENT" ,"NOMBOPERA","NUMOPERAC","NOMBSAT"       ;
            SIZES 54,52,102,120,200 ;
            Picture  "99" ,;
                     "@D" ,;
                     "@!" ,;
                     "@!" ,;
                     "@!"   ;
            ALIAS (S07)->( ALIAS() ) // FOOTERS CELL AUTOCOLS

     AEval( oBrw:aCols, { |o| o:nEditType    := 0     ,; //No editables
                              o:nHeadStrAlign:= 2 } )    //texto encab/col centrado

     WITH OBJECT oBrw
       //ESTILOS DE LINEAS
       :nMarqueeStyle      := MARQSTYLE_HIGHLROW //barra selectora
       :lColDividerComplete:= .T. //completa pintado hasta el footer cuando lineas no llenan todo el browse
       :nColDividerStyle   := LINESTYLE_BLACK
     END

 ACTIVATE DIALOG oDlg CENTER ON INIT CargaDatos() // (CargDatos(lNew)) VALID FinCap(oDlg2,oBrw2,oBrw3) ON PAINT Refr_Bmp(hDC)
RETURN NIL

//------------------------------------------------------------------------------\\
STATIC FUNCTION CargaDatos()
 (S07)->( OrdScope(0, cMesAno) )
 (S07)->( OrdScope(1, cMesAno) )

 oBrw:Refresh()
RETURN NIL

//------------------------------------------------------------------------------\\
STATIC FUNCTION Mod_Cap(lNew)
 LOCAL oBtn

 lNew := lNew

 oBtn := Array(2)
 oG_D := Array(4)

 IF lNew .OR. (!lNew .AND. !(S07)->(EOF()))
     lAdd := lNew

     IF lNew
         nTipOpera   := 0
         cNumOperac  := SPACE(22)
         dFecPresent := DATE()
         nCveSATCont := 0
     ELSE
         nTipOpera   := (S07)->TIPOPERAC
         cNumOperac  := (S07)->NUMOPERAC
         dFecPresent := (S07)->FECPRESENT
         nCveSATCont := (S07)->CVESATCONT
     ENDIF

     DEFINE DIALOG oDlg RESOURCE "CAPDET" TITLE "Alta obligacion fiscal"
       REDEFINE BUTTON oBtn[01] ID 201 OF oDlg ACTION Reg_Cap(lNew) // Grabar registro
       REDEFINE BUTTON oBtn[02] ID 202 OF oDlg ACTION Limpia(.T.)  // Nuevo registro

       REDEFINE GET oG_D[01] VAR nTipOpera   ID 101 OF oDlg PICT "99" VALID V_OPERAC(lNew) ACTION ListOperac(@nTipOpera,S05,"nTipOpera",oG_D[02])
       REDEFINE GET oG_D[02] VAR dFecPresent ID 102 OF oDlg PICT "@D"
       REDEFINE GET oG_D[03] VAR cNumOperac  ID 103 OF oDlg PICT "@####################" // Aqui se captura numero de operacion
       REDEFINE GET oG_D[04] VAR nCveSATCont ID 104 OF oDlg PICT "9"  VALID V_CVESAT() ACTION ListSATCont(@nCveSATCont,S06,"nCveSATCont",oG_D[03])


     ACTIVATE DIALOG oDlg CENTER // ON INIT CargaDatos() // (CargDatos(lNew)) VALID FinCap(oDlg2,oBrw2,oBrw3) ON PAINT Refr_Bmp(hDC)

     SysRefresh() // Le Ccomente,porque al darle ENTER rapidamentte, cargaba de nuevo los datos capturados....

     oG_D[01]:SetFocus() // Aqui retorna despues de Registrar Captura...Reg_Cap()
     oG_D[01]:Refresh()
 ELSE
     oBrw:SetFocus()
 ENDIF
RETURN (NIL)

//------------------------------------------------------------------------------\\
STATIC FUNCTION V_MESANO()
 (S07)->( OrdScope(0, cMesAno) )
 (S07)->( OrdScope(1, cMesAno) )

 oBrw:Refresh()
RETURN (.T.)

//------------------------------------------------------------------------------\\
STATIC FUNCTION V_OPERAC(lNew)
 (S05)->( DbSeek(STR(nTipOpera,2)) )

  IF (S05)->( FOUND() )
      cNombOpera := (S05)->NOMBOPERA
  ELSE
      MsgAlert("Operacion no encontrado")
  ENDIF

  lNew := lNew
RETURN (.T.)

//------------------------------------------------------------------------------\\
STATIC FUNCTION V_CVESAT()
 (S06)->( DbSeek(STR(nCveSATCont,2)) )

  IF (S06)->( FOUND() )
      cNombSAT := (S06)->NOMBSAT
  ELSE
      MsgAlert("Operacion no encontrado")
  ENDIF
RETURN (.T.)



//------------------------------------------------------------------------------\\
STATIC FUNCTION ListOperac(nTipOpera,S05,VarCta,oGetCpo)
 Default oGetCpo := NIL

 IF SelOperac(nTipOpera,S05)
     DO CASE
        CASE VarCta = "nTipOpera"
              nTipOpera := (S05)->TIPOPERAC
     ENDCASE
 ENDIF

 oGetCpo:Refresh()
RETURN NIL

//------------------------------------------------------------------------------\\
STATIC FUNCTION ListSATCont(nCveSATCont,S06,VarCta,oGetCpo)
 Default oGetCpo := NIL

 IF SelSATcont(nCveSATCont,S06)
     DO CASE
        CASE VarCta = "nCveSATCont"
              nCveSATCont := (S06)->CVESATCONT
     ENDCASE
 ENDIF

 oGetCpo:Refresh()
RETURN NIL

//------------------------------------------------------------------------------\\
FUNCTION SelOperac(nTipOpera,S05)
 LOCAL oSDlg, oSBrw

 DbSelectArea(S05)

 (S05)->( DbSeek(STR(nTipOpera,2),.T.) )

 DEFINE DIALOG oSDlg RESOURCE "S_CATAL" TITLE "Catálogo Tipo de Operación"
  REDEFINE XBROWSE oSBrw ID 101 OF oSDlg ;
           HEADERS "Clave"+CRLF+"Operación","Descripción"+CRLF+"Operación" ;
           COLUMNS  "TIPOPERAC", "NOMBOPERA" ;
           SIZES 60, 112 ;
           PICTURES "99", "@S36" ;
           ALIAS (S05)->( ALIAS() ) // FOOTERS CELL AUTOCOLS

    AEval( oSBrw:aCols, { |o| o:nEditType    := 0     ,; //No editables
                              o:nHeadStrAlign:= 2 } )    //texto encab/col centrado

    WITH OBJECT oSBrw
      //ESTILOS DE LINEAS
      :nMarqueeStyle      := MARQSTYLE_HIGHLROW //barra selectora
      :lColDividerComplete:= .T. //completa pintado hasta el footer cuando lineas no llenan todo el browse
      :nColDividerStyle   := LINESTYLE_BLACK

      :lHScroll := .F. // Horizontal
      :lVScroll := .T. // Vertical

      :bClrSel      := { || { nRGB(  0,  0,255), aGradBarSel } }  // para barra de linea selecc cuando el control no tiene el foco
      :bClrSelFocus := { || { CLR_BLACK, aGradBarSelFocus } }     // para barra de linea selecc cuando el control tiene el foco
      :lKinetic     := .f.
      :lContrastClr := .f.  //para que no cambie color de texto automaticamente segun intensidad del fondo

      :bLDblClick  := {|| oSDlg:END()}
      :bKeyDown    := {| nKey| IF(nKey = 13, oSDlg:END(), .T.)}
    END
 ACTIVATE DIALOG oSDlg
RETURN (.T.)

//------------------------------------------------------------------------------\\
FUNCTION SelSATCont(nCveSATCont,S06)
 LOCAL oSDlg, oSBrw

 DbSelectArea(S06)

 (S06)->( DbSeek(STR(nCveSATCont,2),.T.) )

 DEFINE DIALOG oSDlg RESOURCE "S_CATAL" TITLE "Catálogo Tipo de Operación"
  REDEFINE XBROWSE oSBrw ID 101 OF oSDlg ;
           HEADERS "Clave"+CRLF+"SAT","Descripción"+CRLF+"SAT" ;
           COLUMNS  "CVESATCONT", "NOMBSAT" ;
           SIZES 60, 112 ;
           PICTURES "99", "@S36" ;
           ALIAS (S06)->( ALIAS() ) // FOOTERS CELL AUTOCOLS

    AEval( oSBrw:aCols, { |o| o:nEditType    := 0     ,; //No editables
                              o:nHeadStrAlign:= 2 } )    //texto encab/col centrado

    WITH OBJECT oSBrw
      //ESTILOS DE LINEAS
      :nMarqueeStyle      := MARQSTYLE_HIGHLROW //barra selectora
      :lColDividerComplete:= .T. //completa pintado hasta el footer cuando lineas no llenan todo el browse
      :nColDividerStyle   := LINESTYLE_BLACK

      :lHScroll := .F. // Horizontal
      :lVScroll := .T. // Vertical

      :bClrSel      := { || { nRGB(  0,  0,255), aGradBarSel } }  // para barra de linea selecc cuando el control no tiene el foco
      :bClrSelFocus := { || { CLR_BLACK, aGradBarSelFocus } }     // para barra de linea selecc cuando el control tiene el foco
      :lKinetic     := .f.
      :lContrastClr := .f.  //para que no cambie color de texto automaticamente segun intensidad del fondo

      :bLDblClick  := {|| oSDlg:END()}
      :bKeyDown    := {| nKey| IF(nKey = 13, oSDlg:END(), .T.)}
    END
 ACTIVATE DIALOG oSDlg
RETURN (.T.)

//------------------------------------------------------------------------------\\
STATIC FUNCTION Limpia(lNew)

 IF lNew .OR. (!lNew .AND. !(S07)->(EOF()))
     lAdd := lNew

     IF lNew
         lNew        := lNew
         nTipOpera   := 0
         cNumOperac  := SPACE(22)
         dFecPresent := DATE()
         nCveSATCont := 0
     ENDIF

     SysRefresh() // Le Ccomente,porque al darle ENTER rapidamentte, cargaba de nuevo los datos capturados....

     AEval( oG_D,{|o| o:Refresh()} )

     oG_D[01]:SetFocus() // Aqui retorna despues de Registrar Captura...Reg_Cap()
     oG_D[01]:Refresh()
 ENDIF

 MsgInfo(lNew)
RETURN NIL

//------------------------------------------------------------------------------\\
STATIC FUNCTION Reg_Cap(lNew)
 *MsgInfo("Registrando movimientos...")

 IF lNew
     (S07)->( DbAppend() )
 ENDIF

 IF !OCUPADO(S07)
      *NUMOPERA" , "FECPRESENT" ,"CVEOPERA" ,"SATCONTAB"

     (S07)->AMMOV  := cMesAno
     (S07)->FECMOV := DATE()

     (S07)->TIPOPERAC  := nTipOpera
     (S07)->NOMBOPERA  := cNombOpera
     (S07)->FECPRESENT := dFecPresent
     (S07)->NUMOPERAC  := cNumOperac
     (S07)->CVESATCONT := nCveSATCont
     (S07)->NOMBSAT    := cNombSAT

     (S07)->(DbCommit())
     (S07)->(DBUnlock()) // Desbloquea
 ENDIF

 oBrw:Refresh()
RETURN NIL

//------------------------------------------------------------------------------
STATIC FUNCTION HabD_Cap(lCapt)
 LOCAL nI

 IF lCapt
     // Habilita y refresca detalles de captura

     *oG_D[01]:Enable()
     *oG_D[01]:Refresh()

     *AEval( oG_D,{|o| o:Enable()})
     *AEval( oG_D,{|o| o:Refresh()})

     *AEval( oBtn,{|o| o:Enable()} )
     *AEval( oBtn,{|o| o:Refresh()} )
 ELSE
     cMesAno     := "0316"
     dFecMov     := DATE()
     nTipOpera   := 0
     cNumOperac  := SPACE(22)
     dFecPresent := DATE()
     nCveSATCont := 0

     // Deshabilita y refresca detalles de captura

     oG_D[01]:Disable()
     oG_D[01]:Refresh()

    * AEval( oG_D,{|o| o:Disable()} )
    * AEval( oG_D,{|o| o:Refresh()} )

    * AEval( oBtn,{|o| o:Disable()} )
    * AEval( oBtn,{|o| o:Refresh()} )

     SysRefresh()

     oBrw:Enable()
     oBrw:SetFocus()
     oBrw:DrawSelect()
 ENDIF

 Release nI
RETURN (NIL)


Saludos cordiales Ing. Rosita

Atte: Adrian C. C.
Posts: 27
Joined: Fri Apr 24, 2009 03:49 AM
Re: Ejemplo sencillo de factura
Posted: Sat Apr 23, 2016 03:39 AM

Amigos del foro me gustaria me envien ami tambien los ejemplos del programa de facturacion, mi correo es gpersi22 arroba gmail.com, desde ya muy agradecido Atte. Persi.

Fivewin 1412

xharbour 1.2.3

harbour 3.2

bcc 7.00
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Ejemplo sencillo de factura
Posted: Sat Apr 23, 2016 01:24 PM

Persi, revisa tu correo.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 27
Joined: Fri Apr 24, 2009 03:49 AM
Re: Ejemplo sencillo de factura
Posted: Sat Apr 23, 2016 08:25 PM

Gracias amigo Francisco recibí tu correo, lo voy a revisar. Personas como Uds. hacen grande este foro.
Saludos.
Persi Salazar.

Fivewin 1412

xharbour 1.2.3

harbour 3.2

bcc 7.00
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM
Re: Ejemplo sencillo de factura
Posted: Mon Apr 25, 2016 04:12 PM
FranciscoA wrote:Persi, revisa tu correo.



Hola buenos dias Ing. Francisco sino es mucho pedir, sera que igual me puedes aportar tus ejemplos de facturacion y ver si logro hacerlo funcionar adaptandolo a mi sistema por medio de arrays() en txbrowse?,mucho les agradecere su ejemplo de ayuda.

Gracias Ing.

Atte: Adrian C. C.

acc69@hotmail.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Ejemplo sencillo de factura
Posted: Mon Apr 25, 2016 04:44 PM
Adriano
Hola buenos dias Ing. Francisco sino es mucho pedir, sera que igual me puedes aportar tus ejemplos de facturacion y ver si logro hacerlo funcionar adaptandolo a mi sistema por medio de arrays() en txbrowse?,mucho les agradecere su ejemplo de ayuda.

Gracias Ing.

Atte: Adrian C. C.

acc69@hotmail.com


Enviado.
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Ejemplo sencillo de factura
Posted: Tue Apr 26, 2016 05:29 AM
persi wrote:Amigos del foro me gustaria me envien ami tambien los ejemplos del programa de facturacion, mi correo es gpersi22 arroba gmail.com, desde ya muy agradecido Atte. Persi.


Saludos, enviado hoy, no habia revisado el foro desde hace dias, saludos... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Ejemplo sencillo de factura
Posted: Tue Apr 26, 2016 05:30 AM
ACC69 wrote:
FranciscoA wrote:Persi, revisa tu correo.



Hola buenos dias Ing. Francisco sino es mucho pedir, sera que igual me puedes aportar tus ejemplos de facturacion y ver si logro hacerlo funcionar adaptandolo a mi sistema por medio de arrays() en txbrowse?,mucho les agradecere su ejemplo de ayuda.

Gracias Ing.

Atte: Adrian C. C.

acc69@hotmail.com


Saludos, enviado hoy, no habia revisado el foro desde hace dias, saludos...
Dios no está muerto...



Gracias a mi Dios ante todo!