Page 1 of 1

Ayuda

PostPosted: Sun Apr 13, 2008 6:08 pm
by Aitue
Amigos:

El pasar a 32 bits, ha sido bastante complicado, pues la metodologia de clipper difiere de Fwh.

Necesito saber si puedo mostrar en pantalla con un recurso de Workshop, la informacion de un registro y segun el usuario necesite, permitir que pueda modificar.

Pienso usar Say para mostrar y luego un Get, pero tengo la duda como realizarlo, sobre la misma definicion del recurso.

Espero haberme expresado bien, ya que necesito realizar este cambio muy urgente.

Saludos,
Rafael.

Fwh, xHabour 1.1.0, Workshop, Verce.

PostPosted: Sun Apr 13, 2008 6:36 pm
by Antonio Linares
Rafael,

El mismo código de Clipper con FiveWin, tiene que servirte con FWH.

Muéstranos aqui como lo haces (PRG) y te indicamos como se hace en FWH (que debe ser igual).

PostPosted: Mon Apr 14, 2008 12:35 am
by Aitue
Antonio:

Muchas gracias por responder.

Esto es lo que hago en Clipper, y quiero saber si puedo aplicar el mismo esquema, pero en Fwh. Se que quizas molesto demaciado, pero soy un principiante con esta herramienta tan famosa.

Saludos,

Rafael.

*** CODIGO


@ 5,27 get cod_usu5 pict '@!' color color28
read
seek cod_usu5

if eof()
*** DATO NUEVO
stor spac(40) to des_equ1
stor spac(10) to cod_equ1
stor spac(20) to nro_ser1
stor spac(12) to rut_cli1
stor 0 to nro_hab1,per_man1,nro_con1

else
*** YA EXISTE Y MUESTRA
cod_equ1=cod_equ
rut_cli1=rut_cli
des_equ1=des_equ
nro_hab1=nro_hab
per_man1=per_man
nro_con1=nro_con
setcolor(color28)
@ 7,27 say trim(cod_equ) pict '@!'
@ 9,27 say trim(des_equ) pict '@!'
@ 11,27 say nro_hab pict '999999'
@ 13,27 say per_man pict '99'
@ 15,27 say nro_con pict '9999999999'
@ 17,27 say rut_cli
@ 19,27 say trim(a->nom_cli)
set colo to
cor=1
cor:=ale(" MODIFICA DATOS , SI , NO , ")
endif
cor=1
if cor=1
*** AGREGA O MODIFICA
@ 7,27 get cod_equ1 pict '@!' color color28
@ 9,27 get des_equ1 pict '@!' color color28
@ 11,27 get nro_hab1 pict '999999' color color28
@ 13,27 get per_man1 pict '99' color color28
@ 15,27 get nro_con1 pict '9999999999' color color28
@ 17,27 get rut_cli pict '!!!!!!!!!!!!'
read
cor=1
cor:=ale(" INGRESE OPCION , GRABA , MODIFICA , ")
@ 24,20 say spac(58)
endif
if cor=1
** GRABA
endif

PostPosted: Mon Apr 14, 2008 3:31 am
by joseluisysturiz
Aca te dejo un pequeño ejemplo, cualquier duda avisas... igual peudes bajar un manual basico desde UTILERIAS....

#include "FiveWin.ch"

MEMVAR oBARPPAL, oREPORT, oDLGACCESO, oCOMBOBOX, oWPPAL, oWHIJAS, oCURMANO, rBMP, rDLL, lARCHIVOS,;
lPRINT, nMENU, lAPPEND, lORIGEN, nRECNO, nTOP, cTitulo, dDesde, dHasta, nMEMO

FUNCTION clasicli(lORIGEN) // MAESTRO CLASIFICACION CLIENTES
local oDlgClaCli, oLbxClaCli, oDbfClaCli,;
oGetBuscar, cBuscar,;
oCmbClaCli, aCmbIndice := {"Código", "Nombre"}, nIndice := 1,;
oBtnInc, oBtnCon, oBtnMod, oBtnEli, oBtnSel, oBtnImp, oBtnSalir

DEFINE DIALOG oDlgClaCli RESOURCE "MAESTRO" OF oWppal;
TITLE " CUENTAS POR COBRAR - Maestro Clasificación Clientes"

DBSELECTAREA("jlclicla"); jlclicla->(OrdSetFocus(nIndice)); jlclicla->(DBGOTOP())
DATABASE oDbfClaCli; oDbfClaCli:GoTop(); oDbfClaCli:Blank(); nRecno := RecNo()

REDEFINE LISTBOX oLbxClaCli;
FIELDS jlclicla->&(FIELDNAME(1)), jlclicla->&(FIELDNAME(2));
ID 109;
FIELDSIZES 80, 150;
HEADERS " Código", " Nombre Clasificación";
ON RIGHT CLICK msginfo("Mostrar Menu POPUP");
ON DBLCLICK (IIF(lORIGEN, oDlgClaCli:END(), dataclacli(.F., oDlgClaCli, oDbfClaCli, oLbxClaCli)));
WHEN (RecCount() > 0 ) UPDATE OF oDlgClaCli

oLbxClaCli:GoTop(); oLbxClaCli:REFRESH()

REDEFINE BTNBMP oBtnInc ID 106 OF oDlgClaCli NOBORDER; // INCLUIR
ACTION (dataclacli(.T., oDlgClaCli, oDbfClaCli, oLbxClaCli));
PROMPT "Incluir"// FILE rBmp+"floppy.bmp"

REDEFINE BTNBMP oBtnCon ID 107 OF oDlgClaCli NOBORDER; // MODIFICAR
ACTION (dataclacli(.F., oDlgClaCli, oDbfClaCli, oLbxClaCli));
PROMPT "Modificar"; //FILE rBmp+"floppy.bmp"
WHEN (RecCount() > 0 )

REDEFINE BTNBMP oBtnMod ID 108 OF oDlgClaCli NOBORDER; // CONSULTAR
ACTION (msginfo("Que quieres Saber?"));
PROMPT "Consultar"; //FILE rBmp+"floppy.bmp"
WHEN (RecCount() > 0 )

REDEFINE BTNBMP oBtnEli ID 110 OF oDlgClaCli NOBORDER; // ELIMINAR
ACTION (delrecord(oLbxClaCli, ,"jlclicla"));
PROMPT "Eliminar"; //FILE rBmp+"floppy.bmp"
WHEN (RecCount() > 0 )

REDEFINE BTNBMP oBtnSel ID 112 OF oDlgClaCli NOBORDER; // SELECCIONAR
ACTION (msginfo("Seleccionar"));
PROMPT "Selecionar"; //FILE rBmp+"floppy.bmp"
WHEN (RecCount() > 0 )

REDEFINE BTNBMP oBtnImp ID 113 OF oDlgClaCli NOBORDER; // IMPRIMIR
ACTION (oLbxClaCli:REPORT());
PROMPT "Imprimir"; //FILE rBmp+"floppy.bmp"
WHEN (RecCount() > 0 )

REDEFINE BTNBMP oBtnSalir ID 114 OF oDlgClaCli NOBORDER; // SALIR
ACTION (oDlgClaCli:END());
FILE rBmp+"salidaP1.bmp", rBmp+"salidaP2.bmp"


REDEFINE COMBOBOX oCmbClaCli VAR nIndice; // COMBO-BOX
ITEMS aCmbIndice;
ON CHANGE (OrdSetFocus(nIndice), jlclicla->(DBGOTOP()),;
oLbxClaCli:REFRESH(), oLbxClaCli:SetFocus());
WHEN (RecCount() > 0 ) UPDATE;
ID 105 OF oDlgClaCli

REDEFINE GET oGETBuscar VAR cBuscar ID 111 PICTURE "@!"; // GET BUSCAR
VALID(buscar(cBuscar, oLbxClaCli, OrdSetFocus(nIndice)));
WHEN (RecCount() > 0 );
OF oDlgClaCli

*** Solo ToolTips
oLbxClaCli:cTooltip := 'Botón Derecho para Opciones'
oBtnInc:cTooltip := 'Incluir Registro'
oBtnCon:cTooltip := 'Modificar Registro'
oBtnMod:cTooltip := 'Consultar Registro'
oBtnEli:cTooltip := 'Eliminar Registro'
oBtnSel:cTooltip := 'Selecionar Registro'
oBtnImp:cTooltip := 'Imprimir Los Registros'
oBtnSalir:cTooltip := 'Retorna al Menu Principal'
oCmbClaCli:cTooltip := 'Seleccione para Ordenar Datos'
oGETBuscar:cTooltip := 'Introduzca para Buscar según Ordenado'

ACTIVATE DIALOG oDlgClaCli CENTER

* aRetorno := {jlemple->mpl_codigo, jlemple->mpl_nombre}
* IF lORIGEN // CONTROLA SI ES LLAMADO DESDE OTRA PATALLA
* RETURN (aRetorno)
* ENDIF

RETURN NIL // FIN MAESTRO CLASIFICACION CLIENTES


FUNCTION dataclacli(lAPPEND, oDlg, oDbf, oLbx) // FICHA CLASIFICACION CLIENTE

local oGET1, oGET2, oDlgDatCC, oBtnAce, oBtnSalir, oBtnAnt, oBtnSig,;
cAPPEND := "Nuevo"

IF !lAPPEND
cAPPEND := "Modificar"
oDbf:LOAD() // TRAE LOS CAMPOS PARA MODIFICAR
ELSE
oDbf:BLANK()
ENDIF

