Home

Linha Microsiga Protheus

Páginas filhas
  • AC240Fol - Criação de folders

Ponto-de-Entrada: AC240Fol - Criação de folders
Abrangências: Microsiga Protheus 8.11 , Microsiga Protheus 10
Versões: Microsiga Protheus 8.11 , Microsiga Protheus 10
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Descrição:
Criação do ponto de entrada "AC240Fol" para criar novas folders do usuário no cadastro de alunos.
Programa Fonte
ACAA240.prw
Sintaxe

AC240Fol - Criação de folders ( [ ParamIxb[1] ], [ ParamIxb[2] ], [ ParamIxb[3] ] ) --> aUserFol

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
ParamIxb[1] Objeto Objeto oFolder contendo todos os folder do cadastro do usuário.
ParamIxb[2] Numérico Variável nOpc contendo a opção clicada pelo usuário, se Inclusão, Visualização, Alteração ou Exclusão.
ParamIxb[3] Objeto Objeto oDlg contendo o MsDialog.
Retorno
    aUserFol()
  • Array contendo todas as informações da nova folder, como aHeader, aCols, nLinha, etc. Este array será utilizado desde a criação até a gravação dos dados da folder.
Exemplos
User Function AC240Fol()Local oFolder := ParamIxb[1]    Local nOpc    := ParamIxb[2]    Local nX := 0          Local aSizeAut 	:= MsAdvSize()Local aObjects	:= {}Local aInfo 	:= {}Local aPosObj	:= {}Local aHeadUser := {}Local aColsUser := {}Local oGetFol1  := nil  Local oGetFol2  := nil  Local aUserFol  := {}     aAdd( aObjects, { 200, 200, .T., .T. })aAdd( aObjects, { 130, 130, .T., .T. })	aInfo    := { aSizeAut[ 1 ], aSizeAut[ 2 ], aSizeAut[ 3 ], aSizeAut[ 4 ], 3, 3 }aPosObj  := MsObjSize( aInfo, aObjects, .T. )//Folder 1     dbSelectArea("SX3")dbSeek("JK1")While SX3->(!Eof()) .And. (SX3->X3_ARQUIVO == "JK1")	If X3Uso(SX3->X3_USADO) .and. Alltrim(SX3->X3_CAMPO) <> "JK1_NUMRA"		aAdd( aHeadUser, { Alltrim(X3Titulo()),;		AllTrim(SX3->X3_CAMPO),;		SX3->X3_PICTURE,;		SX3->X3_TAMANHO,;		SX3->X3_DECIMAL,;		SX3->X3_VALID,;		SX3->X3_USADO,;		SX3->X3_TIPO,;		SX3->X3_ARQUIVO,;		SX3->X3_CONTEXT } )				 	Endif		SX3->( dbSkip() )Enddo		dbSelectArea("JK1")JK1->( dbSetOrder(1) )If ! nOpc == 3	JK1->( dbSeek(xFilial("JK1") + M->JA2_NUMRA) )	While JK1->(!Eof()) .And. xFilial("JK1")+M->JA2_NUMRA == JK1->JK1_FILIAL + JK1->JK1_NUMRA		aAdd( aColsUser, Array(Len(aHeadUser)+1))					For nX := 1 to Len(aColsUser[1])-1        	aColsUser[Len(aColsUser)][nX] := FieldGet( FieldPos(aHeadUser[nX][2]) )		Next nX		aColsUser[Len(aColsUser)][Len(aHeadUser)+1] := .F.		JK1->(dbSkip())	EnddoEndif		If nOpc == 3 .or. Empty(aColsUser)			aColsUser := Array(1,Len(aHeadUser)+1)			For nX:=1 to Len(aHeadUser)		aColsUser[1][nX] := CriaVar(aHeadUser[nX][2])	Next nX			aColsUser[1][Len(aHeadUser)+1] := .F.Endif     aHeader := aClone(aHeadUser)aCols := aClone(aColsUser)oGetFol1 := MsGetDados():New(2, 2, aPosObj[2,3]-aPosObj[2,1]-15, aPosObj[2,4]-7, nOpc, "AlwaysTrue", "AlwaysTrue","+JK1_ITEM",.T.,,,,,,,,, oFolder:aDialogs[8] )oGetFol1:oBrowse:lDisablePaint := .t. //aHeader da folder 1, aCols da folder 1, linha da Folder 1, Controla qual das folder esta ativaaadd(aUserFol, {aHeader,aCols,oGetFol1, 1, .F. } )                //Folder 2aHeadUser := {}aColsUser := {}dbSelectArea("SX3")dbSeek("JK2")While SX3->(!Eof()) .And. (SX3->X3_ARQUIVO == "JK2")	If X3Uso(SX3->X3_USADO) .and. Alltrim(SX3->X3_CAMPO) <> "JK2_NUMRA"		aAdd( aHeadUser, { Alltrim(X3Titulo()),;		AllTrim(SX3->X3_CAMPO),;		SX3->X3_PICTURE,;		SX3->X3_TAMANHO,;		SX3->X3_DECIMAL,;		SX3->X3_VALID,;		SX3->X3_USADO,;		SX3->X3_TIPO,;		SX3->X3_ARQUIVO,;		SX3->X3_CONTEXT } )				 	Endif		SX3->( dbSkip() )Enddo		dbSelectArea("JK2")JK2->( dbSetOrder(1) )If ! nOpc == 3	JK2->( dbSeek(xFilial("JK2") + M->JA2_NUMRA) )	While JK2->(!Eof()) .And. xFilial("JK2")+M->JA2_NUMRA == JK2->JK2_FILIAL + JK2->JK2_NUMRA		aAdd( aColsUser, Array(Len(aHeadUser)+1))					For nX := 1 to Len(aColsUser[1])-1        	aColsUser[Len(aColsUser)][nX] := FieldGet( FieldPos(aHeadUser[nX][2]) )		Next nX		aColsUser[Len(aColsUser)][Len(aHeadUser)+1] := .F.		JK2->(dbSkip())	EnddoEndif		If nOpc == 3 .or. Empty(aColsUser)			aColsUser := Array(1,Len(aHeadUser)+1)			For nX:=1 to Len(aHeadUser)		aColsUser[1][nX] := CriaVar(aHeadUser[nX][2])	Next nX			aColsUser[1][Len(aHeadUser)+1] := .F.Endif     aHeader := aClone(aHeadUser)aCols := aClone(aColsUser)oGetFol2 := MsGetDados():New(2, 2, aPosObj[2,3]-aPosObj[2,1]-15, aPosObj[2,4]-7, nOpc, "AlwaysTrue", "AlwaysTrue","+JK2_ITEM",.T.,,,,,,,,, oFolder:aDialogs[9] )oGetFol2:oBrowse:lDisablePaint := .t. //aHeader da folder 2, aCols da folder 2, linha da Folder 2, Controla das folders esta ativaaadd(aUserFol, {aHeader,aCols,oGetFol2, 1, .F. } ) Return aUserFol
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não