• Martes 11 de Mayo de 2021, 03:09

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - davidmolina1

Páginas: [1] 2 3
1
Power Builder / Re: llenado de matriz
« en: Martes 12 de Abril de 2011, 23:59 »
No entiendo el problema.

Para llenar la matriz simplemente rellenas haciendo

long ll_matriz [10, 10]

ll_matriz [1,1] = 1
..
ll_matriz[10, 10] = 100

también puedes utilizar una sentencia for next si el llenado tiene algunas reglas, o también puedes usar ll_matriz = {1,2,3.... 100}

Sobre tema de la impresión no entiendo la pregunta porque la matriz no se puede imprimir.

Saludos

2
Power Builder / Re: mostrar el valor de una variable en el header
« en: Miércoles 23 de Marzo de 2011, 22:43 »
Cita de: "hjesus"
HOLA DAVID   Despues de darle varias vueltas  a la funcion modify descubri que la forma mas sencilla para desplegar el valor una variable en el header de un datawindows es con el siguiente codigo :
dw_nombredw.Object.nombrecajatexto.text = string(variable)

nombrecajatexto es el nombre que le debes dar a la caja de texto que va en el header del datawindows que desplegara el valor de la variable

Muchisimas Gracias y lo comparto con todos aquellos que no lo sabian o no lo recordaban.
Att;
HJESUS

Efectivamente Jesús, ambas formas

La que tú has usado:
dw_nombredw.Object.nombrecajatexto.text = string(variable)

y la que yo he propuesto:
dw_nombredw.Modify ("nombrecajatexto.text ="+String (variable))

Hacen lo mismo.

La única diferencia es que si te das cuenta detrás de .object. puedes escribir cualquier cosa que el compilador lo da por válido ¡Ohhhh¡

En principio esto no es un problema porque ya te habrás asegurado que nombrecajatexto sea un campo válido. pero qué pasa si alguien le cambia el nombre al campo y no sabe que se está utilizando, Te puedo asegurar que esto pasa, solo tienes que darle tiempo, muchos programadores que metan mano y sucederá. Pues que la aplicación dará un fallo en tiempo de ejecución y si no lo has controlado con un try catch se cerrará.

La "ventaja" de utilizar la sintáxis Modify es que aunque nombrecajatexto no exista no se produce un fallo en tiempo de ejecución sino que se devuelve un texto de error que se puede controlar.


Saludos.

3
Power Builder / Re: mostrar el valor de una variable en el header
« en: Miércoles 2 de Marzo de 2011, 21:49 »
Me alegro de que te haya servido mi respuesta.

Saludos.

4
Power Builder / Re: mostrar el valor de una variable en el header
« en: Viernes 25 de Febrero de 2011, 23:31 »
Hola Jesús.

Hay varias soluciones al problema que planteas.

Lo más fácil es colocar un texto y desde la ventana hacer :

dw_x.Modify("Precio.Text='100,00 €' ")

Obviamente el formateo del valor lo debes hacer desde la ventana ya que el campo Precio se limitará a mostrar lo que tú le digas, en este caso 100,00 €.

Un saludo.

5
Power Builder / Re: COMO AGREGAR CAMPOS A UN DATAWINDOWS FREEFORM
« en: Miércoles 1 de Diciembre de 2010, 22:59 »
De nada.

6
Power Builder / Re: COMO AGREGAR CAMPOS A UN DATAWINDOWS FREEFORM
« en: Sábado 30 de Octubre de 2010, 23:39 »
Supongo que te refieres a dropdownlistbox.

Esta es la sintáxis:

