Not instantly refreshing for the get I should go to by cursor to the get box so the frefresh will be made . Please focus on the country variable and I will do the rest .
Code: Select all
static function editcust( oLbx, lAppend )
*-------------------------------------------
local oDlg
local h:=0
local V_CU_ACCT
local V_CU_NAME
local V_cu_stre
local V_cu_gove
local V_cu_city:=space(30)
local V_cu_coun:=space(30)
local V_cu_counc:=space(30)
local V_CU_phon
local V_CU_fax
local V_CU_MAN
local V_CU_mobi
local V_CU_appr
local oGet
local lSave := .f.
local nOldRec := RecNo()
DEFAULT lAppend := .f.
if lAppend
GOTO BOTTOM
SKIP
endif
*? nOldRec
V_CU_ACCT:=cust->CU_ACCT
V_CU_NAME:=cust->CU_NAME
V_CU_coun:=cust->CU_coun
V_CU_city:=cust->CU_city
V_CU_gove:=cust->CU_gove
V_CU_stre:=cust->CU_stre
V_CU_phon:=cust->CU_phon
V_CU_fax:=cust->CU_fax
V_CU_MAN:=cust->CU_MAN
V_CU_mobi:=cust->CU_mobi
V_CU_appr:=cust->CU_appr
DEFINE DIALOG oDlg FROM 8, 2 TO 500, 700 PIXEL ;
TITLE If( lAppend, "New Customer", "Customer Update" )
@ 1,2 SAY "&Account No." OF oDlg PIXEL
@ 1,50 SAY ":" OF oDlg PIXEL
@ 1,60 GET V_CU_ACCT OF oDlg PIXEL
@ 15,1 SAY "&Name" OF oDlg PIXEL
@ 15,50 SAY ":" OF oDlg PIXEL
@ 15,60 GET V_CU_NAME OF oDlg PIXEL
@ 30,2 SAY "&Street" OF oDlg PIXEL
@ 30,50 SAY ":" OF oDlg PIXEL
@ 30,60 GET V_cu_stre OF oDlg PIXEL
@ 45,2 SAY "&Country" OF oDlg PIXEL
@ 45,50 SAY ":" OF oDlg PIXEL
@ 45,60 GET oGet VAR V_cu_coun OF oDlg PIXEL
@ 45,200 COMBOBOX V_cu_counc ITEMS aBase(1,"cust",256,"cu_coun") size 80,80 ;
OF oDlg PIXEL;
ON CHANGE (V_cu_coun:=cust->cu_coun,oGet:Refresh(),oDlg:Refresh())
@ 60,2 SAY "&City" OF oDlg PIXEL
@ 60,50 SAY ":" OF oDlg PIXEL
@ 60,60 GET oGet VAR V_cu_city OF oDlg PIXEL
@ 60,200 COMBOBOX V_cu_city ITEMS aBase(1,"cust",256,"cu_city") size 80,80 ;
OF oDlg PIXEL;
ON CHANGE (v_cu_city:=cust->cu_city,oGet:Refresh());
select 1
use cust
set filter to (upper(v_cu_city)==upper(cust->cu_city))
@ 75,2 SAY "&Governer" OF oDlg PIXEL
@ 75,50 SAY ":" OF oDlg PIXEL
@ 75,60 GET V_cu_gove OF oDlg PIXEL
@ 75,200 COMBOBOX V_cu_gove ITEMS aBase(1,"cust",256,"cu_gove") size 80,80 ;
OF oDlg PIXEL;
ON CHANGE (v_cu_gove:=cust->cu_gove);
select 1
use cust
set filter to
@ 90,2 SAY "&Phone" OF oDlg PIXEL
@ 90,50 SAY ":" OF oDlg PIXEL
@ 90,60 GET V_CU_phon OF oDlg PIXEL
@ 105,2 SAY "&Fax" OF oDlg PIXEL
@ 105,50 SAY ":" OF oDlg PIXEL
@ 105,60 GET V_CU_fax OF oDlg PIXEL
@ 120,2 SAY "Man" OF oDlg PIXEL
@ 120,50 SAY ":" OF oDlg PIXEL
@ 120,60 GET V_CU_MAN OF oDlg PIXEL
@ 135,2 SAY "Mobile" OF oDlg PIXEL
@ 135,50 SAY ":" OF oDlg PIXEL
@ 135,60 GET V_CU_mobi OF oDlg PIXEL
@ 150,2 SAY "Account Name" OF oDlg PIXEL
@ 150,50 SAY ":" OF oDlg PIXEL
@ 150,60 GET V_CU_appr OF oDlg PIXEL
@ 170, 9 BUTTON "&Save" OF oDlg PIXEL SIZE 50, 12 ACTION ( lSave := .t. , oDlg:End() )
@ 170, 100 BUTTON "&Cancel" OF oDlg PIXEL SIZE 50, 12 ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
if Empty( V_CU_Acct ) .and. lSave
MsgAlert( "Please write a name" )
endif
if lSave .and. !empty( V_CU_ACCT )
if lAppend
select 1
use cust
APPEND BLANK
nOldRec:=recno()
*? nOldRec
endif
select 1
use cust
GOTO nOldRec
cust->CU_ACCT :=V_CU_ACCT
cust->CU_NAME :=V_CU_NAME
cust->cu_coun :=V_cu_coun
cust->cu_city :=V_cu_city
cust->cu_gove :=V_cu_gove
cust->cu_stre :=V_cu_stre
cust->CU_phon :=V_CU_phon
cust->CU_fax :=V_CU_fax
cust->CU_MAN :=V_CU_MAN
cust->CU_mobi :=V_CU_mobi
cust->CU_appr :=V_CU_appr
select 1
use cust
go top
oLbx:Refresh() // We want the ListBox to be repainted
else
select 1
use cust
endif
select 1
use cust
INDEX ON upper(cust->cu_acct) TO cust
go top
reindex
INDEX ON upper(cust->cu_name) TO cust1
go top
reindex
INDEX ON upper(cust->cu_coun) TO cust2
go top
reindex
INDEX ON upper(cust->cu_city) TO cust3
INDEX ON upper(cust->cu_gove) TO cust4
INDEX ON upper(cust->cu_stre) TO cust5
INDEX ON upper(cust->cu_phon) TO cust6
INDEX ON upper(cust->cu_fax ) TO cust7
INDEX ON upper(cust->cu_mobi) TO cust8
INDEX ON upper(cust->cu_man ) TO cust9
INDEX ON alltrim(upper(cust->cu_appr)) TO cust10
go top
reindex
use cust index cust
return nil