Página 1 de 1

popular um dbgrid, help?

Enviado: 22 Jan 2015 20:33
por pena
Pessoal peguei um programa pronto na internet, funcionando perfeitamente, para ler xml, ele monta um dbgrid com os produtos, segue a rotina

Código: Selecionar todos

public aColItens:={}

   aadd(aColItens,{"Item"          ,030,1,""})
   aadd(aColItens,{"Cod.Forn."     ,080,0,'PegaDadosXML(tProd,"cProd")'})
   aadd(aColItens,{"Qte"           ,080,1,'alltrim(transform(val(PegaDadosXML(tProd,"qCom")),"@E 999999,999.999"))'})
   aadd(aColItens,{"Unid."         ,040,0,'PegaDadosXML(tProd,"uCom")'})
   aadd(aColItens,{"Descrição"     ,250,0,'PegaDadosXML(tProd,"xProd")'})
   aadd(aColItens,{"Vr.Unit."      ,080,1,'alltrim(transform(val(PegaDadosXML(tProd,"vUnCom")),"@E 999999,999.99"))'})
   aadd(aColItens,{"Vr. Total"     ,080,1,'PegaDadosXML(tProd,"vProd")'})
   aadd(aColItens,{"Base ICMS"     ,080,1,'PegaDadosXML(tICMS,"vBC")'})
   aadd(aColItens,{"% ICMS"        ,050,1,'PegaDadosXML(tICMS,"pICMS")'})
   aadd(aColItens,{"Vr. ICMS"      ,060,1,'PegaDadosXML(tICMS,"vICMS")'})
   aadd(aColItens,{"MVA.ST"        ,060,1,'PegaDadosXML(tICMS,"pMVAST")'})
   aadd(aColItens,{"% ICMS ST"     ,050,1,'PegaDadosXML(tICMS,"pICMSST")'})
   aadd(aColItens,{"Base ST"       ,060,1,'PegaDadosXML(tICMS,"vBCST")'})
   aadd(aColItens,{"Vr. ST"        ,060,1,'PegaDadosXML(tICMS,"vICMSST")'})
   aadd(aColItens,{"NCM"           ,070,0,'PegaDadosXML(tProd,"NCM")'})
   aadd(aColItens,{"CST"           ,040,0,'PegaDadosXML(tICMS,"orig")+PegaDadosXML(tICMS,"CST")'})
   aadd(aColItens,{"CFOp"          ,050,0,'PegaDadosXML(tProd,"CFOP")'})
   aadd(aColItens,{"CST.IPI"       ,040,0,'PegaDadosXML(tIPI,"CST")'})
   aadd(aColItens,{"Base IPI"      ,080,1,'PegaDadosXML(tIPITrib,"vBC")'})
   aadd(aColItens,{"% IPI"         ,050,1,'PegaDadosXML(tIPITrib,"pIPI")'})
   aadd(aColItens,{"Vr. IPI"       ,080,1,'PegaDadosXML(tIPITrib,"vIPI")'})
   aadd(aColItens,{"CST PIS"       ,040,0,'PegaDadosXML(tPIS,"CST")'})
   aadd(aColItens,{"Base PIS"      ,060,1,'PegaDadosXML(tPIS,"vBC")'})
   aadd(aColItens,{"% PIS"         ,050,1,'PegaDadosXML(tPIS,"pPIS")'})
   aadd(aColItens,{"Vr. PIS"       ,060,1,'PegaDadosXML(tPIS,"vPIS")'})
   aadd(aColItens,{"CST.Cofins"    ,040,0,'PegaDadosXML(tCOFINS,"CST")'})
   aadd(aColItens,{"Base Cofins"   ,060,1,'PegaDadosXML(tCOFINS,"vBC")'})
   aadd(aColItens,{"% Cofins"      ,050,1,'PegaDadosXML(tCOFINS,"pCOFINS")'})
   aadd(aColItens,{"Vr.Cofins"     ,060,1,'PegaDadosXML(tCOFINS,"vCOFINS")'})

   define grid gridItensDaNota
		row      030
		col      007
		width    200
		height   200
		headers  {""}
		widths   {10}
           cellnavigation .t.
   end grid

	for nCta:=1 to len(aColItens)
            MainForm.gridItensDaNota.AddColumn(nCta,aColItens[nCta,1],aColItens[nCta,2],aColItens[nCta,3])
	next
Precisava da ajuda de vcs agora, para pegar informações do cod. Forn. Quantidade e Vlr unitario, não estou conseguindo, eu monto meus dbgrid de outro jeito

Código: Selecionar todos

                       @ 010,335 GRID Grid_Cupom 		;
	                         WIDTH  450			;
                                 HEIGHT 362			;
                                 HEADERS {'N','Código','Descrição','Quant','Valor'};
                                 WIDTHS  {25,50,250,60,60};
 	                         FONT 'Arial' SIZE 08;
                                 JUSTIFY { BROWSE_JTFY_RIGHT , BROWSE_JTFY_LEFT};
                                 ON DBLCLICK Cancela_Item()
e insiro os valores assim

Código: Selecionar todos

         ADD ITEM {STRZERO(Ln,02),STR(Produtos->Codigo,6),Produtos->produto,TRAN(Form_Cupom.T_Quantidade.Value,'@E 99,999.99'),TRAN(Form_Cupom.T_Unitario.Value,'@E 99,999.99')} TO Grid_Cupom OF Form_Cupom
e pego os dados assim

Código: Selecionar todos

     Local cCol := ValorDaColuna( "Grid_Cupom" ,"Form_Cupom" , 1 )

Function valordacoluna( ControlName, ParentForm , nCol )
       Local aRet := {}
       If GetControlType (ControlName,ParentForm) != "GRID"
          MsgBox( "Objeto não é um Grid!!")
          Return( aRet )
       EndIf
       nCol := Iif( nCol == Nil .Or. nCol == 0 , 1 , nCol )
       aRet := GetProperty (  ParentForm  , ControlName , 'Item' , GetProperty( ParentForm , ControlName , 'Value' ) )
       Return( aRet[ nCol ] )

nao to conseguindo buscar os dados, desde já agradeço