24 septiembre 2007
09 julio 2007
Como clonar dw/ds
A las 8:00 0 comentarios
Etiquetas: Datawindows
15 junio 2007
Prefijos estándar de PowerBuilder
En más de una ocasión utilizamos tipos, objetos, etc., que no son los habituales, y cuando pretendemos usar sus prefijos correspondientes andamos con dudas o perdidos, por eso, y con el objetivo de siempre, de tener centralizada la información que he necesitado en más de una ocasión y he tenido que buscar repetidas veces, he decidido poner aquí también la lista de prefijos y calificadores estándar de PowerBuilder:
Calificadores de alcance
Alcance | Prefijo | Ejemplo |
Argument | a | al_NameId |
Global | g | gs_Name |
Instance | i | ii_Count |
Local | l | ls_Foo |
Shared | s | si_Number |
Prefijos de tipos de datos estándar
Tipo de dato | Prefijo | Ejemplo |
Any | a | la_Raw |
Blob | blb | ablb_Image |
Boolean | b | lb_Exit |
Character | c | lc_Name |
Date | d | ld_BirthDate |
DateTime | dt | ldt_Wreck |
Decimal | dec | ldec_Salary |
Double | db | gdb_OverTime |
Integer | i | li_Count |
Long | l | ll_RowCount |
Real | r | sr_Illusion |
String | s | ls_Bean |
Time | tm | itm_MrWolf |
Unsigned Integer | ui | lui_Handle |
Unsigned Long | ul | gul_Ken |
Prefijos de tipos de datos de objetos estándar
Objeto | Prefijo | Ejemplo |
Application | app | gapp_PBDelta |
ArrayBounds | ab | lab_Bound |
CheckBox | cbx | icbx_Male |
ClassDefinition | cldef | lcldef_Object |
ClassDefinitionObject | cldefo | lcdefo_ThatObject |
CommandButton | cb | lcb_Cancel |
Connection | cn | lcn_Known |
ConnectionInfo | cni | lcni_ServerInfo |
ConnectObject | cno | scno_ConObj |
ContextInformation | cxinfo | lcxinfo_ObjContext |
ContextKeyword | cxk | lcxk_TheKey |
CPlusPlus | cpp | lcpp_CModule |
Datastore | ds | lds_StockData |
Datawindow | dw | ldw_Employee |
DatawindowChild | dwc | ldwc_States |
DragObject | drg | ldrg_ByTheHair |
DrawObject | drw | ldrw_PaintBrush |
DropDownListBox | ddlb | lddlb_States |
DropDownPictureListBox | ddplb | lddplb_StatesWithFlags |
dwObject | dwo | ldwo_Column |
DynamicDescriptionArea | dda | ldda_Execute |
DynamicStagingArea | dsa | ldsa_MyQuery |
EditMask | em | lem_PhoneNo |
EnumerationDefinition | enum | lenum_Cycle |
EnumerationItemDefinition | enumi | ienumi_Item |
Environment | env | lenv_System |
Error | err | gerr_Snarl |
ExtObject | exto | gexto_Outside |
Function_Object | fo | lfo_Function |
Graph | gr | lgr_Sales |
GraphObject | gro | lgro_Line |
GrAxis | grx | lgrx_Profit |
GrDispAttr | grda | igrda_Value |
GroupBox | gb | igb_Employee |
HScrollBar | hsb | ihsb_Percent |
iNet | inet | linet_Web |
InternetResult | ir | lir_Page |
Line | li | lli_Arrow |
ListBox | lb | llb_States |
ListView | lv | llv_Filenames |
ListViewItem | lvi | llvi_Item |
MailFileDescription | mfd | lmfd_Mail |
MailMessage | mm | lmm_Mail |
MailRecipient | mr | lmr_Mail |
MailSession | ms | lms_Session |
MDIClient | mdi | lmdi_Frame |
Menu | m | lm_Menu |
MenuCascade | mc | lmc_WaterFall |
Message | msg | lmsg_Whisper |
MultiLineEdit | mle | lmle_Text |
NonVisualObject | nvo | lnvo_Invisible |
OLEControl | oc | loc_Bulls |
OLECustomControl | occ | locc_Dial |
OLEObject | oo | loo_Ghost |
OLEStorage | ostg | gostg_WordFile |
OLEStream | ostm | lostm_River |
OMControl | omc | iomc_Temp |
OMCustomControl | omcc | lomcc_Dial |
OMEmbeddedControl | omec | lomec_Micro |
OMObject | omo | iomo_Bob |
OMStorage | omstg | somstg_Drive |
OMStream | omstm | lomstm_Mersey |
Oval | ov | lov_Circle |
PBtoCPPObject | pb2cpp | lpb2cpp_Quad |
Picture | p | lp_Smile |
PictureButton | pb | lpb_Click |
PictureListBox | plb | lplb_Drives |
Pipeline | pl | lpl_OilandGas |
Powerobject | po | lpo_Source |
ProfileCall | prc | lprc_Face |
ProfileClass | prcl | lprcl_Room |
ProfileLine | prl | iprl_Bob |
ProfileRoutine | prr | lprr_Cat |
Profiling | pr | lpr_Outline |
RadioButton | rb | lrb_Male |
Rectangle | rec | irec_Tum |
RemoteObject | ro | iro_Employee |
RichTextEdit | rte | lrte_Script |
RoundRectange | rr | lrr_Lion |
ScriptDefinition | sdef | lsdef_Mycode |
Service | srv | lsrv_Charge |
SimpleTypeDefinition | std | istd_MyType |
SingleLineEdit | sle | lsle_Name |
StaticText | st | lst_Prompt |
Structure | str | lstr_Data |
SystemFunctions | sf | lsf_Bay |
Tab | tab | ltab_Strip |
Timing | tmg | ltmg_Clock |
TraceActivityNode | tran | ltran_Node |
TraceBeginEnd | trbe | ltrbe_Start |
TraceError | tre | ltre_Error |
TraceFile | trf | itrf_TraceFile |
TraceGarbageCollect | trgc | itrgc_Call |
TraceLine | trln | strln_Rope |
TraceObject | tro | ltro_Bob |
TraceRoutine | trr | ltrr_Tiger |
TraceSQL | trsql | ltrsql_MySQL |
TraceTree | trt | ltrt_Birch |
TraceTreeError | trte | ltrte_Err |
TraceTreeGarbageCollect | trtgc | ltrtgc_Trash |
TraceTreeLine | trtl | ltrtl_String |
TraceTreeNode | trtn | ltrtn_Kilt |
TraceTreeObject | trto | ltrto_Trace |
TraceTreeRoutine | trtr | ltrtr_BobGrimmer |
TraceTreeUser | trtu | ltrtu_User |
TraceUser | tru | ltru_Blue |
Transaction | tr | ltr_Trans |
Transport | tp | ltp_Server |
Treeview | tv | ltv_Directory |
TreeviewItem | tvi | ltvi_Node |
TypeDefinition | typdef | ltypdef_Details |
UserObject | uo | luo_Control |
VariableCardinalityDefinition | vcd | lvcd_Type |
VariableDefinition | vd | lvd_Sore |
VerticalScrollBar | vsb | lvsb_Amount |
Window | w | w_PleaseWait |
WindowObject | wo | lwo_WomanElement |
Convención de nombres de clases
Clase | Prefijo | Ejemplo |
menu | m_ | m_principal |
Standard class user object | n_ | n_ds |
Custom class user object | n_cst_ | n_cst_customer |
Global structure | s_ | s_point |
Visual user object | u_ | u_pb |
Window | w_ | w_mdi |
Otras consideraciones
Las funciones globales usan el prefijo gf_ y las funciones de objetos utilizan el prefijo of_Las constantes no suelen tener prefijo y se escriben en mayúsculas.
A las 7:21 0 comentarios
Etiquetas: General/Otros
12 febrero 2007
Encabezados dinamicos. Con un par...
En este post solo aparece el código para poner el encabezado que deseo, si quereis ampliarlo para poder imprimir datawindows según lo he descrito podéis mirar el post anterior.
Aunque ya lo he comentado en otros post, como dato curioso, si os fijáis, sería el primer argumento de la función, que correspondería al dw o ds al que le pondremos el encabezado, pues resulta que el tipo en un powerObject, precisamente para poder aplicar el encabezado tanto a dw como a ds.
El resto de argumentos podrían eliminarse, todo depende del encabezado que deseemos, en mi caso para el argumento as_application le paso una cosntante que corresponde con el nombre de la aplicación para saber desde donde se ha impreso; para el argumento as_title, le paso el title de la ventana donde esta el dw que corresponde siempre con lo que muestra; y por último un argumento con un string para poner información en el pie de la impresión (privado, confidencial, borrador, etc.).
En siguiente ilustración representa una imagen de como quedaría... emborrone el logo por temas de confidencialidad, por cierto, si vuestro logo difiere en dimensiones, tal vez fuese necesario modificar alguna medida.

