Perguntas Erro no CodAnalyse
- Jafreal
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 137
- Obrigados Recebidos: 0
1 ano 11 meses atrás #33316
por Jafreal
Erro no CodAnalyse foi criado por Jafreal
Boa tarde a todos
Estou colocando alguns fontes para validar no codeanalyse, pq tenho que passar o dicionario pro branco, mas me deparei com alguns problemas, dentre eles esta o fonte abaixo.
For x := 1 to Len(aCampos)
DbSelectArea("SX3")
DbSetOrder(2)
DbGotop()
If MsSeek(aCampos[x])
If X3USO(X3_USADO)
Aadd(aCabecalho, {;
TRIM(X3_TITULO) ,; //X3Titulo()
X3_CAMPO ,; //X3_CAMPO
X3_PICTURE ,; //X3_PICTURE
X3_TAMANHO ,; //X3_TAMANHO
X3_DECIMAL ,; //X3_DECIMAL
X3_VALID ,; //X3_VALID
X3_USADO ,; //X3_USADO
X3_TIPO ,; //X3_TIPO
})/*
X3_ARQUIVO ,; //X3_F3
X3_CONTEXT ; //X3_CONTEXT*/
Endif
Endif
Next
Return
Como podem ver usava o SX3 para criar uma matriz. Pergunta alguém teria uma solução pra isso?? Pq o o codeanalyse não tem
Estou colocando alguns fontes para validar no codeanalyse, pq tenho que passar o dicionario pro branco, mas me deparei com alguns problemas, dentre eles esta o fonte abaixo.
For x := 1 to Len(aCampos)
DbSelectArea("SX3")
DbSetOrder(2)
DbGotop()
If MsSeek(aCampos[x])
If X3USO(X3_USADO)
Aadd(aCabecalho, {;
TRIM(X3_TITULO) ,; //X3Titulo()
X3_CAMPO ,; //X3_CAMPO
X3_PICTURE ,; //X3_PICTURE
X3_TAMANHO ,; //X3_TAMANHO
X3_DECIMAL ,; //X3_DECIMAL
X3_VALID ,; //X3_VALID
X3_USADO ,; //X3_USADO
X3_TIPO ,; //X3_TIPO
})/*
X3_ARQUIVO ,; //X3_F3
X3_CONTEXT ; //X3_CONTEXT*/
Endif
Endif
Next
Return
Como podem ver usava o SX3 para criar uma matriz. Pergunta alguém teria uma solução pra isso?? Pq o o codeanalyse não tem
Por favor Acessar ou Registrar para participar da conversa.
- ftvernier
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 386
- Obrigados Recebidos: 2
1 ano 10 meses atrás #33323
por ftvernier
Respondido por ftvernier no tópico Erro no CodAnalyse
Segue função.
@obs Tipos do nTipo:
1 = Campos para FWTemporaryTable
2 = Campos para um aHeader de um FWMarkBrowse
3 = Campos para aSeek FWMarkBrowse
4 = Campos para um aHeader de um MsNewGetDados
5 = Campos para um aHeader composto de FWBrwColumn, porém para usar em um FWFormBrowse
6 = Campos para filtro de SetFieldFilter em um FWFormBrowse
7 = Campos para definição de um FWMarkBrowse (método SetFields)
/*/
User Function X3ToArr(aArray, cCampo, nTipo, cTituloDef, cCampoDef, cBlocoDef, cAliasDef)
Local aArea := GetArea()
Local cFieldX3 := ""
Local cTipoX3 := ""
Local cTitX3 := ""
Local cPictX3 := ""
Local cCBoxX3 := ""
Local cF3X3 := ""
Local cValidX3 := ""
Local cUsadoX3 := ""
Local cRelacaoX3 := ""
Local aTamX3 := {}
Local nTamArr := 0
Local cAliasTab := ""
Default aArray := {}
Default cCampo := ""
Default nTipo := 0
Default cTituloDef := ""
Default cCampoDef := ""
Default cBlocoDef := ""
Default cAliasDef := ""
//Se tiver campo preenchido
If ! Empty(cCampo)
cFieldX3 := GetSX3Cache(cCampo, "X3_CAMPO")
//Se o campo for encontrado na SX3
If ! Empty(cFieldX3)
nTamArr := Len(aArray) + 1
cAliasTab := AliasCPO(cFieldX3)
cTipoX3 := GetSX3Cache(cFieldX3, "X3_TIPO")
aTamX3 := TamSX3(cFieldX3)
cTitX3 := Iif(Empty(cTituloDef), GetSX3Cache(cFieldX3, "X3_TITULO"), cTituloDef)
cPictX3 := PesqPict(cAliasTab, cFieldX3)
cCBoxX3 := GetSX3Cache(cFieldX3, "X3_CBOX")
cF3X3 := GetSX3Cache(cFieldX3, "X3_F3")
cValidX3 := GetSX3Cache(cFieldX3, "X3_VALID")
cUsadoX3 := GetSX3Cache(cFieldX3, "X3_USADO")
cRelacaoX3 := GetSX3Cache(cFieldX3, "X3_RELACAO")
//Para montar a Struct de uma FWTemporaryTable
If nTipo == 1
aAdd(aArray, {;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cTipoX3,;
aTamX3[1],;
aTamX3[2];
})
//Para montar o aHeader de telas com Browse (FWMarkBrowse)
ElseIf nTipo == 2
aAdd(aArray, {;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cTitX3,;
nTamArr,;
cPictX3,;
1,;
aTamX3[1],;
aTamX3[2],;
cCBoxX3;
})
//Para montar o aSeek em telas com Pesquisa no Browse
ElseIf nTipo == 3
aAdd(aArray, { cTitX3, ;
{ { "",;
cTipoX3,;
aTamX3[1],;
aTamX3[2],;
cTitX3,;
cPictX3;
} };
})
//Para montar o aHeader de telas com Browse (MsNewGetDados)
ElseIf nTipo == 4
aAdd(aArray, {;
cTitX3,;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cPictX3,;
aTamX3[1],;
aTamX3[2],;
cValidX3,;
cUsadoX3,;
cTipoX3,;
cF3X3,;
cRelacaoX3,;
cCBoxX3;
})
//Para montar o aHeader de telas com FWBrwColumn (FWFormBrowse)
ElseIf nTipo == 5
aAdd(aArray, FWBrwColumn():New())
nTamArr := Len(aArray)
aArray[nTamArr]:SetType(cTipoX3)
aArray[nTamArr]:SetTitle(cTitX3)
aArray[nTamArr]:SetSize(aTamX3[1])
aArray[nTamArr]:SetPicture(cPictX3)
aArray[nTamArr]:SetDecimal(aTamX3[2])
aArray[nTamArr]:SetData(&(cBlocoDef))
//Para utilizar o método SetFieldFilter (FWFormBrowse)
ElseIf nTipo == 6
aAdd(aArray, {;
cCampo,;
cTitX3,;
cTipoX3,;
aTamX3[1],;
aTamX3[2],;
cPictX3;
})
//Para utilizar o método SetFields (FWMarkBrowse)
ElseIf nTipo == 7
aAdd(aArray, {;
cTitX3,;
&("{|| " + Iif(! Empty(cAliasDef), "(" + cAliasDef + ")->", "") + cCampo + "}"),;
cTipoX3,;
cPictX3,;
1,;
aTamX3[1],;
aTamX3[2],;
.F.,;
,;
,;
,;
,;
,;
,;
,;
1;
})
EndIf
EndIf
EndIf
RestArea(aArea)
Return
@obs Tipos do nTipo:
1 = Campos para FWTemporaryTable
2 = Campos para um aHeader de um FWMarkBrowse
3 = Campos para aSeek FWMarkBrowse
4 = Campos para um aHeader de um MsNewGetDados
5 = Campos para um aHeader composto de FWBrwColumn, porém para usar em um FWFormBrowse
6 = Campos para filtro de SetFieldFilter em um FWFormBrowse
7 = Campos para definição de um FWMarkBrowse (método SetFields)
/*/
User Function X3ToArr(aArray, cCampo, nTipo, cTituloDef, cCampoDef, cBlocoDef, cAliasDef)
Local aArea := GetArea()
Local cFieldX3 := ""
Local cTipoX3 := ""
Local cTitX3 := ""
Local cPictX3 := ""
Local cCBoxX3 := ""
Local cF3X3 := ""
Local cValidX3 := ""
Local cUsadoX3 := ""
Local cRelacaoX3 := ""
Local aTamX3 := {}
Local nTamArr := 0
Local cAliasTab := ""
Default aArray := {}
Default cCampo := ""
Default nTipo := 0
Default cTituloDef := ""
Default cCampoDef := ""
Default cBlocoDef := ""
Default cAliasDef := ""
//Se tiver campo preenchido
If ! Empty(cCampo)
cFieldX3 := GetSX3Cache(cCampo, "X3_CAMPO")
//Se o campo for encontrado na SX3
If ! Empty(cFieldX3)
nTamArr := Len(aArray) + 1
cAliasTab := AliasCPO(cFieldX3)
cTipoX3 := GetSX3Cache(cFieldX3, "X3_TIPO")
aTamX3 := TamSX3(cFieldX3)
cTitX3 := Iif(Empty(cTituloDef), GetSX3Cache(cFieldX3, "X3_TITULO"), cTituloDef)
cPictX3 := PesqPict(cAliasTab, cFieldX3)
cCBoxX3 := GetSX3Cache(cFieldX3, "X3_CBOX")
cF3X3 := GetSX3Cache(cFieldX3, "X3_F3")
cValidX3 := GetSX3Cache(cFieldX3, "X3_VALID")
cUsadoX3 := GetSX3Cache(cFieldX3, "X3_USADO")
cRelacaoX3 := GetSX3Cache(cFieldX3, "X3_RELACAO")
//Para montar a Struct de uma FWTemporaryTable
If nTipo == 1
aAdd(aArray, {;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cTipoX3,;
aTamX3[1],;
aTamX3[2];
})
//Para montar o aHeader de telas com Browse (FWMarkBrowse)
ElseIf nTipo == 2
aAdd(aArray, {;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cTitX3,;
nTamArr,;
cPictX3,;
1,;
aTamX3[1],;
aTamX3[2],;
cCBoxX3;
})
//Para montar o aSeek em telas com Pesquisa no Browse
ElseIf nTipo == 3
aAdd(aArray, { cTitX3, ;
{ { "",;
cTipoX3,;
aTamX3[1],;
aTamX3[2],;
cTitX3,;
cPictX3;
} };
})
//Para montar o aHeader de telas com Browse (MsNewGetDados)
ElseIf nTipo == 4
aAdd(aArray, {;
cTitX3,;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cPictX3,;
aTamX3[1],;
aTamX3[2],;
cValidX3,;
cUsadoX3,;
cTipoX3,;
cF3X3,;
cRelacaoX3,;
cCBoxX3;
})
//Para montar o aHeader de telas com FWBrwColumn (FWFormBrowse)
ElseIf nTipo == 5
aAdd(aArray, FWBrwColumn():New())
nTamArr := Len(aArray)
aArray[nTamArr]:SetType(cTipoX3)
aArray[nTamArr]:SetTitle(cTitX3)
aArray[nTamArr]:SetSize(aTamX3[1])
aArray[nTamArr]:SetPicture(cPictX3)
aArray[nTamArr]:SetDecimal(aTamX3[2])
aArray[nTamArr]:SetData(&(cBlocoDef))
//Para utilizar o método SetFieldFilter (FWFormBrowse)
ElseIf nTipo == 6
aAdd(aArray, {;
cCampo,;
cTitX3,;
cTipoX3,;
aTamX3[1],;
aTamX3[2],;
cPictX3;
})
//Para utilizar o método SetFields (FWMarkBrowse)
ElseIf nTipo == 7
aAdd(aArray, {;
cTitX3,;
&("{|| " + Iif(! Empty(cAliasDef), "(" + cAliasDef + ")->", "") + cCampo + "}"),;
cTipoX3,;
cPictX3,;
1,;
aTamX3[1],;
aTamX3[2],;
.F.,;
,;
,;
,;
,;
,;
,;
,;
1;
})
EndIf
EndIf
EndIf
RestArea(aArea)
Return
Por favor Acessar ou Registrar para participar da conversa.
- ftvernier
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 386
- Obrigados Recebidos: 2
1 ano 10 meses atrás #33324
por ftvernier
Respondido por ftvernier no tópico Erro no CodAnalyse
Segue função.
@obs Tipos do nTipo:
1 = Campos para FWTemporaryTable
2 = Campos para um aHeader de um FWMarkBrowse
3 = Campos para aSeek FWMarkBrowse
4 = Campos para um aHeader de um MsNewGetDados
5 = Campos para um aHeader composto de FWBrwColumn, porém para usar em um FWFormBrowse
6 = Campos para filtro de SetFieldFilter em um FWFormBrowse
7 = Campos para definição de um FWMarkBrowse (método SetFields)
/*/
User Function X3ToArr(aArray, cCampo, nTipo, cTituloDef, cCampoDef, cBlocoDef, cAliasDef)
Local aArea := GetArea()
Local cFieldX3 := ""
Local cTipoX3 := ""
Local cTitX3 := ""
Local cPictX3 := ""
Local cCBoxX3 := ""
Local cF3X3 := ""
Local cValidX3 := ""
Local cUsadoX3 := ""
Local cRelacaoX3 := ""
Local aTamX3 := {}
Local nTamArr := 0
Local cAliasTab := ""
Default aArray := {}
Default cCampo := ""
Default nTipo := 0
Default cTituloDef := ""
Default cCampoDef := ""
Default cBlocoDef := ""
Default cAliasDef := ""
//Se tiver campo preenchido
If ! Empty(cCampo)
cFieldX3 := GetSX3Cache(cCampo, "X3_CAMPO")
//Se o campo for encontrado na SX3
If ! Empty(cFieldX3)
nTamArr := Len(aArray) + 1
cAliasTab := AliasCPO(cFieldX3)
cTipoX3 := GetSX3Cache(cFieldX3, "X3_TIPO")
aTamX3 := TamSX3(cFieldX3)
cTitX3 := Iif(Empty(cTituloDef), GetSX3Cache(cFieldX3, "X3_TITULO"), cTituloDef)
cPictX3 := PesqPict(cAliasTab, cFieldX3)
cCBoxX3 := GetSX3Cache(cFieldX3, "X3_CBOX")
cF3X3 := GetSX3Cache(cFieldX3, "X3_F3")
cValidX3 := GetSX3Cache(cFieldX3, "X3_VALID")
cUsadoX3 := GetSX3Cache(cFieldX3, "X3_USADO")
cRelacaoX3 := GetSX3Cache(cFieldX3, "X3_RELACAO")
//Para montar a Struct de uma FWTemporaryTable
If nTipo == 1
aAdd(aArray, {;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cTipoX3,;
aTamX3[1],;
aTamX3[2];
})
//Para montar o aHeader de telas com Browse (FWMarkBrowse)
ElseIf nTipo == 2
aAdd(aArray, {;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cTitX3,;
nTamArr,;
cPictX3,;
1,;
aTamX3[1],;
aTamX3[2],;
cCBoxX3;
})
//Para montar o aSeek em telas com Pesquisa no Browse
ElseIf nTipo == 3
aAdd(aArray, { cTitX3, ;
{ { "",;
cTipoX3,;
aTamX3[1],;
aTamX3[2],;
cTitX3,;
cPictX3;
} };
})
//Para montar o aHeader de telas com Browse (MsNewGetDados)
ElseIf nTipo == 4
aAdd(aArray, {;
cTitX3,;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cPictX3,;
aTamX3[1],;
aTamX3[2],;
cValidX3,;
cUsadoX3,;
cTipoX3,;
cF3X3,;
cRelacaoX3,;
cCBoxX3;
})
//Para montar o aHeader de telas com FWBrwColumn (FWFormBrowse)
ElseIf nTipo == 5
aAdd(aArray, FWBrwColumn():New())
nTamArr := Len(aArray)
aArray[nTamArr]:SetType(cTipoX3)
aArray[nTamArr]:SetTitle(cTitX3)
aArray[nTamArr]:SetSize(aTamX3[1])
aArray[nTamArr]:SetPicture(cPictX3)
aArray[nTamArr]:SetDecimal(aTamX3[2])
aArray[nTamArr]:SetData(&(cBlocoDef))
//Para utilizar o método SetFieldFilter (FWFormBrowse)
ElseIf nTipo == 6
aAdd(aArray, {;
cCampo,;
cTitX3,;
cTipoX3,;
aTamX3[1],;
aTamX3[2],;
cPictX3;
})
//Para utilizar o método SetFields (FWMarkBrowse)
ElseIf nTipo == 7
aAdd(aArray, {;
cTitX3,;
&("{|| " + Iif(! Empty(cAliasDef), "(" + cAliasDef + ")->", "") + cCampo + "}"),;
cTipoX3,;
cPictX3,;
1,;
aTamX3[1],;
aTamX3[2],;
.F.,;
,;
,;
,;
,;
,;
,;
,;
1;
})
EndIf
EndIf
EndIf
RestArea(aArea)
Return
@obs Tipos do nTipo:
1 = Campos para FWTemporaryTable
2 = Campos para um aHeader de um FWMarkBrowse
3 = Campos para aSeek FWMarkBrowse
4 = Campos para um aHeader de um MsNewGetDados
5 = Campos para um aHeader composto de FWBrwColumn, porém para usar em um FWFormBrowse
6 = Campos para filtro de SetFieldFilter em um FWFormBrowse
7 = Campos para definição de um FWMarkBrowse (método SetFields)
/*/
User Function X3ToArr(aArray, cCampo, nTipo, cTituloDef, cCampoDef, cBlocoDef, cAliasDef)
Local aArea := GetArea()
Local cFieldX3 := ""
Local cTipoX3 := ""
Local cTitX3 := ""
Local cPictX3 := ""
Local cCBoxX3 := ""
Local cF3X3 := ""
Local cValidX3 := ""
Local cUsadoX3 := ""
Local cRelacaoX3 := ""
Local aTamX3 := {}
Local nTamArr := 0
Local cAliasTab := ""
Default aArray := {}
Default cCampo := ""
Default nTipo := 0
Default cTituloDef := ""
Default cCampoDef := ""
Default cBlocoDef := ""
Default cAliasDef := ""
//Se tiver campo preenchido
If ! Empty(cCampo)
cFieldX3 := GetSX3Cache(cCampo, "X3_CAMPO")
//Se o campo for encontrado na SX3
If ! Empty(cFieldX3)
nTamArr := Len(aArray) + 1
cAliasTab := AliasCPO(cFieldX3)
cTipoX3 := GetSX3Cache(cFieldX3, "X3_TIPO")
aTamX3 := TamSX3(cFieldX3)
cTitX3 := Iif(Empty(cTituloDef), GetSX3Cache(cFieldX3, "X3_TITULO"), cTituloDef)
cPictX3 := PesqPict(cAliasTab, cFieldX3)
cCBoxX3 := GetSX3Cache(cFieldX3, "X3_CBOX")
cF3X3 := GetSX3Cache(cFieldX3, "X3_F3")
cValidX3 := GetSX3Cache(cFieldX3, "X3_VALID")
cUsadoX3 := GetSX3Cache(cFieldX3, "X3_USADO")
cRelacaoX3 := GetSX3Cache(cFieldX3, "X3_RELACAO")
//Para montar a Struct de uma FWTemporaryTable
If nTipo == 1
aAdd(aArray, {;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cTipoX3,;
aTamX3[1],;
aTamX3[2];
})
//Para montar o aHeader de telas com Browse (FWMarkBrowse)
ElseIf nTipo == 2
aAdd(aArray, {;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cTitX3,;
nTamArr,;
cPictX3,;
1,;
aTamX3[1],;
aTamX3[2],;
cCBoxX3;
})
//Para montar o aSeek em telas com Pesquisa no Browse
ElseIf nTipo == 3
aAdd(aArray, { cTitX3, ;
{ { "",;
cTipoX3,;
aTamX3[1],;
aTamX3[2],;
cTitX3,;
cPictX3;
} };
})
//Para montar o aHeader de telas com Browse (MsNewGetDados)
ElseIf nTipo == 4
aAdd(aArray, {;
cTitX3,;
Iif(Empty(cCampoDef), cCampo, cCampoDef),;
cPictX3,;
aTamX3[1],;
aTamX3[2],;
cValidX3,;
cUsadoX3,;
cTipoX3,;
cF3X3,;
cRelacaoX3,;
cCBoxX3;
})
//Para montar o aHeader de telas com FWBrwColumn (FWFormBrowse)
ElseIf nTipo == 5
aAdd(aArray, FWBrwColumn():New())
nTamArr := Len(aArray)
aArray[nTamArr]:SetType(cTipoX3)
aArray[nTamArr]:SetTitle(cTitX3)
aArray[nTamArr]:SetSize(aTamX3[1])
aArray[nTamArr]:SetPicture(cPictX3)
aArray[nTamArr]:SetDecimal(aTamX3[2])
aArray[nTamArr]:SetData(&(cBlocoDef))
//Para utilizar o método SetFieldFilter (FWFormBrowse)
ElseIf nTipo == 6
aAdd(aArray, {;
cCampo,;
cTitX3,;
cTipoX3,;
aTamX3[1],;
aTamX3[2],;
cPictX3;
})
//Para utilizar o método SetFields (FWMarkBrowse)
ElseIf nTipo == 7
aAdd(aArray, {;
cTitX3,;
&("{|| " + Iif(! Empty(cAliasDef), "(" + cAliasDef + ")->", "") + cCampo + "}"),;
cTipoX3,;
cPictX3,;
1,;
aTamX3[1],;
aTamX3[2],;
.F.,;
,;
,;
,;
,;
,;
,;
,;
1;
})
EndIf
EndIf
EndIf
RestArea(aArea)
Return
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.109 segundos