FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Soy nueva en este foro
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM

Re: Soy nueva en este foro

Posted: Wed Aug 19, 2015 09:06 PM
Rosita buenas tardes
Code (fw): Select all Collapse
function Ponceros( cValor, nCeros )

    cValor = strzero( val( cValor ), nCeros )

return .T.


ponga esta funcion en un valid y envie cValor como referencia Poncers( @cValor, 6 )

saludos

Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 53
Joined: Tue Aug 18, 2015 07:34 PM

Re: Soy nueva en este foro

Posted: Wed Aug 19, 2015 09:29 PM
wilsongamboa wrote:Rosita buenas tardes
Code (fw): Select all Collapse
function Ponceros( cValor, nCeros )

    cValor = strzero( val( cValor ), nCeros )

return .T.


ponga esta funcion en un valid y envie cValor como referencia Poncers( @cValor, 6 )

saludos

Wilson



Gracias mi estimado Wilson,no es asi lo que busco , que me rellene 0002-0001-0003-0004 asi de esta manera al momento de teclear en get 2-1-3-4 y obtenga el resultado ceros a la izquierda del que mencione

Gracias

Rosa
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM

Re: Soy nueva en este foro

Posted: Wed Aug 19, 2015 10:19 PM
Ok le entendi mal
use esto

Code (fw): Select all Collapse
function ValidaMascara( cValor )

    local aValores := listasarray( alltrim( cValor ), '-' )
    local i
    local cResult  := ''

    //0002-0001-0003-0004

    for i = 1 to len( aValores )
        cResult += strzero( val( aValores[ i ] ), 4 ) + if( i == len( aValores ), '', '-' )
    next

    cValor = cResult

return .t.

/***
*  ListAsArray( <cList>, <cDelimiter> ) --> aList
*  Converierte un string delimitado a un array de elementos
*
*/
FUNCTION ListAsArray( cList, cDelimiter )
   LOCAL nPos
   LOCAL aList := {}                            // Defino un array vac¡o

   IF cDelimiter = NIL
      cDelimiter := ","
   ENDIF
   //
   DO WHILE (nPos := AT(cDelimiter, cList)) != 0
      AADD(aList, SUBSTR(cList, 1, nPos - 1))   // Aumento nuevo elemento del array
      cList := SUBSTR(cList, nPos + 1)
   ENDDO
   AADD(aList, cList)                           // aumento el £ltimo
   //
   RETURN aList                                 // Retorno el array


llamandolo en un valid por referencia

saludos
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 30
Joined: Sat Apr 15, 2006 11:25 PM

Re: Soy nueva en este foro

Posted: Wed Aug 19, 2015 10:23 PM

rosa te paso un manual de fivewin no es nuevo pero espero que para comprender su metologia te sirva .

https://www.dropbox.com/s/xhbwms3cqdew2 ... N.PDF?dl=0

p.d. no es mio y espero que el legitimo dueño no le importe si no retirare el enlace

Posts: 53
Joined: Tue Aug 18, 2015 07:34 PM

Re: Soy nueva en este foro

Posted: Wed Aug 19, 2015 11:20 PM
wilsongamboa wrote:Ok le entendi mal
use esto

Code (fw): Select all Collapse
function ValidaMascara( cValor )

    local aValores := listasarray( alltrim( cValor ), '-' )
    local i
    local cResult  := ''

    //0002-0001-0003-0004

    for i = 1 to len( aValores )
        cResult += strzero( val( aValores[ i ] ), 4 ) + if( i == len( aValores ), '', '-' )
    next

    cValor = cResult

return .t.

/***
*  ListAsArray( <cList>, <cDelimiter> ) --> aList
*  Converierte un string delimitado a un array de elementos
*
*/
FUNCTION ListAsArray( cList, cDelimiter )
   LOCAL nPos
   LOCAL aList := {}                            // Defino un array vac¡o

   IF cDelimiter = NIL
      cDelimiter := ","
   ENDIF
   //
   DO WHILE (nPos := AT(cDelimiter, cList)) != 0
      AADD(aList, SUBSTR(cList, 1, nPos - 1))   // Aumento nuevo elemento del array
      cList := SUBSTR(cList, nPos + 1)
   ENDDO
   AADD(aList, cList)                           // aumento el £ltimo
   //
   RETURN aList                                 // Retorno el array


llamandolo en un valid por referencia

saludos
Wilson


Gracias mi estimado Wilson por la ayuda y su tiempo de la aportacion de su codigo,es lo que buscaba,es usted contador ,tiene desarrollado sistema contable ?

Gracias
Rosa
Posts: 53
Joined: Tue Aug 18, 2015 07:34 PM

Re: Soy nueva en este foro

Posted: Wed Aug 19, 2015 11:21 PM
ender wrote:rosa te paso un manual de fivewin no es nuevo pero espero que para comprender su metologia te sirva .


https://www.dropbox.com/s/xhbwms3cqdew2 ... N.PDF?dl=0



p.d. no es mio y espero que el legitimo dueño no le importe si no retirare el enlace



Gracias mi estimado Ender,por el manual la descargo y me pongo a estudiar la forma de programar de fivewin

Gracias de nuevo a los que me ayudaron

Rosa
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM

Re: Soy nueva en este foro

Posted: Wed Aug 19, 2015 11:23 PM

Rosita buenas tardes
No soy contador soy Ingeniero Electronico dedicado a programar desde hace muuuchos años
Me alegro mucho que le haya servido
Cualquier duda a las ordenes
saludos
Wilson

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 53
Joined: Tue Aug 18, 2015 07:34 PM

Re: Soy nueva en este foro

Posted: Wed Aug 19, 2015 11:25 PM
wilsongamboa wrote:Rosita buenas tardes
No soy contador soy Ingeniero Electronico dedicado a programar desde hace muuuchos años
Me alegro mucho que le haya servido
Cualquier duda a las ordenes
saludos
Wilson



No lo he probado aun,pero gracias amigo Wilson, crei que era contador ,para intercambiar experiencias.

Gracias
Rosa
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM

Re: Soy nueva en este foro

Posted: Wed Aug 19, 2015 11:51 PM

Rosita
encantado de intercambiar experiencias tengo sistema contable funcionando varios años
saludos
Wilson

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 53
Joined: Tue Aug 18, 2015 07:34 PM

Re: Soy nueva en este foro

Posted: Thu Aug 20, 2015 12:13 AM
wilsongamboa wrote:Rosita
encantado de intercambiar experiencias tengo sistema contable funcionando varios años
saludos
Wilson



Gracias mi estimado Wilson, le dejo mi correo y el manual que descargue es interesante puros defines y mas defines .

este es mi correo rositatun@gmail.com

Gracias y saludos
Rosa
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM

Re: Soy nueva en este foro

Posted: Thu Aug 20, 2015 08:14 PM
Rosita wrote:
wilsongamboa wrote:Rosita
encantado de intercambiar experiencias tengo sistema contable funcionando varios años
saludos
Wilson



Gracias mi estimado Wilson, le dejo mi correo y el manual que descargue es interesante puros defines y mas defines .

este es mi correo rositatun@gmail.com

Gracias y saludos
Rosa



Hola Ing. Rosi buenas tardes como esta, de antemano le envio cordial saludos.

Tarde pero llegue ,te paso la rutina de como rellenar ceros a la izquierda.

