Gracias Omar, lo voy a probar Saludos _____
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Omar Bellio Enviado el: Miércoles, 12 de Diciembre de 2007 04:55 p.m. Para: GUFA List Member Asunto: [GUFA] Problema en Capa de Datos en TierAdapter Hola Oscar, si usás PRETEXT 15 no necesitás hacer lcSQL = STRTRAN( lcSQL, CHR(13)+CHR(10), "" ) Probalo, vas a ver que funciona igual y usás menos líneas de código _____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Oscar Gonzalez Enviado el: 2007/December/12 4:40 PM Para: GUFA List Member Asunto: [GUFA] Problema en Capa de Datos en TierAdapter Hola Walter. no soy un experto en TA, pero te hago esto un poco mas paso a paso en la capa de datos: This.cGetAllFields = "Mov.*, DepO.Descripcion as DescDepositoO, DepD.Descripcion as DescDepositoD " This.cGetAllJoins = "LEFT OUTER JOIN Depositos DepO ON Mov.DepositoOrigenId = DepO.DepositoId "+; "LEFT OUTER JOIN Depositos DepD ON Mov.DepositoDestinoId = DepO.DepositoId " Local lcSQL AS String TEXT TO lcSQL NOSHOW PRETEXT 15 SELECT Mov.*, DepO.Descripcion as DescDepositoO, DepD.Descripcion as DescDepositoD ; FROM Movimientos Mov ; LEFT OUTER JOIN Depositos DepO ; ON Mov.DepositoOrigenId = DepO.DepositoId ; LEFT OUTER JOIN Depositos DepD ; ON Mov.DepositoDestinoId = DepO.DepositoId ENDTEXT lcSQL = STRTRAN( lcSQL, CHR(13)+CHR(10), "" ) This.ColTables.AddTable(... Hasta aca te queda la entidad principal con la descripcion de los dos campos de depositos Lo que yo hago de distinto ( y no se si es mejor pero lo saque de la demo) es en el init del form llamo a una entidad externa "Depositos" y un getAll() con lo que te queda un cursor para utilizar en un combo o en un TapickOne Saludos Oscar _____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Ricardo Aidelman Enviado el: Miércoles, 12 de Diciembre de 2007 10:59 a.m. Para: GUFA List Member Asunto: [GUFA] Problema en Capa de Datos en TierAdapter Hola Walter: Según creo entender, lo que tenés es una tabla de Movimientos con sendos campos DepositoOrigenId y DepositoDestinoId, que son FK a la tabla Depositos. Desde mi punto de vista, la vinculación del las FK con la tabla Depositos la deberías hacer en la Capa de Usuario. Lo que yo hago es tener 2 combos, cboDepositoOrigen y cboDepositoDestino, que contienen el cursor cDepositosO y cDepositosD, que los cargas una sola vez al principio con un GetAll() de la entidad Deposito, y el controlsource de cada combo es el campo correspondiente a cada FK en el cursor cMovimientos. No se por qué decís que necesitas vincular esos datos en la Capa de Datos. El único caso que se me ocurre es que necesites mandar a la Capa de Usuario un cursor de movimientos que contenga la "descripción" de los depósitos, no solamente el Id. En ese caso, eso lo resolverías con un Join en la doMovimientos, tipo: SELECT Mov.*, DepO.Descripcion as DescDepositoO, DepD.Descripcion as DescDepositoD ; FROM Movimientos Mov ; LEFT OUTER JOIN Depositos DepO ; ON Mov.DepositoOrigenId = DepO.DepositoId ; LEFT OUTER JOIN Depositos DepD ; ON Mov.DepositoDestinoId = DepO.DepositoId Espero haber no haber entendido tu problema y no haber oscurecido un poco más la poca luz que tenías :-) ricardo aidelman (socio 1545) praxis computación buenos aires argentina _____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Walter Ferrero Enviado el: Miércoles, 12 de Diciembre de 2007 09:43 a.m. Para: GUFA List Member Asunto: [GUFA] Problema en Capa de Datos en TierAdapter Omar, Antes que nada, muchas gracias por responder tan pronto. Ahora bien, te comento un poco cómo viene la mano: en la tabla Movimientos tengo dos campos que representan respectivamente el depósito origen y el depósito destino del movimiento. El objeto de hacer la consulta previa al Init es que ambos (Origen y Destino) pertenecen a la misma tabla (Depósitos), ya que un mismo depósito puede operar como origen en una transacción y como destino en otra. Espero haber podido ser un poco más claro en el concepto, pero de todas maneras, cualquier duda la seguimos. Muchas gracias nuevamente. Saludos, Ferrero & Marossero - Consultores Informáticos Walter A. Ferrero - ASC MP 1846 CPCIPC Socio Gerente Cel. 03472-15584171 De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Omar Bellio Enviado el: miércoles, 12 de diciembre de 2007 09:17 a.m. Para: GUFA List Member Asunto: [GUFA] Problema en Capa de Datos en TierAdapter Walter, para qué necesitás las consultas en el init de la capa de datos? En general el init de las do... es para establecer las relaciones entre las tablas que componen la capa. De todos modos, las consultas las podrías hacer instanciando la capa de negocios de Depósitos desde la capa de negocios de Movimientos. Es decir, desde la boMovimientos deberías instanciar boDepositos y ahí hacer la consulta necesaria obteniendo los cursores con el método GetData. Si es para algún proceso que te arroje un resultado definido a la capa de usuario, está bien, pero si es para tener una relación en la capa o interfaz de usuario, las relaciones convendría hacerlas arriba, una vez que los xml están transformados en cursor. No sé, es muy temprano y no suelo entender bien (a ninguna hora del día...) _____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Walter Ferrero Enviado el: 2007/December/12 8:51 AM Para: GUFA List Member Asunto: [GUFA] Problema en Capa de Datos en TierAdapter Gente, Tengo el siguiente problema en la capa de datos de una de las entidades: Previo al Init de la Capa doMovimientos.prg necesito hacer dos consultas con filtros de una misma entidad (Depósitos). Estas consultas deberían arrojar como resultado dos cursores (cDepOrigen y cDepDestino), los cuales se vincularían con la tabla movimientos en el método Init de la capa de datos del mismo. El problema es que no logro resolver cómo hacer las consultas previas al Init. Si alguien de los que ha utilizado el framework pudiera pasarme algún ejemplo se los agradecería. Saludos, Ferrero & Marossero - Consultores Informáticos Walter A. Ferrero - ASC MP 1846 CPCIPC Socio Gerente Cel. 03472-15584171 No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.17.0/1180 - Release Date: 07/12/10 2:51 PM No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.17.0/1180 - Release Date: 07/12/10 2:51 PM No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.17.0/1180 - Release Date: 10/12/2007 02:51 p.m. No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.17.1/1182 - Release Date: 12/12/2007 11:29 a.m. No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.17.1/1182 - Release Date: 07/12/12 11:29 AM No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.17.1/1182 - Release Date: 07/12/12 11:29 AM
