Clipper/FiveWin - Consola de Errores en harbour

 
Vista:
sin imagen de perfil

Consola de Errores en harbour

Publicado por Andrés (1 intervención) el 04/04/2018 21:51:14
Hola.
Hace tiempo he estado trabajando con harbour a 32 bits por un largo tiempo por distintas cuestiones, ahora que quiero migrar a 64bits se me presenta un problema puesto que el servidor local que uso se llama "WebSite" ya es viejo y no se encuentra una versión para 64 bits, he decidido usar IIS pero al momento de ejecutar el CGI no me muestra en pantalla la ejecución, si no que lo realiza en segundo plano. Esto me representa un problema puesto que en caso de que ocurra algún error en el código no podria ver cual es dicho error.
Ejemplo:
error
Existe la opción de que se pueda hacer esto en IIS.
También he intentado hacerlo con Apache pero el resultado es el mismo, corre el proceso en segundo plano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Consola de Errores en harbour

Publicado por Geavernick (1 intervención) el 10/05/2024 23:26:23
migrado a minigui

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
/////////////////////////////////////// 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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar