Tentando entender porque não funciona pra inclusão
Enviado: 11 Dez 2023 19:20
Código: Selecionar todos
METHOD Save() CLASS frm_Class
LOCAL aItem
::EditOff()
IF ::cSelected == "INSERT"
APPEND BLANK
ENDIF
IF RLock()
FOR EACH aItem IN ::aControlList
DO CASE
CASE aItem[ CFG_CTLTYPE ] != TYPE_EDIT // not editable
CASE Empty( aItem[ CFG_FNAME ] ) // do not have name
CASE ( aItem[ CFG_ISKEY ] .AND. ::cSelected != "INSERT" ) // table key
OTHERWISE
FieldPut( FieldNum( aItem[ CFG_FNAME ] ), gui_TextGetValue( ::oDlg, aItem[ CFG_FCONTROL ] ) )
ENDCASE
NEXT
SKIP 0
UNLOCK
ENDIF
::cSelected := "NONE"
RETURN Nil
Está funcionando pra alteração, mas não pra inclusão.
Detalhes:
- faz o append blank, então está entrando na rotina
- na alteração salva, então a gravação está correta
- case 1: se NÃO é textbox/edit - se não é edit não há o que salvar
- case 2: se tem nome no campo ou se está vazio - não dá pra salvar um nome que não existe
- case 3: se é campo chave mas não é inclusão, ignora o campo chave no salvamento de alteração, só salva na inclusão
- otherwise: salva o campo se passar nas condições anteriores
O chato de gui é não poder usar o debug do harbour pra acompanhar passo a passo.
vou ter que colocar Msgbox() nisso.
Rlock() falhar, acho que não acontece na inclusão.