Ayuda para asignar y tomar valores TEXTBOX

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Ayuda para asignar y tomar valores TEXTBOX

Post by SALINETAS24 »

Hola, esto ya empieza a tomar forma, aunque sigo liado con los Arrays.
Os explico mi problema.

Tengo un fichero con 50 campos. Cuando leo cualquier registro del fichero asigno los valores leidos a un Array (codigo, articulo, Unidades, Cajas, Tipo1, tipo2, tip3.,etc..), usando para ello una función que tenia en Clipper llamada SAVEFIELD,
El problema lo tengo cuando quiero asignar esos valores leídos y que están en un Array a cada control de texto (TEXTBOX.., ETC), o Viceversa.., cuando quiero extraer el valor de cada TEXTBOX y pasarlo al Array.

Os paso lo que estoy montado.., no esta terminado pero estoy intentando pasar las funciones que he venido usando en clipper a esta plataforma y estoy un poco perdido.

Ah! he podido mostrar mejor el programa lineas más abajo.., :D

Como siempre muchas gracias por su ayuda y paciencia.
Espero poder corresponder.
Last edited by SALINETAS24 on Sat Mar 03, 2018 9:30 pm, edited 1 time in total.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: Ayuda para asignar y tomar valores TEXTBOX

Post by SALINETAS24 »

Code: Select all

/ creo que ahora se entiende mejor.
#include 'hmg.ch'
#include "dbf.ch"

Function _MANTARTI()

   PRIVATE aField:={}
   PRIVATE Getlist:={}   
   PUBLIC Nuevo := .F.	


   IF !FILE("ARTICULOS.DBF")
      CREATE ARTICULOS
   ENDIF 
   OPEN ARTICULOS

   ARTICULOS -> ( SaveFields( aField , 1 ) ) //Esta funcion carga el valor en el Afield
   actualizar(afield) //<- esta actualiza el valor

   DEFINE WINDOW Win_1	;
      AT 0,0	; 
      WIDTH 720	;
      HEIGHT 460	;
      TITLE 'Mantenimiento de Artículos'	;
      MODAL 
      DEFINE TOOLBAR ToolBar_1 BUTTONSIZE 59,35 IMAGESIZE 20,20 FLAT BOR

           pido los TEXTBOXGET y todo lo demas
           y si es correcto y quiero grabar

           IF  Ok  
                  ARTICULOS->(Grabar(afield))  //-->GRABAMOS EL REGISTRO
           ENDIF

RETURN


// FUNCIONES 
----------------------------------
--> PASA EL VALOR DEL REGISTRO INTRODUCIDO EN EL CONTROL AL ARRAY Y A SU VEZ SE GRABA
--> ESTA FUNCION CREO QUE SI QUE FUNCIONA.., LA HE COPIADO DE UN PROGRAMA "MyIW.prg".. MUCHAS GRACIAS.
--> PERO ESTA SIN PROBAR.

function Grabar (afield)

   LOCAL i , ControlName , l
    l := len (afield)
   FOR i := 1 to l
        ControlName := 'Control_' + Alltrim ( Str ( i ) )
        aField [i]:= _GetValue ( ControlName , '_InputWindow' )
        FieldPut( i, aField[i ] 
   NEXT i

return

-------------------------------------
-------------------------------------
// ESTA FUNCION ME LLEVA LOCO.
// ES PARA ASIGNAR LOS VALORES INCIALES A LOS DISTINTOS CONTROLES (TEXTBOX, ETC.) YA SEA 
//INICIALMENTE O POR QUE EL USUARIO REALICE ALGUNA MOFICIACIÓN O FUERCE UN CAMBIO Y SEA NECESARIO
//ACTUALIZAR LOS VALORES...
//
// NO CONSIGO QUE FUNCIONE.



Function Actualizar(aField)
   LOCAL N, CN

   ARTICULOS->( dbGoTo ( Win_1.Grid_1.RecNo ) ) 
   ARTICULOS-> ( SaveFields( aField , 1 ) )

   cn:=""

   FOR n=1 to LEN(AFIELD)
           cn="control_"+str(n)                  
           WIN_1.&CN.VALUE := AFIELD[N] <---- NO FUNCIONA. NO CONSIGO ASIGNA EL VALOR
   NEXT

   Win_1.Control_1.Value	:= ARTICULOS->CODIGO	<---ESTA TAREA ES LA QUE QUIERO EVITAR!
   Win_1.Control_2.Value	:= ARTICULOS->Tipo1 	<--- TENGO QUE HACER ESTO 50 VECES !!!!!
   Win_1.Control_3.Value	:= ARTICULOS->Tipo2	
   Win_1.Control_4.Value	:= ARTICULOS->Tipo3	
   Win_1.Control_5.Value	:= ARTICULOS->Tipo4	
   Win_1.Control_6.Value	:= ARTICULOS->Tipo5	
   Win_1.Control_7.Value	:= ARTICULOS->Tipo6	
   Win_1.Control_8.Value	:= ARTICULOS->Tipo7	
   Win_1.Control_9.Value	:= ARTICULOS->Tipo8	
   Win_1.Control_0.Value	:= ARTICULOS->Tipo9	
   Win_1.Control_11.Value	:= ARTICULOS->Tipo10
   Win_1.Control_12.Value	:= ARTICULOS->Tipo11
   Win_1.Control_13.Value	:= ARTICULOS->Tipo12
   Win_1.Control_14.Value	:= ARTICULOS->Tipo13
   Win_1.Control_15.Value	:= ARTICULOS->Tipo14
   Win_1.Control_16.Value	:= ARTICULOS-> ..... y hasta 50
  
 
Return Nil

// $Category: Database funtions
// ----------------------------------------------------------------------------
// $Quick: Save all fields contents in an array
// ... S A R G A N T A N A S O F T ... clipper 5.2
// SaveFields( aData, nIni)
// nIni .. Valor n£merico. 0 carga, 1 inicializa
// Por defecto, el valor ser  cero

proc SaveFields( aData, nIni )

   local n
   local nLen := FCount()
   local aFtip[nLen]
   local aFlon[nLen]
   Default nIni := 0

   AFields("",aFtip,aFlon,"")
   ASize( aData, 0 )

   for n = 1 to nLen
      AAdd( aData, FieldGet( n ) )
      IF nIni=1
        DO Case
          Case aFtip[n]="N"
            STORE 0 TO aData[n]
         Case aFtip[n]="C"
             STORE SPACE(aFlon[n]) to aData[n]
        Case aFtip[n]="D"
            aData[n]=DATE()
        Case aFtip[n]="L"
            aData[n]=.f.
       OTHERWISE
            STORE SPACE(aFlon[n]) to aData[n]
     ENDCASE
   ENDIF
  next

return
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: Ayuda para asignar y tomar valores TEXTBOX

Post by andyglezl »

Hola Salinetas

Este ejemplo es minimalista, pero te pueda ayudar...

Demo.rar
(963 Bytes) Downloaded 185 times
Andrés González López
Desde Guadalajara, Jalisco. México.
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: Ayuda para asignar y tomar valores TEXTBOX

Post by SALINETAS24 »

Muy bueno. Muchas gracias.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
Post Reply