import.css=/download/attachments/327912/newLayout.css |
Função: FillGetDadosEsta função monta o aHeader e o aCols para serem utilizados pela MsGetDados() ou MsNewGetDados(). FillGetDados ( < nOpc>, < cAlias>, [ nOrder], [ cSeekKey], [ bSeekWhile], [ uSeekFor], [ aNoFields], [ aYesFields], [ lOnlyYes], [ cQuery], [ bMontCols], [ lEmpty], [ aHeaderAux], [ aColsAux], [ bAfterCols], [ bBeforeCols], [ bAfterHeader], [ cAliasQry], [ bCriaVar], [ lUserFields], [ aYesUsado] ) --> lRet
lRet
ParâmetronOpcDetermina a ação que está sendo executada seguindo a seguinte definição:
uSeekForPode ser utilizados de duas maneiras:
Exemplo: {{bCondicao1, bTrue1, bFalse1}, {bCondicao2, bTrue2, bFalse2}.. bCondicaoN, bTrueN, bFalseN} cQuerySe ambiente utilizado for TOP e cQuery estiver preenchido, desconsidera os parâmetros cSeekKey e bSeekWhile caso tenham sido informados. Para a criação do aHeader e aCols via Query, a tabela não poderá possuir campos do tipo MEMO. Caso seja necessário incluir condições para a inclusão dos registros no aCols será necessário a utilização dos parâmetros cSeekKey e bSeekWhile. aYesFieldsQuando utilizar esse parâmetro buscando os campos do dicionário de dados (SX3), remova os espaços em branco utilizando a função AllTrim. Exemplo: AAdd( aYesFields, AllTrim( SX3->X3_CAMPO ) )
#include "protheus.ch"User Function TstFillGet()Private cCadastro := "Atualizacao do pedido de venda"Private aRotina := { {"Pesquisar" ,"AxPesqui" ,0,1} ,; {"Visualizar" ,"U_TstFilVis" ,0,2}} Private cDelFunc := ".T."Private cString := "SC5"dbSelectArea("SC5")dbSetOrder(1)dbSelectArea(cString)mBrowse( 6,1,22,75,cString)Return User Function TstFilVis(cAlias,nReg,nOpc)Local aArea := GetArea()Local aCpos1 := {"C6_QTDVEN ","C6_QTDLIB"}Local aCpos2 := {}Local aPosObj := {}Local aObjects := {}Local aSize := {}Local aPosGet := {}Local aInfo := {}Local lContinua:= .T.Local lGrade := MaGrade()Local lQuery := .F.Local lFreeze := .F.Local nGetLin := 0Local nOpcA := 0Local nI := 0Local nColFreeze:= 1Local cArqQry := "SC6"Local cCadastro:= OemToAnsi("Atualizaçäo de Pedidos de Venda") //"Atualizaçäo de Pedidos de Venda"Local oGetdLocal oDlgLocal bCond := {|| .T. }Local bAction1 := {|| .T. } Local bAction2 := {|| .T. }Local cSeek := ""Local aNoFields := {"C6_NUM","C6_QTDEMP","C6_QTDENT","C6_QTDEMP2","C6_QTDENT2"} // Campos que nao devem entrar no aHeader e aColsLocal bWhile := {|| }Local cQuery := ""// Inicializa a Variaveis Privates. PRIVATE aTrocaF3 := {}PRIVATE aTELA[0][0],aGETS[0]PRIVATE aHeader := {}PRIVATE aCols := {}PRIVATE aHeadFor := {}PRIVATE aColsFor := {}PRIVATE N := 1Inclui := .F.Altera := .F.// Inicializa a Variaveis da Enchoice. RegToMemory( "SC5", .F., .F. )// Filtros para montagem do aCols dbSelectArea("SC6")dbSetOrder(1)#IFDEF TOP lQuery := .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 e aCols FillGetDados(nOPc,"SC6",1,cSeek,bWhile,{{bCond,bAction1,bAction2}},aNoFields,/*aYesFields*/,/*lOnlyYes*/,cQuery,/*bMontCols*/,.F.,/*aHeaderAux*/,/*aColsAux*/,/*bafterCols*/,/*bBeforeCols*/,/*bAfterHeader*/,"SC6")If lQuery dbSelectArea("SC6") dbCloseArea() ChkFile("SC6",.F.)EndIfFor nI := 1 To Len(aHeader) If aHeader[nI][8] == "M" aadd(aCpos1,aHeader[nI][2]) EndIfNext // Caso nao ache nenhum item , abandona rotina. If ( Len(aCols) == 0 ) ApMsgAlert("Não achou os itens do pedido") lContinua := .F.EndIfIf ( lContinua ) // Faz o calculo automatico de dimensoes 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 MSDIALOG oDlg TITLE cCadastro From aSize[7],0 to aSize[6],aSize[5] of oMainWnd PIXEL // Estabelece a Troca de Clientes conforme o Tipo do 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,nColFreeze,,,,,,,,lFreeze) ACTIVATE MSDIALOG oDlg ON INIT EnchoiceBar(oDlg, {||oDlg:End()},{||oDlg:End()}) EndIfReturn Protheus 10
|