Code (fw): Select all Collapse
//------------------------------------------------------------------------------
* FORMATO1 CON GUION  0000-0000-0000-0000 ó SIN GUION 000000000000
FUNCTION FORMATO1(VarCta, Ctaf,lGuion)
 Local lcad1, lcad2, lcad3, lCad4, I, cFormCta

 I     := 0
 lcad1 := ""
 lcad2 := ""
 lcad3 := ""
 lcad4 := ""

 //Procesa el primer campo de 4 Digitos: 0000-   // Nivel 1
 Do While .T.
     I=I+1

     IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
         Exit
     EndIF

     lcad1 :=  lcad1 + SubStr(Ctaf, I , 1)
 EndDo

 //Procesa el segundo campo de 4 Digitos: 0000-0000  // Nivel 2
 Do While .T.
     I=I+1

     IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
         Exit
     EndIF

     lcad2 :=  lcad2 + SubStr(Ctaf, I , 1)
 EndDo

 //Procesa el tercer campo de 4 Digitos: 0000-0000-0000  // Nivel 3
 Do While .T.
     I=I+1

     IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
        Exit
     EndIF

     lcad3 :=  lcad3 + SubStr(Ctaf, I, 1)
 EndDo

 //Procesa el cuarto campo de 4 Digitos: 0000-0000-0000-0000  // Nivel 4
 Do While .T.
     I=I+1

     IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
        Exit
     EndIF

     lcad4 :=  lcad4 + SubStr(Ctaf, I, 1)
 EndDo

 *Nota: Tienes que indicar los 3 '-', ej: 1--, y como resultado: 00001-0000-0000-0000

 IF lGuion
     cFormCta := STRZERO(Val(lcad1),4) +'-'+ STRZERO(Val(lcad2),4)+'-'+ STRZERO(Val(lcad3),4)+'-'+ STRZERO(Val(lcad4),4)
 ELSE
     cFormCta := STRZERO(Val(lcad1),4) + STRZERO(Val(lcad2),4) + STRZERO(Val(lcad3),4) + STRZERO(Val(lcad4),4)
 ENDIF
 *MsgInfo(cFormCta)
RETURN (cFormCta)


Esta es la funcion y como se usa ?:

Aqui desde get:
REDEFINE GET oG_D[01] VAR cCta ID 105 OF oDlg2 BITMAP "AYUDA" PICT "@K ###################";
ACTION ListCat(@cCta,S08,"cCta",oG_D[01]);
WHEN lNew VALID V_Cta()

Function V_CTA()
cCta := FORMATO1("cCta",cCta, .T.) // Si Permite separar guiones
cCta2 := FORMATO1("cCta",cCta, .F.) // No Permite separar guiones
RETURN NIL

Adaptalo a tus necesidades Rosi.

Si alguien la pueda mejorar,seria mejor

Saludos cordiales .

Atte: Adrian C. C.
acc69@hotmail.com
Posts: 53
Joined: Tue Aug 18, 2015 07:34 PM

Re: Soy nueva en este foro

Posted: Thu Aug 20, 2015 10:08 PM
ACC69 wrote:
Rosita wrote:
wilsongamboa wrote:Rosita
encantado de intercambiar experiencias tengo sistema contable funcionando varios años
saludos
Wilson



Gracias mi estimado Wilson, le dejo mi correo y el manual que descargue es interesante puros defines y mas defines .

este es mi correo rositatun@gmail.com

Gracias y saludos
Rosa



Hola Ing. Rosi buenas tardes como esta, de antemano le envio cordial saludos.

Tarde pero llegue ,te paso la rutina de como rellenar ceros a la izquierda.

Code (fw): Select all Collapse
//------------------------------------------------------------------------------
* FORMATO1 CON GUION  0000-0000-0000-0000 ó SIN GUION 000000000000
FUNCTION FORMATO1(VarCta, Ctaf,lGuion)
 Local lcad1, lcad2, lcad3, lCad4, I, cFormCta

 I     := 0
 lcad1 := ""
 lcad2 := ""
 lcad3 := ""
 lcad4 := ""

 //Procesa el primer campo de 4 Digitos: 0000-   // Nivel 1
 Do While .T.
     I=I+1

     IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
         Exit
     EndIF

     lcad1 :=  lcad1 + SubStr(Ctaf, I , 1)
 EndDo

 //Procesa el segundo campo de 4 Digitos: 0000-0000  // Nivel 2
 Do While .T.
     I=I+1

     IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
         Exit
     EndIF

     lcad2 :=  lcad2 + SubStr(Ctaf, I , 1)
 EndDo

 //Procesa el tercer campo de 4 Digitos: 0000-0000-0000  // Nivel 3
 Do While .T.
     I=I+1

     IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
        Exit
     EndIF

     lcad3 :=  lcad3 + SubStr(Ctaf, I, 1)
 EndDo

 //Procesa el cuarto campo de 4 Digitos: 0000-0000-0000-0000  // Nivel 4
 Do While .T.
     I=I+1

     IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
        Exit
     EndIF

     lcad4 :=  lcad4 + SubStr(Ctaf, I, 1)
 EndDo

 *Nota: Tienes que indicar los 3 '-', ej: 1--, y como resultado: 00001-0000-0000-0000

 IF lGuion
     cFormCta := STRZERO(Val(lcad1),4) +'-'+ STRZERO(Val(lcad2),4)+'-'+ STRZERO(Val(lcad3),4)+'-'+ STRZERO(Val(lcad4),4)
 ELSE
     cFormCta := STRZERO(Val(lcad1),4) + STRZERO(Val(lcad2),4) + STRZERO(Val(lcad3),4) + STRZERO(Val(lcad4),4)
 ENDIF
 *MsgInfo(cFormCta)
