xBrowse full input

Post Reply
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

xBrowse full input

Post by JoseAlvarez »

saludos estimados amigos.

necesito hacer un xBrowse de entrada de datos.

En primer lugar, quiero poder presionar un botón dentro de la primera celda y que se llame a una función que me mostrara un LISTBOX de donde seleccionare al cliente.
desde ese listbox debo traerme el nombre del cliente y asignarlo a la celda. Por favor fijarse en el numero 1 en rojo de la imagen

luego en la siguiente celda que marco con el numero dos, quiero que aparezca un boton que al presionarlo tenga un calendario con la fecha de hoy por defecto y que el usuario seleccione.
ver numero 2 en rojo de la imagen

En la siguiente, poder seleccionar con un combobox, los dias de credito que tendra la factura, y al hacerlo, que en la celda siguiente aparezca fecha de la primera celda + días que se asignaron.

Luego las demás celdas tendrán unas campos char, otras numeros, y una ultima un campo memo.

¿en que PRGs de la carpeta samples de fivewin puedo conseguir ejemplos para que me sirvan de guias?

espero haberme explicado bien.

gracias!

Image
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
cmsoft
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xBrowse full input

Post by cmsoft »

Una idea:

Code: Select all | Expand

#include "FiveWin.ch"
#include "xBrowse.ch"
REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESMWIN
STATIC oBrw, aData
function Main()
LOCAL aClientes := {"Cliente 1","Cliente 2","Cliente 3","Cliente 4"},;
      oForm
SET DATE FORMAT "DD/MM/YYYY"
SET 3DLOOK ON
HB_LANGSELECT( 'ESWIN' )

aData := {{"",CTOD('  /  /   '),0,CTOD('  /  /   ')}}
DEFINE DIALOG oForm TITLE "Jose" FROM 05,10 TO 42,100 
      
   @ 05,05 XBROWSE oBrw ARRAY aData;
              COLUMNS 1,2,3,4;
              HEADERS "Cliente","Fecha","Dias","Vencimiento";
              SIZES 300,100,100,100;
              OF oForm 340,215 PIXEL 
   
   WITH OBJECT oBrw
        :aCols[1]:nEditType :=  EDIT_LISTBOX  
        :aCols[1]:aEditListTxt := aClientes        
        :aCols[2]:nEditType := EDIT_DATE        
        :aCols[3]:nEditType := EDIT_LISTBOX
        :aCols[3]:aEditListTxt := {"10","20","30","40"}
        :aCols[3]:aEditListBound := {10,20,30,40}  
        :aCols[3]:bOnPostEdit := { |o,x,n| Llenar(o,x) }
        
        :bPastEof := {|| aadd(aData, {"",CTOD('  /  /   '),0,CTOD('  /  /   ')})}
   END
   oBrw:CreateFromCode()   
   
ACTIVATE DIALOG oForm CENTER 
RETURN nil

STATIC FUNCTION Llenar(o,x)
o:value := x 
aData[oBrw:nArrayAt,4] := aData[oBrw:nArrayAt,2]+ x
RETURN nil
 
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

Re: xBrowse full input

Post by JoseAlvarez »

cmsoft wrote:Una idea:

Code: Select all | Expand

#include "FiveWin.ch"
#include "xBrowse.ch"
REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESMWIN
STATIC oBrw, aData
function Main()
LOCAL aClientes := {"Cliente 1","Cliente 2","Cliente 3","Cliente 4"},;
      oForm
SET DATE FORMAT "DD/MM/YYYY"
SET 3DLOOK ON
HB_LANGSELECT( 'ESWIN' )

aData := {{"",CTOD('  /  /   '),0,CTOD('  /  /   ')}}
DEFINE DIALOG oForm TITLE "Jose" FROM 05,10 TO 42,100 
      
   @ 05,05 XBROWSE oBrw ARRAY aData;
              COLUMNS 1,2,3,4;
              HEADERS "Cliente","Fecha","Dias","Vencimiento";
              SIZES 300,100,100,100;
              OF oForm 340,215 PIXEL 
   
   WITH OBJECT oBrw
        :aCols[1]:nEditType :=  EDIT_LISTBOX  
        :aCols[1]:aEditListTxt := aClientes        
        :aCols[2]:nEditType := EDIT_DATE        
        :aCols[3]:nEditType := EDIT_LISTBOX
        :aCols[3]:aEditListTxt := {"10","20","30","40"}
        :aCols[3]:aEditListBound := {10,20,30,40}  
        :aCols[3]:bOnPostEdit := { |o,x,n| Llenar(o,x) }
        
        :bPastEof := {|| aadd(aData, {"",CTOD('  /  /   '),0,CTOD('  /  /   ')})}
   END
   oBrw:CreateFromCode()   
   
