mp-FillGetDados-261112-2041-6014

7
FillGetDados Colapse ALL Expand ALL Função: FillGetDados Esta função monta o aHeader e o aCols para serem utilizados pela MsGetDados() ou MsNewGetDados(). Sintaxe FillGetDados ( < nOpc>, < cAlias>, [ nOrder], [ cSeekKey], [ bSeekWhile], [ uSeekFor], [ aNoFields], [ aYesFields], [ lOnlyYes], [ cQuery], [ bMontCols], [ lEmpty], [ aHeaderAux], [ aColsAux], [ bAfterCols], [ bBeforeCols], [ bAfterHeader], [ cAliasQry], [ bCriaVar], [ lUserFields], [ aYesUsado] ) --> lRet Parâmetros/Elementos Nome Tipo Descrição Obrigatório Referência nOpc Numérico Número correspondente à operação a ser executada. X cAlias Caracter Alias da tabela referente aos itens X nOrder Numérico Ordem correspondente a chave de indice para preencher o acols. Default é 1. cSeekKey Caracter Chave utilizada no posicionamento da area para preencher o acols. bSeekWhile Bloco de código Bloco contendo a expressão a ser comparada com cSeekKey na condição do While. uSeekFor Qualquer Condição para execução do while.

Transcript of mp-FillGetDados-261112-2041-6014

Page 1: mp-FillGetDados-261112-2041-6014

FillGetDados

Colapse ALLExpand ALLFunção: FillGetDados

Esta função monta o aHeader e o aCols paraserem utilizados pela MsGetDados() ouMsNewGetDados().

SintaxeFillGetDados ( < nOpc>, < cAlias>, [ nOrder], [ cSeekKey], [ bSeekWhile], [ uSeekFor], [ aNoFields], [ aYesFields], [lOnlyYes], [ cQuery], [ bMontCols], [ lEmpty], [ aHeaderAux], [ aColsAux], [ bAfterCols], [ bBeforeCols], [bAfterHeader], [ cAliasQry], [ bCriaVar], [ lUserFields], [ aYesUsado] ) --> lRet

Parâmetros/Elementos 

Nome Tipo Descrição Obrigatório Referência

nOpc Numérico Númerocorrespondente àoperação a serexecutada.

X  

cAlias Caracter Alias da tabelareferente aos itens

X  

nOrder Numérico Ordemcorrespondente achave de indicepara preencher oacols. Default é 1.

   

cSeekKey Caracter Chave utilizada noposicionamento daarea para preenchero acols.

   

bSeekWhile Bloco de código Bloco contendo aexpressão a sercomparada comcSeekKey nacondição do While.

   

uSeekFor Qualquer Condição paraexecução do while.

   

Page 2: mp-FillGetDados-261112-2041-6014

aNoFields Vetor Array com nomedos campos queserão excluídos namontagem doaHeader

   

aYesFields Vetor Array com nomedos campos queserão incluídos namontagem doaHeader

   

lOnlyYes Lógico Flag indicando seconsidera somenteos camposdeclarados noaYesFields +campos do usuário.Default é .F.

   

cQuery Caracter Query para filtro databela cAlias.

   

bMontCols Bloco de código Bloco contendofunção especificapara preencher oaCols.

   

lEmpty Lógico Se for uma inclusão,passar .T. para queo aCols sejaincializado com 1linha em branco.

   

aHeaderAux Vetor Nome do aHeaderauxiliar. Casonecessite tratar oaheader e acolscomo variáveislocais ( porexemplo, no uso devárias getdados).

   

aColsAux Vetor Nome do aColsauxiliar. Casonecessite tratar oaheader e acolscomo variáveislocais ( porexemplo, no uso devárias getdados).

   

bAfterCols Bloco de código Bloco executadoapós a inclusão decada linha no aCols.

   

Page 3: mp-FillGetDados-261112-2041-6014

bBeforeCols Bloco de código Bloco de códigocontendo expressãopara sair do While.É executado antesda inclusão de cadalinha no aCols

   

bAfterHeader Bloco de código Bloco paramanipular oaHeader após opreenchimento doscampos padrões eantes de incluir oscampos reservadospara o WalkThru.

   

cAliasQry Caracter Nome do alias paraa query.

   

bCriaVar Bloco de código Bloco de códigopara criar a varíavelde memória.

   

lUserFields Lógico Define se inclui oscampos deusuários. Default é.F.

   

aYesUsado Vetor Array com o nomedos campos quedeverão serapresentados.

   

 

RetornolRet

(logico)Retorna se conseguiu efetuar a montagem das variáveis.

ObservaçõesParâmetro

nOpc

Determina a ação que está sendo executada seguindo a seguinte definição:

2 = Visualização3 = Inclusão4 = Alteração5 = Exclusão

 

Page 4: mp-FillGetDados-261112-2041-6014

uSeekFor

Pode ser utilizados de duas maneiras:

Através de bloco-de-código, contendo a condição a ser utilizada para executar o Loop no WhileArray bi-dimensional contendo N.. condições, em que:

[1] - é o bloco condicional[2] - é o bloco a ser executado se verdadeiro e;[3] - é o bloco a ser executado se falso

Exemplo: {{bCondicao1, bTrue1, bFalse1}, {bCondicao2, bTrue2, bFalse2}.. bCondicaoN, bTrueN,bFalseN}

cQuery

Se ambiente utilizado for TOP e cQuery estiver preenchido, desconsidera os parâmetros cSeekKey e bSeekWhilecaso tenham sido informados.

Para a criação do aHeader e aCols via Query, a tabela não poderá possuir campos do tipo MEMO. Caso sejanecessário incluir condições para a inclusão dos registros no aCols será necessário a utilização dos parâmetroscSeekKey e bSeekWhile.

