O
OctavioOlguin
Guest
Please help.... 6 hours straight making test and stuff, an I've just came to the conclusion I hit into a bug or something. METHOD PUBLIC VOID RecalcularCFDI(pSerie AS CHARACTER, pFolio AS INTEGER, OUTPUT pTotal AS DECIMAL ): FIND Cfdi33_comprobante WHERE Cfdi33_comprobante.ciFolio = pFolio AND Cfdi33_comprobante.ccSerie = pSerie NO-LOCK. FOR EACH Cfdi33_concepto WHERE Cfdi33_concepto.xcFKcomprobante = Cfdi33_comprobante.xcPK: ASSIGN pTotal = pTotal + Cfdi33_concepto.cdImporte. END. FIND CURRENT Cfdi33_comprobante EXCLUSIVE-LOCK. ASSIGN Cfdi33_comprobante.cdTotal = DECIMAL(pTotal) Cfdi33_comprobante.cdSubTotal = DECIMAL(pTotal). MESSAGE "Cfdi33_comprobante.cdTotal decimal: " STRING(Cfdi33_comprobante.cdTotal, ">>>>>>>9.9999 >>>>>>9.9999 on code showed up, there are the messages and decimal castings I have tryed, made shure fields on db are decimai, but writing this I went to revisit the decimals specification I have on database, and found that it is set as '?' instead the original 6. This is the temp-table definitions derived from a XSD, wich then was used to load data definition on dictionary. FIELD cdDescuento AS DECIMAL DECIMALS 6 LABEL "cdDescuento" COLUMN-LABEL "cdDescuento" FIELD cdSubTotal AS DECIMAL DECIMALS 6 FORMAT "->>,>>9.999999" LABEL "cdSubTotal" COLUMN-LABEL "cdSubTotal" FIELD cdTipoCambio AS DECIMAL DECIMALS 6 FORMAT "->>,>>9.999999" LABEL "cdTipoCambio" COLUMN-LABEL "cdTipoCambio" FIELD cdTotal AS DECIMAL DECIMALS 6 FORMAT "->>,>>9.999999" LABEL "cdTotal" COLUMN-LABEL "cdTotal" Another version is this, yet it show exactly the same output on appserver METHOD PUBLIC VOID RecalcularCFDI(pSerie AS CHARACTER, pFolio AS INTEGER, OUTPUT pTotal AS DECIMAL ): DEFINE VARIABLE foo AS DECIMAL DECIMALS 6 NO-UNDO. FIND Cfdi33_comprobante WHERE Cfdi33_comprobante.ciFolio = pFolio AND Cfdi33_comprobante.ccSerie = pSerie NO-LOCK. FOR EACH Cfdi33_concepto WHERE Cfdi33_concepto.xcFKcomprobante = Cfdi33_comprobante.xcPK GROUP BY Cfdi33_concepto.ccNoIdentificacion: ASSIGN foo = foo + Cfdi33_concepto.cdImporte. END. FIND CURRENT Cfdi33_comprobante EXCLUSIVE-LOCK. ASSIGN Cfdi33_comprobante.cdTotal = DECIMAL(foo) Cfdi33_comprobante.cdSubTotal = DECIMAL(foo) pTotal = foo. MESSAGE "Cfdi33_comprobante.cdTotal decimal: " STRING(Cfdi33_comprobante.cdTotal, ">>>>>>>9.9999 >>>>>>9.9999<"). MESSAGE "pTotal: " pTotal. RELEASE Cfdi33_comprobante. RETURN. END METHOD. I'm really desperate, as it defies every knowing I had about datatypes.. TIA
Continue reading...
Continue reading...