em dbf:
PROCEDURE pAuxCnae
LOCAL oFrm := AUXCNAEClass():New()
IF ! AbreArquivos( "jptabel" )
RETURN
ENDIF
oFrm:Execute()
CLOSE DATABASES
RETURN
em mysql:
PROCEDURE pAuxCnae
LOCAL oFrm := AUXCNAEClass():New()
oFrm:Execute()
RETURN

Moderador: Moderadores
PROCEDURE pAuxCnae
LOCAL oFrm := AUXCNAEClass():New()
IF ! AbreArquivos( "jptabel" )
RETURN
ENDIF
oFrm:Execute()
CLOSE DATABASES
RETURN
PROCEDURE pAuxCnae
LOCAL oFrm := AUXCNAEClass():New()
oFrm:Execute()
RETURN
CREATE CLASS AUXCNAEClass INHERIT AUXILIARClass
...
METHOD Descricao( maxCnae ) CLASS AUXCNAEClass
RETURN ::Super:Descricao( Left( maxCnae, 5 ) )
CREATE CLASS AUXILIARClass INHERIT frmCadastroClass
...
METHOD Descricao( cCodigo ) CLASS AUXILIARClass
LOCAL mTexto
IF Empty( ::cDataTable )
Encontra( ::cTabelaAuxiliar + cCodigo, "jptabel", "numlan" )
mTexto := jptabel->axDescri
ELSE
mTexto := ADOField( "AXDESCRI", "C", "JPAUXILIAR", "AXTABELA=" + StringSql( ::cTabelaAuxiliar ) + " AND AXCODIGO=" + StringSql( cCodigo ) )
ENDIF
RETURN mTexto
rochinha escreveu:Creio que depois disto seja possÃvel fazer o que você pensa. Ou não.
JoséQuintas escreveu:Cheguei a fazer um mini gerador de telas em VB6.
Sabe como é no VB6?
Você define UM button, UM textbox, UM label, e define como array.
A partir daÃ, pode multiplicar por quantas vezes quiser, e definir as propriedades de cada um.
É simples assim.
... GET cCampo VALID Validalocal( @cCampo )
...
FUNCTION ValidaLocal( cCampo )
RETURN ValidaGeral( @cCampo )
FUNCTION ValidaGeral( cCampo )
DO CASE
CASE GetActive():Tag == "CODCLIENTE"
RETURN OkCliente( @cCampo )
ENDCASE
RETURN .T.
Retornar para Contribuições, Dicas e Tutoriais
Usuários vendo este fórum: Google [Bot] e 13 visitantes