Soy nueva en este foro

User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Soy nueva en este foro

Post by wilsongamboa »

Rosita buenas tardes

Code: Select all


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
Rosita
Posts: 53
Joined: Tue Aug 18, 2015 7:34 pm

Re: Soy nueva en este foro

Post by Rosita »

wilsongamboa wrote:Rosita buenas tardes

Code: Select all


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
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Soy nueva en este foro

Post by wilsongamboa »

Ok le entendi mal
use esto

Code: Select all

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
ender
Posts: 28
Joined: Sat Apr 15, 2006 11:25 pm

Re: Soy nueva en este foro

Post by ender »

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
Rosita
Posts: 53
Joined: Tue Aug 18, 2015 7:34 pm

Re: Soy nueva en este foro

Post by Rosita »

wilsongamboa wrote:Ok le entendi mal
use esto

Code: Select all

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
Rosita
Posts: 53
Joined: Tue Aug 18, 2015 7:34 pm

Re: Soy nueva en este foro

Post by Rosita »

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
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Soy nueva en este foro

Post by wilsongamboa »

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
Rosita
Posts: 53
Joined: Tue Aug 18, 2015 7:34 pm

Re: Soy nueva en este foro

Post by Rosita »

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
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Soy nueva en este foro

Post by wilsongamboa »

Rosita
encantado de intercambiar experiencias tengo sistema contable funcionando varios años
saludos
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Rosita
Posts: 53
Joined: Tue Aug 18, 2015 7:34 pm

Re: Soy nueva en este foro

Post by Rosita »

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
ACC69
Posts: 619
Joined: Tue Dec 12, 2006 7:34 pm
Contact:

Re: Soy nueva en este foro

Post by ACC69 »

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: Select all

//------------------------------------------------------------------------------
* 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
Rosita
Posts: 53
Joined: Tue Aug 18, 2015 7:34 pm

Re: Soy nueva en este foro

Post by Rosita »

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: Select all

//------------------------------------------------------------------------------
* 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
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Soy nueva en este foro

Post by Willi Quintana »

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
Rosita
Posts: 53
Joined: Tue Aug 18, 2015 7:34 pm

Re: Soy nueva en este foro

Post by Rosita »

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
User avatar
AIDA
Posts: 782
Joined: Fri Jan 12, 2007 8:35 pm

Re: Soy nueva en este foro

Post by AIDA »

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

I love Fivewin

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