<DW Control Name>.Modify("create  column( id=<an integer> tabsequence=<an integer> accelerator='<a single letter>' moveable=<0 - False, 1 - True> resizeable=<0 - False, 1 - True> pointer='<Arrow!, Cross!, HourGlass!, IBeam!, Icon!, Size!, SizeNESW!, SizeNS!, SizeNWSE!, SizeWE!, UpArrow!, or cursor filename (with path)>' band=<Detail, Footer, Header, Header.<group #>, Summary, Trailer.<group #>, Background, Foreground>" + " x='<an integer>' y='<an integer>' bitmapname=<Yes or No> criteria.dialog=<Yes or No> criteria.override_edit=<Yes or No> format='<constant string containing display format (i.e., [general]) for col (can also be an expression)>' alignment='<0 - Left, 1 - Right, 2 - Center>' criteria.required=<Yes or No> height.autosize=<Yes or No> border='<0 - None, 1- Shadow, 2 - Box, 3 - Resize, 4 - Underline, 5 - 3D Lowered, 6 - 3D Raised>' color='<a long>' height='<an integer>' width='<an integer>' name=<string> tag='<string>'"+" background.mode='<0 - Opaque, 1 - Transparent>' background.color='<a long>' font.face='<name of type face (i.e., SYSTEM, COURIER)>' font.height='<negative number for points, positive number for PBUs (i.e., -10 = 10 points, 10 = 10 PBUs>' font.weight='<400 - Normal, 700 - Bold>' font.family='<0 - AnyFont, 1 - Roman, 2 - Swiss, 3 - Modern, 4 - Script, 5 - Decorative>' font.pitch='<0 - default, 1 - Fixed, 2 - Variable>' font.charset='<0 - Ansi, 1 - default, 2 - Symbol, 128 - Shift jis, 255 - OEM>' font.italic='<0 - False, 1 - True>' font.strikethrough='<0 - False, 1 - True>' font.underline='<0 - False, 1 - True>'"+" ddlb.limit=<max number of chars the user can type (0 - 32767)> ddlb.allowedit=<Yes or No> ddlb.useasborder=<Yes or No> ddlb.case=<Any, Upper or Lower> ddlb.required=<Yes or No> ddlb.nilisnull=<Yes or No> ddlb.autohscroll=<Yes or No> ddlb.vscrollbar=<Yes or No> ddlb.showlist=<Yes or No> ddlb.sorted=<Yes or No> edit.name='<repository style name, if any>') ")

¡¡No te asustes!!

Esto está bien para saber las posibilidades que tienes. Yo lo que hago es crear un datawindow con un solo campo de ese tipo. Luego la exporto y veo el campo que yo he creado qué código ha generado y eso es lo que pongo en la sentencia Modify .

Después ejecutas y debe funcionar, si no funciona,  la sentencia Modify devuelve un mensaje de error. del tipo "error sintáctico en la fila 1 columna XX". Te vas a esa columna y miras en qué te has equivocado, lo corriges y pruebas de nuevo.

7
Power Builder / Re: COMO AGREGAR CAMPOS A UN DATAWINDOWS FREEFORM
« en: Sábado 30 de Octubre de 2010, 07:38 »
Tienes que decir qué tipo de columnas quieres añadir. Texto, checkbox, editmask....

8
Power Builder / Re: datawindows crosstab power builder v 6.5
« en: Viernes 16 de Julio de 2010, 09:39 »
De nada.

9
Power Builder / Re: datawindows crosstab power builder v 6.5
« en: Domingo 11 de Julio de 2010, 11:50 »
Hola.

Pues me parece que poco te puedo ayudar. Llevo bastantes años programando en PB 6.5 y no he tenido que vérmelas con este tipo de datawindow.

De he hecho las rehuyo. Hace algunos años como 10, un compañero me comentó que en una aplicación que comercializaba la empresa se usaban este tipo de datawindow y cada vez que tenía que corregir algo tenía que volver a hacerla nueva (quizás sea lo que te pasa a ti).

De todas formas, si solo te pasa con una de ellas y con el resto no pasa, podría ser que hay algo en su construcción que no le gusta a PB y por eso se cierra.

Yo cuando me pasan estas cosas hago lo siguiente:  

1.- Copia de seguridad del objeto
2.- Regenerar el objeto
3.- Exportar e importar
4.- Abrir el objeto exportado y modificar manualmente lo que creas que está mal, o directamente escribir la modificación y luego importar.

Suerte. Ya me cuentas como te ha ido.

10
Power Builder / Re: datawindows crosstab power builder v 6.5
« en: Sábado 10 de Julio de 2010, 15:42 »
Soy todo oídos...

11
Power Builder / Re: Specify Retrieval Criteria
« en: Miércoles 26 de Mayo de 2010, 20:55 »
Hola.

Lo que te está pasando es que al añadir la nueva ventana, en algún lugar, has usado una datawindow, o datastore, o datawindowchild en le has puesto que para traer datos necesita de un argumento.

Por eso te aparece esa ventana solicitando el dato que le falta.

Un saludo.

12
Power Builder / Re: Retrieval arguments y select
« en: Martes 4 de Mayo de 2010, 21:29 »
Yo tampoco veo como hacerlo.

No me preocuparía por el número de argumentos.

Otra solución sería extraer la SQL mediante un Describe ('datawindow.table.select'), luego componerla en código y volver a ponerla con un Modify ('Datawindow.table.select  = '+ls_select).