ACTIVATE DIALOG oForm CENTER 
RETURN nil

STATIC FUNCTION Llenar(o,x)
o:value := x 
aData[oBrw:nArrayAt,4] := aData[oBrw:nArrayAt,2]+ x
RETURN nil
 
Gracias césar! increible que sea tan sencillo... voy a implementar y luego comentare que tal me fue.

Agradecido !!
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
cmsoft
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xBrowse full input

Post by cmsoft »

Si quieres llamar a una funcion que busque en tu base de datos, puedes hacer:

Code: Select all | Expand

:aCols[1]:bEditBlock := {|r,c,o,k| (c := MiBusqueda(), o:value := c) } 
:aCols[1]:nEditType := EDIT_BUTTON
User avatar
Armando
Posts: 3249
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: xBrowse full input

Post by Armando »

César:

Excelente ejemplo, tengo dos preguntas:

1.- En tú ejemplo, el browse agrega dos columnas a la derecha, sin título y con los valores 340 y 215 respectivamente
2.- Podrías poner un ejemplo con recordset?, por favor.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
cmsoft
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xBrowse full input

Post by cmsoft »

Armando wrote:César:
1.- En tú ejemplo, el browse agrega dos columnas a la derecha, sin título y con los valores 340 y 215 respectivamente
Es verdad, me falto la clausula SIZE
OF oForm SIZE 340,215 PIXEL
Armando wrote:2.- Podrías poner un ejemplo con recordset?, por favor.
Uso dolphin pero es adaptable a cualquier recorset

Code: Select all | Expand

#include "FiveWin.ch"
#include "xBrowse.ch"
#include "tdolphin.ch"
REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESMWIN
STATIC oBrw, oQryTem
function Main()
LOCAL oForm, oServer, oQryCli
CONNECT oServer HOST 'localhost' ;
                      USER 'user' ;
                      PASSWORD 'mipassword' ;
                      PORT 3306 ;
                      FLAGS 0;
                      DATABASE 'test'
oQryCli := oServer:Query("SELECT code,first,last FROM clients ORDER BY last") 
oQryTem := oServer:Query("SELECT * FROM tempor") 
SET DATE FORMAT "DD/MM/YYYY"
SET 3DLOOK ON
HB_LANGSELECT( 'ESWIN' )

DEFINE DIALOG oForm TITLE "Armando" FROM 05,10 TO 42,100 
      
   @ 05,05 XBROWSE oBrw DATASOURCE oQryTem;
              COLUMNS "code","nombre","cantidad";
              HEADERS "Codigo","Apellido y Nombre","Cantidad";
              SIZES 100,300,100;
              OF oForm SIZE 340,215 PIXEL 
   
   WITH OBJECT oBrw
        :aCols[1]:bEditBlock := {|r,c,o,k| (c := MiBusqueda(oQryCli), o:value := c) }
        :aCols[1]:nEditType := EDIT_BUTTON 
        :aCols[3]:nEditType :=  EDIT_GET          
        :bRecSelHeader    := { || " "} 
        :RecSelShowKeyNo()      
        :bPastEof := {|| oQryTem:GetBlankRow(),oQryTem:Save(),oBrw:Refresh()}
   END
   oBrw:CreateFromCode()   
   
ACTIVATE DIALOG oForm CENTER 
RETURN nil

STATIC function MiBusqueda(oQry)
xbrowse(oQry) //Aca muestras una busqueda personalizada tuya
oQryTem:nombre := alltrim(oQry:last)+", "+alltrim(oQry:first)
oQryTem:Save()
RETURN oQry:code
 
Saludos
User avatar
Armando
Posts: 3249
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: xBrowse full input

Post by Armando »

César:

Muchas gracias, le voy a tirar un ojo.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Post Reply