DEFINE DIALOG oDlgDatCC RESOURCE "DAT_MAESTRO" OF oDlg;
TITLE oDlg:cCaption+" - "+cAPPEND

REDEFINE GET oGET1 VAR oDbf:ccl_codigo ID 103 OF oDlgDatCC PICTURE "@!";
VALID(novacio(oDbf:ccl_codigo), vcodigo(oDbf:ccl_codigo, lAPPEND));
WHEN(lAPPEND) UPDATE

REDEFINE GET oGET2 VAR oDbf:ccl_nombre ID 104 OF oDlgDatCC;
VALID(novacio(oDbf:ccl_nombre));
WHEN(!EMPTY(oDbf:ccl_codigo)) UPDATE


REDEFINE BTNBMP oBtnAnt ID 107 OF oDlgDatCC NOBORDER; // ANTERIOR
ACTION (oLbx:GoUp(),;
oDbf:LOAD(),;
oGET1:REFRESH(),;
oGET2:REFRESH(),;
oLbx:REFRESH());
FILE rBmp+"anteP.bmp" UPDATE;
WHEN (!lAPPEND)

REDEFINE BTNBMP oBtnSig ID 108 OF oDlgDatCC NOBORDER; // SIGUIENTE
ACTION (oLbx:GoDown(),;
oDbf:LOAD(),;
oGET1:REFRESH(),;
oGET2:REFRESH(),;
oLbx:REFRESH());
FILE rBmp+"sigueP.bmp" UPDATE;
WHEN (!lAPPEND)


REDEFINE BUTTON oBtnAce ID 105 OF oDlgDatCC; // BOTON ACEPTAR
ACTION (graba(oDbf, oLbx, lAPPEND, "jlclicla", , ), oDlgDatCC:END());
PROMPT IIF(lAPPEND, "Agregar", "Actualizar"); //FILE rBmp+"grabarP.bmp";
WHEN (!EMPTY(oDbf:ccl_nombre)) UPDATE

REDEFINE BUTTON oBtnSalir ID 106 OF oDlgDatCC;// NOBORDER; // BOTON CANCELAR
ACTION (oDlgDatCC:END());//FILE rBmp+"salidaP1.bmp", rBmp+"salidaP2.bmp";
CANCEL

*** Solo ToolTips
oBtnAce:cTooltip := 'Haga Click para Grabar'
oBtnSalir:cTooltip := 'Haga Click para Salir'

ACTIVATE DIALOG oDlgDatCC CENTER

RETURN NIL // FIN FICHA CLASIFICACION CLIENTE

PostPosted: Mon Apr 14, 2008 5:56 am
by Antonio Linares
Aitue,

READ no se usa ni en FW ni en FWH.

PostPosted: Mon Apr 14, 2008 6:56 pm
by Aitue
Antonio:

Hola, te mostre como lo hago en Clipper, no en Fw, es por esto que uso READ, mi duda es como puedo hacer lo mismo en FWH.

Jose Luis, te agradesco tu ayuda, veo, todo se inia desde un Browse, pero por politicas de la empresa, la informacion no puede estar a disposicion de los digitadores, por lo que debo hacer los siguiente:
1. Pedir que digite CODIGO:
2. Revisar la base que exista: Si existe, mostrar en pantalla y dar la posibilidad de modificar, de lo contrario, Agregar registro, tal como se muestra en el codigo de Clipper.

Todo lo que he leido y visto de Fwh, parten desde un browse, tal como tu me lo has indicado.

A lo mejor lo que necesito hacer, no me lo permitr Fwh, pero me gustaria tener la claridad.


Saludos,

Rafael

PostPosted: Tue Apr 15, 2008 4:10 am
by joseluisysturiz
Aitue, no es que parta de un browse, solo que uno lo usa como un maestro de visualizacion, lo que tu quieres hacer se hace tan facil en FWH como en CLIPPER, solo obvia el browse y listo, diseña tu ventana con los datos que deseas solicitar y listo, enviame a mi privado lo que deseas hacer y te envio para que tengas una idea de como hacerlo en FWH, como te dije, solo obvia el BROWSE y ya. A la orden para ayudarte, como te dije busca el manual de FWH en las utilierias. Saludos.

PostPosted: Tue Apr 15, 2008 9:38 pm
by Aitue
Jose Luis:

Gracias por tu ayuda, te envie algo a tu correo personal.

Saludos,
Rafael


joseluisysturiz wrote:Aitue, no es que parta de un browse, solo que uno lo usa como un maestro de visualizacion, lo que tu quieres hacer se hace tan facil en FWH como en CLIPPER, solo obvia el browse y listo, diseña tu ventana con los datos que deseas solicitar y listo, enviame a mi privado lo que deseas hacer y te envio para que tengas una idea de como hacerlo en FWH, como te dije, solo obvia el BROWSE y ya. A la orden para ayudarte, como te dije busca el manual de FWH en las utilierias. Saludos.