- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Função para adicionar coluna browse
×
Linguagem de Programação ADVPL
Perguntas Função para adicionar coluna browse
- gustavo13
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 119
- Obrigados Recebidos: 0
11 anos 7 meses atrás - 11 anos 7 meses atrás #13023
por gustavo13
Função para adicionar coluna browse foi criado por gustavo13
Olá!
Estou tentando adicionar uma coluna de Estado do cliente na seleção de títulos do borderô a cobrar.
Não estou tendo sucesso, segue código. Ocorre o erro na função F060COL. Se alguém puder me auxiliar a localizar o erro. Agradeço desde já.
O erro é este
THREAD ERROR (Gustavo, TICXS) 17/04/2013 17:55:33
argument #0 error, expected C->N, function NEW on MSSELECT:NEW(MSSELECT.PRW) 02/10/2012 19:31:32 line : 250
#include "rwmake.ch"
#INCLUDE "PROTHEUS.CH"
Static aStru1 := {}
User function F060Trb()
aStru1 := PARAMIXB[1]
Aadd(aStru1,{"A1_EST","C",2,0})
Return aStru1
User Function F060COL()
Local aCpo := paramixb[1]
Local aRet := {}
Local nPosData := aScan(aStru1,{|x| x[1]=="A1_EST"})
aadd(aCpo, aStru1[nPosData])
Return aCpo
// este ponto de entrada tratará a inclusão do campo A1_EST na tela de seleção.
USER FUNCTION F060QRCP()
Local aStru := {}
Local cQuery := ""
Local nj := 0
Local cQryOri := PARAMIXB[1]
// query padrão do sistema
aStru := dbStruct()
cQuery := "SELECT "
For nj:= 1 to Len(aStru)
cQuery += aStru[nj,1]+", "
Next
cQuery += "SE1.R_E_C_N_O_ RECNO , A1_EST"
cQuery += " FROM "+ RetSqlName("SE1") + " SE1 "
cQuery += " INNER JOIN "+ RetSqlName('SA1') + " SA1 ON E1_CLIENTE = SA1.A1_COD "
cQuery += " WHERE E1_FILIAL Between '" + cFilDe + "' AND '"+ cFilAte + "'"
cQuery += " AND E1_NUMBOR = ' '"
cQuery += " AND E1_EMISSAO Between '" + DTOS(dEmisDe) + "' AND '" + DTOS(dEmisAte) + "'"
cQuery += " AND E1_CLIENTE between '" + cCliDe + "' AND '" + cCliAte + "'"
cQuery += " AND E1_VENCREA between '" + DTOS(dVencIni)+ "' AND '" + DTOS(dVencFim) + "'"
cQuery += " AND E1_MOEDA = "+ str(nmoeda)
cQuery += " AND E1_PREFIXO Between '" + cPrefDe + "' AND '" + cPrefAte + "'"
cQuery += " AND E1_NUM between '" + cNumDe + "' AND '" + cNumAte + "'"
cQuery += " AND ( E1_SALDO > 0 OR E1_OCORREN = '02' ) "
//Seleciona Tipos
If mv_par12 == 1
cQuery += " AND E1_TIPO IN " + FormatIn(cTipos,"/")
Endif
If !Empty(MVPROVIS) .Or. !Empty(MVRECANT) .Or. !Empty(MV_CRNEG) .Or. !Empty(MVENVBCOR)
cQuery += " AND E1_TIPO NOT IN " + FormatIn(MVPROVIS+"/"+MVRECANT+"/"+MV_CRNEG+"/"+MVENVBCOR,"/")
Endif
cQuery += " AND E1_SITUACA IN ('0','F','G') "
cQuery += " AND SE1.D_E_L_E_T_ <> '*' "
cQuery += " ORDER BY "+ SqlOrder(SE1->(IndexKey()))
Return cQuery
Estou tentando adicionar uma coluna de Estado do cliente na seleção de títulos do borderô a cobrar.
Não estou tendo sucesso, segue código. Ocorre o erro na função F060COL. Se alguém puder me auxiliar a localizar o erro. Agradeço desde já.
O erro é este
THREAD ERROR (Gustavo, TICXS) 17/04/2013 17:55:33
argument #0 error, expected C->N, function NEW on MSSELECT:NEW(MSSELECT.PRW) 02/10/2012 19:31:32 line : 250
#include "rwmake.ch"
#INCLUDE "PROTHEUS.CH"
Static aStru1 := {}
User function F060Trb()
aStru1 := PARAMIXB[1]
Aadd(aStru1,{"A1_EST","C",2,0})
Return aStru1
User Function F060COL()
Local aCpo := paramixb[1]
Local aRet := {}
Local nPosData := aScan(aStru1,{|x| x[1]=="A1_EST"})
aadd(aCpo, aStru1[nPosData])
Return aCpo
// este ponto de entrada tratará a inclusão do campo A1_EST na tela de seleção.
USER FUNCTION F060QRCP()
Local aStru := {}
Local cQuery := ""
Local nj := 0
Local cQryOri := PARAMIXB[1]
// query padrão do sistema
aStru := dbStruct()
cQuery := "SELECT "
For nj:= 1 to Len(aStru)
cQuery += aStru[nj,1]+", "
Next
cQuery += "SE1.R_E_C_N_O_ RECNO , A1_EST"
cQuery += " FROM "+ RetSqlName("SE1") + " SE1 "
cQuery += " INNER JOIN "+ RetSqlName('SA1') + " SA1 ON E1_CLIENTE = SA1.A1_COD "
cQuery += " WHERE E1_FILIAL Between '" + cFilDe + "' AND '"+ cFilAte + "'"
cQuery += " AND E1_NUMBOR = ' '"
cQuery += " AND E1_EMISSAO Between '" + DTOS(dEmisDe) + "' AND '" + DTOS(dEmisAte) + "'"
cQuery += " AND E1_CLIENTE between '" + cCliDe + "' AND '" + cCliAte + "'"
cQuery += " AND E1_VENCREA between '" + DTOS(dVencIni)+ "' AND '" + DTOS(dVencFim) + "'"
cQuery += " AND E1_MOEDA = "+ str(nmoeda)
cQuery += " AND E1_PREFIXO Between '" + cPrefDe + "' AND '" + cPrefAte + "'"
cQuery += " AND E1_NUM between '" + cNumDe + "' AND '" + cNumAte + "'"
cQuery += " AND ( E1_SALDO > 0 OR E1_OCORREN = '02' ) "
//Seleciona Tipos
If mv_par12 == 1
cQuery += " AND E1_TIPO IN " + FormatIn(cTipos,"/")
Endif
If !Empty(MVPROVIS) .Or. !Empty(MVRECANT) .Or. !Empty(MV_CRNEG) .Or. !Empty(MVENVBCOR)
cQuery += " AND E1_TIPO NOT IN " + FormatIn(MVPROVIS+"/"+MVRECANT+"/"+MV_CRNEG+"/"+MVENVBCOR,"/")
Endif
cQuery += " AND E1_SITUACA IN ('0','F','G') "
cQuery += " AND SE1.D_E_L_E_T_ <> '*' "
cQuery += " ORDER BY "+ SqlOrder(SE1->(IndexKey()))
Return cQuery
Ultima edição: 11 anos 7 meses atrás por gustavo13.
Por favor Acessar ou Registrar para participar da conversa.
- gustavo13
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 119
- Obrigados Recebidos: 0
11 anos 7 meses atrás #13035
por gustavo13
Respondido por gustavo13 no tópico Função para adicionar coluna browse
Consegui ajustar.
Segue fonte:
#include "rwmake.ch"
#INCLUDE "PROTHEUS.CH"
User function F060Trb()
aStru := PARAMIXB[1]
Aadd(aStru,{"A1_EST","C",2,0})
Return aStru
User Function F060COL()
Local aCpo := paramixb[1]
Local aRet := {}
//Local nPosData := aScan(aStru,{|x| x[1]=="A1_EST"})
For i:= 1 to 9
aadd(aRet,aCpo)
Next
aadd(aRet, {"A1_EST","","Estado",""})
For i:= 10 to len(aCpo)
aadd(aRet,aCpo)
Next
Return aRet
// este ponto de entrada tratará a inclusão do campo A1_EST na tela de seleção.
USER FUNCTION F060QRCP()
Local aStru := {}
Local cQuery := ""
Local nj := 0
Local cQryOri := PARAMIXB[1]
// query padrão do sistema
aStru := dbStruct()
cQuery := "SELECT "
For nj:= 1 to Len(aStru)
cQuery += aStru[nj,1]+", "
Next
cQuery += "SE1.R_E_C_N_O_ RECNO , A1_EST"
cQuery += " FROM "+ RetSqlName("SE1") + " SE1 "
cQuery += " INNER JOIN "+ RetSqlName('SA1') + " SA1 ON E1_CLIENTE = SA1.A1_COD "
cQuery += " WHERE E1_FILIAL Between '" + cFilDe + "' AND '"+ cFilAte + "'"
cQuery += " AND E1_NUMBOR = ' '"
cQuery += " AND E1_EMISSAO Between '" + DTOS(dEmisDe) + "' AND '" + DTOS(dEmisAte) + "'"
cQuery += " AND E1_CLIENTE between '" + cCliDe + "' AND '" + cCliAte + "'"
cQuery += " AND E1_VENCREA between '" + DTOS(dVencIni)+ "' AND '" + DTOS(dVencFim) + "'"
cQuery += " AND E1_MOEDA = "+ str(nmoeda)
cQuery += " AND E1_PREFIXO Between '" + cPrefDe + "' AND '" + cPrefAte + "'"
cQuery += " AND E1_NUM between '" + cNumDe + "' AND '" + cNumAte + "'"
cQuery += " AND ( E1_SALDO > 0 OR E1_OCORREN = '02' ) "
//Seleciona Tipos
If mv_par12 == 1
cQuery += " AND E1_TIPO IN " + FormatIn(cTipos,"/")
Endif
If !Empty(MVPROVIS) .Or. !Empty(MVRECANT) .Or. !Empty(MV_CRNEG) .Or. !Empty(MVENVBCOR)
cQuery += " AND E1_TIPO NOT IN " + FormatIn(MVPROVIS+"/"+MVRECANT+"/"+MV_CRNEG+"/"+MVENVBCOR,"/")
Endif
cQuery += " AND E1_SITUACA IN ('0','F','G') "
cQuery += " AND SE1.D_E_L_E_T_ <> '*' "
cQuery += " ORDER BY "+ SqlOrder(SE1->(IndexKey()))
Return cQuery
Segue fonte:
#include "rwmake.ch"
#INCLUDE "PROTHEUS.CH"
User function F060Trb()
aStru := PARAMIXB[1]
Aadd(aStru,{"A1_EST","C",2,0})
Return aStru
User Function F060COL()
Local aCpo := paramixb[1]
Local aRet := {}
//Local nPosData := aScan(aStru,{|x| x[1]=="A1_EST"})
For i:= 1 to 9
aadd(aRet,aCpo)
Next
aadd(aRet, {"A1_EST","","Estado",""})
For i:= 10 to len(aCpo)
aadd(aRet,aCpo)
Next
Return aRet
// este ponto de entrada tratará a inclusão do campo A1_EST na tela de seleção.
USER FUNCTION F060QRCP()
Local aStru := {}
Local cQuery := ""
Local nj := 0
Local cQryOri := PARAMIXB[1]
// query padrão do sistema
aStru := dbStruct()
cQuery := "SELECT "
For nj:= 1 to Len(aStru)
cQuery += aStru[nj,1]+", "
Next
cQuery += "SE1.R_E_C_N_O_ RECNO , A1_EST"
cQuery += " FROM "+ RetSqlName("SE1") + " SE1 "
cQuery += " INNER JOIN "+ RetSqlName('SA1') + " SA1 ON E1_CLIENTE = SA1.A1_COD "
cQuery += " WHERE E1_FILIAL Between '" + cFilDe + "' AND '"+ cFilAte + "'"
cQuery += " AND E1_NUMBOR = ' '"
cQuery += " AND E1_EMISSAO Between '" + DTOS(dEmisDe) + "' AND '" + DTOS(dEmisAte) + "'"
cQuery += " AND E1_CLIENTE between '" + cCliDe + "' AND '" + cCliAte + "'"
cQuery += " AND E1_VENCREA between '" + DTOS(dVencIni)+ "' AND '" + DTOS(dVencFim) + "'"
cQuery += " AND E1_MOEDA = "+ str(nmoeda)
cQuery += " AND E1_PREFIXO Between '" + cPrefDe + "' AND '" + cPrefAte + "'"
cQuery += " AND E1_NUM between '" + cNumDe + "' AND '" + cNumAte + "'"
cQuery += " AND ( E1_SALDO > 0 OR E1_OCORREN = '02' ) "
//Seleciona Tipos
If mv_par12 == 1
cQuery += " AND E1_TIPO IN " + FormatIn(cTipos,"/")
Endif
If !Empty(MVPROVIS) .Or. !Empty(MVRECANT) .Or. !Empty(MV_CRNEG) .Or. !Empty(MVENVBCOR)
cQuery += " AND E1_TIPO NOT IN " + FormatIn(MVPROVIS+"/"+MVRECANT+"/"+MV_CRNEG+"/"+MVENVBCOR,"/")
Endif
cQuery += " AND E1_SITUACA IN ('0','F','G') "
cQuery += " AND SE1.D_E_L_E_T_ <> '*' "
cQuery += " ORDER BY "+ SqlOrder(SE1->(IndexKey()))
Return cQuery
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Função para adicionar coluna browse
Tempo para a criação da página:0.073 segundos