Skip to content
| Marketplace
Sign in
Visual Studio Code>Formatters>ADVPL-SQL-BeautifyNew to Visual Studio Code? Get it now.
ADVPL-SQL-Beautify

ADVPL-SQL-Beautify

Alex Richard Fazanaro

|
3 installs
| (0) | Free
Beautify e conversão de queries SQL entre AdvPL/TLPP (string e embeded), GoLang e dialetos de banco (PostgreSQL, Oracle, SQL Server).
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

SQL-ADVPL (extensão VSCode)

Beautify e conversão de queries entre AdvPL/TLPP (BeginSql/String) ⇄ GoLang (fmt.Sprintf) ⇄ SQL puro (PostgreSQL/Oracle/SQL Server), seguindo as regras de indentação que uso por padrão.

Como usar

Selecione um bloco de query no editor → botão direito → SQL-ADVPL → escolha o destino. Obs: Sem seleção, a extensão usa o documento inteiro.

Placeholders canônicos internos

Para reaproveitar o mesmo parser nos dois formatos AdvPL, tudo é normalizado para:

  • %Table:SA1% (nome físico da tabela)
  • %XFilial:SA1% (filtro de filial)
  • %Exp:variavel% (bind de variável)
  • %NotDel% (filtro de não-deletado)
  • %[N]s (placeholder posicional do Go, mantido como está)

Exemplo de Query após o uso da extensão (ADVPL Embeded)

BeginSql Alias cAliasQry SELECT MAX(SC5.R_E_C_N_O_) REG , SC5.C5_NUM AS NUMERO , CAST(SC5.C5_EMISSAO AS DATA) DATA_EMISSAO FROM %Table:SC5% SC5 WHERE 1=1 AND SC5.C5_FILIAL BETWEEN %Exp:MV_PAR01% AND %Exp:MV_PAR02% AND SC5.C5_NUM BETWEEN %Exp:MV_PAR03% AND %Exp:MV_PAR04% AND SC5.C5_CLIENTE BETWEEN %Exp:MV_PAR05% AND %Exp:MV_PAR07% AND SC5.C5_LOJACLI BETWEEN %Exp:MV_PAR06% AND %Exp:MV_PAR08% AND SC5.C5_EMISSAO BETWEEN %Exp:MV_PAR09% AND %Exp:MV_PAR10% AND SC5.%NotDel% GROUP BY SC5.C5_NUM , SC5.C5_EMISSAO HAVING 1=1 AND MAX(SC5.R_E_C_N_O_) > 10000 AND SC5.C5_EMISSAO >= '20260101' ORDER BY 1 , SC5.C5_EMISSAO EndSql

Exemplo de Query após o uso da extensão (ADVPL String)

cQuery := "SELECT " cQuery += " MAX(SC5.R_E_C_N_O_) REG " cQuery += " , SC5.C5_NUM AS NUMERO " cQuery += " , CAST(SC5.C5_EMISSAO AS DATA) DATA_EMISSAO " cQuery += "FROM " + RetSqlName("SC5") + " SC5 " cQuery += "WHERE 1=1 " cQuery += "AND SC5.C5_FILIAL BETWEEN " + MV_PAR01 + " AND " + MV_PAR02 + " " cQuery += "AND SC5.C5_NUM BETWEEN " + MV_PAR03 + " AND " + MV_PAR04 + " " cQuery += "AND SC5.C5_CLIENTE BETWEEN " + MV_PAR05 + " AND " + MV_PAR07 + " " cQuery += "AND SC5.C5_LOJACLI BETWEEN " + MV_PAR06 + " AND " + MV_PAR08 + " " cQuery += "AND SC5.C5_EMISSAO BETWEEN " + MV_PAR09 + " AND " + MV_PAR10 + " " cQuery += "AND SC5." + "D_E_L_E_T_ = ' '" + " " cQuery += "GROUP " cQuery += "BY SC5.C5_NUM " cQuery += ", SC5.C5_EMISSAO " cQuery += "HAVING 1=1 " cQuery += "AND MAX(SC5.R_E_C_N_O_) > 10000 " cQuery += "AND SC5.C5_EMISSAO >= '20260101' " cQuery += "ORDER " cQuery += "BY 1 " cQuery += ", SC5.C5_EMISSAO "

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft