xBrowse cláusula (asi se dice?) FIELDS

xBrowse cláusula (asi se dice?) FIELDS

Postby MarioG » Wed Feb 26, 2014 2:02 pm

Gente;
al declarar mediante comandos, lo siguiente:
Code: Select all  Expand view
  REDEFINE XBROWSE ::oBrwCab ID BRW_XBRW OF oDlg FONT ::hFont["Tahoma14"] ;
            ALIAS    h0["CabPagos"]:cAlias AUTOSORT

   ADD FIELDS TO XBROWSE ::oBrwCab AT 1 DATA (h0["CabPagos"]:nArea)->FCABPGO03 HEADER "Fe.Pago"
...

Y luego al compilar:
    --------------------Configuración: CStock - Release--------------------
    xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 9421)
    Copyright 1999-2011, http://www.xharbour.org http://www.harbour-project.org/
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(110) Warning W0001 Ambiguous reference: 'FIELDS'
    ...
    Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
    CS_T07.c:
    Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
    mgCStock.exe - 0 error(es), 13 advertencia(s)
En este caso, supongo, que el compilador confunde con los FIELDS de las databases
Entiendo que son Warnings, pero mejor sería si no salieran, ya que siempre tengo que memorizar la cantidad de warnings, en este caso 13, para ver si no hay algun otro error o warnings que deba ser tenido en cuenta y, realmente me saca de contexto.
NO deseo agregar el parámetro para que no se manifiesten los warnings

Habrá alguna opcion para evitarlo?
Uso FWH 1204 - xHarbour 1.2.1 (Simplex)
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse cláusula (asi se dice?) FIELDS

Postby Rick Lipkin » Wed Feb 26, 2014 2:09 pm

Mario

Consider this code .. a bit different approach than your example .. code snipit using ADO and not DbfCdx .. however the logic for adding new fields is the same.

Rick Lipkin

Code: Select all  Expand view

REDEFINE xBROWSE oLbxA            ;
         RECORDSET oRsCust           ;
         COLUMNS "CUSTOMER ID",      ;
                 "PHONE1",           ;
                 "CONTACT PERSON"    ;
         COLSIZES 100,100,200        ;
         HEADERS "Cust Id",          ;
                 "Phone1",           ;
                 "Contact Person"    ;
         ID 172 of oCust             ;
         AUTOCOLS LINES CELL


         ADD oCol TO oLbxA AT 1 DATA {|x| x := _ChkName(oRsCust:Fields("Last Name"):Value,;
                                                   oRsCust:Fields("First Name"):Value,;
                                                   oRsCust:Fields("Mid Init"):Value)};
                                                   HEADER "Last Name or Company" size 190

         ADD oCol TO oLbxA AT 2 DATA {|x| x := _ChkAdd(oRsCust:Fields("Address1"):Value,;
                                                   oRsCust:Fields("City"):Value,;
                                                   oRsCust:Fields("State"):Value,;
                                                   oRsCust:Fields("Zip Code"):Value)};
                                                   HEADER "Address" size 200


...
...
/----------------------------
Static Func _ChkName( cLast,cFirst,cMiddle )

Local cName

cName := substr("Unk"+space(45),1,45)

If cMiddle = " "
   If cFirst = " " .or. empty( cFirst )
      cName = substr( alltrim( cLast)+space(45),1,45)
   Else
      cName := substr(alltrim(cLast)+", "+alltrim(cFirst)+space(45),1,45)
   Endif
Else
   If cFirst = " " .or. empty( cFirst )
      cName = substr( alltrim( cLast)+space(45),1,45)
   Else
      cName := substr(alltrim(cLast)+", "+alltrim(cFirst)+" "+;
               alltrim(cMiddle)+space(45),1,45)
   Endif
Endif

Return( cName )

//-------------------------------
Static Func _ChkAdd( cAddress, cCity, cState, cZip )

LOCAL cName

cName := if( cAddress = " " .or. empty( cAddress ), " ", alltrim( cAddress ))+" "+;
         if( cCity = " " .or. empty( cCity), " ", alltrim(cCity))+" "+;
         if( cState = " " .or. empty( cState), " ", alltrim(cState))+" "+;
         if( cZip   = " " .or. empty( cZip  ), " ", alltrim( cZip ))

cName := substr( alltrim( cName ) +space(45),1,45)

Return( cName )


 
User avatar
Rick Lipkin
 
Posts: 2618
Joined: Fri Oct 07, 2005 1:50 pm
Location: Columbia, South Carolina USA

Re: xBrowse cláusula (asi se dice?) FIELDS

Postby MarioG » Wed Feb 26, 2014 8:27 pm

Rick;
many thank for the suggestion. I will consider
(sorry for my english)
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse cláusula (asi se dice?) FIELDS

Postby MarioG » Sat Mar 15, 2014 12:56 pm

Estimados;
vuelvo sobre este tema, dado que la forma mostrada por Rick no es la solución
En mi caso, hago la declaración del xBrowse de la forma ya mostrada, debido a que una de las columnas muestra un campo de una DBF relacionada
Code: Select all  Expand view
  REDEFINE XBROWSE ::oBrwCab ID BRW_XBRW OF oDlg FONT ::hFont["Tahoma14"] ;
            ALIAS    h0["CabPagos"]:cAlias AUTOSORT

   ADD COLUMNS TO XBROWSE ::oBrwCab AT 1 DATA (h0["CabPagos"]:nArea)->FCABPGO03 HEADER "Fe.Pago"   // DBF definida en Alias
   ...
   ADD COLUMNS TO XBROWSE ::oBrwCab AT 3 DATA (h0["Provedor"]:nArea)->FPRV03    HEADER "Provedor"       // Columna de DBF relacionada
 
Recuerdo que esto funciona correctamente, solo que al compilar, definiendo como FIELDS o COLUMNS se manifiestan warnings (molestos)

Declarando, segun indica Rick, el campo "Provedor" no se visualiza
Code: Select all  Expand view
REDEFINE XBROWSE ::oBrwCab ID BRW_XBRW OF oDlg FONT ::hFont["Tahoma14"] ;
            ALIAS    h0["CabPagos"]:cAlias AUTOSORT ;
            COLUMNS  "FCABPGO03", "FCABPGO01", 'FPRV03' ;
            HEADERS  "Fe.Pago", "Nro.Proceso", "Provedor"
Tampoco declarando de esta forma
Code: Select all  Expand view
  REDEFINE XBROWSE ::oBrwCab ID BRW_XBRW OF oDlg FONT ::hFont["Tahoma14"] ;
            ALIAS    h0["CabPagos"]:cAlias AUTOSORT ;
            COLUMNS  "FCABPGO03", "FCABPGO01", '(h0["Provedor"]:nArea)->FPRV03' ;
            HEADERS  "Fe.Pago", "Nro.Proceso", "Provedor"

Alguna solución?
gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse cláusula (asi se dice?) FIELDS

Postby FranciscoA » Sat Mar 15, 2014 3:24 pm

Hola Mario.
Ya lo intentaste asi?
Code: Select all  Expand view
 REDEFINE XBROWSE ::oBrwCab ID BRW_XBRW OF oDlg FONT ::hFont["Tahoma14"] ;
            ALIAS    h0["CabPagos"]:cAlias AUTOSORT

   ADD oCol TO ::oBrwCab AT 1 DATA (h0["CabPagos"]:nArea)->FCABPGO03 HEADER "Fe.Pago"   // DBF definida en Alias
   ...
   ADD oCol TO  ::oBrwCab AT 3 DATA (h0["Provedor"]:nArea)->FPRV03    HEADER "Provedor"       // Columna de DBF relacionada
 
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: xBrowse cláusula (asi se dice?) FIELDS

Postby MarioG » Mon Mar 17, 2014 12:26 am

Francisco;
tampoco anda
    --------------------Configuración: CStock - Release--------------------
    xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 9421)
    Copyright 1999-2011, http://www.xharbour.org http://www.harbour-project.org/
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(110) Warning W0001 Ambiguous reference: 'DATA'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(112) Warning W0001 Ambiguous reference: 'DATA'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(113) Warning W0001 Ambiguous reference: 'DATA'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(115) Warning W0001 Ambiguous reference: 'DATA'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(117) Warning W0001 Ambiguous reference: 'DATA'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(119) Warning W0001 Ambiguous reference: 'DATA'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(121) Warning W0001 Ambiguous reference: 'DATA'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(123) Warning W0001 Ambiguous reference: 'DATA'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(125) Warning W0001 Ambiguous reference: 'DATA'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(649) Warning W0001 Ambiguous reference: 'COLUMNS'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(650) Warning W0001 Ambiguous reference: 'COLUMNS'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(651) Warning W0001 Ambiguous reference: 'COLUMNS'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(653) Warning W0001 Ambiguous reference: 'COLUMNS'
    D:\Fuen32\SiCamilo\CStock\Source\CS_T07.prg(654) Warning W0001 Ambiguous reference: 'COLUMNS'
    Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
    CS_T07.c:
    Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
    mgCStock.exe - 0 error(es), 14 advertencia(s)
:cry:
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse cláusula (asi se dice?) FIELDS

Postby FranciscoA » Mon Mar 17, 2014 1:35 am

Mario, Que raro. Prueba este ejemplo y decime si te funciona. (a mi me funciona: FWH1204-XHARBOUR). No lo probé con recursos.
Code: Select all  Expand view
Function prueba()
local nDe:=1, nHasta:=100, nTar:=0.10
local cAlias, oDlg, oBrw, nConsumo:=0, oConsumo
local nWd := GetSysMetrics(0) *  .90  // .75
local nHt := GetSysMetrics(1) / 1.20   // 2
local oCol

dbCreate("C:\Tarifa",{{"DE",     "N", 12,2},;
                      {"HASTA",  "N", 12,2},;
                      {"TARIFA", "N", 10,2},;
                      {"CONSUMO","N", 12,2},;
                      {"VALOR",  "N", 12,2}})

dbusearea(.t.,,"C:\Tarifa","Tarifa",.f.)
cAlias:=Alias()

While nHasta <= 1500
  (cAlias)->(dbappend())
  (cAlias)->de := nDe  ;  (cAlias)->hasta := nHasta  ; (cAlias)->tarifa := nTar
   nDe:=nHasta+1
   nHasta += 100
   nTar += 0.10
Enddo

DEFINE DIALOG oDlg SIZE nWd,nHt PIXEL TITLE "RANGOS DE CONSUMO"
   nWd  /= 2
   nHt  /= 2

@1,1 XBROWSE oBrw OF oDlg ;
     COLUMNS "DE","HASTA","TARIFA","CONSUMO","VALOR";
     ALIAS cAlias

   WITH OBJECT oBrw
      :nTop                   := 10  
      :nLeft                  := 10
      :nBottom                := :nTop + nHt - 30
      :nRight                 := :nLeft + nWd - 20
      :nMarqueeStyle          := MARQSTYLE_HIGHLROW  
      :lColDividerComplete    := .t.
      :nStyle                 := nAnd( :nStyle, nNot( WS_BORDER ) )
      :nColDividerStyle:=LINESTYLE_LIGHTGRAY
      :nRowDividerStyle:=LINESTYLE_LIGHTGRAY
      :nHeaderHeight    := 30  //altura del header
      :nHeadStrAligns := AL_CENTER  //texto cabeceras de cols centrado
      :bClrStd       := {|| {CLR_BLACK, RGB(238, 238, 238)} }  
      :lFooter := .t.
   END

   ADD oCol TO oBrw AT 1 DATA 50 HEADER "ADD COL1"
   ADD oCol TO oBrw AT 4 DATA 100 HEADER "ADD COL4"

   oBrw:CreateFromCode()

   @ nHt-15, 124 BUTTON 'Salir'  SIZE 35,11 PIXEL OF oDlg   ACTION ( oDlg:End() ) CANCEL

   ACTIVATE DIALOG oDlg CENTERED ;
        ON INIT ( FitSizes( oBrw, ) )

   (cAlias)->(DBCLOSEAREA())
   Ferase("C:\"+(cAlias)+".dbf")
RETURN nil

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: xBrowse cláusula (asi se dice?) FIELDS

Postby FranciscoA » Mon Mar 17, 2014 1:59 am

Probado desde recursos y todo OK.
Recuerda que tienes que declarar LOCAL oCol
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: xBrowse cláusula (asi se dice?) FIELDS

Postby MarioG » Mon Mar 17, 2014 1:07 pm

FranciscoA wrote:Mario, Que raro. Prueba este ejemplo y decime si te funciona. (a mi me funciona: FWH1204-XHARBOUR). No lo probé con recursos.
Code: Select all  Expand view
Function prueba()
local nDe:=1, nHasta:=100, nTar:=0.10
local cAlias, oDlg, oBrw, nConsumo:=0, oConsumo
local nWd := GetSysMetrics(0) *  .90  // .75
local nHt := GetSysMetrics(1) / 1.20   // 2
local oCol
...
DEFINE DIALOG oDlg SIZE nWd,nHt PIXEL TITLE "RANGOS DE CONSUMO"
   nWd  /= 2
   nHt  /= 2

@1,1 XBROWSE oBrw OF oDlg ;
     COLUMNS "DE","HASTA","TARIFA","CONSUMO","VALOR";
     ALIAS cAlias

   WITH OBJECT oBrw
      :nTop                   := 10  
      :nLeft                  := 10
      :nBottom                := :nTop + nHt - 30
      :nRight                 := :nLeft + nWd - 20
      :nMarqueeStyle          := MARQSTYLE_HIGHLROW  
      :lColDividerComplete    := .t.
      :nStyle                 := nAnd( :nStyle, nNot( WS_BORDER ) )
      :nColDividerStyle:=LINESTYLE_LIGHTGRAY
      :nRowDividerStyle:=LINESTYLE_LIGHTGRAY
      :nHeaderHeight    := 30  //altura del header
      :nHeadStrAligns := AL_CENTER  //texto cabeceras de cols centrado
      :bClrStd       := {|| {CLR_BLACK, RGB(238, 238, 238)} }  
      :lFooter := .t.
   END

   ADD oCol TO oBrw AT 1 DATA 50 HEADER "ADD COL1"
   ADD oCol TO oBrw AT 4 DATA 100 HEADER "ADD COL4"

   oBrw:CreateFromCode()
..,RETURN nil
 

Saludos.

Francisco; muchisimas gracias por tu tiempo
No tengo ninguna dudas de que tu sample funciona.
Lo que yo planteo es que estoy usando 2 DBFs.
El problema se produce porque estoy haciendo Browse de un par de DBFs relacionadas. Si mirás mi post vas a ver que el campo Provedor, del que tengo su ID en la DBF1, muestra su descripcion, tomado de la DBF2.
Repito que he intentado declararlo de la forma tradicional, pero la columna (del campo descripcion de Provedor) se muestra vacia.
Colocando ADD COLUMNS/FIELDS/DATA, si muestra el dato que corresponde, pero los warnings se manifiestan
O sea, volviendo al post de origen: Puedo ignorar los warnings, pero en cada compilacion debo verificar que, por ej. siempre sean 7 warnings para ignorarlos. Lo que resulta bastante tedioso.
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 83 guests