aYesFields

Quando utilizar esse parâmetro buscando os campos do dicionário de dados (SX3), remova os espaços em brancoutilizando a função AllTrim.

Exemplo: AAdd( aYesFields, AllTrim( SX3->X3_CAMPO ) )

 

Exemplos#include "protheus.ch"User FunctionTstFillGet()Private cCadastro := "Atualizacaodo pedido de venda"Private aRotina := {{"Pesquisar" ,"AxPesqui" ,0,1} ,; {"Visualizar" ,"U_TstFilVis" ,0,2}} PrivatecDelFunc := ".T."Private cString :="SC5"dbSelectArea("SC5")dbSetOrder(1)dbSelectArea(cString)mBrowse( 6,1,22,75,cString)Return User Function TstFilVis(cAlias,nReg,nOpc)LocalaArea := GetArea()Local aCpos1 :={"C6_QTDVEN ","C6_QTDLIB"}Local aCpos2 :={}Local aPosObj := {}Local aObjects := {}LocalaSize := {}Local aPosGet := {}Local aInfo

Page 5: mp-FillGetDados-261112-2041-6014

:= {}Local lContinua:= .T.Local lGrade :=MaGrade()Local lQuery := .F.Local lFreeze := .F.Local nGetLin := 0Local nOpcA :=0Local nI := 0Local nColFreeze:= 1LocalcArqQry := "SC6"Local cCadastro:=OemToAnsi("Atualizaçäo de Pedidos de Venda")//"Atualizaçäo de Pedidos de Venda"LocaloGetdLocal oDlgLocal bCond := {|| .T.}Local bAction1 := {|| .T. } Local bAction2 := {|| .T. }Local cSeek := ""LocalaNoFields :={"C6_NUM","C6_QTDEMP","C6_QTDENT","C6_QTDEMP2","C6_QTDENT2"} // Campos que nao devem entrarno aHeader e aColsLocal bWhile := {|| }LocalcQuery := ""// Inicializa a VariaveisPrivates. PRIVATE aTrocaF3 := {}PRIVATE aTELA[0][0],aGETS[0]PRIVATEaHeader := {}PRIVATE aCols := {}PRIVATEaHeadFor := {}PRIVATE aColsFor := {}PRIVATE N:= 1Inclui := .F.Altera := .F.// Inicializa aVariaveis da Enchoice. RegToMemory( "SC5", .F., .F. )// Filtros paramontagem do aCols dbSelectArea("SC6")dbSetOrder(1)#IFDEF TOPlQuery := .T. cQuery := "SELECT * " cQuery +="FROM "+RetSqlName("SC6")+" SC6 " cQuery +="WHERE SC6.C6_FILIAL='"+xFilial("SC6")+"' AND "cQuery += "SC6.C6_NUM='"+SC5->C5_NUM+"' AND "cQuery += "SC6.D_E_L_E_T_<>'*' " cQuery +="ORDER BY "+SqlOrder(SC6->(IndexKey()))dbSelectArea("SC6") dbCloseArea()#ENDIFcSeek := xFilial("SC6")+SC5->C5_NUMbWhile := {||C6_FILIAL+C6_NUM }// Montagem do aHeader eaCols FillGetDados(nOPc,"SC6",1,cSeek,bWhile,{{bCond,

Page 6: mp-FillGetDados-261112-2041-6014

bAction1,bAction2}},aNoFields,/*aYesFields*/,/*lOnlyYes*/,cQuery,/*bMontCols*/,.F.,/*aHeaderAux*/,/*aColsAux*/,/*bafterCols*/,/*bBeforeCols*/,/*bAfterHeader*/,"SC6")If lQuerydbSelectArea("SC6") dbCloseArea()ChkFile("SC6",.F.)EndIfFor nI := 1 ToLen(aHeader) If aHeader[nI][8] == "M" aadd(aCpos1,aHeader[nI][2]) EndIfNext // Casonao ache nenhum item , abandona rotina. If ( Len(aCols) == 0 ) ApMsgAlert("Não achou ositens do pedido") lContinua := .F.EndIfIf (lContinua ) // Faz o calculo automatico dedimensoes de objetos aSize := MsAdvSize()aObjects := {} AAdd( aObjects, { 100, 100, .t.,.t. } ) AAdd( aObjects, { 100, 100, .t., .t. }) AAdd( aObjects, { 100, 020, .t., .f. } )aInfo := { aSize[ 1 ], aSize[ 2 ], aSize[ 3 ],aSize[ 4 ], 3, 3 } aPosObj := MsObjSize( aInfo,aObjects ) aPosGet :=MsObjGetPos(aSize[3]-aSize[1],315,; {{003,033,160,200,240,263}} ) DEFINE MSDIALOGoDlg TITLE cCadastro From aSize[7],0 toaSize[6],aSize[5] of oMainWnd PIXEL //Estabelece a Troca de Clientes conforme o Tipodo Pedido de Venda If ( M->C5_TIPO $ "DB") aTrocaF3 := {{"C5_CLIENTE","SA2"}} Else aTrocaF3 := {} EndIf EnChoice( cAlias, nReg,nOpc, , , , , aPosObj[1],aCpos2,3) oGetd :=MsGetDados():New(aPosObj[2,1],aPosObj[2,2],aPosObj[2,3],aPosObj[2,4],nOpc,,,"",,aCpos1,nColFre

Page 7: mp-FillGetDados-261112-2041-6014

eze,,,,,,,,lFreeze) ACTIVATE MSDIALOG oDlg ONINIT EnchoiceBar(oDlg,{||oDlg:End()},{||oDlg:End()}) EndIfReturn

AbrangênciaProtheus 10