Soy nueva en este foro

Re: Soy nueva en este foro

Postby wilsongamboa » Wed Aug 19, 2015 9:06 pm

Rosita buenas tardes
Code: Select all  Expand view


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

Re: Soy nueva en este foro

Postby Rosita » Wed Aug 19, 2015 9:29 pm

wilsongamboa wrote:Rosita buenas tardes
Code: Select all  Expand view


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

Re: Soy nueva en este foro

Postby wilsongamboa » Wed Aug 19, 2015 10:19 pm

Ok le entendi mal
use esto

Code: Select all  Expand view

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

Re: Soy nueva en este foro

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

Re: Soy nueva en este foro

Postby Rosita » Wed Aug 19, 2015 11:20 pm

wilsongamboa wrote:Ok le entendi mal
use esto

Code: Select all  Expand view

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

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

Re: Soy nueva en este foro

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

Re: Soy nueva en este foro

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

Re: Soy nueva en este foro

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

Re: Soy nueva en este foro

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

Re: Soy nueva en este foro

Postby ACC69 » Thu Aug 20, 2015 8: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: Select all  Expand view
//------------------------------------------------------------------------------
* 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
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Soy nueva en este foro

Postby Rosita » 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: Select all  Expand view
//------------------------------------------------------------------------------
* 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
Rosita
 
Posts: 53
Joined: Tue Aug 18, 2015 7:34 pm

Re: Soy nueva en este foro

Postby Willi Quintana » 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
User avatar
Willi Quintana
 
Posts: 1019
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Soy nueva en este foro

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

Re: Soy nueva en este foro

Postby AIDA » Tue Aug 25, 2015 9: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ǝ
User avatar
AIDA
 
Posts: 879
Joined: Fri Jan 12, 2007 8:35 pm

PreviousNext

Return to FiveWin para Harbour/xHarbour

Who is online

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