xBrowse full input

xBrowse full input

Postby JoseAlvarez » 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!

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
JoseAlvarez
 
Posts: 805
Joined: Sun Nov 09, 2014 5:01 pm

Re: xBrowse full input

Postby cmsoft » Wed Sep 25, 2024 11:44 pm

Una idea:
Code: Select all  Expand view  RUN

#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
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xBrowse full input

Postby JoseAlvarez » Wed Sep 25, 2024 11:54 pm

cmsoft wrote:Una idea:
Code: Select all  Expand view  RUN

#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
JoseAlvarez
 
Posts: 805
Joined: Sun Nov 09, 2014 5:01 pm

Re: xBrowse full input

Postby cmsoft » Thu Sep 26, 2024 12:24 am

Si quieres llamar a una funcion que busque en tu base de datos, puedes hacer:
Code: Select all  Expand view  RUN

:aCols[1]:bEditBlock := {|r,c,o,k| (c := MiBusqueda(), o:value := c) }
:aCols[1]:nEditType := EDIT_BUTTON
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xBrowse full input

Postby Armando » Sat Sep 28, 2024 3: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
User avatar
Armando
 
Posts: 3242
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: xBrowse full input

Postby cmsoft » Sat Sep 28, 2024 9: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: Select all  Expand view  RUN

#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
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xBrowse full input

Postby Armando » Sun Sep 29, 2024 1: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
User avatar
Armando
 
Posts: 3242
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

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