Primero tenemos una lista con listas anidadas:
Código
[sup]Form119 = [['119', 1, 3, 'A'], [None, 4, 3, 'A'], [None, 7, 13, 'A'], [None, 20, 35, 'A'], [None, 55, 35, 'A'], [None, 90, 35, 'A'], [None, 125, 35, 'A'], [None, 160, 35, 'A'], [None, 195, 35, 'A'], [None, 230, 9, 'A'], [None, 239, 35, 'A'], [None, 274, 3, 'A'], [None, 277, 35, 'A'], [None, 312, 35, 'A'], [None, 347, 35, 'A'], [None, 382, 35, 'A'], [None, 417, 35, 'A'], [None, 452, 20, 'A'], [None, 472, 20, 'A'], [None, 492, 20, 'A'], [None, 512, 3, 'A'], [None, 515, 35, 'A'], [None, 550, 51, 'A']][/sup]
ahora tengo que rellenar unos campos y pasarlo a texto plano, esta lista sirve para mantener los formatos durante la construccion del mensaje.
aqui es donde se rellenan:
Código
[sup] def Build_119(self, Vfac): Inv_Prt_BYDP = list(Form119) Inv_Prt_IV = list(Form119) Inv_Prt_SU = list(Form119) Respuesta = list() Datos = EG.con("""select C_ILN, C_NOM, C_DIR, C_DIRA, COD_CPO, C_POB, C_NIF, C_ILNZ, C_ZON, C_FPR, C_FCP, C_FPO from CLIENTES, VFACTURA where VFACTURA.COD_C = CLIENTES.COD_C and COD_VFA = '%s'""" % Vfac) Inv_Prt_BYDP[2][0] = Datos[0][0] Inv_Prt_BYDP[3][0] = Datos[0][1] Inv_Prt_BYDP[6][0] = Datos[0][2] Inv_Prt_BYDP[7][0] = Datos[0][3] Inv_Prt_BYDP[9][0] = Datos[0][4] Inv_Prt_BYDP[10][0] = Datos[0][5] Inv_Prt_BYDP[11][0] = 'DE' Inv_Prt_BYDP[14][0] = Datos[0][6] Inv_Prt_BY =list(Inv_Prt_BYDP) Inv_Prt_BY[1][0] = 'BY' Respuesta.append(self.The_Builder(Inv_Prt_BY)) Inv_Prt_DP = list(Inv_Prt_BYDP) Inv_Prt_DP[1][0] = 'DP' Respuesta.append(self.The_Builder(Inv_Prt_DP)) Inv_Prt_IV[1][0] = 'IV' Inv_Prt_IV[2][0] = Datos[0][7] Inv_Prt_IV[3][0] = Datos[0][8] Inv_Prt_IV[6][0] = Datos[0][9] Inv_Prt_IV[7][0] = '' Inv_Prt_IV[9][0] = Datos[0][10] Inv_Prt_IV[10][0] = Datos[0][11] Inv_Prt_IV[11][0] = 'DE' Inv_Prt_IV[14][0] = 'DE812706034' Respuesta.append(self.The_Builder(Inv_Prt_IV)) Datos = EG.con("""select C_ILN, C_NOM, C_DIR, C_DIRA, COD_CPO, C_POB, C_NIF from CLIENTES where COD_C = 'EURAL'""") Inv_Prt_SU[1][0] = 'SU' Inv_Prt_SU[2][0] = Datos[0][0] Inv_Prt_SU[3][0] = Datos[0][1] Inv_Prt_SU[6][0] = Datos[0][2] Inv_Prt_SU[7][0] = Datos[0][3] Inv_Prt_SU[9][0] = Datos[0][4] Inv_Prt_SU[10][0] = Datos[0][5] Inv_Prt_SU[11][0] = 'DE' Inv_Prt_SU[14][0] = Datos[0][6] Respuesta.append(self.The_Builder(Inv_Prt_SU)) return '\n'.join(Respuesta)[/sup]
actualmente esta funcionando, pero solo porque voy convirtiendo a texto cada vez que completo una de las copias, como veis al principio de la funcion declaro que 3 ojetos son iguales a la lista anteriormente puesta, pero al acabar la funcion, da igual como lo haga, tanto Form119, Inv_Prt_BYDP, Inv_Prt_IV, Inv_Prt_SU, Inv_Prt_BY y Inv_Prt_DP son identicas, es como si estubiese machando todo el rato Form119... ¿alguien me puede decir como coño me desago del maldito link de las listas? he hecho pruebas en el Pythonwin y supuestamente declarando list(Form119) se elimina el link y puedes madificar cada una por separado, sospecho que al tener listas anidadas hay algo que esta fallando... ¿alguna ayuda?
Elektro H@cker: Usa las etiquetas de código, que para algo están.