RETURN (cFormCta)


Esta es la funcion y como se usa ?:

Aqui desde get:
REDEFINE GET oG_D[01] VAR cCta ID 105 OF oDlg2 BITMAP "AYUDA" PICT "@K ###################";
ACTION ListCat(@cCta,S08,"cCta",oG_D[01]);
WHEN lNew VALID V_Cta()

Function V_CTA()
cCta := FORMATO1("cCta",cCta, .T.) // Si Permite separar guiones
cCta2 := FORMATO1("cCta",cCta, .F.) // No Permite separar guiones
RETURN NIL

Adaptalo a tus necesidades Rosi.

Si alguien la pueda mejorar,seria mejor

Saludos cordiales .

Atte: Adrian C. C.
acc69@hotmail.com



Gracias mi estimado Adrian ,se te agradece el ejemplo y la funcion

Rosa
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM

Re: Soy nueva en este foro

Posted: Thu Aug 20, 2015 10:11 PM

Holas,,,
Disculpen, pero seria también fácil, tener 4 variables en 4 GETs, y luego a cada uno rellenar con los ceros a la izquierda (STRZERO(x)) y concatenarlos a una variable...

A1 := A2 := A3 := A4 := SPACE(4)
@ 5, 10 GET A1 PICTURE "9999"
@ 5, 15 GET A2 PICTURE "9999"
@ 5, 20 GET A3 PICTURE "9999"
@ 5, 25 GET A4 PICTURE "9999"
READ

A1 := STRZERO(VAL(A1),4)
A2 := STRZERO(VAL(A2),4)
A3 := STRZERO(VAL(A3),4)
A4 := STRZERO(VAL(A4),4)

AX := A1 + "-" + A2 + "-" + A3 + "-" + A4

@ X,Y SAY AX

RESULTADO 0034-0344-3445-0001

Saludos

Posts: 53
Joined: Tue Aug 18, 2015 07:34 PM

Re: Soy nueva en este foro

Posted: Thu Aug 20, 2015 10:18 PM
Willi Quintana wrote:Holas,,,
Disculpen, pero seria también fácil, tener 4 variables en 4 GETs, y luego a cada uno rellenar con los ceros a la izquierda (STRZERO(x)) y concatenarlos a una variable...

A1 := A2 := A3 := A4 := SPACE(4)
@ 5, 10 GET A1 PICTURE "9999"
@ 5, 15 GET A2 PICTURE "9999"
@ 5, 20 GET A3 PICTURE "9999"
@ 5, 25 GET A4 PICTURE "9999"
READ

A1 := STRZERO(VAL(A1),4)
A2 := STRZERO(VAL(A2),4)
A3 := STRZERO(VAL(A3),4)
A4 := STRZERO(VAL(A4),4)

AX := A1 + "-" + A2 + "-" + A3 + "-" + A4

@ X,Y SAY AX

RESULTADO 0034-0344-3445-0001

Saludos



Gracias mi estimado Willi eso si lo tengo en cuenta que es mas facil, pero es mas facil para el usuario capturar en un solo campo con su guion en lugar de capturar en 4 campos y cada campo validar es mas tedioso
Por eso buscaba esa funcioncita .
Se te agradece la ayuda amigo

Gracias
Rosa
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM

Re: Soy nueva en este foro

Posted: Tue Aug 25, 2015 09:00 PM

Hola bienvenida :D

Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