Harbour MiniGUI Extended Edition 19.08 (Update 2)
BRMAKE - Make File para Harbour/xHarbour/MiniGUI Versão 2.05 FreeWare
MariaDB 10.2
no banco de dados tenho uma tabela chamada CLIENTES, com os seguintes campos:
codigo
nome
cnpj
vendedor
conceito
limit_cred (limite de credito)
....
faço uma consulta carregando em uma GRID apenas estes campos, preciso acrescentar no GRID uma coluna nova que não existe na tabela de cliente, esta coluna em meu sistema eu chamo de CALCULA, exemplo
IIF( conceito = "BOM", "Venda Liberada", IIF( conceito = "REGULAR","Venda em Analise","Venda Bloqueada" ) )
OU
IIF( limit_cred = 500.00, limit_cred * 1.20, IIF( limit_cred = 1000.00, limit_cred * 1.30, limit_cred * 1.50 ) )
ou
IIF( conceito = "BOM", pinta a célula de verde, IIF( conceito = "REGULAR",pinta a célula de amarelo,pinta a célula de vermelho ) )
abaixo como esta a linha de programação:
DELETE ITEM ALL FROM GRID_CLIENTES OF FORM_CLIENTES
SELECT_CLIENTES := OSERVER:QUERY( "SELECT codigo,nome,cnpj,vendedor,conceito, limit_cred FROM CLIENTES USE INDEX (IDX_CODIGO) ORDER BY CODIGO LIMIT 1000")
IF SELE_MSELE_QUERY:NETERR()
MSGSTOP( "Erro ao abrir tabela de CLIENTES", MSIST )
...
ELSE
CONTA_REG := 1
SETMESSAGE( STRZERO( SELE_MSELE_QUERY:LASTREC(),6 ), 4 )
DO WHILE CONTA_REG <= SELE_MSELE_QUERY:LASTREC()
DO EVENTS
ROWS_MSELE_QUERY := SELE_MSELE_QUERY:GETROW( CONTA_REG )
FOR X = 1 TO LEN( COLUNA_FIELDS )
IF COLUNA_TIPO[X] = "N"
ITEMADD += 'VIRGULA( ROWS_MSELE_QUERY:FIELDGET("' + COLUNA_FIELDS[X] + '"),' + STR(COLUNA_WIDTH[X],2) + ',' + STR(COLUNA_DECIMAL[X],1) + ' )'
ELSEIF COLUNA_TIPO[X] = "D"
ITEMADD += 'DTOC( ROWS_MSELE_QUERY:FIELDGET("' + COLUNA_FIELDS[X] + '"))'
ELSE
ITEMADD += 'ROWS_MSELE_QUERY:FIELDGET("' + COLUNA_FIELDS[X] + '")'
ENDIF
IF X < LEN( COLUNA_FIELDS )
ITEMADD += ","
ENDIF
NEXT X
ADD ITEM { &(ITEMADD) } TO &NOME_DA_GRID. OF SGC020101FORM
ITEMADD := ""
SELE_MSELE_QUERY:SKIP(1)
CONTA_REG += 1
ENDDO
ENDIF
alguem teria uma ideia de como posso acrescentar uma coluna CALCULA conforme explicado a cima, lembrando que esta coluna pode estar no meio dos campos existentes em uma tabela.
obs> a variável COLUNA_FIELDS é um vetor que contem os campos que serão inseridos no GRID também tem o vetor COLUNA_TABELA onde eu identifico se a coluna é um campo de uma tabela ou se é CALCULADA.
desde ja agradeço.