Essa semana o Angelo Amaral, consultor e amigo pessoal, me perguntou como fazer para pegar determinada tabela e listar seus campos e o tamanho de cada um.

Com a duvida dele, criei um novo job e fui escrevendo até chegar no seguinte código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
static void getSizeOfFields(Args _args)
{
  DictTable       dictTable;
  DictField       dictField;
  FieldId         fieldId;
  ;
 
  dictTable = new DictTable(tableNum(VendTable));
 
  for (fieldId = dictTable.fieldNext(0); fieldId; fieldId = dictTable.fieldNext(fieldId))
  {
    dictField = dictTable.fieldObject(fieldId);
    info( strfmt("%1 - %2", dictField.stringLen(), dictField.name() ) ) ;
  }
}

Daí em diante, é só usar a imaginação para melhorar o job e fazer o que quiser.

[]s
Pichler