De esa forma no tienes que pasar ningún retrieve ya que las clausulas se montan en código. simplemente haces un retrieve () y listo.

saludos.

13
Power Builder / Re: Retrieval arguments y select
« en: Martes 4 de Mayo de 2010, 00:00 »
Hola.

Creo que el error lo tienes en '_' + :camp + '%'

Lo que tienes que hacer es montar la datawindow

Select * from tabla where columna like :arg

y posteriormente en código

dw_1.retrieve ('_' + ls_valor + '%')

Ah! y cuidado con que ls_valor no tenga un solo '%' porque si es así el retrieve fallará y te echará de la aplicación. (¡creo!)

14
Power Builder / Selección de ficheros
« en: Lunes 3 de Mayo de 2010, 23:50 »
Hola.

¿Alguien sabe como se puede seleccionar varios ficheros de una sola vez?

Lo que necesito es que se abra una ventana como la que se abre con la instrucción

ll_valor = GetFileOpenName("Seleccionar Fichero", ls_path, ls_nombre, "PBL", "Código Fuente PowerBuilder (*.PBL),*.PBL")


Pero que permita seleccionar varios ficheros, no uno solo.


Gracias.

15
Power Builder / Re: Datawindow
« en: Jueves 11 de Marzo de 2010, 20:58 »
De nada.
Para eso estamos.

16
Power Builder / Re: Datawindow
« en: Jueves 11 de Marzo de 2010, 18:14 »
Me refiero a que si usando composites no te ha funcionado, puedes usar una datawindow grid para visualizar la factura e imprimirla.

La select sería algo así:


 SELECT cabecera_factura.id,  
         cabecera_factura.fecha_factura,
        cabecera_factura.importe,
        cabecera_factura.nro_factura
        cabecera_factura. ....
        detalle_factura.id,
        detalle_factura.codigo,
        detalle_factura.descripción,
        detalle_factura.precio,
        detalle_factura.cantidad,
        detalle_factura. ....
    FROM detalle_factura, detalle_factura
   WHERE (cabecera_factura.fecha_factura,id =        detalle_factura.id )    AND
        cabecera_factura.nro_factura = :arg_num

17
Power Builder / Re: Datawindow
« en: Miércoles 10 de Marzo de 2010, 19:14 »
Yo probaría ha hacer una factura con una datawindow normal o con una extenal. Lo de las composite las suelo usar para sacar en un solo informe datos muy dispares, es decir, cuando se quiere extraer en un solo informe datos de dos o más listados que no tienen nada que ver entre sí, o que son díficil de encajar en uno solo.

También son muy útiles (las composite) para poner una cabecera generica en la que salga el membrete de la empres, fecha y hora de la impresión ,etc y después la información.

18
Power Builder / Re: Datawindow
« en: Miércoles 10 de Marzo de 2010, 05:43 »
Pero no nos dejes así, ¿Qué le pasaba?.  :D , que si no no aprendemos de tus errores.

Bueno, te contesto a lo de la impresión.

Para imprimir la factura puedes hacerlo de varias formas.

Si no es muy complejo el formato, puedes hacer una datawindow en la que vas añadiendo las tablas que necesites: cabecera de factura, detalle de factura, cliente, etc... y seleccionas las campos que desees mostrar.

Si la cosa se complica, por ejemplo, imagínate que tienes que sacar información que las formas de pago que permite el proveedor y tienes que desglosar los impuestos por tipos. En estos casos la información que no esté accesible de una forma rápida se puede calcular mediante datastores y luego insertarla en la factura usando campos computados de la select de la datawindow o simplemente static text.

Si la cosa se complica aún más, por ejemplo te piden que las líneas de detalle de la factura no deben ir ordenadas por fecha  (que sería lo normal) sino que hay que agruparlas por familia, subfamilia, grupo y fecha y además de todos esto configurable según el proveedor. Aquí la cosa se te puede complicar. En estos casos lo mejor es crearte una datawindow external con los campos que necesites y alimentarla con los datos que vayas procesando de una datastore. Aunque también puedes tener un formato de impresión para cada caso pero eso puede ser poco mantenible.

Un saludo.

19
Power Builder / Re: Datawindow
« en: Martes 9 de Marzo de 2010, 19:50 »
Prueba lo siguiente:

Si consigues hacer una inserción y los campos no son editables puede ser por alguno de estos motivos.
1.- Que los campos de la tabla detalle_factura no tengan el taborder a 0
2.- Que no tengan nada en la propiedad Protect

