/////////////////////////////////////// File: OpenDicc.ch"
#define TRUE .T.
#define FALSE .F.
#define SQuote CHR(39)
#define DQuote CHR(34)
#define BDER BROWSE_JTFY_RIGHT
#define BIZQ BROWSE_JTFY_LEFT
#define BCEN BROWSE_JTFY_CENTER
#define NEGRO {0,0,0}
#define BLANCO {255,255,255}
#define VERDECITO {3,69,9}
#define ROJITO {255,0,0}
#define BEIGE {245,243,146}
#define AGUA {200,241,150}
#define F_FEFIL 10
#define FinLinea Chr(10) + Chr(13)
#define NOMSYS "OpenDicc Generator"
#define VERSYS "Version 1.01.67(R)"
#define SISTEMA NOMSYS + " " + VERSYS
#define Autor "Boris Gaverchik"
#define TL_CREA_TAB "Crear una Nueva Tabla"
#define TL_EDIT_TAB "Editar la Estructura"
#define TL_ADD_COLUMN "Agregar Columnas"
#define TL_CREATE_CODE "Generar SQL CREATE TABLE (para MySQL)"
#define TL_SQL_DUMP "Exportar una tabla a SQL Code"
#define TL_GEN_SELECT "Generar SQL SELECT..."
#define TL_GEN_INSERT "Generar SQL INSERT..."
#define TL_GEN_UPDATE "Generar SQL UPDATE..."
#define TL_EXP_FIRE "Exportar a SQL FireBird/Interbase 6"
#define TL_EXP_PQSQL "Exportar a PostgresSQL 9"
#define TL_EXP_ORA "Exportar a SQL Oracle"
#define TL_EXP_ANSI "Exportar a SQL ANSI"
#define TL_ABM_HMG "Generar Codigo ABM Harbour"
////////////////////////////////////////////////////////////////////////////
&&------------------------------------------------------------------------&&
&& FUNCION/PROC....: Ism_Operacion009( cpTitle )
&& AUTOR...........:
&& FECHA...........:
&& DESCRIPCION.....:
&&
&&------------------------------------------------------------------------&&
Procedure Ism_Operacion009( cpTitle )
LOCAL ahSocio := {'Codigo','Apellido','Nombre','D.N.I.','Fecha','Antiguedad'}
LOCAL awSocio := {100, 130, 180, 150, 100, 90}
DEFINE WINDOW wnfich9 AT 00,00 WIDTH nWidth HEIGHT 600 ;
TITLE 'Aplicacion ' + cpTitle ;
MODAL NOSIZE
DEFINE STATUSBAR
STATUSITEM 'msg'
STATUSITEM 'Reg. Actual' WIDTH 120
STATUSITEM 'Cantidad' WIDTH 120
END STATUSBAR
DEFINE TOOLBAR tbar009 FLAT BUTTONSIZE 100,30 BOTTOM RIGHTTEXT
BUTTON cmd001 CAPTION '&Agregar' ;
ACTION Nil
BUTTON cmd002 CAPTION '&Grabar' ;
ACTION Nil
BUTTON cmd003 CAPTION '&Editar' ;
ACTION Nil
BUTTON cmd004 CAPTION '&Copiar a Excel' ;
ACTION Nil
BUTTON cmd005 CAPTION '&Cerrar' ;
ACTION wnfich9.Release()
END TOOLBAR
DEFINE TAB tab009 OF wnfich9 AT 003,001 ;
WIDTH nWidth HEIGHT 500 ;
FONT "Consolas" SIZE 10 ;
VALUE 1 ;
BUTTONS FLAT
PAGE 'Todos'
@028,001 GRID gd009 WIDTH nWidth HEIGHT 470 ;
FONT "Consolas" SIZE 10 ;
HEADERS ahSocio ;
WIDTHS awSocio ;
ITEMS NIL ;
VALUE 1 ;
ON DBLCLICK ISM_GridTaskClick()
END PAGE
PAGE 'Registro'
END PAGE
END TAB
@009,196 LABEL lbsearch VALUE 'BUSCAR';
FONT "Consolas" SIZE 10 BOLD ITALIC ;
FONTCOLOR BLUE ;
TRANSPARENT
@003,250 TEXTBOX txtsearch VALUE ' ';
WIDTH 525 HEIGHT 25 ;
FONT "Consolas" SIZE 11
@003,nWidth-115 BUTTON cmdsearch CAPTION '&BUSCAR';
WIDTH 100 HEIGHT 25 ;
FONT "Consolas" SIZE 10;
ACTION MsgInfo("Aun lo esta desarrollando Gavernick", "Tareas pendientes")
END WINDOW
wnfich9.Center
wnfich9.Activate
Return
&&------------------------------------------------------------------------&&
&& FUNCION/PROC....: ISM_GridTaskClick()
&& AUTOR...........:
&& FECHA...........:
&& DESCRIPCION.....:
&&
&&------------------------------------------------------------------------&&
Procedure ISM_GridTaskClick()
Return Nil
/////////////////////////////////////// File: opendicc.prg"
////////////////////////////////////////////////////////////////////////////
#include "minigui.ch"
#include "include\OpenDicc.ch"
#define CR_LF hb_OsNewLine()
#define TRUE .T.
#define FALSE .F.
#define FinLinea Chr(13) + Chr(10)
#define SISTEMA "OpenDicc Version 1.0.99"
#define Colorito 0xff000000
FUNCTION Main()
Local i := 0
LOCAL aItems := {}
Local aNomTab := {}
Local aComent := {}
PUBLIC nWidth := 0
PUBLIC nHeight :=0
REQUEST DBFCDX
RddSetDefault( "DBFCDX" )
USE TDESTAB.ism SHARED NEW
SET INDEX TO TDESTAB
nWidth := GetDesktopWidth()-2
nHeight := GetDesktopHeight()-50
aNomTab := ARRAY( TDESTAB->(RecCount()))
aComent := ARRAY( TDESTAB->(RecCount()))
aItems := ARRAY( TDESTAB->(RecCount()))
SELECT TDESTAB
DbGoTop()
For i := 1 To TDESTAB->(RECCOUNT())
aNomTab [i] := TDESTAB->NOMTAB
aComent [i] := TDESTAB->DESTAB
aItems [i] := { aNomTab [i], aComent [i]}
TDESTAB->(DbSkip())
Next
Close TDESTAB
DEFINE WINDOW winmain AT 0,0 WIDTH nWidth HEIGHT nHeight ;
TITLE SISTEMA MAIN NOMAXIMIZE ;
On RELEASE CloseDbf()
DEFINE TOOLBAR tBar1a BUTTONSIZE 50,50 FLAT BORDER
BUTTON cmd001 ;
PICTURE 'L81NUEVO' ; // PICTURE 'L81HOME' ;
ACTION Ism_Operacion009('NUEVA TABLA') TOOLTIP 'NUEVA TABLA'
BUTTON cmd002 ;
PICTURE 'L81CALC' ;
ACTION Ism_Operacion009('EDICION DE ESTRUCTURA TABLA' ) TOOLTIP 'EDICION DE ESTRUCTURA TABLA'
BUTTON cmd003 ;
PICTURE 'L81WRITE' ;
ACTION Ism_Operacion009('GENERAR DE CODIGO XBASE') TOOLTIP 'GENERAR DE CODIGO XBASE'
BUTTON cmd004 ;
PICTURE 'L81STAR' ;
ACTION Ism_Operacion009('GENERAR DE CODIGO MYSQL/MARIADB') TOOLTIP 'GENERAR DE CODIGO MYSQL/MARIADB'
BUTTON cmd005 ;
PICTURE 'L81STAR2' ;
ACTION Ism_Operacion009('GENERAR DE CODIGO SQLITE') TOOLTIP 'GENERAR DE CODIGO SQLITE'
BUTTON cmd006 ;
PICTURE 'L81FLAY' ;
ACTION Ism_Operacion009('GENERAR DE CODIGO FIREBIRD') TOOLTIP 'GENERAR DE CODIGO FIREBIRD'
BUTTON cmd007 ;
PICTURE 'L81FLORES' ;
ACTION Ism_Operacion009('GENERAR DE CODIGO ORACLE') TOOLTIP 'GENERAR DE CODIGO ORACLE'
BUTTON cmd008 ;
PICTURE 'L81ABM12' ;
ACTION Ism_Operacion009('HERRAMIENTAS') TOOLTIP 'HERRAMIENTAS'
BUTTON cmd009 ;
PICTURE 'L81NOTES' ;
ACTION Ism_Operacion009('HERRAMIENTAS') TOOLTIP 'HERRAMIENTAS'
BUTTON cmd010 ;
PICTURE 'L81RUN' ;
ACTION Ism_Operacion009('Ejecutar') TOOLTIP 'Ejecutar'
BUTTON cmd011 ;
PICTURE 'L81CONFI2' ;
ACTION Ism_Operacion009('Configuracion') TOOLTIP 'Configuracion'
BUTTON cmd012 ;
PICTURE 'L81TOOLS' ;
ACTION Ism_Operacion009('Herramientas') TOOLTIP 'Herramientas'
BUTTON cmdSalir ;
PICTURE 'L81CANDA' ;
ACTION SalirDelSistema() TOOLTIP 'Salir de OpenDicc...'
END TOOLBAR
@056,001 GRID gdInicial ;
WIDTH nWidth-4 HEIGHT nHeight-80 ;
HEADERS {'Tabla','Descripcion'} ;
WIDTHS { 100, 550 } ;
FONT 'Courier' SIZE 9 ;
ITEMS aItems ;
FONTCOLOR BLUE ;
ON DBLCLICK OpenDicc_CallNewTab( This.Item(This.Value), This.Value )
END WINDOW
MAXIMIZE WINDOW winmain
ACTIVATE WINDOW winmain
RETURN NIL
*---------------------------------------------------------------------*
Function CloseDbf()
Close Databases
Return Nil
FUNCTION SalirDelSistema()
*---------------------------------------------------------------------*
If MSGYesNo( "Desea Salir del Sistema ??" , SISTEMA)
winmain.Release
EndIf
RETURN Nil
*---------------------------------------------------------------------*
FUNCTION OpenDicc_CallNewTab( aTabla, nItem )
OpenDicc_NuevaTabla(aTabla[1], ALLTRIM( aTabla[2] ) )
RETURN Nil
*---------------------------------------------------------------------*
FUNCTION LoadNumTabla( aTabla, nItem )
DEFINE WINDOW frmLoadTabla AT 0,0 WIDTH 500 HEIGHT 220 ;
TITLE 'Editando una tabla';
ICON 'HIJITUS';
MODAL ;
NOSIZE
@010, 010 FRAME grpNombre WIDTH 450 HEIGHT 120
@020, 020 LABEL lblNomTab VALUE 'Tabla' HEIGHT 24 ;
FONT 'Consolas' SIZE 12;
TRANSPARENT
@045, 020 LABEL lblDesTab VALUE 'Descripcion' HEIGHT 24 ;
FONT 'Consolas' SIZE 12;
TRANSPARENT
@020, 145 TEXTBOX txtNomTab ;
VALUE ALLTRIM(aTabla[1] );
WIDTH 90 HEIGHT 24 ;
FONT 'Courier' SIZE 09;
FONTCOLOR BLUE ;
MAXLENGTH 10
@047, 145 TEXTBOX txtDesTab ;
VALUE ALLTRIM( aTabla[2] ) ;
WIDTH 300 HEIGHT 24 ;
FONT 'Courier' SIZE 09;
FONTCOLOR BLUE ;
MAXLENGTH 70
@085, 183 BUTTON cmdOkey ;
CAPTION '&Ok' ;
WIDTH 60 HEIGHT 20 ;
NOTABSTOP ;
FLAT ;
ACTION Modifica_DesCripTabla( aTabla[1], nItem )
@085, 245 BUTTON cmdCancelar ;
CAPTION '&Cancelar' ;
WIDTH 60 HEIGHT 20 ;
NOTABSTOP ;
FLAT ;
ACTION frmLoadTabla.release
END WINDOW
CENTER WINDOW frmLoadTabla
ACTIVATE WINDOW frmLoadTabla
Return Nil
*---------------------------------------------------------------------*
FUNCTION Modifica_DesCripTabla( mTabla, nItem )
Local cNomTabla := Alltrim(frmLoadTabla.txtNomTab.VALUE)
Local cDesTabla := Alltrim(frmLoadTabla.txtDesTab.VALUE)
If cNomTabla == ''
MsgInfo( 'Nombre de la Tabla no puede estar vacío', 'Tabla' )
frmLoadTabla.txtNomTab.SetFocus
Return Nil
Endif
If cDesTabla == ''
MsgInfo( 'Descripcion de la Tabla no puede estar vacío', 'Descripcion' )
frmLoadTabla.txtDesTab.SetFocus
Return Nil
Endif
USE TDESTAB.ism NEW
SET INDEX TO TDESTAB
DbGoTop()
If TDESTAB->(DbSeek(mTabla))
REPLACE TDESTAB->NOMTAB WITH cNomTabla, ;
TDESTAB->DESTAB WITH cDesTabla
TDESTAB->(DBCOMMIT())
Endif
CLOSE TDESTAB
winmain.gdInicial.Item( nItem ) := { cNomTabla ,cDesTabla }
frmLoadTabla.release
RETURN NIL
FUNCTION PideNuevaTabla()
DEFINE WINDOW frmNuevaTabla AT 0,0 WIDTH 476 HEIGHT 170 ;
TITLE 'Editando una tabla'+ SISTEMA ;
ICON 'HIJITUS';
MODAL ;
NOSIZE
@010, 010 FRAME grpNombre WIDTH 450 HEIGHT 85
@020, 020 LABEL lblNomTab VALUE 'Tabla' HEIGHT 24 ;
FONT 'Consolas' SIZE 12;
TRANSPARENT
@045, 020 LABEL lblDesTab VALUE 'Descripcion' HEIGHT 24 ;
FONT 'Consolas' SIZE 12;
TRANSPARENT
@020, 145 TEXTBOX txtNomTab ;
VALUE '' ;
WIDTH 90 HEIGHT 24 ;
FONT 'Courier' SIZE 09;
FONTCOLOR BLUE ;
MAXLENGTH 10
@047, 145 TEXTBOX txtDesTab ;
VALUE '' ;
WIDTH 300 HEIGHT 24 ;
FONT 'Courier' SIZE 09;
FONTCOLOR BLUE ;
MAXLENGTH 70
@100, 160 BUTTON cmdOkey ;
CAPTION '&Grabar' ;
WIDTH 80 HEIGHT 25 ;
NOTABSTOP ;
FLAT;
ACTION PasaOPNewTab()
@100, 245 BUTTON cmdCancelar ;
CAPTION '&Cancelar' ;
WIDTH 80 HEIGHT 25 ;
NOTABSTOP ;
FLAT ;
ACTION frmNuevaTabla.release
END WINDOW
CENTER WINDOW frmNuevaTabla
ACTIVATE WINDOW frmNuevaTabla
Return Nil
FUNCTION PasaOPNewTab()
Local cNomTabla := Alltrim(frmNuevaTabla.txtNomTab.VALUE)
Local cDesTabla := Alltrim(frmNuevaTabla.txtDesTab.VALUE)
If cNomTabla == ''
MsgInfo( 'Nombre de la Tabla no puede estar vacío', 'Tabla' )
frmNuevaTabla.txtNomTab.SetFocus
Return Nil
Endif
If cDesTabla == ''
MsgInfo( 'Descripcion de la Tabla no puede estar vacío', 'Descripcion' )
frmNuevaTabla.txtDesTab.SetFocus
Return Nil
Endif
USE TDESTAB.ism SHARED NEW
SET INDEX TO TDESTAB
DbGoTop()
If TDESTAB->(DbSeek(cNomTabla))
MsgInfo( 'Tabla:[ ' + cNomTabla + ' ] ya existente', 'Error' )
frmNuevaTabla.txtNomTab.SetFocus
CLOSE TDESTAB
Return Nil
Endif
CLOSE TDESTAB
frmNuevaTabla.release
OpenDicc_NuevaTabla(cNomTabla, cDesTabla)
Return Nil
#Include "Include\OPNewTab.prg"
#include "Include\OD_Tasks.prg"
/////////////////////////////////////// File: OPNewTab.prg"
#Include "MiniGUI.ch"
*---------------------------------------------------------------------*
Function OpenDicc_NuevaTabla(cNomTabla, cDescripTabla)
*---------------------------------------------------------------------*
Local Titulito := "[ " + cNomTabla + " ] - [ " + cDescripTabla + " ]" + SISTEMA
DEFINE WINDOW wnnewtab AT 0,0 WIDTH 800 HEIGHT 600 ;
TITLE Titulito ;
MODAL ;
ON INIT NTab_Initialize()
@003,002 FRAME fmeEdicion WIDTH 790 HEIGHT 88 OPAQUE
@008,010 LABEL lblNombre VALUE 'Nombre' HEIGHT 18;
FONT 'Consolas' SIZE 10 ;
FONTCOLOR BLUE TRANSPARENT
@024,010 TEXTBOX txtNOMFLD VALUE '' WIDTH 140 HEIGHT 22;
MAXLENGTH 10;
FONT 'Consolas' SIZE 10 UPPERCASE
@008,154 LABEL lblTipo VALUE 'Tipo de dato' HEIGHT 18;
FONT 'Consolas' SIZE 10 ;
FONTCOLOR BLUE TRANSPARENT
@024,154 COMBOBOX cbdatatype WIDTH 180 ;
ITEMS { 'CHARACTER','NUMERIC','DATE','LOGICAL','MEMO' } ;
VALUE 1 ;
FONT 'Consolas' SIZE 10;
ON CHANGE OPN_ActivoDecimales()
ON LOSTFOCUS OPN_ActivoDecimales()
@008,346 LABEL lblLogitud VALUE 'Long.' HEIGHT 18;
FONT 'Consolas' SIZE 10 ;
FONTCOLOR BLUE TRANSPARENT
@024,346 TEXTBOX txtlongi VALUE '' WIDTH 50 HEIGHT 22;
FONT 'Consolas' SIZE 10;
MAXLENGTH 4 ;
NUMERIC
@008,404 LABEL lblDecimal VALUE 'Dec.' HEIGHT 18;
FONT 'Consolas' SIZE 10 ;
FONTCOLOR BLUE TRANSPARENT
@024,404 TEXTBOX txtdecim VALUE '' WIDTH 40 HEIGHT 22;
FONT 'Consolas' SIZE 10;
MAXLENGTH 2 ;
NUMERIC
@012,470 CHECKBOX chpnulos CAPTION 'Nulos' ;
HEIGHT 18 FONT 'Consolas' SIZE 10;
FONTCOLOR BLUE TRANSPARENT;
VALUE .F.
@032,470 CHECKBOX chpkey CAPTION 'Primary Key';
HEIGHT 18 FONT 'Consolas' SIZE 10;
FONTCOLOR BLUE TRANSPARENT;
VALUE .F.
@048,010 LABEL lblDisplay VALUE 'Desc.Abreviada' HEIGHT 18;
FONT 'Consolas' SIZE 10 ;
FONTCOLOR BLUE TRANSPARENT
@065,010 TEXTBOX txtabrev VALUE '' WIDTH 180 HEIGHT 20;
FONT 'Consolas' SIZE 10;
MAXLENGTH 20 UPPERCASE
@048,190 LABEL lblComent VALUE 'Descripción' HEIGHT 18;
FONT 'Consolas' SIZE 10 ;
FONTCOLOR BLUE TRANSPARENT
@065,190 TEXTBOX txtcomenta VALUE '' WIDTH 430 HEIGHT 20;
FONT 'Consolas' SIZE 10;
MAXLENGTH 60 UPPERCASE
@012,580 CHECKBOX txtENALTA CAPTION 'Alta' ;
HEIGHT 20 FONT 'Consolas' SIZE 10;
FONTCOLOR BLUE TRANSPARENT;
VALUE .F.
@032,580 CHECKBOX txtENMODI CAPTION 'Modificacion';
HEIGHT 20 FONT 'Consolas' SIZE 10;
FONTCOLOR BLUE TRANSPARENT;
VALUE .F.
@012,690 CHECKBOX txtENBAJA CAPTION 'Baja' ;
HEIGHT 20 FONT 'Consolas' SIZE 10;
FONTCOLOR BLUE TRANSPARENT;
VALUE .F.
@032,690 CHECKBOX txtENGRID CAPTION 'Grillas' ;
HEIGHT 20 FONT 'Consolas' SIZE 10;
FONTCOLOR BLUE TRANSPARENT;
VALUE .F.
@090,002 FRAME fmeGrilla WIDTH 790 HEIGHT 446 OPAQUE
@094,005 GRID grdStruct ;
WIDTH 785 HEIGHT 430;
HEADERS {'Nombre','Tipo','Long.','Dec.','Null','P.K.','Display','Descripcion','Alta','Modif.','Baja','Grids'} ;
WIDTHS { 100, 80, 50, 50, 50, 50, 150, 200, 60, 60, 60, 60} ;
FONT 'Consolas' SIZE 10;
FONTCOLOR BLUE
@537,002 FRAME fmeCombos WIDTH 790 HEIGHT 038 OPAQUE
@542,080 BUTTON OpBtn01 CAPTION '&Nuevo' WIDTH 78 HEIGHT 28 ;
FONT 'Consolas' SIZE 12 ;
TOOLTIP 'Ingresar un Nuevo Registro';
FLAT
@542,160 BUTTON OpBtn02 CAPTION '&Grabar' WIDTH 78 HEIGHT 28 ;
FONT 'Consolas' SIZE 12 ;
TOOLTIP 'Grabar Registro';
FLAT ;
ACTION OPNew_Grabar(cNomTabla, cDescripTabla)
@542,240 BUTTON OpBtn03 CAPTION '&Editar' WIDTH 78 HEIGHT 28 ;
FONT 'Consolas' SIZE 12 ;
TOOLTIP 'Editar para modificar';
FLAT
@542,320 BUTTON OpBtn04 CAPTION 'Eli&minar' WIDTH 78 HEIGHT 28 ;
FONT 'Consolas' SIZE 12 ;
TOOLTIP 'Eliminar este registro';
FLAT
@542,400 BUTTON OpBtn05 CAPTION '&Imprimir' WIDTH 78 HEIGHT 28 ;
FONT 'Consolas' SIZE 12 ;
TOOLTIP 'Imprimir este registro';
FLAT
@542,480 BUTTON OpBtn06 CAPTION '&Salir' WIDTH 78 HEIGHT 28 ;
FONT 'Consolas' SIZE 12 ;
TOOLTIP 'Regresar a pantalla anterior';
FLAT ;
ACTION wnnewtab.Release
END WINDOW
wnnewtab.OpBtn01.Enabled := FALSE
wnnewtab.OpBtn02.Enabled := TRUE
wnnewtab.OpBtn03.Enabled := FALSE
wnnewtab.OpBtn04.Enabled := FALSE
wnnewtab.OpBtn05.Enabled := FALSE
wnnewtab.OpBtn06.Enabled := TRUE
CENTER WINDOW wnnewtab
ACTIVATE WINDOW wnnewtab
RETURN NIL
Function NTab_Initialize()
Return Nil
Function Regresar_a()
wnnewtab.release
Return Nil
Function OPNew_Grabar(cNomTabla, cDescripTabla)
Local cNombreCampo := Alltrim(wnnewtab.txtNOMFLD.VALUE)
Local nLongitud := wnnewtab.txtlongi.VALUE
Local nDecimales := wnnewtab.txtdecim.VALUE
Local cTipoDato := wnnewtab.cbdatatype.ITEM(wnnewtab.cbdatatype.VALUE)
Local lPrimaryKey := wnnewtab.chpkey.VALUE
Local lNulos := wnnewtab.chpnulos.VALUE
Local cDisplay := wnnewtab.txtabrev.VALUE
Local cComenta := wnnewtab.txtcomenta.VALUE
Local lAltas := wnnewtab.txtENALTA.VALUE
Local lBajas := wnnewtab.txtENBAJA.VALUE
Local lModifica := wnnewtab.txtENMODI.VALUE
Local lGrilla := wnnewtab.txtENGRID.VALUE
Local bNulos := LogicalToChar(lNulos )
Local bPrimaryKey := LogicalToChar(lPrimaryKey )
Local bAltas := LogicalToChar(lAltas )
Local bModifica := LogicalToChar(lModifica )
Local bBajas := LogicalToChar(lBajas )
Local bGrilla := LogicalToChar(lGrilla )
Local aItemNew := ARRAY( 1 )
If cNombreCampo == ''
MsgInfo( 'Nombre de campo no puede estar vacío', 'Nombre' )
wnnewtab.txtNOMFLD.SetFocus
Return Nil
Endif
If nLongitud == 0
MsgInfo( 'Longitud no puede ser 0', 'Longitud' )
wnnewtab.txtlongi.SetFocus
Return Nil
Endif
DO CASE
CASE cTipoDato == "CHARACTER"
nDecimales := 0
CASE cTipoDato == "NUMERIC"
If nLongitud > 12
MsgInfo( 'Longitud no puede ser Mayor a 12', 'Longitud' )
wnnewtab.txtlongi.SetFocus
Return Nil
Endif
If nDecimales > 8
MsgInfo( 'Decimal no puede ser mayor a 8', 'Decimales' )
wnnewtab.txtdecim.SetFocus
Return Nil
Endif
CASE "DATE"
nDecimales := 0
nLongitud := 8
CASE "LOGICAL"
nDecimales := 0
nLongitud := 1
CASE "MEMO"
nDecimales := 0
nLongitud := 10
ENDCASE
If cDisplay == ''
MsgInfo( 'Descripción del cambo no puede estas vacío', 'Display' )
wnnewtab.txtNOMFLD.SetFocus
Return Nil
Endif
If cComenta == ''
MsgInfo( 'Descripción del cambo no puede estas vacío', 'Descripción' )
wnnewtab.txtNOMFLD.SetFocus
Return Nil
Endif
If MSGYesNo( "Confirma ?" , SISTEMA)
USE TDESTAB.ism SHARED NEW
DbGoBottom()
APPEND BLANK
REPLACE TDESTAB->NOMTAB WITH cNomTabla
REPLACE TDESTAB->DESTAB WITH cDescripTabla
CLOSE TDESTAB
USE TDICTAB SHARED NEW
APPEND BLANK
REPLACE NOMTAB WITH cNomTabla
REPLACE NOMFLD WITH cNombreCampo
REPLACE TYPEFD WITH cTipoDato
REPLACE LONGTD WITH nLongitud
REPLACE DECIML WITH nDecimales
REPLACE NNULOS WITH lNulos
REPLACE ISPKEY WITH lPrimaryKey
REPLACE DISPLY WITH cDisplay
REPLACE COMENT WITH cComenta
REPLACE ENALTA WITH lAltas
REPLACE ENMODI WITH lModifica
REPLACE ENBAJA WITH lBajas
REPLACE ENGRID WITH lGrilla
REPLACE ENCONS WITH .T.
REPLACE ENLIST WITH .T.
CLOSE TDICTAB
EndIf
wnnewtab.grdStruct.AddItem ( { cNombreCampo, cTipoDato, nLongitud, nDecimales, bNulos, bPrimaryKey, cDisplay, cComenta, bAltas, bModifica, bBajas, bGrilla, "S", "S" } )
Return Nil
FUNCTION LogicalToChar(lLogic )
Local cRet := "N"
IF lLogic
cRet := "S"
Endif
Return cRet
Function OPN_ActivoDecimales()
Local bValor := wnnewtab.cbdatatype.ITEM(wnnewtab.cbdatatype.VALUE)
DO CASE
CASE bValor = "CHARACTER"
wnnewtab.txtdecim.Value := 0
wnnewtab.txtdecim.Enabled := FALSE
wnnewtab.txtlongi.Enabled := TRUE
CASE bValor = "NUMERIC"
wnnewtab.txtdecim.Enabled := TRUE
wnnewtab.txtlongi.Enabled := TRUE
CASE bValor = "DATE"
wnnewtab.txtdecim.Value := 0
wnnewtab.txtdecim.Enabled := FALSE
wnnewtab.txtlongi.VALUE := 8
wnnewtab.txtlongi.Enabled := FALSE
CASE bValor = "LOGICAL"
wnnewtab.txtdecim.Value := 0
wnnewtab.txtdecim.Enabled := FALSE
wnnewtab.txtlongi.VALUE := 1
wnnewtab.txtlongi.Enabled := FALSE
CASE bValor = "MEMO"
wnnewtab.txtdecim.Value := 0
wnnewtab.txtdecim.Enabled := FALSE
wnnewtab.txtlongi.VALUE := 10
wnnewtab.txtlongi.Enabled := FALSE
ENDCASE
Return Nil
FUNCTION SearchRepository(cDbf, aNombre)
Local xNombre := aNombre
// ***********************************
// MSGINFO ( cDbf, aNombre )
// ***********************************
USE TDICTAB SHARED NEW
SET INDEX TO TDICTAB
If TDICTAB->(DBSEEK( aNombre ))
xNombre := TDICTAB->Disply
EndIf
Close TDICTAB
Return xNombre
// .res
L81STAR PNG Resources\L81STAR.png
L81STAR2 PNG Resources\L81STAR2.png
L81FLAY PNG Resources\L81FLAY.png
L81FLORES PNG Resources\L81FLORES.png
L81HOME PNG Resources\L81HOME.png
L81ABM12 PNG Resources\L81ABM12.png
L81CALC PNG Resources\L81CALC.png
L81CANCEL PNG Resources\L81CANCEL.png
L81CANDA PNG Resources\L81CANDA.png
L81COMM PNG Resources\L81COMM.png
L81CONFI2 PNG Resources\L81CONFI2.png
L81CONFIG PNG Resources\L81CONFIG.png
L81LOOK PNG Resources\L81LOOK.png
L81NOTES PNG Resources\L81NOTES.png
L81NUEVO PNG Resources\L81NUEVO.png
L81OKK PNG Resources\L81OKK.png
L81PDF PNG Resources\L81PDF.png
LEM81 PNG Resources\L81PICA.png
L81RUN PNG Resources\L81RUN.png
L81TOOLS PNG Resources\L81TOOLS.png
L81WRITE PNG Resources\L81WRITE.png
L81SPLASH PNG Resources\L81Splash.png
L81ATLASII ICON Resources\AtlasII.ico