Browse con Dialog

Post Reply
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Browse con Dialog

Post by Garbi »

Al maximizar un dialog que contiene un browse se puede redimensionar automaticamente o de alguna manera el Browse para que me ocupe todo el dialog.

Graicas
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Post by Garbi »

o como sabes si un dialog se ha maximizado para cambian de resoure
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Garbi,

oDlg:SetClient( oBrowse )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Post by Garbi »

Me da el siguiente error:
Error description: Error Objects/6 No Exp. Method: TDIALOG:SETCLIENT

Codigo fuente:
DEFINE DIALOG oDlg RESOURCE "HOJA" TITLE IIF( lNuevo,"AGREGAR" ,;
oemtoansi("MODIFICACION / CONSULTA Presupuesto n§ ")+alltrim(transform(vnumero,"999,999")) )

REDEFINE GET gvfecha Var vfecha ID 102 OF oDlg
REDEFINE say gvnombre Var vnombre ID 114 OF oDlg
REDEFINE say gvref Var vref ID 116 OF oDlg


REDEFINE BROWSE oBrwt ID 103 of oDlg

oDlg:SetClient( oBrwt )

oBrwT:bKeyChar = { | nKey, nFlags | (lineas(nkey),oBrwt:refresh(),ftotal(),gvtotal:refresh())}

ADD COLUMN to oBrwt DATA (ctemporal)->cantidad HEADER "Ctd" size 40 picture "99,999"
ADD COLUMN to oBrwt DATA (ctemporal)->concepto HEADER "Articulo" size 500
ADD COLUMN to oBrwt DATA (ctemporal)->unitario HEADER "Precio" size 100 Picture "9,999,999.99" RIGHT
ADD COLUMN to oBrwt DATA (ctemporal)->importe HEADER "Total" size 100 Picture "9,999,999.99" RIGHT

REDEFINE say gvtotal Var vtotal ID 105 OF oDlg picture("9,999,999.99")
REDEFINE get gvtdto Var vtdto ID 108 OF oDlg picture("999.99") valid ftotal()
REDEFINE say gvdto Var vdto ID 109 OF oDlg picture("9,999,999.99")
REDEFINE say gvbase Var vbase ID 110 OF oDlg picture("9,999,999.99")
REDEFINE say gvtiva Var vtiva ID 111 OF oDlg picture("999.99")
REDEFINE say gviva Var viva ID 112 OF oDlg picture("999,999.99")
REDEFINE say gvttotal Var vttotal ID 104 OF oDlg picture("9,999,999.99")

REDEFINE BTNBMP aBoton[1] ID 113 RESOURCE "DATOS" OF oDlg;
tooltip oemtoansi("Datos Adicionales");
action (datosadicionales(),gvnombre:refresh())

REDEFINE BTNBMP aBoton[2] ID 504 RESOURCE "sumar" OF oDlg;
tooltip oemtoansi("A¤adir Linea");
action (lineas(1),oBrwt:refresh())

REDEFINE BTNBMP aBoton[8] ID 107 RESOURCE "pgup" OF oDlg;
tooltip oemtoansi("Insertar Linea");
action (lineas(19),oBrwt:refresh())

REDEFINE BTNBMP aBoton[3] ID 505 RESOURCE "restar" OF oDlg;
tooltip oemtoansi("Borar Linea");
action (lineas(2),oBrwt:Refresh())

REDEFINE BTNBMP aBoton[4] ID 506 RESOURCE "cambIar" OF oDlg;
tooltip oemtoansi("Modificar Linea");
action (lineas(13),oBrwt:Refresh())

REDEFINE BTNBMP aBoton[7] ID 106 RESOURCE "TEXTO" OF oDlg;
tooltip oemtoansi("Nuevo");
action (lineas(14),oBrwt:Refresh())

REDEFINE BTNBMP aBoton[9] ID 117 RESOURCE "TARIFA" OF oDlg;
tooltip oemtoansi("Acceso Tarifa");
action (ftarifas(1),ftotal(),oBrwt:gotop(),oBrwt:Refresh())
* action (lineas(14),oBrwt:Refresh())


REDEFINE COMBOBOX getvfpago Var vfpago ID 115 items tfpago OF odlg

REDEFINE BTNBMP aBoton[5] ID 501 RESOURCE "ACEPTAR" OF oDlg ;
ACTION ( aVret:= ActAcepta( aVars ) , lSalva := aVret[1] ,;
IIF( lSalva , oDlg:End() , Obj(aVret[2]):SetFocus() ));
MESSAGE "Guardar cambios y salir del catalogo" ;
WHEN ( Acceso(oApp:aUsuarios,"PPTO", nActua ) )

REDEFINE BTNBMP aBoton[6] ID 502 RESOURCE "SALIR" OF oDlg ACTION (lSalva := falso, oDlg:End()) ;
MESSAGE "Salir del catalogo"

ACTIVATE DIALOG oDlg CENTER on init ftotal()
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Prueba con:

oDlg:oClient = oBrowse
regards, saludos

Antonio Linares
www.fivetechsoft.com
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Post by Garbi »

Funciona. Se maximiza la ventana, pero que hago con los botones, los says y demas.

Gracias
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Garbi,

Si quieres reajustar las posiciones de todos los controles, has de hacerlo desde el codeblock bResized:

Code: Select all

oDlg:bResized = { || CalculaNuevasPosiciones( oDlg, oButton1, ... ) }

function CalculaNuevasPosiciones( oDlg, oButton1, ... )

   oButton1:nTop = ...
   oButton2:nLeft = ...
   ...
regards, saludos

Antonio Linares
www.fivetechsoft.com
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Post by Garbi »

Lo probare.
Puedes poner un sample un poco más completo. Gracias
Por ejemplo que pongo despues ntop:=
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

El valor de la nueva posición de cada control.
regards, saludos

Antonio Linares
www.fivetechsoft.com
carlosortiz
Posts: 39
Joined: Wed Mar 22, 2006 12:53 pm
Location: Córdoba // Argentina
Contact:

Paneles

Post by carlosortiz »

Antonio se pueden definir "paneles" cosa de poder separar por un lado los controles, botones, trees, etc, de la parte que uno quiera que ocupe el browse, por ejemplo menu en tree y botones sobre la izquierda en forma vertical, sobre la derecha desde la mitad y hasta el final un browse en otro panel, y que al redimensionar el dialogo se redimensione solo el panel que uno quiera, por ejemplo el sector del browse.

Es solo estético nada importante, de hecho ahora meto todos los botones en una barra de botones y que se redimensione todo el resto, pero a veces hacen falta otras cosas en el dialogo.

Gracias.
Post Reply