Macro Substituição C# Windows Forms

05/07/2011

0

Como fazer Macro Substituição no C#? no Visual Fox Pro ou clipper uso o caracter
"&" mas não tem correspondente em C#... Se alguem conhecer alguma função para
fazer macro substituição, gentileza me informar.

Para quem não conhece macro substituição é o seguinte: imagine uma tabela de
formulas em uma folha de pagamento e durante o processamento desta folha vc vai
processar aquela formula expressa em uma campo string de uma tabela.... Assim:

Vale_transporte = Campo_Formula ( o conteudo do campo formula digitado no banco
de dados é : "Salario_Base * 6/100").
Então Vale_Transporte = "Salario_Base * 6/100" esta expressão não é processado
em C#, pois, é considerado como string e não como expressão, porque veio de uma
varivel string.

Em FOX PRO seria: vale_transporte = &Campo_Formula , veja que o simbolo & faz a
substituição da varivel pelo conteúdo dela.... então o resultado final seria:
vale_tranporte = Salario_Base * 6/100 sem as aspas, significando que é uma
expressão.
Se vc souber como fazer uma string virar uma expressão...

gentileza me informar... ficarei grato...
Rodrigo Lameira

Rodrigo Lameira

Responder

Posts

05/07/2011

Evandro Lopes

Considerando que Salario_Base é o nome do atributo que vc adcionou o valor do banco de dados, vc pode fazer isso -> double.Parse(Salario_Base) * 6 / 100; o Parse serve para transformar um valor string para um tipo q vc definir, no caso eu defini double, mas pode ser int.Parse(string).. Espero ter ajudado, falei assim bem cru, pois acredito que esse Salario_Base já esteja populado algum valor.   Abraços.
Responder

05/07/2011

Rodrigo Lameira

Caro Evandro,

não é exatamente isso acho que não expliquei bem.. :)


vamos para um outro exemplo:

no meu caso é uma fórmula para calcular média das notas de alunos.

tenho um campo FORMULAX onde o próprio usuário cria sua fórmula personalisada.
É disponibilizado algumas variáveis de trabalho para ele.
WB1 = nota 1º bimestre
WB2 = nota 2º bimestre
WB3 = nota 3º bimestre
WB4 = nota 4º bimestre

Então o próprio usuário monta a fórmula da maneira que quiser.

OBS: as vezes trabalham com peso e outras particularidades, dai pode ficar bem mais complexa.

FORMULAX = "((WB1+WB2)/2+(WB3+WB4)/2)/2"


Cada uma destas variáveis contem um valor. Consigo trocalos na string com FORMULAX.Replace(WB1, "7.5")

dai a String fica assim:

"((7.5+10.0)/2 + (6.0+5.0)/2)/2" agora surge o problema como transformar essa String em valor numerico ???


veja se pode me ajudar...

Abraços.
Responder

06/07/2011

Evandro Lopes

Fala Rodrigo, agora entendi sim. Que buxa que vc pegou em... Na boa, se vc qr um conselho, melhor vc pedir para q o Usuario defina a vc as formulas que ele mais utiliza, q sempre vai utilizar. Isso que vc qr da sim para ser feito, mas não seria muito simples.
Um regex talvez pudesse te ajudar, porém vc iria ter um trabalho do cão da mesma maneira. No momento estou no trampo, vou ver isso qndo chegar em casa. Mesmo q consiga depois eu disponibilizo aki o resultado que consegui, achei isso interessante, porém qnto menos liberdade vc der ao usuario melhor seria.

Abraços.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar