Advertisement
Guest User

Untitled

a guest
Mar 27th, 2018
467
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Esta es la respuesta para una consulta de como armar un select a partir de datos contenidos en una tabla
  2.  
  3. La tabla tablas contiene dos campos:
  4.  
  5. tablename: Nombre de las tablas. ej: Clientes, Camiones, etc
  6. fieldname: Son los campos de las tabla
  7. CLOSE DATABASE
  8.  
  9. LOCAL oGenerador, lcCadenaSQL
  10. oGenerador = CREATEOBJECT('generadorSQL')
  11.  
  12. lcCadenaSQL = oGenerador.getSelect('clientes')
  13. WAIT WINDOWS lcCadenaSQL
  14. *
  15. *|--------------------------------------------------------------------------
  16. *| generadorSQL.prg
  17. *|--------------------------------------------------------------------------
  18. *| Archivo principal del sistema
  19. *| Author......: Raúl Jrz (raul.jrz@gmail.com)
  20. *| Created.....:
  21. *| Purpose.....:
  22. *| Revisions...:
  23. *|
  24. */
  25. *-----------------------------------------------------------------------------------*
  26. DEFINE CLASS generadorSQL AS Custom
  27. *
  28. *-----------------------------------------------------------------------------------*
  29.  
  30.     *----------------------------------------------------------------------------*
  31.     FUNCTION init
  32.     *
  33.     *----------------------------------------------------------------------------*
  34.  
  35.     ENDFUNC
  36.    
  37.     *----------------------------------------------------------------------------*
  38.     FUNCTION getSelect
  39.     LPARAMETERS tcTableName
  40.     *
  41.     *----------------------------------------------------------------------------*
  42.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  43.         lcTableName=ALLTRIM(LOWER(tcTableName))
  44.         THIS.abrirTablaPrincipal()
  45.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  46.  
  47.         IF RECCOUNT('tmpTablas')>0 THEN
  48.             lcListField = ''
  49.             lcListWhere = ''
  50.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  51.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  52.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  53.             ENDSCAN
  54.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  55.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  56.            
  57.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  58.                                 +' WHERE '+lcListWhere
  59.         ENDIF
  60.        
  61.         IF USED('tmpTablas') THEN
  62.             USE IN tmpTablas
  63.         ENDIF
  64.         RETURN lcSelectReturn
  65.     ENDFUNC
  66.  
  67.     *----------------------------------------------------------------------------*
  68.     FUNCTION generaCursorTemporal
  69.     LPARAMETERS tcTableName, tcCursorName
  70.     *
  71.     *----------------------------------------------------------------------------*
  72.         SELECT tablename, fieldname ;
  73.             FROM tablas;
  74.                 WHERE tablas.tablename=tcTableName;
  75.                 INTO CURSOR (tcCursorName)
  76.     ENDFUNC
  77.    
  78.     *----------------------------------------------------------------------------*
  79.     FUNCTION abrirTablaPrincipal
  80.     *
  81.     *----------------------------------------------------------------------------*
  82.         IF !USED('tablas') THEN
  83.             IF !FILE('tablas.dbf') THEN
  84.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  85.                 USE IN tablas
  86.             ENDIF
  87.             USE tablas IN 0
  88.         ENDIF
  89.     ENDFUNC
  90.        
  91.     *----------------------------------------------------------------------------*
  92.     FUNCTION destroy
  93.     *
  94.     *----------------------------------------------------------------------------*
  95.  
  96.     ENDFUNC
  97.    
  98. ENDDEFI
  99. *
  100. *|--------------------------------------------------------------------------
  101. *| generadorSQL.prg
  102. *|--------------------------------------------------------------------------
  103. *| Archivo principal del sistema
  104. *| Author......: Raúl Jrz (raul.jrz@gmail.com)
  105. *| Created.....:
  106. *| Purpose.....:
  107. *| Revisions...:
  108. *|
  109. */
  110. *-----------------------------------------------------------------------------------*
  111. DEFINE CLASS generadorSQL AS Custom
  112. *
  113. *-----------------------------------------------------------------------------------*
  114.  
  115.     *----------------------------------------------------------------------------*
  116.     FUNCTION init
  117.     *
  118.     *----------------------------------------------------------------------------*
  119.  
  120.     ENDFUNC
  121.    
  122.     *----------------------------------------------------------------------------*
  123.     FUNCTION getSelect
  124.     LPARAMETERS tcTableName
  125.     *
  126.     *----------------------------------------------------------------------------*
  127.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  128.         lcTableName=ALLTRIM(LOWER(tcTableName))
  129.         THIS.abrirTablaPrincipal()
  130.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  131.  
  132.         IF RECCOUNT('tmpTablas')>0 THEN
  133.             lcListField = ''
  134.             lcListWhere = ''
  135.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  136.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  137.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  138.             ENDSCAN
  139.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  140.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  141.            
  142.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  143.                                 +' WHERE '+lcListWhere
  144.         ENDIF
  145.        
  146.         IF USED('tmpTablas') THEN
  147.             USE IN tmpTablas
  148.         ENDIF
  149.         RETURN lcSelectReturn
  150.     ENDFUNC
  151.  
  152.     *----------------------------------------------------------------------------*
  153.     FUNCTION generaCursorTemporal
  154.     LPARAMETERS tcTableName, tcCursorName
  155.     *
  156.     *----------------------------------------------------------------------------*
  157.         SELECT tablename, fieldname ;
  158.             FROM tablas;
  159.                 WHERE tablas.tablename=tcTableName;
  160.                 INTO CURSOR (tcCursorName)
  161.     ENDFUNC
  162.    
  163.     *----------------------------------------------------------------------------*
  164.     FUNCTION abrirTablaPrincipal
  165.     *
  166.     *----------------------------------------------------------------------------*
  167.         IF !USED('tablas') THEN
  168.             IF !FILE('tablas.dbf') THEN
  169.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  170.                 USE IN tablas
  171.             ENDIF
  172.             USE tablas IN 0
  173.         ENDIF
  174.     ENDFUNC
  175.        
  176.     *----------------------------------------------------------------------------*
  177.     FUNCTION destroy
  178.     *
  179.     *----------------------------------------------------------------------------*
  180.  
  181.     ENDFUNC
  182.    
  183. ENDDEFI
  184. *|--------------------------------------------------------------------------
  185. *| generadorSQL.prg
  186. *|--------------------------------------------------------------------------
  187. *| Archivo principal del sistema
  188. *| Author......: Raúl Jrz (raul.jrz@gmail.com)
  189. *| Created.....:
  190. *| Purpose.....:
  191. *| Revisions...:
  192. *|
  193. */
  194. *-----------------------------------------------------------------------------------*
  195. DEFINE CLASS generadorSQL AS Custom
  196. *
  197. *-----------------------------------------------------------------------------------*
  198.  
  199.     *----------------------------------------------------------------------------*
  200.     FUNCTION init
  201.     *
  202.     *----------------------------------------------------------------------------*
  203.  
  204.     ENDFUNC
  205.    
  206.     *----------------------------------------------------------------------------*
  207.     FUNCTION getSelect
  208.     LPARAMETERS tcTableName
  209.     *
  210.     *----------------------------------------------------------------------------*
  211.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  212.         lcTableName=ALLTRIM(LOWER(tcTableName))
  213.         THIS.abrirTablaPrincipal()
  214.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  215.  
  216.         IF RECCOUNT('tmpTablas')>0 THEN
  217.             lcListField = ''
  218.             lcListWhere = ''
  219.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  220.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  221.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  222.             ENDSCAN
  223.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  224.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  225.            
  226.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  227.                                 +' WHERE '+lcListWhere
  228.         ENDIF
  229.        
  230.         IF USED('tmpTablas') THEN
  231.             USE IN tmpTablas
  232.         ENDIF
  233.         RETURN lcSelectReturn
  234.     ENDFUNC
  235.  
  236.     *----------------------------------------------------------------------------*
  237.     FUNCTION generaCursorTemporal
  238.     LPARAMETERS tcTableName, tcCursorName
  239.     *
  240.     *----------------------------------------------------------------------------*
  241.         SELECT tablename, fieldname ;
  242.             FROM tablas;
  243.                 WHERE tablas.tablename=tcTableName;
  244.                 INTO CURSOR (tcCursorName)
  245.     ENDFUNC
  246.    
  247.     *----------------------------------------------------------------------------*
  248.     FUNCTION abrirTablaPrincipal
  249.     *
  250.     *----------------------------------------------------------------------------*
  251.         IF !USED('tablas') THEN
  252.             IF !FILE('tablas.dbf') THEN
  253.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  254.                 USE IN tablas
  255.             ENDIF
  256.             USE tablas IN 0
  257.         ENDIF
  258.     ENDFUNC
  259.        
  260.     *----------------------------------------------------------------------------*
  261.     FUNCTION destroy
  262.     *
  263.     *----------------------------------------------------------------------------*
  264.  
  265.     ENDFUNC
  266.    
  267. ENDDEFI
  268. *| generadorSQL.prg
  269. *|--------------------------------------------------------------------------
  270. *| Archivo principal del sistema
  271. *| Author......: Raúl Jrz (raul.jrz@gmail.com)
  272. *| Created.....:
  273. *| Purpose.....:
  274. *| Revisions...:
  275. *|
  276. */
  277. *-----------------------------------------------------------------------------------*
  278. DEFINE CLASS generadorSQL AS Custom
  279. *
  280. *-----------------------------------------------------------------------------------*
  281.  
  282.     *----------------------------------------------------------------------------*
  283.     FUNCTION init
  284.     *
  285.     *----------------------------------------------------------------------------*
  286.  
  287.     ENDFUNC
  288.    
  289.     *----------------------------------------------------------------------------*
  290.     FUNCTION getSelect
  291.     LPARAMETERS tcTableName
  292.     *
  293.     *----------------------------------------------------------------------------*
  294.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  295.         lcTableName=ALLTRIM(LOWER(tcTableName))
  296.         THIS.abrirTablaPrincipal()
  297.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  298.  
  299.         IF RECCOUNT('tmpTablas')>0 THEN
  300.             lcListField = ''
  301.             lcListWhere = ''
  302.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  303.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  304.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  305.             ENDSCAN
  306.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  307.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  308.            
  309.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  310.                                 +' WHERE '+lcListWhere
  311.         ENDIF
  312.        
  313.         IF USED('tmpTablas') THEN
  314.             USE IN tmpTablas
  315.         ENDIF
  316.         RETURN lcSelectReturn
  317.     ENDFUNC
  318.  
  319.     *----------------------------------------------------------------------------*
  320.     FUNCTION generaCursorTemporal
  321.     LPARAMETERS tcTableName, tcCursorName
  322.     *
  323.     *----------------------------------------------------------------------------*
  324.         SELECT tablename, fieldname ;
  325.             FROM tablas;
  326.                 WHERE tablas.tablename=tcTableName;
  327.                 INTO CURSOR (tcCursorName)
  328.     ENDFUNC
  329.    
  330.     *----------------------------------------------------------------------------*
  331.     FUNCTION abrirTablaPrincipal
  332.     *
  333.     *----------------------------------------------------------------------------*
  334.         IF !USED('tablas') THEN
  335.             IF !FILE('tablas.dbf') THEN
  336.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  337.                 USE IN tablas
  338.             ENDIF
  339.             USE tablas IN 0
  340.         ENDIF
  341.     ENDFUNC
  342.        
  343.     *----------------------------------------------------------------------------*
  344.     FUNCTION destroy
  345.     *
  346.     *----------------------------------------------------------------------------*
  347.  
  348.     ENDFUNC
  349.    
  350. ENDDEFI
  351. *|--------------------------------------------------------------------------
  352. *| Archivo principal del sistema
  353. *| Author......: Raúl Jrz (raul.jrz@gmail.com)
  354. *| Created.....:
  355. *| Purpose.....:
  356. *| Revisions...:
  357. *|
  358. */
  359. *-----------------------------------------------------------------------------------*
  360. DEFINE CLASS generadorSQL AS Custom
  361. *
  362. *-----------------------------------------------------------------------------------*
  363.  
  364.     *----------------------------------------------------------------------------*
  365.     FUNCTION init
  366.     *
  367.     *----------------------------------------------------------------------------*
  368.  
  369.     ENDFUNC
  370.    
  371.     *----------------------------------------------------------------------------*
  372.     FUNCTION getSelect
  373.     LPARAMETERS tcTableName
  374.     *
  375.     *----------------------------------------------------------------------------*
  376.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  377.         lcTableName=ALLTRIM(LOWER(tcTableName))
  378.         THIS.abrirTablaPrincipal()
  379.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  380.  
  381.         IF RECCOUNT('tmpTablas')>0 THEN
  382.             lcListField = ''
  383.             lcListWhere = ''
  384.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  385.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  386.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  387.             ENDSCAN
  388.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  389.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  390.            
  391.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  392.                                 +' WHERE '+lcListWhere
  393.         ENDIF
  394.        
  395.         IF USED('tmpTablas') THEN
  396.             USE IN tmpTablas
  397.         ENDIF
  398.         RETURN lcSelectReturn
  399.     ENDFUNC
  400.  
  401.     *----------------------------------------------------------------------------*
  402.     FUNCTION generaCursorTemporal
  403.     LPARAMETERS tcTableName, tcCursorName
  404.     *
  405.     *----------------------------------------------------------------------------*
  406.         SELECT tablename, fieldname ;
  407.             FROM tablas;
  408.                 WHERE tablas.tablename=tcTableName;
  409.                 INTO CURSOR (tcCursorName)
  410.     ENDFUNC
  411.    
  412.     *----------------------------------------------------------------------------*
  413.     FUNCTION abrirTablaPrincipal
  414.     *
  415.     *----------------------------------------------------------------------------*
  416.         IF !USED('tablas') THEN
  417.             IF !FILE('tablas.dbf') THEN
  418.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  419.                 USE IN tablas
  420.             ENDIF
  421.             USE tablas IN 0
  422.         ENDIF
  423.     ENDFUNC
  424.        
  425.     *----------------------------------------------------------------------------*
  426.     FUNCTION destroy
  427.     *
  428.     *----------------------------------------------------------------------------*
  429.  
  430.     ENDFUNC
  431.    
  432. ENDDEFI
  433. *| Archivo principal del sistema
  434. *| Author......: Raúl Jrz (raul.jrz@gmail.com)
  435. *| Created.....:
  436. *| Purpose.....:
  437. *| Revisions...:
  438. *|
  439. */
  440. *-----------------------------------------------------------------------------------*
  441. DEFINE CLASS generadorSQL AS Custom
  442. *
  443. *-----------------------------------------------------------------------------------*
  444.  
  445.     *----------------------------------------------------------------------------*
  446.     FUNCTION init
  447.     *
  448.     *----------------------------------------------------------------------------*
  449.  
  450.     ENDFUNC
  451.    
  452.     *----------------------------------------------------------------------------*
  453.     FUNCTION getSelect
  454.     LPARAMETERS tcTableName
  455.     *
  456.     *----------------------------------------------------------------------------*
  457.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  458.         lcTableName=ALLTRIM(LOWER(tcTableName))
  459.         THIS.abrirTablaPrincipal()
  460.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  461.  
  462.         IF RECCOUNT('tmpTablas')>0 THEN
  463.             lcListField = ''
  464.             lcListWhere = ''
  465.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  466.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  467.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  468.             ENDSCAN
  469.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  470.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  471.            
  472.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  473.                                 +' WHERE '+lcListWhere
  474.         ENDIF
  475.        
  476.         IF USED('tmpTablas') THEN
  477.             USE IN tmpTablas
  478.         ENDIF
  479.         RETURN lcSelectReturn
  480.     ENDFUNC
  481.  
  482.     *----------------------------------------------------------------------------*
  483.     FUNCTION generaCursorTemporal
  484.     LPARAMETERS tcTableName, tcCursorName
  485.     *
  486.     *----------------------------------------------------------------------------*
  487.         SELECT tablename, fieldname ;
  488.             FROM tablas;
  489.                 WHERE tablas.tablename=tcTableName;
  490.                 INTO CURSOR (tcCursorName)
  491.     ENDFUNC
  492.    
  493.     *----------------------------------------------------------------------------*
  494.     FUNCTION abrirTablaPrincipal
  495.     *
  496.     *----------------------------------------------------------------------------*
  497.         IF !USED('tablas') THEN
  498.             IF !FILE('tablas.dbf') THEN
  499.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  500.                 USE IN tablas
  501.             ENDIF
  502.             USE tablas IN 0
  503.         ENDIF
  504.     ENDFUNC
  505.        
  506.     *----------------------------------------------------------------------------*
  507.     FUNCTION destroy
  508.     *
  509.     *----------------------------------------------------------------------------*
  510.  
  511.     ENDFUNC
  512.    
  513. ENDDEFI
  514. *| Author......: Raúl Jrz (raul.jrz@gmail.com)
  515. *| Created.....:
  516. *| Purpose.....:
  517. *| Revisions...:
  518. *|
  519. */
  520. *-----------------------------------------------------------------------------------*
  521. DEFINE CLASS generadorSQL AS Custom
  522. *
  523. *-----------------------------------------------------------------------------------*
  524.  
  525.     *----------------------------------------------------------------------------*
  526.     FUNCTION init
  527.     *
  528.     *----------------------------------------------------------------------------*
  529.  
  530.     ENDFUNC
  531.    
  532.     *----------------------------------------------------------------------------*
  533.     FUNCTION getSelect
  534.     LPARAMETERS tcTableName
  535.     *
  536.     *----------------------------------------------------------------------------*
  537.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  538.         lcTableName=ALLTRIM(LOWER(tcTableName))
  539.         THIS.abrirTablaPrincipal()
  540.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  541.  
  542.         IF RECCOUNT('tmpTablas')>0 THEN
  543.             lcListField = ''
  544.             lcListWhere = ''
  545.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  546.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  547.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  548.             ENDSCAN
  549.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  550.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  551.            
  552.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  553.                                 +' WHERE '+lcListWhere
  554.         ENDIF
  555.        
  556.         IF USED('tmpTablas') THEN
  557.             USE IN tmpTablas
  558.         ENDIF
  559.         RETURN lcSelectReturn
  560.     ENDFUNC
  561.  
  562.     *----------------------------------------------------------------------------*
  563.     FUNCTION generaCursorTemporal
  564.     LPARAMETERS tcTableName, tcCursorName
  565.     *
  566.     *----------------------------------------------------------------------------*
  567.         SELECT tablename, fieldname ;
  568.             FROM tablas;
  569.                 WHERE tablas.tablename=tcTableName;
  570.                 INTO CURSOR (tcCursorName)
  571.     ENDFUNC
  572.    
  573.     *----------------------------------------------------------------------------*
  574.     FUNCTION abrirTablaPrincipal
  575.     *
  576.     *----------------------------------------------------------------------------*
  577.         IF !USED('tablas') THEN
  578.             IF !FILE('tablas.dbf') THEN
  579.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  580.                 USE IN tablas
  581.             ENDIF
  582.             USE tablas IN 0
  583.         ENDIF
  584.     ENDFUNC
  585.        
  586.     *----------------------------------------------------------------------------*
  587.     FUNCTION destroy
  588.     *
  589.     *----------------------------------------------------------------------------*
  590.  
  591.     ENDFUNC
  592.    
  593. ENDDEFI
  594. *| Created.....:
  595. *| Purpose.....:
  596. *| Revisions...:
  597. *|
  598. */
  599. *-----------------------------------------------------------------------------------*
  600. DEFINE CLASS generadorSQL AS Custom
  601. *
  602. *-----------------------------------------------------------------------------------*
  603.  
  604.     *----------------------------------------------------------------------------*
  605.     FUNCTION init
  606.     *
  607.     *----------------------------------------------------------------------------*
  608.  
  609.     ENDFUNC
  610.    
  611.     *----------------------------------------------------------------------------*
  612.     FUNCTION getSelect
  613.     LPARAMETERS tcTableName
  614.     *
  615.     *----------------------------------------------------------------------------*
  616.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  617.         lcTableName=ALLTRIM(LOWER(tcTableName))
  618.         THIS.abrirTablaPrincipal()
  619.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  620.  
  621.         IF RECCOUNT('tmpTablas')>0 THEN
  622.             lcListField = ''
  623.             lcListWhere = ''
  624.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  625.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  626.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  627.             ENDSCAN
  628.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  629.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  630.            
  631.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  632.                                 +' WHERE '+lcListWhere
  633.         ENDIF
  634.        
  635.         IF USED('tmpTablas') THEN
  636.             USE IN tmpTablas
  637.         ENDIF
  638.         RETURN lcSelectReturn
  639.     ENDFUNC
  640.  
  641.     *----------------------------------------------------------------------------*
  642.     FUNCTION generaCursorTemporal
  643.     LPARAMETERS tcTableName, tcCursorName
  644.     *
  645.     *----------------------------------------------------------------------------*
  646.         SELECT tablename, fieldname ;
  647.             FROM tablas;
  648.                 WHERE tablas.tablename=tcTableName;
  649.                 INTO CURSOR (tcCursorName)
  650.     ENDFUNC
  651.    
  652.     *----------------------------------------------------------------------------*
  653.     FUNCTION abrirTablaPrincipal
  654.     *
  655.     *----------------------------------------------------------------------------*
  656.         IF !USED('tablas') THEN
  657.             IF !FILE('tablas.dbf') THEN
  658.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  659.                 USE IN tablas
  660.             ENDIF
  661.             USE tablas IN 0
  662.         ENDIF
  663.     ENDFUNC
  664.        
  665.     *----------------------------------------------------------------------------*
  666.     FUNCTION destroy
  667.     *
  668.     *----------------------------------------------------------------------------*
  669.  
  670.     ENDFUNC
  671.    
  672. ENDDEFI
  673. *| Purpose.....:
  674. *| Revisions...:
  675. *|
  676. */
  677. *-----------------------------------------------------------------------------------*
  678. DEFINE CLASS generadorSQL AS Custom
  679. *
  680. *-----------------------------------------------------------------------------------*
  681.  
  682.     *----------------------------------------------------------------------------*
  683.     FUNCTION init
  684.     *
  685.     *----------------------------------------------------------------------------*
  686.  
  687.     ENDFUNC
  688.    
  689.     *----------------------------------------------------------------------------*
  690.     FUNCTION getSelect
  691.     LPARAMETERS tcTableName
  692.     *
  693.     *----------------------------------------------------------------------------*
  694.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  695.         lcTableName=ALLTRIM(LOWER(tcTableName))
  696.         THIS.abrirTablaPrincipal()
  697.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  698.  
  699.         IF RECCOUNT('tmpTablas')>0 THEN
  700.             lcListField = ''
  701.             lcListWhere = ''
  702.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  703.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  704.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  705.             ENDSCAN
  706.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  707.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  708.            
  709.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  710.                                 +' WHERE '+lcListWhere
  711.         ENDIF
  712.        
  713.         IF USED('tmpTablas') THEN
  714.             USE IN tmpTablas
  715.         ENDIF
  716.         RETURN lcSelectReturn
  717.     ENDFUNC
  718.  
  719.     *----------------------------------------------------------------------------*
  720.     FUNCTION generaCursorTemporal
  721.     LPARAMETERS tcTableName, tcCursorName
  722.     *
  723.     *----------------------------------------------------------------------------*
  724.         SELECT tablename, fieldname ;
  725.             FROM tablas;
  726.                 WHERE tablas.tablename=tcTableName;
  727.                 INTO CURSOR (tcCursorName)
  728.     ENDFUNC
  729.    
  730.     *----------------------------------------------------------------------------*
  731.     FUNCTION abrirTablaPrincipal
  732.     *
  733.     *----------------------------------------------------------------------------*
  734.         IF !USED('tablas') THEN
  735.             IF !FILE('tablas.dbf') THEN
  736.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  737.                 USE IN tablas
  738.             ENDIF
  739.             USE tablas IN 0
  740.         ENDIF
  741.     ENDFUNC
  742.        
  743.     *----------------------------------------------------------------------------*
  744.     FUNCTION destroy
  745.     *
  746.     *----------------------------------------------------------------------------*
  747.  
  748.     ENDFUNC
  749.    
  750. ENDDEFI
  751. *| Revisions...:
  752. *|
  753. */
  754. *-----------------------------------------------------------------------------------*
  755. DEFINE CLASS generadorSQL AS Custom
  756. *
  757. *-----------------------------------------------------------------------------------*
  758.  
  759.     *----------------------------------------------------------------------------*
  760.     FUNCTION init
  761.     *
  762.     *----------------------------------------------------------------------------*
  763.  
  764.     ENDFUNC
  765.    
  766.     *----------------------------------------------------------------------------*
  767.     FUNCTION getSelect
  768.     LPARAMETERS tcTableName
  769.     *
  770.     *----------------------------------------------------------------------------*
  771.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  772.         lcTableName=ALLTRIM(LOWER(tcTableName))
  773.         THIS.abrirTablaPrincipal()
  774.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  775.  
  776.         IF RECCOUNT('tmpTablas')>0 THEN
  777.             lcListField = ''
  778.             lcListWhere = ''
  779.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  780.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  781.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  782.             ENDSCAN
  783.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  784.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  785.            
  786.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  787.                                 +' WHERE '+lcListWhere
  788.         ENDIF
  789.        
  790.         IF USED('tmpTablas') THEN
  791.             USE IN tmpTablas
  792.         ENDIF
  793.         RETURN lcSelectReturn
  794.     ENDFUNC
  795.  
  796.     *----------------------------------------------------------------------------*
  797.     FUNCTION generaCursorTemporal
  798.     LPARAMETERS tcTableName, tcCursorName
  799.     *
  800.     *----------------------------------------------------------------------------*
  801.         SELECT tablename, fieldname ;
  802.             FROM tablas;
  803.                 WHERE tablas.tablename=tcTableName;
  804.                 INTO CURSOR (tcCursorName)
  805.     ENDFUNC
  806.    
  807.     *----------------------------------------------------------------------------*
  808.     FUNCTION abrirTablaPrincipal
  809.     *
  810.     *----------------------------------------------------------------------------*
  811.         IF !USED('tablas') THEN
  812.             IF !FILE('tablas.dbf') THEN
  813.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  814.                 USE IN tablas
  815.             ENDIF
  816.             USE tablas IN 0
  817.         ENDIF
  818.     ENDFUNC
  819.        
  820.     *----------------------------------------------------------------------------*
  821.     FUNCTION destroy
  822.     *
  823.     *----------------------------------------------------------------------------*
  824.  
  825.     ENDFUNC
  826.    
  827. ENDDEFI
  828. *|
  829. */
  830. *-----------------------------------------------------------------------------------*
  831. DEFINE CLASS generadorSQL AS Custom
  832. *
  833. *-----------------------------------------------------------------------------------*
  834.  
  835.     *----------------------------------------------------------------------------*
  836.     FUNCTION init
  837.     *
  838.     *----------------------------------------------------------------------------*
  839.  
  840.     ENDFUNC
  841.    
  842.     *----------------------------------------------------------------------------*
  843.     FUNCTION getSelect
  844.     LPARAMETERS tcTableName
  845.     *
  846.     *----------------------------------------------------------------------------*
  847.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  848.         lcTableName=ALLTRIM(LOWER(tcTableName))
  849.         THIS.abrirTablaPrincipal()
  850.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  851.  
  852.         IF RECCOUNT('tmpTablas')>0 THEN
  853.             lcListField = ''
  854.             lcListWhere = ''
  855.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  856.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  857.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  858.             ENDSCAN
  859.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  860.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  861.            
  862.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  863.                                 +' WHERE '+lcListWhere
  864.         ENDIF
  865.        
  866.         IF USED('tmpTablas') THEN
  867.             USE IN tmpTablas
  868.         ENDIF
  869.         RETURN lcSelectReturn
  870.     ENDFUNC
  871.  
  872.     *----------------------------------------------------------------------------*
  873.     FUNCTION generaCursorTemporal
  874.     LPARAMETERS tcTableName, tcCursorName
  875.     *
  876.     *----------------------------------------------------------------------------*
  877.         SELECT tablename, fieldname ;
  878.             FROM tablas;
  879.                 WHERE tablas.tablename=tcTableName;
  880.                 INTO CURSOR (tcCursorName)
  881.     ENDFUNC
  882.    
  883.     *----------------------------------------------------------------------------*
  884.     FUNCTION abrirTablaPrincipal
  885.     *
  886.     *----------------------------------------------------------------------------*
  887.         IF !USED('tablas') THEN
  888.             IF !FILE('tablas.dbf') THEN
  889.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  890.                 USE IN tablas
  891.             ENDIF
  892.             USE tablas IN 0
  893.         ENDIF
  894.     ENDFUNC
  895.        
  896.     *----------------------------------------------------------------------------*
  897.     FUNCTION destroy
  898.     *
  899.     *----------------------------------------------------------------------------*
  900.  
  901.     ENDFUNC
  902.    
  903. ENDDEFI
  904. */
  905. *-----------------------------------------------------------------------------------*
  906. DEFINE CLASS generadorSQL AS Custom
  907. *
  908. *-----------------------------------------------------------------------------------*
  909.  
  910.     *----------------------------------------------------------------------------*
  911.     FUNCTION init
  912.     *
  913.     *----------------------------------------------------------------------------*
  914.  
  915.     ENDFUNC
  916.    
  917.     *----------------------------------------------------------------------------*
  918.     FUNCTION getSelect
  919.     LPARAMETERS tcTableName
  920.     *
  921.     *----------------------------------------------------------------------------*
  922.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  923.         lcTableName=ALLTRIM(LOWER(tcTableName))
  924.         THIS.abrirTablaPrincipal()
  925.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  926.  
  927.         IF RECCOUNT('tmpTablas')>0 THEN
  928.             lcListField = ''
  929.             lcListWhere = ''
  930.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  931.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  932.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  933.             ENDSCAN
  934.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  935.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  936.            
  937.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  938.                                 +' WHERE '+lcListWhere
  939.         ENDIF
  940.        
  941.         IF USED('tmpTablas') THEN
  942.             USE IN tmpTablas
  943.         ENDIF
  944.         RETURN lcSelectReturn
  945.     ENDFUNC
  946.  
  947.     *----------------------------------------------------------------------------*
  948.     FUNCTION generaCursorTemporal
  949.     LPARAMETERS tcTableName, tcCursorName
  950.     *
  951.     *----------------------------------------------------------------------------*
  952.         SELECT tablename, fieldname ;
  953.             FROM tablas;
  954.                 WHERE tablas.tablename=tcTableName;
  955.                 INTO CURSOR (tcCursorName)
  956.     ENDFUNC
  957.    
  958.     *----------------------------------------------------------------------------*
  959.     FUNCTION abrirTablaPrincipal
  960.     *
  961.     *----------------------------------------------------------------------------*
  962.         IF !USED('tablas') THEN
  963.             IF !FILE('tablas.dbf') THEN
  964.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  965.                 USE IN tablas
  966.             ENDIF
  967.             USE tablas IN 0
  968.         ENDIF
  969.     ENDFUNC
  970.        
  971.     *----------------------------------------------------------------------------*
  972.     FUNCTION destroy
  973.     *
  974.     *----------------------------------------------------------------------------*
  975.  
  976.     ENDFUNC
  977.    
  978. ENDDEFI
  979. *-----------------------------------------------------------------------------------*
  980. DEFINE CLASS generadorSQL AS Custom
  981. *
  982. *-----------------------------------------------------------------------------------*
  983.  
  984.     *----------------------------------------------------------------------------*
  985.     FUNCTION init
  986.     *
  987.     *----------------------------------------------------------------------------*
  988.  
  989.     ENDFUNC
  990.    
  991.     *----------------------------------------------------------------------------*
  992.     FUNCTION getSelect
  993.     LPARAMETERS tcTableName
  994.     *
  995.     *----------------------------------------------------------------------------*
  996.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  997.         lcTableName=ALLTRIM(LOWER(tcTableName))
  998.         THIS.abrirTablaPrincipal()
  999.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  1000.  
  1001.         IF RECCOUNT('tmpTablas')>0 THEN
  1002.             lcListField = ''
  1003.             lcListWhere = ''
  1004.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  1005.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  1006.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  1007.             ENDSCAN
  1008.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  1009.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  1010.            
  1011.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  1012.                                 +' WHERE '+lcListWhere
  1013.         ENDIF
  1014.        
  1015.         IF USED('tmpTablas') THEN
  1016.             USE IN tmpTablas
  1017.         ENDIF
  1018.         RETURN lcSelectReturn
  1019.     ENDFUNC
  1020.  
  1021.     *----------------------------------------------------------------------------*
  1022.     FUNCTION generaCursorTemporal
  1023.     LPARAMETERS tcTableName, tcCursorName
  1024.     *
  1025.     *----------------------------------------------------------------------------*
  1026.         SELECT tablename, fieldname ;
  1027.             FROM tablas;
  1028.                 WHERE tablas.tablename=tcTableName;
  1029.                 INTO CURSOR (tcCursorName)
  1030.     ENDFUNC
  1031.    
  1032.     *----------------------------------------------------------------------------*
  1033.     FUNCTION abrirTablaPrincipal
  1034.     *
  1035.     *----------------------------------------------------------------------------*
  1036.         IF !USED('tablas') THEN
  1037.             IF !FILE('tablas.dbf') THEN
  1038.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  1039.                 USE IN tablas
  1040.             ENDIF
  1041.             USE tablas IN 0
  1042.         ENDIF
  1043.     ENDFUNC
  1044.        
  1045.     *----------------------------------------------------------------------------*
  1046.     FUNCTION destroy
  1047.     *
  1048.     *----------------------------------------------------------------------------*
  1049.  
  1050.     ENDFUNC
  1051.    
  1052. ENDDEFI
  1053. *
  1054. *-----------------------------------------------------------------------------------*
  1055.  
  1056.     *----------------------------------------------------------------------------*
  1057.     FUNCTION init
  1058.     *
  1059.     *----------------------------------------------------------------------------*
  1060.  
  1061.     ENDFUNC
  1062.    
  1063.     *----------------------------------------------------------------------------*
  1064.     FUNCTION getSelect
  1065.     LPARAMETERS tcTableName
  1066.     *
  1067.     *----------------------------------------------------------------------------*
  1068.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  1069.         lcTableName=ALLTRIM(LOWER(tcTableName))
  1070.         THIS.abrirTablaPrincipal()
  1071.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  1072.  
  1073.         IF RECCOUNT('tmpTablas')>0 THEN
  1074.             lcListField = ''
  1075.             lcListWhere = ''
  1076.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  1077.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  1078.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  1079.             ENDSCAN
  1080.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  1081.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  1082.            
  1083.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  1084.                                 +' WHERE '+lcListWhere
  1085.         ENDIF
  1086.        
  1087.         IF USED('tmpTablas') THEN
  1088.             USE IN tmpTablas
  1089.         ENDIF
  1090.         RETURN lcSelectReturn
  1091.     ENDFUNC
  1092.  
  1093.     *----------------------------------------------------------------------------*
  1094.     FUNCTION generaCursorTemporal
  1095.     LPARAMETERS tcTableName, tcCursorName
  1096.     *
  1097.     *----------------------------------------------------------------------------*
  1098.         SELECT tablename, fieldname ;
  1099.             FROM tablas;
  1100.                 WHERE tablas.tablename=tcTableName;
  1101.                 INTO CURSOR (tcCursorName)
  1102.     ENDFUNC
  1103.    
  1104.     *----------------------------------------------------------------------------*
  1105.     FUNCTION abrirTablaPrincipal
  1106.     *
  1107.     *----------------------------------------------------------------------------*
  1108.         IF !USED('tablas') THEN
  1109.             IF !FILE('tablas.dbf') THEN
  1110.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  1111.                 USE IN tablas
  1112.             ENDIF
  1113.             USE tablas IN 0
  1114.         ENDIF
  1115.     ENDFUNC
  1116.        
  1117.     *----------------------------------------------------------------------------*
  1118.     FUNCTION destroy
  1119.     *
  1120.     *----------------------------------------------------------------------------*
  1121.  
  1122.     ENDFUNC
  1123.    
  1124. ENDDEFI
  1125. *-----------------------------------------------------------------------------------*
  1126.  
  1127.     *----------------------------------------------------------------------------*
  1128.     FUNCTION init
  1129.     *
  1130.     *----------------------------------------------------------------------------*
  1131.  
  1132.     ENDFUNC
  1133.    
  1134.     *----------------------------------------------------------------------------*
  1135.     FUNCTION getSelect
  1136.     LPARAMETERS tcTableName
  1137.     *
  1138.     *----------------------------------------------------------------------------*
  1139.         LOCAL lcTableName, lcListField, lcListWhere, lcSelectReturn
  1140.         lcTableName=ALLTRIM(LOWER(tcTableName))
  1141.         THIS.abrirTablaPrincipal()
  1142.         THIS.generaCursorTemporal(lcTableName, 'tmpTablas')
  1143.  
  1144.         IF RECCOUNT('tmpTablas')>0 THEN
  1145.             lcListField = ''
  1146.             lcListWhere = ''
  1147.             SCAN REST WHILE tmpTablas.tablename=lcTableName
  1148.                 lcListField = lcListField + ALLTRIM(tmpTablas.FieldName) + ', '
  1149.                 lcListWhere = lcListWhere + '!EMPTY('+ALLTRIM(tmpTablas.FieldName)+') AND '
  1150.             ENDSCAN
  1151.             lcListField = SUBSTR(lcListField,1,LEN(lcListField)-2)
  1152.             lcListWhere = SUBSTR(lcListWhere,1,LEN(lcListWhere)-4)
  1153.            
  1154.             lcSelectReturn = 'SELECT '+lcListField + " FROM "+lcTableName;
  1155.                                 +' WHERE '+lcListWhere
  1156.         ENDIF
  1157.        
  1158.         IF USED('tmpTablas') THEN
  1159.             USE IN tmpTablas
  1160.         ENDIF
  1161.         RETURN lcSelectReturn
  1162.     ENDFUNC
  1163.  
  1164.     *----------------------------------------------------------------------------*
  1165.     FUNCTION generaCursorTemporal
  1166.     LPARAMETERS tcTableName, tcCursorName
  1167.     *
  1168.     *----------------------------------------------------------------------------*
  1169.         SELECT tablename, fieldname ;
  1170.             FROM tablas;
  1171.                 WHERE tablas.tablename=tcTableName;
  1172.                 INTO CURSOR (tcCursorName)
  1173.     ENDFUNC
  1174.    
  1175.     *----------------------------------------------------------------------------*
  1176.     FUNCTION abrirTablaPrincipal
  1177.     *
  1178.     *----------------------------------------------------------------------------*
  1179.         IF !USED('tablas') THEN
  1180.             IF !FILE('tablas.dbf') THEN
  1181.                 CREATE TABLE tablas (tablename   C(12), fieldname  C(12))
  1182.                 USE IN tablas
  1183.             ENDIF
  1184.             USE tablas IN 0
  1185.         ENDIF
  1186.     ENDFUNC
  1187.        
  1188.     *----------------------------------------------------------------------------*
  1189.     FUNCTION destroy
  1190.     *
  1191.     *----------------------------------------------------------------------------*
  1192.  
  1193.     ENDFUNC
  1194.    
  1195. ENDDEFINE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement