Bom dia pessoal tudo bem? gostaria que alguem me ajudasse a como começar a programar telas ou UPCs para o DataSul, e como posso entender as estruturas de pastas e caminhos.
e ai Kaua ? então, pra vc criar UPCs, tem 2 coisas, primeiro descobrir os pontos de acesso, ou seja, quais são as chamadas que o programa tem ... Código: define input parameter p-ind-event as character no-undo. define input parameter p-ind-object as character no-undo. define input parameter p-wgh-object as handle no-undo. define input parameter p-wgh-frame as widget-handle no-undo. define input parameter p-cod-table as character no-undo. define input parameter p-row-table as rowid no-undo. define variable c-objeto as character no-undo. define variable dtTrans as handle no-undo. define variable nroDocto as handle no-undo. /* main */ assign c-objeto = entry(num-entries(p-wgh-object:private-data,'~/'), p-wgh-object:private-data,'~/'). message "Evento........: " p-ind-event skip "Objeto........: " p-ind-object skip "Nome objeto ..: " c-objeto skip "Handle Objeto.: " p-wgh-object skip "Frame.........: " p-wgh-frame skip "Tabela........: " p-cod-table skip "Rowid.........: " string(p-row-table) skip view-as alert-box info buttons ok. Agora vc descobrindo o ponto que vc quer trabalhar, ai vc tem que capturar o handle de um ou mais campos na tela que vc quer trabalhar, vc pode pegar o handle, criar um evento de leave, F5, entry, e por um trecho de programa seu. Ou ainda, vc pode criar campos na tela. Na verdade pra criar um exemplo é dificil, porque são muitas opções, pra procurar um campo na tela por exemplo, eu uso esse programinha .... Código: define input parameter c-widget-name as char no-undo. define input parameter c-widget-type as char no-undo. define input parameter h-start-widget as handle no-undo. define output parameter h-widget as handle no-undo. do while valid-handle(h-start-widget): if h-start-widget:type = c-widget-type and (h-start-widget:name = c-widget-name or (h-start-widget:type = 'LITERAL':u and h-start-widget:screen-value = c-widget-name)) then do: assign h-widget = h-start-widget:handle. leave. end. if h-start-widget:type = "field-group":u or h-start-widget:type = "frame":u or h-start-widget:type = "dialog-box":u then do: run utils/findWidget.p (input c-widget-name, input c-widget-type, input h-start-widget:first-child, output h-widget). if valid-handle(h-widget) then leave. end. assign h-start-widget = h-start-widget:next-sibling. end. pra usar ele, olha um exemplo ... Código: if p-ind-event = 'INITIALIZE' then do: run utils/findWidget.p('bt-ficha' ,'button', p-wgh-frame, output btFicha). run utils/findWidget.p('bt-Exporta','button', p-wgh-frame, output btExporta). if valid-handle(btExporta) and not valid-handle(btFicha) then do: create button btFicha assign frame = btExporta:frame name = 'bt-Ficha' help = 'Ficha ENGENHARIA' tooltip = 'Ficha ENGENHARIA' width = btExporta:width height = btExporta:height row = btExporta:row col = btExporta:col + btExporta:width + 1 flat-button = btExporta:flat-button visible = yes label = 'CF' sensitive = yes. btFicha:load-image('image/toolbar/im-brows.bmp'). btFicha:load-image-insensitive('image/toolbar/im-brows.bmp'). on 'choose':u of btFicha persistent run upc/upc-cd0204Evt.p. end. end. NO meu caso, o programa .p que mostrei pra vc tem o nome de findWidget.p E tem as EPCs, onde vc pode ter pontos em programas de relatorios, os rp.p e nas apis, eu tenho bastante customização na ceapi001 de estoque, tenho no bodi317ef.p que é a geração de notas fiscais, dai os parametros são outros. Mas pra tela, vc tem que entrar no bas_prog_dtsul, e preencher o campo UPC apontando pra um .p que vc fez com esses conteudos ai.
Bom dia, pessoal a Progress está oferecendo curso de Progress OpenEdge com certificado e grátis. Se poderem, passe para quem estiver interessado, segue o link: https://www.progress.com/pt/openedge/developer
Bom dia, pessoal a Progress está oferecendo curso de Progress OpenEdge com certificado e grátis. Se poderem, passe para quem estiver interessado, segue o link: https://www.progress.com/pt/openedge/developer