En este
mes se presentara una rutina en MapBasic que al escoger un campo de un archivo TAB
se exportara a tantos archivos DXFs como valores tenga dicho campo escogido.
Para nuestro
ejemplo, tenemos un archivo TAB con las regiones del Perú y se desea
exportar tantos archivos DXFs como valores hay en este TAB. Si abrimos este TAB observamos que
hay 35 filas y dos columnas. La columna a escoger es NOMB donde están los nombres
de las 25 regiones del Perú y algunos lagos
(con el valor de LAGO en dicha columna).
El código
para hacer esto, es el siguiente:
Include "MapBasic.def" Dim MiTabla as String Dim MiDXF as String Dim Columna as Alias Dim Valor as String MiTabla = "LIMITE_DEPARTAMENTOS" ' Nombre del archivo TAB a exportar Columna = "NOMB" ' Nombre de la columna escogida para exportar segun sus valores Fetch First From MiTabla ' Posicionamos el cursor de lectura de los valores del TAB en la primera fila de la tabla del TAB Do While Not EOT (MiTabla) ' Bucle que permite leer los valores del TAB Columna = MiTabla & ".NOMB" 'Guardo el valor de la fila actual en el campo NAME (donde estan los valores a exportar) Valor = Columna 'Guardo el valor de Columna (variable tipo Alias) a otra variable de tipo String Select * From MiTabla Where NOMB = Valor Into Valor NoSelect 'Seleccion de las filas segun nombre de la region MiDXF = "C:\MapInfo\" & Valor & ".dxf" 'Ruta donde el DXF va ser guardado con el nombre de la region 'Comienza a exportar a DXF Export Valor 'Nombre de la seleccion con nombre de la region Into MiDXF 'archivo DXF que se guardara la seleccion Type "DXF" 'tipo de exportacion Overwrite 'permitir sobre escritura ASCII 'tipo de DXF, en este caso ASCII (permite ver el contenido con un notepad) Version 12 'version del DXF Fetch Next From MiTabla 'pasa a leer la siguiente fila Loop Note "Exportado..."
El código
esta explicado en los comentarios, solo hacer algunas aclaraciones:
Este
TAB tiene 35 valores y se explicó que son 25 regiones del Perú más un valor de
lagos que suman 26 valores distintos, haciendo suponer que hay duplicidad de
valores y esto hará que se haga tantas veces la selección (función Select) de valores
como valores duplicados existan. En el código está el parámetro Overwrite que
permite sobreescribir archivos, esto último ayuda a prevenir algún problema por
la duplicidad de valores y haciendo que solo se creen 26 archivos DXFs (25 regiones del Perú y los lagos). Esperando que sea de ayuda, será hasta el otro
mes. Saludos.