Autor Tópico: duvida sc_lookup  (Lida 746 vezes)

fabio_carneiro

  • Novato
  • *
  • Mensagens: 37
    • Email
duvida sc_lookup
« Online: Agosto 20, 2014, 09:37:24 am »
Bom dia,

Pessoal,

Estou tentando usar 2 sc_lookup,  quando realizo a impressão não traz a 2 consulta do sc_lookup, onde necessito comparar a informação dentro de outra query.


Este código é de algum colega que disponibilizou no forum e peguei como referencia para o que necessito.

Será que consigo usar 2 sc_lookup na mesma consulta e listar .

Se alguém puder me ajudar agradeço prontamente , pois estou apanhando um pouco , pois utilizamos aqui em nossa empresa microsiga e desenvolvemos em advpl , e decidimos utilizar o SCRIPT CASE, para processos de INTRANET.
 

Grato,
Fábio Carneiro


//aqui eu inicio o fpdf
sc_include_lib("fpdf");
$pdf = new FPDF();
$pdf->SetAutoPageBreak(0);

//Função para limitar a quantidade de carater na celula do fdpf
function limitar($string, $tamanho, $encode = 'UTF-8') {
         $string = mb_substr($string, 0, $tamanho, $encode);
          return $string;
      }//fim da função "limitar"

sc_lookup(meus_dados,"SELECT
Z8_LEGISLA,Z8_NUMERO,Z8_TIPO,Z8_EMISSAO,Z8_CHEGADA,Z8_PREVSAI,Z8_CLIENTE,Z8_LOJA,
Z8_SITUACA,Z8_TIPCALC, Z8_VEND, Z8_DTCOLET, Z8_PONCOL1, Z8_TECNICO, Z8_TPAMOST,
Z8_ANALIST, Z8_METODO1, Z8_METODO2,Z8_PROD1, Z8_OBS01, Z9_PARAMET, Z9_ANALISE,
Z9_UM, Z9_ITEM, Z9_MEDIC1,Z9_DILUIC1,Z6_DESC, A1_NOME, A1_END, B1_DESC, A3_NOME,
AA1_REGIAO, AA1_REGIST, AH_UMRES
FROM SZ8010 AS Z8, SZ9010 AS Z9, SZ6010 AS Z6, SA1010 AS A1, SA3010 AS A3, SB1010 AS B1, AA1010 AS AA1, SAH010 AS AH
WHERE Z8_CLIENTE=A1_COD
AND Z8_LOJA=A1_LOJA
AND Z8_LEGISLA=Z9_LEGISLA
AND Z8_NUMERO=Z9_NUMERO
AND Z9_ANALISE=Z6_CODIGO
AND Z8_PROD1=B1_COD
AND Z8_VEND=A3_COD
AND Z8_TECNICO=AA1_CODTEC
AND AH_UNIMED = Z9_UM
AND Z8.D_E_L_E_T_ <> '*'
AND Z9.D_E_L_E_T_ <> '*'
AND Z6.D_E_L_E_T_ <> '*'
AND A1.D_E_L_E_T_ <> '*'
AND A3.D_E_L_E_T_ <> '*'
AND B1.D_E_L_E_T_ <> '*'
AND AH.D_E_L_E_T_ <> '*'
AND AA1.D_E_L_E_T_ <> '*'
AND Z8_LEGISLA='".[legislacao]."'
AND Z8_NUMERO='".[numero_laudo]."'
AND Z8_SITUACA IN ('3','4') 
AND Z8_VEND='".[loginsa3]."'
ORDER BY Z8_LEGISLA, Z8_NUMERO, Z9_ANALISE
               ");
// lockup para tratar os parametros no laudo
sc_lookup(param_dados,"SELECT Z8_LEGISLA,Z8_NUMERO,Z9_ANALISE, ZZQ_PARAM, ZZQ_SISTEM,
B1_COD, B1_DESC   
FROM SZ8010 AS Z8, SZ9010 AS Z9, ZZQ010 AS ZZQ, SB1010 AS B1
WHERE Z8_LEGISLA=Z9_LEGISLA
AND Z8_NUMERO=Z9_NUMERO
AND Z8_PROD1=ZZQ_CODPRO
AND Z9_ANALISE=ZZQ_CODANL
AND Z8_PROD1=B1_COD
AND Z8.D_E_L_E_T_ <> '*'
AND Z9.D_E_L_E_T_ <> '*'
AND B1.D_E_L_E_T_ <> '*'
AND Z8_LEGISLA='".[legislacao]."'
AND Z8_NUMERO='".[numero_laudo]."'
AND Z8_SITUACA IN ('3','4') 
AND Z8_VEND='".[loginsa3]."'
ORDER BY Z8_LEGISLA, Z8_NUMERO, Z9_ANALISE
               ");//fim do sc_lookup


//aqui eu converto as datas para poder exibir no relatório

$_FiltroLegislacao = [legislacao];
$_FiltroLaudo      = [numero_laudo];

//variável que me diz a quantidade de linhas a ser impressa
$linhasPpg = 45;
//variável que me diz quando deve ser impresso o cabeçalho e rodapé
$linhasCbl = 999;
//variável para exibir o número da página
$PageNo = 0;
//variável que pega o numero de registro que tenho no banco
$max_a = sizeof($meus_dados);
$max_b = sizeof($param_dados);

/*aqui inicia o loop que vai imprimir todo o meu relatório*/
   for($j= 0; $j < $max_b;$j++)
      {
         /*aqui onde eu pego os dados do lookup,
         colocao em variáveis e limito o tamanho de caracteres*/
         $_cLegislacao_a            = limitar({param_dados[$j][0]},22);
         $_cLaudo_a                 = limitar({param_dados[$j][1]},22);
         $_cParametro               = limitar({param_dados[$j][2]},22);
         $_cCodigoAnalise_a         = limitar({param_dados[$j][3]},22);
         $_cSistema_a               = limitar({param_dados[$j][4]},22);
         $_cCodigoProduto_a         = limitar({param_dados[$j][5]},22);
         $_cDescricaoProduto_a      = limitar({param_dados[$j][6]},22);
         
}// fecha loop


/*aqui inicia o loop que vai imprimir todo o meu relatório*/
   for($i= 0; $i < $max_a;$i++)
      {
         /*aqui onde eu pego os dados do lookup,
         colocao em variáveis e limito o tamanho de caracteres*/
         $_cLegislacao            = limitar({meus_dados[$i][0]},22);
         $_cLaudo                  = limitar({meus_dados[$i][1]},22);
         $_cTipo                  = limitar({meus_dados[$i][2]},22);
         $_dDataEmissao            = sc_date_conv({meus_dados[$i][3]},"aaaa-mm-dd","dd/mm/aaaa");
         $_dDataChegada            = sc_date_conv({meus_dados[$i][4]},"aaaa-mm-dd","dd/mm/aaaa");
         $_dDataPrevSaida          = sc_date_conv({meus_dados[$i][5]},"aaaa-mm-dd","dd/mm/aaaa");
         $_cCodigoCliente         = limitar({meus_dados[$i][6]},22);
         $_cCodigoLoja            = limitar({meus_dados[$i][7]},22);
         $_cStatuslaudo           = limitar({meus_dados[$i][8]},22);
         $_cTipoCalc              = limitar({meus_dados[$i][9]},22);
         $_cCodigoVendedor        = limitar({meus_dados[$i][10]},22);
         $_dDataColeta           = sc_date_conv({meus_dados[$i][11]},"aaaa-mm-dd","dd/mm/aaaa");
         $_cPontoColeta           = limitar({meus_dados[$i][12]},22);
         $_cTecnico               = limitar({meus_dados[$i][13]},22);
         $_cTipoAmostra           = limitar({meus_dados[$i][14]},22);
         $_cAnalista              = limitar({meus_dados[$i][15]},22);
         $_cMetodo1               = limitar({meus_dados[$i][16]},50);
         $_cMetodo2               = limitar({meus_dados[$i][17]},50);
         $_cCodigoProduto         = limitar({meus_dados[$i][18]},22);
         $_cObservacao1           = limitar({meus_dados[$i][19]},1500);
         $_cParametro             = limitar({meus_dados[$i][20]},22);
         $_cCodigoAnalise         = limitar({meus_dados[$i][21]},22);
         $_cCodigoUnidadeMedida   = limitar({meus_dados[$i][22]},22);
         $_cCodigoItem            = limitar({meus_dados[$i][23]},22);
         $_cMedicao1              = limitar({meus_dados[$i][24]},22);
         $_nDiluicao1             = number_format({meus_dados[$i][25]},4,',','.');
         $_cDescricaoAnalise      = limitar({meus_dados[$i][26]},50);
         $_cNomeCliente           = limitar({meus_dados[$i][27]},80);
         $_cEnderecoCliente       = limitar({meus_dados[$i][28]},80);
         $_cDescricaoProduto      = limitar({meus_dados[$i][29]},35);
         $_cNomeVendedor          = limitar({meus_dados[$i][30]},40);
         $_cCodigoRegiao          = limitar({meus_dados[$i][31]},22);
         $_cCodigoRegistro        = limitar({meus_dados[$i][32]},22);
         $_cDescUnidadeMedida     = limitar({meus_dados[$i][33]},22);
         
         //$myhr_rastreamento       = limitar({meus_dados[$i][3]},17);
         //$myhr_data            = sc_date_conv({meus_dados[$i][4]},"aaaa-mm-dd","dd/mm/aaaa");
         //$myhr_valor            = number_format({meus_dados[$i][5]},2,',','.');
         //$myhr_observacao        = limitar({meus_dados[$i][6]},29);
         
         /*aqui estou somando a variável, que vai me dizer
            quando eu devo imprimir o cabeçalho e rodapé*/
         $linhasCbl = $linhasCbl + 1;
         
         /*------------------------- cabeçalho e rodapé----------------------------------*/
         /*------------------------- cabeçalho e rodapé----------------------------------*/
         
            /*condição para imprimir cabeçalho e rodapé,
            se a variável para imprimir cabeçalho for maior que
            a variavel com a quantidade de linhas a imprimir,
            então imprima*/
            if ($linhasCbl > $linhasPpg) {
               
                  //aqui e pego o número da página, toda a vez que eu iimprimir o cabeçalho
                  $PageNo = $PageNo + 1;
                  
                  //adiciono uma pagina para meu relatório
                  $pdf->AddPage('P','A4');
                  
                  //carrego as imagens do meu relatório
                  //$pdf->Image('../_lib/img/LGMID01.png', 8, 25, 280, 6);
                  $pdf->Image('../_lib/img/LGMID01.png', 8, 5, 30, 30);
                  
                  //defino o título do cabeçalho
                  $pdf->SetFont('Arial', '', 12);
                  $pdf->SetXY(45,5);
                  $pdf->Cell(100,15,'Habil Industria e Comercio Ltda',0,1,'L');
                  $pdf->Ln(2);
                  
                  $pdf->SetFont('Arial', '', 12);
                  $pdf->SetXY(45,5);
                  $pdf->Cell(100,25,'Avenida Sao Paulo, 1875',0,1,'L');               
                  $pdf->Ln(12);
                  
                        
                  //defino local para exibir das datas do intervalo pesquisado
                  $pdf->SetFont('Arial','',10 );
                  $pdf->SetX(20);
                  $pdf->Cell(16,6,'Periodo: ',0,1,'L');
                  $pdf->Cell(20,6,$_FiltroLegislacao,0,1,'L');
                  $pdf->Cell(16,6,' ate ',0,1,'L');
                  $pdf->Cell(20,6,$_FiltroLaudo ,0,1,'L');
                  $pdf->Ln(2);
               /*--------------- imprimo o rodapé--------------------*/
               /*--------------- imprimo o rodapé--------------------*/
               $pdf->SetTextColor(0);
               $pdf->Setxy(100,285);
               $pdf->Cell(45,6,'Pagina '.$PageNo,0,0,'L');
               /*--------------- fim do rodapé -------------------*/
               /*--------------- fim do radapé -------------------*/
               
               /*-------- imprimo o cabeçalho da tabela -------*/
                  
                  $pdf->SetTextColor(0);
                  $pdf->SetFont('Arial', 'B', 8);
                  $pdf->Setxy(50,85);
                   $pdf->Cell(40,6,'CARACTERISTICAS',1,0,'C');
                  $pdf->Cell(30,6,'UNIDADE MEDIDA',1,0,'C');
                  $pdf->Cell(40,6,limitar({meus_dados[$i][12]},22),1,0,'C');
                  $pdf->Cell(30,6,'PARAMETROS',1,0,'C');
                  $pdf->Ln(6);
                  /*aqui eu zero a variável do cabeçalho para não iimprimir,
                  enquanto não atingir a quantidade maxima de linhas por pagina*/            
                  $linhasCbl = 0 ;
               
            }//aqui eu fecho o loop do cabeçalho e rodapé
         
         
         /*aqui eu imprimo as linhas da minha tabela*/         
         $pdf->SetTextColor(0);
         $pdf->SetFont('Arial', '', 9);
         $pdf->Setx(50);
         $pdf->Cell(40,6,limitar({meus_dados[$i][26]},22),1,0,'C');
         $pdf->Cell(30,6,limitar({meus_dados[$i][33]},22),1,0,'C');
         //$pdf->Cell(35,6,$myhr_rastreamento,1,0,'L');
         //$pdf->Cell(5,6,'R$','LTB',0,'L');
         //$pdf->Cell(20,6,$myhr_valor,'TRB',0,'R');
         //$pdf->Cell(55,6,$myhr_observacao,1,0,'L');
         $pdf->Cell(40,6,limitar({meus_dados[$i][24]},22),1,0,'C');
         
         //if ($_cCodigoAnalise_a = $_cCodigoAnalise )
           //{
         $pdf->Cell(40,6,$_cParametro,1,0,'C');
             //}
            $pdf->Ln(6);
}//aqui eu fecho a impressão do relatório


   /*e por último, imprimo um resumo de quantos registos foram impressos, e
   valor total das encomendas enviadas*/
   $pdf->SetFont('Arial', 'B', 11);
   $pdf->Cell(0,15,"",0,1);
   $pdf->SetX(8);
   $pdf->Cell(55,6,'Quantidade de Registro: ',0,0,'L');
   $pdf->Cell(20,6,$max_a,0,1,'L');
   $pdf->Cell(0,5,"",0,1);
   $pdf->SetX(8);
   //$pdf->Cell(25,6,'Valor Total: ',0,0,'L');
   //$pdf->Cell(25,6,'R$'.$valor_total,0,0,'L');

$pdf->Output();