FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour xBrowse full input
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
xBrowse full input
Posted: Wed Sep 25, 2024 10:50 PM
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!

"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.
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: xBrowse full input
Posted: Wed Sep 25, 2024 11:44 PM
Una idea:
Code (fw): Select all Collapse
#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
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: xBrowse full input
Posted: Wed Sep 25, 2024 11:54 PM
cmsoft wrote:Una idea:
Code (fw): Select all Collapse
#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.
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: xBrowse full input
Posted: Thu Sep 26, 2024 12:24 AM
Si quieres llamar a una funcion que busque en tu base de datos, puedes hacer:
Code (fw): Select all Collapse
:aCols[1]:bEditBlock := {|r,c,o,k| (c := MiBusqueda(), o:value := c) } 
:aCols[1]:nEditType := EDIT_BUTTON
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: xBrowse full input
Posted: Sat Sep 28, 2024 03:48 PM

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
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: xBrowse full input
Posted: Sat Sep 28, 2024 09:28 PM
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 (fw): Select all Collapse
#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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: xBrowse full input
Posted: Sun Sep 29, 2024 01:13 AM

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

Continue the discussion