Si ni siquiera consigas insertar un registro puede ser porque no hayas creado un campo en la tabla como primary key.

Espero haberte ayudado porque se me han acabado las ideas.

20
Power Builder / Re: Dias entre Fechas
« en: Lunes 8 de Marzo de 2010, 19:39 »
pues súmale 1

21
Power Builder / Re: Datawindow
« en: Lunes 8 de Marzo de 2010, 18:05 »
primero necesitas una datawindow que va a tener un solo registro. será la cabecera de la factura los datos más usuales que se muestran son: Fecha, cliente, número de factura, serie, total de la factura,  el id de la cabecera,  etc...

debajo se pone una datawindow tipo grid con los detalles de la factura cantidad, código de artículo, descripción, precio unitario.

La primera datawindow ataca a la tabla cabecera_factura y la segunda a detalle_factura.

Las dos tablas deben tener el updateproperties activado para todos los campos.

PARA CREAR FACTURAS.
Para grabar una factura solo tienes que insertar un registro en la cabecera, registrar los datos que consideres necesario y grabar. Cuando tengas el id de la cabecera, puedes insertar registros en los detalles de la factura y lo primero que debes hacer es escribir el id que te ha dado la cabecera en cada línea de detalle, y por supuesto rellenar el resto de datos.

PARA VISUALLIZAR FACTURAS:
Tienes que localizar la factura a través de su ID  y hacer un retrieve (id_cabecera) en la cabecera y después un retrive (id_cabecera) en la datawindow con los detalles.

PARA MODIFICAR.
Es igual que para editar, basta con tener los campos editables.

22
Power Builder / Re: Datawindow
« en: Lunes 8 de Marzo de 2010, 17:36 »
Efectivamente.

Cuando unas una datawindow con dos o más tablas, solo se puede grabar los datos de una de ellas.

En tu caso solo podrías grabar los detalles de la factura. Con eso debería ser suficiente.

Es decir, primero obtienes el ID de la cabecera y luego le pones ese ID de la cabecera a las líneas de detalle de la factura y listo.

23
Power Builder / Re: Datawindow
« en: Lunes 8 de Marzo de 2010, 01:22 »
Cuando haces una datawindow, por ejemplo dw_factura_detalle, no tienes porqué usar una sola tabla (factura_detalle) como parece que has hecho.

En la datawindow puedes incluir, todas las tablas que quieras, eso sí uniéndolas con un join porque si no tendrás un producto cartesiano. Es decir que si unes en la datawindow dw_factura_detalle la tabla factura_detalle y la tabla productos a través de algún nexo en común, podrás elegir cualquier campo de cualquier tabla y se mostrará en la datawindow sin problemas.

Ahora bien, si la tabla productos vas a mantener el precio último y ese mismo precio es el que vas a reflejar en la factura, no es correcto lo que estás haciendo porque una factura no se puede modificar desde el momento en que se emite.

te recomiendo que en la tabla factura detalle, también copies (dupliques) los datos de la línea de esa factura, fecha, descripción del pedido, precio, iva, etc... de esa forma la factura permanecerá invariable  hagas lo que hagas con los datos que usaste para crearla.


espero haberte ayudado.

24
Power Builder / Re: ultimo dia del mes
« en: Martes 2 de Marzo de 2010, 21:21 »
Claro que el método que pongo depende de que los de sybase no cometan el mismo error que los de sony con la PS3.

"
Ayer, 1 de marzo, los usuarios de Playstation 3 (PS3) se llevaron un buen susto cuando vieron que muchas de las funciones de la consola daban error. El dispositivo “pensaba” que 2010 era bisiesto y el error se produjo al no existir el día 29 del segundo mes del año. Hoy 2 de marzo, es el día de resurrección de las PS3 de Sony.

"

Para leer mas ...

http://www.redusers.com/las-ps3-falla-por-reconocer-el-2010-como-ano-bisiesto

25
Power Builder / Re: Modificar posicion de columna en dw
« en: Miércoles 24 de Febrero de 2010, 16:19 »
Perdona pero sigo sin verlo.

El código que has puesto arriba no se puede ejecutar bien, al menos a mí me da un error sintáctico en la expresión del modify. Por tanto creo que no se podrá ocultar ni el campo ni la etiqueta, pero si tú dices que se oculta, puede ser que yo esté equivocado .... pero lo de que el campo aparezca al final eso si que es extraño.

Me da la sensación que el botón crear tiene más código que no has puesto.... :ball:

Páginas: [1] 2 3