Y para finalizar aquí desempolvado y listo para usar el código responsable de añadido dinámico:
Se aceptan sugerencias y mejoras. Saludos.
A las 16:58 0 comentarios
Etiquetas: Datawindows, PowerScript
Copiar "Retrieval Arguments" entre dw/ds
Este problema no sucede solo al hacer copia de datos entre los dw/ds, también sucede con en método ShareData.
Hasta aquí podríamos pensar que habría que buscar mediante "describe" o "modify" las opciones necesarias para conseguir nuestros objetivos, traspasar la información de los "Retrieval Arguments", pues bien, casi, casi... resulta que podemos obtener los "Retrieval Arguments", pero no existe medio material de asignarlos a un dw o ds sin tener que recurrir al método retrieve, y en algunos casos esta operación puede ser pesada y costosa, y necesitaremos evitarla a toda costa, bueno, pues como siempre depende del objetivo final, en mi caso necesitaba conseguir que los computados funcionasen y que los grupos también lo hiciesen, así que si no tenía opción de asignar la información directamente al control, lo que hice fue modificar dinámicamente los controles afectados.
Por un lado tiré en parte con código de las PFCs pare recuperar los "Retrieval Arguments", ampliando la función para poder obtener además el valor asociado, y por otro lado, preparé una función que permitía modificar los controles que contenían información asociada a los argumentos.
Aquí os muestro una función que usaremos en nuestro código y esta sacada de las PFCs.
Fijaros como detalle en la definición de esta función que en lugar de usar como tipo de argumento dw o ds e utilizado uno de tipo powerobject para que la misma función sirva para ambos casos y después, como consecuencia lógica, tengo que hacer las llamadas de modo dinámico:
Ahora nos queda la parte en la que ponemos los "Retrieval Arguments" en el datawindow o datastore destino. Nota: en mi caso se trataba de imprimir un ds que podría proceder de un dw u otro ds, por eso el argumento utilizado es de este tipo, pero si queréis utilizarlo para ds o dw podéis aplicar el truco comentado de la función anterior.
A las 11:34 0 comentarios
Etiquetas: Datawindows, PowerScript
08 enero 2007
VerticalScrollPosition y HorizontalScrollPosition
¿Qué tal se portaron los Reyes?
A las 11:26 0 comentarios
Etiquetas: Datawindows, PowerScript
05 enero 2007
Scroll en un datawindow con PowerScript
Felices Reyes
A las 14:38 0 comentarios
Etiquetas: Datawindows, PowerScript
04 enero 2007
Convertir a números cardinales
Algo que es interesante es el uso de la recursividad para resolver el
tema de los céntimos... ¿Qué os parece? Bueno, para no salirme de la tónica... espero que también os sirva a vosotros también.
A las 17:03 0 comentarios
Etiquetas: PowerScript